How to connect your toy to VRChat
Four VRChat plugins drive a toy from avatar contacts, OSC messages, or shader tricks. PlugChat, VRbrations, VrcLovenseConnect, VRChatVibratorController.
VRChat is the most popular social VR platform, and the community has built several plugins that drive a real toy from avatar interactions. A partner touches your avatar, a touch contact fires, your toy reacts.
There are four main plugins. They use slightly different paths but all talk to either Lovense Game Mode or Buttplug.io, both of which ToyControl supports. Pick the one that fits your setup.
Before you pick a plugin
Three plugins below (PlugChat, VRbrations on the Buttplug path, VrcLovenseConnect on the Buttplug path, VRChatVibratorController) connect through ToyControl's Intiface bridge. Before you start any of them:
- Quit Intiface Central if you have it installed. ToyControl and Intiface Central want the same port; only one can hold it.
- In ToyControl, open the Game Link tab and turn on the Intiface bridge toggle. A URL appears next to it. That URL is what you paste into the plugin's server-URL field.
See Turning on the Intiface bridge if no URL appears.
The four plugins
| Plugin | Protocol | Cost | Best for |
|---|---|---|---|
| PlugChat | Buttplug.io (OSC bridge) | Paid (one-time) | Polished partner-play experience in PlugChat-compatible worlds |
| VRbrations | Buttplug.io or Lovense API | Paid (with free trial) | Shader-based; no client mod needed |
| VrcLovenseConnect | Lovense Connect API + Buttplug | Free, open source | DIY users who want the cheapest path |
| VRChatVibratorController | Buttplug.io | Free, open source | Driving someone else's toy with your VR controllers |
All four are friend-and-partner-play tools. The avatar receives contact events, and the plugin maps them to toy output.
Path 1: PlugChat (polished, paid)
PlugChat is a paid plugin specifically designed for partner play in PlugChat-compatible avatars. It uses Buttplug.io under the hood (over 700 supported toys) and routes through OSC messages from VRChat.
Install
- Buy PlugChat from Gumroad.
- Follow the installer's instructions to drop the necessary files into your VRChat folder.
- Point PlugChat at ToyControl's Intiface bridge (the URL is in ToyControl's Game Link tab).
- Set up your avatar with the included contact receivers.
Use
In a PlugChat-compatible world (the seller maintains a list), a partner's avatar touching yours fires the configured contact, which PlugChat reads and sends to your toy.
Path 2: VRbrations (shader-based, paid with trial)
VRbrations avoids client mods entirely by using a shader strategy. Vibrating triggers are encoded in the avatar's shader, and VRbrations reads them through screen capture.
It supports both Buttplug.io and the Lovense Connect API. For ToyControl users, the Buttplug.io path is cleaner.
Install
- Download VRbrations (free trial available).
- Install on your computer.
- Point at ToyControl's Intiface bridge (Buttplug path) or Game Link (Lovense path).
- Wear a VRbrations-enabled avatar in VRChat.
Use
The plugin reads triggers from the avatar shader and drives the toy. No mods loaded into VRChat.
Path 3: VrcLovenseConnect (free, open source)
VrcLovenseConnect is a .NET implementation of both the Lovense Connect API and Buttplug.io, designed to synchronize a connected toy with a VRChat avatar through OSC messages.
Install
- Clone or download VrcLovenseConnect from GitHub.
- Build and run the .NET application.
- Configure it to connect to ToyControl's Intiface bridge (Buttplug path) or Game Link (Lovense path).
- Set up your avatar to send OSC parameters that VrcLovenseConnect can read.
Use
VRChat's built-in OSC support sends avatar parameter changes to the app, which translates them into toy commands.
Path 4: VRChatVibratorController (controller-driven)
VRChatVibratorController is different from the others. Instead of avatar contacts driving your own toy, it lets you control someone else's toy with your VR controllers. The connection is also Buttplug-based.
Use
Install on the driver's computer. Connect to ToyControl on the receiver's side (or vice versa, depending on setup). In VRChat, the driver's controller movements map to the receiver's toy.
This overlaps with ToyControl's built-in Remote Control rooms, which may be a simpler path if you do not need the in-VRChat overlay. Pick the one that fits.
Setting up VRChat OSC
Three of the four plugins read VRChat's OSC output. Enable it in VRChat:
- Open the VRChat menu.
- Go to Options > OSC.
- Enable OSC.
- (Optional) Set the OSC port if a plugin requires a specific one.
Most plugins default to VRChat's standard OSC port (9000).
Consent and avatar setup
VRChat toy plugins are deeply tied to partner interactions. A few practical notes:
- Your contact receivers can be visible to everyone or only to friends, depending on avatar setup.
- Setting per-friend permissions on contacts prevents random users from triggering your toy.
- The receiver always controls their own ToyControl: max speed cap, Stop button, disconnect. See Setting safe limits.
Tuning the feel
Standard ToyControl controls:
- Multiplier in the bottom bar.
- Speed range for floor and ceiling.
- Per-device intensity for individual toys.
If a plugin's defaults are too sensitive (every avatar touch maxes the toy), lower the Multiplier to 0.5x.
Troubleshooting
Plugin cannot connect to Buttplug server
- Confirm ToyControl's helper app is running.
- Make sure the WebSocket URL in the plugin matches ToyControl's.
VRChat is not sending OSC
- Re-check Options > OSC in VRChat. Toggle it off and on.
- Restart VRChat after enabling OSC.
Avatar not triggering toy
- Some avatars require a specific PlugChat or VRbrations-compatible model. Use one the plugin maker recommends.
- For OSC-based plugins, the avatar must expose the right OSC parameters.
Performance hits in VRChat
VR is performance-sensitive. Adding plugins can drop frame rate. If VRChat stutters, try the shader-based path (VRbrations) which has lower overhead than mod-based paths.
Privacy
PlugChat, VrcLovenseConnect, and VRChatVibratorController run on your computer and talk to ToyControl over localhost or LAN. Nothing leaves your house unless you specifically use cloud features.
VRbrations uses screen capture and runs locally too.
For social VR generally, the receiver's safety controls in ToyControl (max cap, Stop, disconnect) work the same as in any Remote Control session.