What is OSC?

Open Sound Control (OSC) is a lightweight networking protocol originally designed for music and multimedia. VRChat adopted OSC as its primary interface for external applications to read and write avatar parameters, send chatbox messages, and monitor player state.

VMSC uses OSC to bridge your TikTok LIVE stream and VRChat. When a viewer sends a gift, follows, or triggers any event, VMSC can instantly change your avatar's expression, toggle props, display chatbox messages, and more — all without any VRChat mods.

No Mods Required

OSC is a built-in VRChat feature. You do not need to install any third-party mods or plugins in VRChat to use VMSC's OSC integration.

Enabling OSC in VRChat

Before VMSC can communicate with VRChat, you need to enable OSC in the game:

  1. Open the Action Menu

    In VRChat, open your Action Menu (hold R on desktop or press the menu button on your VR controller).

  2. Navigate to Options

    Go to Options > OSC in the radial menu.

  3. Enable OSC

    Toggle the Enabled switch to on. VRChat will begin listening for OSC messages and sending parameter updates.

  4. Reset Config (if needed)

    If you have changed avatars and parameters are not responding, use Reset Config in the same menu. This forces VRChat to regenerate its OSC configuration files for your current avatar.

VMSC Connection Settings

Navigate to Settings > Outputs > VRChat OSC to configure the connection. By default, the settings work out of the box when VRChat and VMSC are running on the same computer.

Setting Default Description
Host 127.0.0.1 IP address where VRChat is running. Use 127.0.0.1 for the same machine.
Send Port 9000 Port that VRChat listens on for incoming OSC messages. This is VRChat's default and rarely needs changing.
Receive Port 9001 Port that VMSC listens on for outgoing OSC data from VRChat (avatar parameters, input state).
Port Conflicts

If another OSC application (VRCFaceTracking, PiMax, etc.) is already using port 9000 or 9001, you will need to configure non-conflicting ports. Make sure to change the matching port in VRChat's OSC settings as well.

Sending Parameters

The most common use of VRChat OSC is sending parameter values to your avatar. When you create a rule action of type VRChat OSC > Send Parameter, you specify three things:

Field Description Example
Parameter Name The avatar parameter path. Must match your avatar's parameter name exactly (case-sensitive). EarWiggle
Value The value to send. Can be a literal or a template variable like {{giftCount}}. true, 0.75, 3
Type The data type of the parameter. Must match your avatar's parameter type. Bool, Int, Float

The full OSC address sent to VRChat follows the format:

/avatar/parameters/<ParameterName>

VMSC builds this address automatically — you only need to enter the parameter name without the prefix.

Type Mismatches

If you send a Float value to a parameter defined as Bool in your avatar, VRChat will silently ignore the message. Always verify the type matches your avatar's parameter definition.

Chatbox Messages

VMSC can display text above your VRChat avatar using the chatbox. This is useful for showing viewer names, gift alerts, or custom messages triggered by stream events.

When you create a VRChat OSC > Send Chatbox action, you can configure:

  • Message — The text to display. Supports template variables like {{username}}, {{giftName}}, and {{comment}}.
  • Send Immediately — When enabled, the message bypasses the typing indicator and appears instantly. When disabled, VRChat simulates a typing animation before showing the text.
  • Play Sound — Plays the chatbox notification sound in VRChat when the message appears.

Example chatbox message template:

{{username}} sent {{giftName}} x{{giftCount}}!
Chatbox Rate Limit

VRChat limits chatbox updates to roughly once every 1.5 seconds. If multiple messages are sent in quick succession, only the most recent one will be displayed. VMSC does not queue chatbox messages — high-frequency events may overwrite each other.

Avatar Scanning

Instead of manually typing parameter names, VMSC can auto-detect all available parameters on your current VRChat avatar by scanning the OSC cache files.

To use avatar scanning:

  1. Make sure OSC is enabled in VRChat and you have loaded at least one avatar since enabling it.
  2. In VMSC, go to Outputs > VRChat OSC and click Scan Avatar Parameters.
  3. VMSC reads VRChat's OSC config files from %LOCALAPPDATA%Low\VRChat\VRChat\OSC\ and extracts every parameter with its name, type, and address.
  4. Scanned parameters appear in a searchable dropdown when configuring OSC actions, so you can select them instead of typing manually.
Cache Refresh

VRChat writes OSC config files when you first load an avatar with OSC enabled. If you upload a new version of your avatar, use Reset Config in VRChat's OSC menu, then re-scan in VMSC to pick up the new parameters.

OSC Listener (Monitor)

The OSC Monitor widget displays a live feed of all OSC messages being sent from VRChat to VMSC. This is invaluable for debugging and understanding what data your avatar is broadcasting.

The monitor shows:

  • Address — The full OSC path (e.g., /avatar/parameters/VelocityX)
  • Value — The current value being sent
  • Type — The data type (Bool, Int, Float)
  • Timestamp — When the message was received

You can access the OSC Monitor from the dashboard widget panel or from Outputs > VRChat OSC > Open Monitor.

High-Frequency Parameters

Parameters like VelocityX, VelocityY, and VelocityZ update many times per second. The monitor throttles the display to keep the UI responsive, but all values are received internally.

Testing Your Setup

VMSC includes a built-in test tool to verify your OSC connection without needing to trigger real stream events.

  1. Open the Test Panel

    Go to Outputs > VRChat OSC and find the Send Test Parameter section.

  2. Enter a Parameter

    Type a parameter name (e.g., EarWiggle), select the type (Bool), and set the value (true).

  3. Click Send

    Click Send Test Parameter. If everything is configured correctly, your avatar should respond immediately in VRChat.

You can also test chatbox messages using the Send Test Chatbox button, which sends a sample message to your VRChat chatbox.

Common VRChat Parameters

VRChat exposes several built-in parameters on every avatar. These are useful for reading player state via the OSC listener:

Parameter Type Description
VelocityX Float Lateral movement speed (-1 to 1)
VelocityY Float Vertical movement speed (-1 to 1)
VelocityZ Float Forward/backward movement speed (-1 to 1)
Grounded Bool Whether the player is on the ground
Seated Bool Whether the player is in a seat/station
AFK Bool Whether the player's headset is off (VR) or the window is unfocused (desktop)
MuteSelf Bool Whether the player's microphone is muted
InStation Bool Whether the player is in a station
Viseme Int Current viseme index for lip sync (0–14)
GestureLeft Int Left hand gesture index (0–7)
GestureRight Int Right hand gesture index (0–7)

Custom parameters defined in your avatar's Expression Parameters asset also appear via OSC. Use the avatar scanner to discover them automatically.