Skip to main content

VRChat Avatar Parameter Action

Change VRChat avatar parameters via OSC to trigger animations, toggles, facial expressions, or any other avatar behaviors. Supports multi-state parameters with delays for creating sequences.

What You Need

  • VRChat running with OSC enabled
  • Avatar with custom parameters set up
  • VRChat avatar ID or avatar name configured in TipLink
  • Knowledge of your parameter names and types

Quick Start

  1. Enable OSC in VRChat (Options → OSC → Enable)
  2. Add your avatar in TipLink (Settings → VRChat → Add Avatar)
  3. Import avatar parameters or add manually
  4. Create or edit an alert
  5. Add VRChat Avatar Parameter action
  6. Select your avatar(s)
  7. Select parameter(s) and set values
  8. Save and test
Screenshot Coming Soon

Configuration interface screenshot will be added here.

Configuration Options

Avatar Selection

Select VRChat Avatar(s)

  • Choose which avatar(s) this action applies to
  • Can select multiple avatars
  • Only avatars configured in Settings appear here
  • Must have parameters loaded for avatar
Adding Avatars

Add avatars in Settings → VRChat → Avatars:

  1. Enter avatar name (for your reference)
  2. Enter avatar ID (avtr_xxx from VRChat)
  3. Import parameters from VRChat OSC config
  4. Or manually add parameters

Parameter Configuration

Select Parameters

  • Expandable list of parameters from selected avatar(s)
  • Can select multiple parameters
  • Each parameter can have different settings
  • Searchable dropdown

Parameter Settings (per parameter):

First State

  • The value to set when triggered
  • Type depends on parameter:
    • Bool: true/false checkbox
    • Int: whole number
    • Float: decimal number
  • Required field

Delay (seconds)

  • How long to wait before changing to second state
  • In seconds (can be decimal, e.g., 0.5)
  • Leave empty/0 if no second state needed
  • Useful for creating button presses or animations

Second State

  • Optional second value after delay
  • Same type as first state
  • Useful for toggle/reset behavior
  • Leave empty if not needed
Two-State Parameters

Use two states for button-like behavior:

  • First State: true (activate)
  • Delay: 1 second
  • Second State: false (deactivate)

This creates a 1-second button press effect.

Setup Guide

VRChat Avatar Setup

  1. Create Parameters in Avatar

    • Use Unity with VRChat SDK
    • Add parameters to avatar descriptor
    • Set parameter types (Bool, Int, Float)
    • Upload avatar to VRChat
  2. Enable OSC in VRChat

    • Launch VRChat
    • Quick Menu → Options → OSC → Enable
    • Restart VRChat (recommended)
  3. Generate OSC Config

    • Switch to your avatar in VRChat
    • OSC config generated automatically
    • Located at: C:\Users\[User]\AppData\LocalLow\VRChat\VRChat\OSC\[UserID]\Avatars\[AvatarID].json
  1. Add Avatar to TipLink

    • Settings → VRChat → Avatars
    • Click "Add Avatar"
    • Enter avatar name (your reference name)
    • Enter avatar ID (from VRChat)
  2. Import Parameters

    • Click "Import from VRChat OSC"
    • TipLink finds and loads OSC config
    • All parameters imported automatically

    OR

    Add Manually:

    • Click "Add Parameter"
    • Enter parameter name (exact match)
    • Select type (Bool/Int/Float)
    • Add description (optional)
  3. Verify Parameters

    • Check all parameters loaded correctly
    • Verify types match your avatar
    • Test a simple parameter

Alert Configuration

  1. Create Alert

    • Navigate to Alerts
    • Create new or edit existing
    • Set trigger conditions
  2. Add Avatar Parameter Action

    • Actions → Add Action
    • Select "Change a VRChat Avatar Parameter"
  3. Select Avatar

    • Choose your avatar from dropdown
    • Can select multiple avatars
    • Parameters update based on selection
  4. Configure Parameter

    • Click parameter dropdown
    • Search/select your parameter
    • Set first state value
    • Optionally set delay and second state
  5. Add More Parameters (optional)

    • Click "Add Parameter"
    • Configure additional parameters
    • All trigger simultaneously

Multi-State Setup

For a button press that resets:

  1. Select parameter (e.g., EmoteButton)
  2. First State: true
  3. Delay: 1.0
  4. Second State: false

Result: Parameter set to true, waits 1 second, then resets to false.

For a toggle:

  1. Select parameter
  2. First State: true
  3. Leave delay and second state empty

Result: Parameter set to true and stays there.

Common Use Cases

Play Animation

  • Parameter: PlayEmote (Bool)
  • First State: true
  • Delay: 2 seconds
  • Second State: false
  • Result: Plays 2-second emote

Toggle Effect

  • Parameter: WingsEnabled (Bool)
  • First State: true
  • No delay/second state
  • Result: Wings toggle on and stay on

Particle Effect Burst

  • Parameter: ParticlesTrigger (Bool)
  • First State: true
  • Delay: 0.1
  • Second State: false
  • Result: Brief particle burst

