How to Fix PhysBones Not Working in VRChat?

How to Fix PhysBones Not Working in VRChat

You jump into VRChat expecting your avatar’s hair, tail, or jacket to move naturally, but everything’s stiff. No jiggle, no motion, nothing. That means your PhysBones aren’t working. This can happen on both PC and Quest, and it’s often due to a simple setup or safety setting. Don’t worry, this guide explains what PhysBones are, why they stop working, and how to fix them step by step.

What Is the “PhysBones Not Working” Issue?

What Is the “PhysBones Not Working” Issue

PhysBones are VRChat’s built-in physics system for avatars. They replace Dynamic Bones, letting creators add realistic movement to parts like hair, tails, skirts, or accessories.

When PhysBones stop working, you’ll notice that nothing moves, your avatar feels “frozen.” It may only happen in VR mode, after a Unity update, or when switching between PC and Quest versions. Sometimes colliders don’t detect properly, or physics stop after uploading the avatar.

Common Causes of PhysBones Failure

Most problems come from incorrect setup, missing links, or performance limits. Here are the common reasons PhysBones don’t move in VRChat:

  • Avatar Dynamics disabled in Safety settings.
  • Wrong SDK or Unity version in the project.
  • Quest upload missing PhysBones or exceeding avatar limits.
  • Root Transform not assigned or all motion values set to zero.
  • Colliders not linked or placed on wrong objects.
  • Wrong build target (uploaded PC but testing Android).
  • Grab/Poke permissions off or restricted by user safety settings.

How to Fix “PhysBones Not Working” in VRChat?

Below are 9 tested fixes. Each explains why it’s linked to the issue, what happens after you fix it, and step-by-step actions if needed.

Fix #1: Enable Avatar Dynamics in Safety Settings

This issue often appears because Avatar Dynamics is turned off in the VRChat Safety menu. When disabled, your client blocks PhysBones and Contact interactions.
After enabling it, you’ll immediately see movement restored for compatible avatars.

Here are the steps you can follow:

  1. Open the VRChat Quick Menu while in-game.
  2. Go to Safety → Performance Options.
  3. Scroll to Avatar Dynamics.
  4. Set it to On or Custom and ensure “PhysBones” and “Contacts” are enabled.
  5. Reopen your avatar, movement should return.

Fix #2: Update the SDK and Use the Correct Unity Version

Old SDKs or wrong Unity builds often break PhysBones during upload.
After updating, the correct component data compiles, and PhysBones start responding again.

Follow these simple steps:

  • Open VRChat Creator Companion (VCC).
  • Check your project SDK (should be SDK3 – Avatars).
  • Update to the latest release.
  • Confirm your Unity version matches the recommended Unity LTS version from VRChat’s documentation.
  • Rebuild and test your avatar again.

Fix #3: Set Root Transform and Adjust Motion Values

If your PhysBones are linked but motion values like PullSpring, or Stiffness are zero, they won’t move at all.
After setting realistic values and a proper root transform, your avatar bones will react to movement again.

Try this:

  1. In Unity, select your avatar’s PhysBone component.
  2. Set Root Transform to the correct bone (like “hair” or “tail”).
  3. Adjust motion values:
    • Pull: 0.5
    • Spring: 0.4
    • Stiffness: 0.2
    • Gravity: 0.1
  4. Click Play Mode to test movement before upload.

Fix #4: Connect Colliders Properly

When colliders aren’t attached or reference the wrong object, PhysBones can’t detect collision.
Once connected correctly, you’ll see proper interaction, like hair bouncing off shoulders or sleeves brushing the body.

Do the following:

  • Add VRCPhysBoneCollider components to the body part you want collisions from.
  • Drag those colliders into the Colliders list inside your PhysBone component.
  • Rebuild your avatar and test in Play Mode.

Fix #5: Allow Grab and Poke Interactions

If you’re trying to grab or poke PhysBones but nothing reacts, those permissions may be turned off.
After enabling them, you or other players can interact with your avatar again.

In Unity, open each VRCPhysBone and check Allow Grabbing and Allow Poking. Make sure your VRChat safety settings also allow Avatar Interactions.

Fix #6: Rebuild and Upload for Quest/Android Correctly

Quest builds strip certain PhysBone settings if the avatar exceeds limits or if the project wasn’t built for Android.
Once rebuilt for the right platform, your PhysBones will load properly in the Quest version.

Here’s how to fix it:

  1. In Unity, switch platform to Android (File → Build Settings → Android → Switch Platform).
  2. Optimize your avatar to meet Quest limits.
  3. Upload using VRChat SDK → Build & Publish for Android.
  4. Test it in Quest mode, motion should now appear.

Fix #7: Reset Blueprint ID and Reupload

If you changed something major in Unity (new skeleton, prefab, or build target) but didn’t clear the old Blueprint ID, VRChat might use a cached version.
After clearing it and reuploading, the new avatar version replaces the broken one.

In Unity, open Pipeline Manager, click Detach (Clear ID), then reupload using Build & Publish.

Fix #8: Reduce Constraints and Chain Length

Overly long chains or too many PhysBones can make your avatar exceed performance ranks and disable physics.
After reducing complexity, PhysBones remain active in all performance tiers.

Simplify by shortening bone chains and lowering collider count. Keep total PhysBone components under 8 if possible for Quest compatibility.

Fix #9: Test in ClientSim or Private Instance

If everything looks fine in Unity but fails in VRChat, your local cache or safety settings may interfere.
Testing in ClientSim or a private world isolates your avatar without safety restrictions.

Play Mode in Unity or test in a private instance. If it works there, the problem’s in user settings, not your avatar.

Prevention Tips to Avoid PhysBones Failure in Future

Keep PhysBones working smoothly by following these best practices:

  • Update your SDK and Unity version regularly.
  • Validate your PhysBones setup before uploading.
  • Keep bone chains short and optimized for Quest.
  • Always assign a Root Transform.
  • Test both PC and Quest builds before release.
  • Avoid excess colliders and constraints.
  • Use PhysBone visualization to check behavior before upload.

Conclusion

When PhysBones stop working in VRChat, it’s usually because of toggles, targets, or upload settings. Checking Safety options, updating SDKs, and setting proper roots fix most cases quickly.

If they still don’t move after trying everything, test the avatar in a new Unity project or contact VRChat Support, sometimes the issue comes from a version mismatch. Once fixed, your avatars will move, bounce, and flow just like they should.