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
- Enable OSC in VRChat (Options → OSC → Enable)
- Add your avatar in TipLink (Settings → VRChat → Add Avatar)
- Import avatar parameters or add manually
- Create or edit an alert
- Add VRChat Avatar Parameter action
- Select your avatar(s)
- Select parameter(s) and set values
- Save and test
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
Add avatars in Settings → VRChat → Avatars:
- Enter avatar name (for your reference)
- Enter avatar ID (avtr_xxx from VRChat)
- Import parameters from VRChat OSC config
- 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
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
-
Create Parameters in Avatar
- Use Unity with VRChat SDK
- Add parameters to avatar descriptor
- Set parameter types (Bool, Int, Float)
- Upload avatar to VRChat
-
Enable OSC in VRChat
- Launch VRChat
- Quick Menu → Options → OSC → Enable
- Restart VRChat (recommended)
-
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
TipLink Avatar Setup
-
Add Avatar to TipLink
- Settings → VRChat → Avatars
- Click "Add Avatar"
- Enter avatar name (your reference name)
- Enter avatar ID (from VRChat)
-
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)
-
Verify Parameters
- Check all parameters loaded correctly
- Verify types match your avatar
- Test a simple parameter
Alert Configuration
-
Create Alert
- Navigate to Alerts
- Create new or edit existing
- Set trigger conditions
-
Add Avatar Parameter Action
- Actions → Add Action
- Select "Change a VRChat Avatar Parameter"
-
Select Avatar
- Choose your avatar from dropdown
- Can select multiple avatars
- Parameters update based on selection
-
Configure Parameter
- Click parameter dropdown
- Search/select your parameter
- Set first state value
- Optionally set delay and second state
-
Add More Parameters (optional)
- Click "Add Parameter"
- Configure additional parameters
- All trigger simultaneously
Multi-State Setup
For a button press that resets:
- Select parameter (e.g.,
EmoteButton) - First State:
true - Delay:
1.0 - Second State:
false
Result: Parameter set to true, waits 1 second, then resets to false.
For a toggle:
- Select parameter
- First State:
true - 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.,
EmoteHappynotE1) - 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