Blend Shape

  • Parameter: Blush (Float, 0-1)
  • First State: 1.0
  • Delay: 5 seconds
  • Second State: 0
  • Result: Blush fades in, stays 5 seconds, fades out

Tip Amount Display

  • Parameter: TipAmount (Int)
  • First State: {amount} (use dynamic value)
  • No delay/second state
  • Result: Shows tip amount on avatar

Multi-Step Animation

  • Parameter 1: Step1 (Bool) - First State: true
  • Parameter 2: Step2 (Bool) - First State: true, Delay: 1
  • Parameter 3: Step3 (Bool) - First State: true, Delay: 2
  • Result: Sequence of animations with timing

Color Change

  • Parameter: ColorIndex (Int, 0-5)
  • First State: random value 0-5
  • No delay/second state
  • Result: Random color selection

Troubleshooting

Parameters not changing

  • Verify OSC enabled in VRChat
  • Check avatar is the correct one
  • Confirm parameter names match exactly (case-sensitive)
  • Restart VRChat after enabling OSC

Avatar not in dropdown

  • Add avatar in Settings → VRChat
  • Verify avatar ID is correct (avtr_xxx format)
  • Import or add parameters

Parameters not loading

  • Check OSC config exists for avatar
  • Try manually adding parameters
  • Verify you've worn the avatar in VRChat with OSC enabled

Wrong value type

  • Check parameter type in avatar
  • Bool: true/false only
  • Int: whole numbers only
  • Float: decimal numbers
  • Type mismatch may cause issues

Second state not triggering

  • Verify delay is > 0
  • Check second state field has value
  • Ensure first state triggers successfully first

Delay too short/long

  • Adjust delay value in seconds
  • VRChat OSC has ~50-200ms latency
  • Very short delays (under 0.1s) may be unreliable

Multiple avatars confusion

  • Parameters sent to all selected avatars
  • Only affects currently worn avatar
  • Other avatars ignore parameters they don't have

Best Practices

Parameter Naming:

  • Use descriptive names (e.g., EmoteHappy not E1)
  • Case-sensitive - must match exactly
  • Avoid spaces and special characters
  • Prefix by category (e.g., Emote_, Toggle_)

Value Ranges:

  • Bool: true/false (or 1/0)
  • Int: whole numbers, typically 0-255
  • Float: decimals, typically 0.0-1.0 or -1.0 to 1.0
  • Check your avatar's parameter ranges

Timing:

  • Use delays for button behaviors
  • Skip delays for persistent changes
  • Test timing with actual avatar
  • Account for animation blend times

Multi-Parameter:

  • Can trigger multiple parameters at once
  • Useful for complex effects
  • All parameters triggered simultaneously
  • Individual delays work independently

Dynamic Values:

  • Use placeholders: {amount}, {username}
  • Works with Int and Float types
  • Example: Float amount divided by 100 for percentage

Testing:

  • Test each parameter individually first
  • Verify in desktop mode before VR
  • Check with other people to see external view
  • Test edge cases (max/min values)

Technical Reference

OSC Details:

  • Address Format: /avatar/parameters/[ParameterName]
  • Port: 9000 (VRChat receive)
  • Protocol: UDP
  • IP: 127.0.0.1 (localhost)

Parameter Types:

  • Bool: Single byte, 0 or 1
  • Int: 32-bit integer
  • Float: 32-bit floating point

Value Ranges:

  • Bool: 0 (false) or 1 (true)
  • Int: -2,147,483,648 to 2,147,483,647 (typical use: 0-255)
  • Float: ±3.4 × 10^38 (typical use: 0.0-1.0)

Timing:

  • First state: immediate send
  • Delay: JavaScript setTimeout
  • Second state: sent after delay
  • Network latency: ~10-50ms
  • VRChat processing: ~50-200ms

Avatar ID Format:

  • Starts with avtr_
  • Followed by UUID
  • Example: avtr_12345678-1234-1234-1234-123456789abc
  • Found in VRChat website or OSC config

OSC Config Location:

C:\Users\[User]\AppData\LocalLow\VRChat\VRChat\OSC\[UserID]\Avatars\[AvatarID].json

Config File Structure:

{
"id": "avtr_xxx",
"name": "Avatar Name",
"parameters": [
{
"name": "ParameterName",
"input": {
"address": "/avatar/parameters/ParameterName",
"type": "Bool"
}
}
]
}

Multi-Avatar Support:

  • Parameters sent to all selected avatars
  • VRChat ignores parameters not on current avatar
  • No error if parameter doesn't exist
  • Useful for sharing actions across avatars

Limitations:

  • Cannot read current parameter values
  • Cannot detect if VRChat received message
  • No confirmation of parameter change
  • Rate limiting by VRChat (typically not an issue)
  • Some parameters may be synced, others local-only

Error Handling:

  • Fails silently if VRChat not running
  • Logs errors to TipLink console
  • No retry logic
  • Invalid values may be clamped by VRChat