Toggling Phys Bones | VRC Avatars for Dummies

A PhysBone toggle lets the player enable or disable a dynamic feature from the VRChat Action Menu. That might mean hiding a moving accessory, disabling a dynamic chain, changing interaction behavior, or switching between a static and dynamic version of a prop.

Build the plain PhysBone first. If the motion does not work before the toggle exists, the toggle will only make the problem harder to see.

Creator: DedZedOffishal

Use the video for the Unity steps, then use this page to decide what your toggle should actually control and how to test it.

Recommended Setup

Separate visibility, physics, and interaction so you know what the toggle is changing.

  1. Make the PhysBone chain work normally first.
  2. Choose whether the toggle controls the visible object, the dynamic component, related contacts, or a whole feature group.
  3. Upload privately and test local motion plus what other users can see or interact with.
VRChat note

Hiding a mesh is not always the same as disabling the feature. PhysBones, colliders, contacts, and constraints can live on different objects, so test the actual uploaded behavior.

Good Uses For A PhysBone Toggle

Use this pattern when:

  • a tail, hair piece, wing, or accessory should have a static mode
  • a prop should be visible sometimes and hidden other times
  • an interaction should be optional
  • a performance-heavy decorative feature should be removable
  • you need a safe fallback for Quest, Android, or event avatars

Avoid using a toggle to cover up broken motion. Fix the PhysBone setup first, then add control.

What The Toggle Can Control

Toggle target What changes Common use
Mesh or object visibility The visible prop appears or disappears Accessories, props, clothing details
PhysBone component or dynamic object The dynamic behavior changes or stops Static/dynamic mode for a moving part
Colliders or contacts Interaction behavior changes Optional grabbing, touch triggers, or prop interactions
Animator state Different animation or setup becomes active Switching between motion modes
Whole feature group Several related objects and components change together Prop systems or outfit variants with dynamics

The right answer depends on how the avatar is built. Inspect the hierarchy before recording animation clips so you do not toggle only the visible mesh while the dynamic component remains active elsewhere.

Build Order

  1. Back up the avatar project or prefab.
  2. Confirm the PhysBone works without a toggle.
  3. Decide the default state: on, off, static, or dynamic.
  4. Create the parameter in the Expression Parameters asset.
  5. Add the matching control to the Expressions Menu.
  6. Add or update the FX animator logic.
  7. Record only the properties you intend to change.
  8. Assign the expression assets on the Avatar Descriptor.
  9. Upload privately and test in VRChat.

Keep names boring and consistent. A parameter like Dynamics/Tail is easier to troubleshoot than three similar names scattered across the menu, FX controller, and animation clips.

Saved And Synced Settings

Setting Use it when Watch out for
Saved the user expects the dynamic feature to stay on or off after avatar reload a bad saved default can make the avatar appear broken until reset
Synced other players need to see the same visibility or interaction state synced parameters use avatar parameter memory
Unsaved the feature should reset to the uploaded default the wearer may need to re-enable it each session

For a decorative personal preference, Saved often makes sense. For a temporary interaction mode or one-shot effect, unsaved is usually cleaner.

What To Test

  • the default state after upload
  • turning the feature on and off more than once
  • changing avatars and returning
  • whether other users see the same state if it is meant to be synced
  • whether grabbing, posing, contacts, or colliders still behave as expected
  • whether the hidden or disabled feature still affects performance stats

VRChat's Avatar Dynamics settings can also affect whether other users can interact with your PhysBones, so test with another account or friend when the feature depends on remote interaction.

Common Problems

Help! The object hides but still moves or collides.

Check where the PhysBone, collider, contact, or constraint component lives. The visible mesh may be disabled while the dynamic setup remains active on another object.

Help! The toggle works in Unity but not after upload.

Confirm the Expression Parameters asset, Expressions Menu asset, FX controller parameter, and animation condition all use the same parameter name and type.

Help! Other players cannot interact with it.

Test Avatar Dynamics permissions and whether the component is actually enabled for remote interaction. Local success does not prove other users can grab or trigger it.

Help! The state comes back wrong after reload.

Review the parameter default, Saved flag, and animator default state. These should all describe the same starting behavior.

Related Resources

Final Advice

The safest PhysBone toggle changes exactly one feature group and has a clear default. If you can describe what it changes in one sentence, you can usually debug it when something breaks.

Topics: Toggling Phys Bones, VRChat avatars, avatar workflow