https://github.com/OpenShock/ShockOSC
OSC Application to interact with games implementing OSC like VRChat and ChilloutVR
https://github.com/OpenShock/ShockOSC
electrostim open-sound-control openshock osc shock-collar shock-collars vrchat-osc
Last synced: 4 months ago
JSON representation
OSC Application to interact with games implementing OSC like VRChat and ChilloutVR
- Host: GitHub
- URL: https://github.com/OpenShock/ShockOSC
- Owner: OpenShock
- License: agpl-3.0
- Created: 2023-05-09T02:38:13.000Z (about 3 years ago)
- Default Branch: develop
- Last Pushed: 2025-11-09T18:37:56.000Z (7 months ago)
- Last Synced: 2026-01-27T13:52:16.549Z (5 months ago)
- Topics: electrostim, open-sound-control, openshock, osc, shock-collar, shock-collars, vrchat-osc
- Language: C#
- Homepage: https://openshock.org
- Size: 1.15 MB
- Stars: 26
- Watchers: 3
- Forks: 12
- Open Issues: 3
-
Metadata Files:
- Readme: README.md
- Funding: .github/FUNDING.yml
- License: LICENSE
Awesome Lists containing this project
- awesome-openshock - ShockOSC - Interface for OpenShock with OSC/OscQuery applications like VRChat. (OpenShock Desktop / Modules)
README

ShockOSC
[](https://github.com/OpenShock/Desktop/releases/latest/download/OpenShock_Desktop_Setup.exe)
[](https://github.com/OpenShock/ShockOsc/releases/latest)
[](https://github.com/OpenShock/ShockOsc/releases/latest)
[](https://openshock.net/discord)

Used as an interface for OpenShock to communicate with applications that support OSC and OscQuery like VRChat.
## Setup
[Wiki](https://wiki.openshock.org/guides/shockosc/basic)
### Visual parameters
You can add some optional parameters to your avatar to visualize when the shocker is active or on cooldown.
Add these parameters to your avatars animator & params file.
- **bool** `ShockOsc/{GroupName}_Active` enabled only while the shocker is active
- **bool** `ShockOsc/{GroupName}_Cooldown` enabled only while the shocker isn't active and on cooldown
- **float** `ShockOsc/{GroupName}_CooldownPercentage` 0f = shocker isn't on cooldown, 1f = shocker on cooldown (0f while shocker is active)
- **float** `ShockOsc/{GroupName}_Intensity` 0..1f percentage value that represents how close the shock was to maximum intensity from `IntensityRange` (except for FixedIntensity)
#### Virtual Groups (visual)
You can use the virtual, or pseudo, shockers with the name `_Any` and `_All` for some limited actions. Read more below.
##### `_Any`
- `ShockOsc/_Any_Active` is true whenever there is any shocker currently **shocking**
- `ShockOsc/_Any_Cooldown` is true whenever there is any shocker currently **on cooldown**
##### `_All`
This one can be used to make all shockers configured go off at the same time or with the same trigger.
This virtual shocker behaves just like another configured shockers, except it relays its actions to all others.
#### Instant Shocker Action
You may append `_IShock` to a shocker parameter if u want a shock to trigger **instantly** when this bool parameter jumps to true.
This is useful when working with an animator setup or have contact receivers trigger immediately.
E.g. `ShockOsc/_All_IShock`
## Credits
[ShockOsc Contributors](https://github.com/OpenShock/ShockOsc/graphs/contributors)
## Support
You can support the openshock dev team here: [Sponsor OpenShock](https://github.com/sponsors/OpenShock)