VRChat PhysBones not working on Quest (hair and skirt don't move) - limits and fix
Quick fix
- Switch to Android, build, and check the PhysBone numbers in the SDK's performance stats
- Decide which chains to keep (usually hair first, then ears/tail, then skirt) and remove the rest from the Android copy only
Want it checked automatically? Quest PhysBone Keeper plans which PhysBones to keep within the Quest limits - free version. Try it free
What you see on screen:
(No error message - hair, ears, tails or skirts don't move on Quest / Android)
What it means
Quest (Android) avatars have hard PhysBone limits. If the Android version goes over any of them (Very Poor), VRChat removes all PhysBones, Contacts and VRChat Constraints from the avatar - not just the extra ones - even if someone presses Show Avatar. The mobile limits are 8 PhysBone components, 64 affected transforms, 16 colliders, 64 collision checks and 16 contacts.
Common causes
- The PC avatar's PhysBones were kept as-is in the Android version
- Outfits and accessories each added their own PhysBones
- Long chains (hair strands, skirts) push affected transforms past 64
How to fix it
- Switch to Android, build, and check the PhysBone numbers in the SDK's performance stats
- Decide which chains to keep (usually hair first, then ears/tail, then skirt) and remove the rest from the Android copy only
- Combine small chains under one PhysBone where you can, and use Ignore Transforms to cut affected transforms
- Remove colliders and contacts you don't need
- Build again and confirm every PhysBone line is within the limits above
- Leave the PC avatar unchanged - work on a duplicated Android copy
Before you change anything, make a full copy of your project folder so you can go back.
Fix this automaticallyQuest PhysBone Keeper adds a window to Unity. Press Analyze and it plans which PhysBones to keep - hair and skirt first - so your avatar fits the Quest limits. The paid version builds a Quest copy in one click. Free version available.
For this problem, it doesn't count Quest PhysBones yet, but it checks other things that commonly break Quest versions, such as unsupported shaders and Missing Scripts.
Get Quest PhysBone Keeper (Free version available)
For this problem, it doesn't count Quest PhysBones yet, but it checks other things that commonly break Quest versions, such as unsupported shaders and Missing Scripts.
Get Quest PhysBone Keeper (Free version available)