VRChat OSC
The VRChat OSC plugin lets flows react to your VRChat avatar (parameters, Contacts, and PhysBones) and send OSC messages and chatbox text back to VRChat. This page describes version 1.3.0. Install it from Manage plugins → Browse. See how nodes work for how to read the node diagrams.
Setup
Plugin pages are hidden from the sidebar until you turn them on; see showing a plugin's pages.
- In VRChat, turn on OSC from the Action Menu: Options → OSC → Enabled.
- In MultiShock, open Manage plugins and click Configure on VRChatOSC.
The defaults work for VRChat running on the same computer:
- VRChat Remote Host
127.0.0.1and VRChat Receive Port (send target)9000are where MultiShock sends. - Local Receive Port
9001is where MultiShock listens. With Use any available local receive port on, it picks a free port if 9001 is taken and advertises it over OSCQuery. - Enable OSCQuery advertisement and discovery and Prefer OSCQuery discovered VRChat endpoint let MultiShock find VRChat automatically.
- VRChat Remote Host
- Leave Enable plugin and Auto-start connection on app startup on, then click Save. Use Start and Stop to control the connection by hand.
Saving while Auto-start connection on app startup is off stops the connection, so click Start afterwards if you want it running.
The VRChatOSC page in the sidebar shows the connection status, the active send target, a form to send a test message, and a log of incoming messages. "Connected" means MultiShock's sockets are open, not that VRChat is running, so use the incoming message log to confirm VRChat is talking to it.
Triggers
Each OSC message VRChat sends fires the matching triggers once. Bundles are split into their individual messages.
OSC Message Received
Fires for OSC messages from VRChat, optionally filtered by address.
- Address Filter
- The address to match. Empty matches every message.
- Match Mode
- Any, Exact, Contains, or OSC Pattern. Default Any, which matches everything.
- Case Sensitive
- Default off.
OSC Pattern supports OSC wildcards such as /avatar/parameters/*. An invalid
pattern never matches.
Avatar Parameter Changed
Fires when an avatar parameter changes, including Contact and PhysBone parameters.
- Parameter Name
- The name after /avatar/parameters/, matched exactly including capitalization. Empty matches any parameter.
- Condition
- Any change, Value changed, Becomes true, Becomes false, Equals value, Greater than value, or Less than value. Default Any change.
- Compare Value
- Used by the equals, greater than, and less than conditions. Default 0.
The node remembers the last value it saw, and the first message after the flow starts counts as a change. The edge conditions (Value changed, Becomes true, Becomes false) work best with a specific Parameter Name. Equals value allows a difference of up to 0.0001.
Contact / PhysBone Touched
Fires when a Contact receiver or PhysBone parameter starts or stops being touched.
- Parameter Name
- Required. The Contact or PhysBone parameter, such as MyContact or pb_IsGrabbed.
- Fire On
- Touch (grab start), Release (let go), or Both. Default Touch.
- Threshold
- Proximity contacts send 0 to 1. At or above this value counts as touched. Default 0.5.
This trigger never fires while Parameter Name is empty. The name must match exactly, including capitalization.
Actions
Both actions continue through Done even when sending fails. Check
Success, and read Error for the reason, such as OSC is not connected.
Send OSC Message
Sends an OSC message to VRChat, for example to set an avatar parameter.
- Address
- Default /avatar/parameters/MultiShock. A missing leading / is added.
- Arguments
- A JSON array, or comma-separated values. Default true.
Arguments can be a JSON array such as [true, 0.5, "text"], or comma-separated
values such as true, 0.5. Comma-separated values become booleans, numbers, or
text automatically; put text in quotes to keep it as text. At least one argument
is required.
Send Chatbox Message
Shows a message in your VRChat chatbox.
- Message
- The chatbox text.
- Send Immediately
- Post the message right away instead of only filling the chatbox input. Default on.
- Notify
- Play VRChat's chatbox notification sound. Default off.
Connected inputs override the matching properties. The node does not shorten long messages, so keep them within VRChat's chatbox limit.