Connects VRChat avatar parameters to PiShock or OpenShock devices.
Supports serial and API modes, bezier intensity curves, a dynamic cooldown system, chatbox output, VR notifications, and more.
Report Bug or Request Feature
demo.mp4
- Go to Releases and download
Shocker_Link.exe(Shocker_Linkon Linux) - Place it in any folder and run it
- Open Settings (bottom left)
- Add a parameter under OSC / Avatar and set its name to match a parameter on your VRChat avatar
- Choose your connection mode:
PiShockorOpenShock, thenSerialorAPI- Serial (USB hub): connect the hub and let the app scan, or enter the port manually
- API: enter your credentials in Settings
- OpenShock serial users: add shocker IDs manually - they can't be auto-detected over serial
- Click
SaveorSave and Restartif prompted
-
The intensity curve controls the probability distribution of shock strength.
-
Curves are named tabs above the plot. You can add, rename, clone, delete, or copy curves from saved presets via right-click.
-
Presets store a full set of curves. Left-click to load, right-click to rename, middle-click to set as default, click the floppy icon to save.
-
Ctrl+Sto save the active preset quickly. -
All inputs support undo/redo with
Ctrl+Z/Ctrl+Y. -
Multiple OSC parameters can be configured, each with its own curve, intensity range, shocker list, and shocker selection order.
-
The cooldown system dynamically increases wait time between shocks based on recent trigger frequency.
-
The panic hotkey (default
F9) disables shocks immediately from anywhere, even when the window isn't focused.
- PiShock and OpenShock support via serial or API
- Shared shocks between friends using room codes
- Bezier intensity curve with weighted random sampling
- Dynamic cooldown system
- Presets with per-preset curve and view state
- VRChat chatbox output and VR notifications (XSOverlay / OVRToolkit / WayVR)
- Stats tracking: shock count, duration, intensity, and daily history
- Visual avatar parameters for animator integration
ShockerLink automatically sends three float parameters to your avatar after every shock. Add them to your avatar's animator and params file to drive animations, particle effects, or anything else.
| Parameter | Type | Range | Description |
|---|---|---|---|
ShockerLink_IntensityPercentage |
Float | 0–1 | How strong the shock was (0 = 0%, 1 = 100%) |
ShockerLink_CooldownPercentage |
Float | 0–1 | Starts at 1 right after a shock, drains to 0 as the cooldown expires |
ShockerLink_DurationSeconds |
Float | 0–1 | Normalized shock duration (1 = 10 seconds, the software maximum) |
CooldownPercentage updates at ~10Hz while the cooldown is active, so it can drive a smooth progress bar or blend tree on your avatar.
See BUILD.md for detailed instructions.
Fork the repo and open a pull request, or file an issue tagged enhancement.
- Fork the project
- Create a feature branch (
git checkout -b feature/MyFeature) - Commit your changes (
git commit -m 'Add MyFeature') - Push to the branch (
git push origin feature/MyFeature) - Open a pull request
Distributed under the DWYW License. See LICENSE for details.
Poprox24 - @poprox422 - poprox24.roxy@gmail.com
Project: VRChat-Shocker-Link-CPP