Allowed Avatar Components
You can add features to your avatar by adding components to it. However, not all components can be used in VRChat.
- Any component on the following list can be used in VRChat.
- Other components or custom scripts won't work in VRChat and may stop you from uploading your avatar.
The Android version of VRChat has additional restrictions.
VRChat
- VRCAvatarDescriptor
- VRCConstraint
- VRCContactReceiver
- VRCContactSender
- VRCHeadChop
- VRCIKFollower - Deprecated! You should use VRChat Constraints instead.
- VRCPhysBone
- VRCPhysBoneCollider
- VRCPipelineManager
- VRCRaycast
- VRCSpatialAudioSource
- VRCStation
Unity
- AimConstraint
- Animation
- Animator
- AudioSource (See also the VRCSpatialAudioSource component notes)
- Camera (See notes below)
- Cloth
- Collider
- FlareLayer
- Joints
- Light
- LineRenderer
- LookAtConstraint
- MeshFilter
- MeshRenderer
- ParentConstraint
- ParticleSystemRenderer
- ParticleSystem
- PositionConstraint
- Rigidbody
- RotationConstraint
- ScaleConstraint
- SkinnedMeshRenderer
- TrailRenderer
- Transform
Cameras on Avatars
For avatars worn by the local user, Camera components are fully whitelisted. For remote users, the following rules apply:
- In all cases, the Camera components of remote users are disabled when the avatar is loaded.
- You can use animations to enable Camera components.
- If the local user and remote user are friends, Camera components are not removed.
- Note that becoming friends with a user does not automatically reload their avatar.
- If the local user has selected "Show Avatar" for the remote user in VRChat's quick menu, Camera components are not removed.
- If neither of the above is true, Camera components are removed and cannot be enabled.
Root Motion (FinalIK)
VRChat has highly modified its implementation of FinalIK. As such, these components may not work as documented.
We do not directly support or test custom FinalIK implementations on avatars. However, they should work fine, and if we must intentionally break one or more of these, we will try our best to inform creators. If you discover a bug, please let us know.
If you want to implement basic raycasting on an avatar, we strongly recommend using our VRCRaycast component instead, because it's officially maintained and is usable on all platforms.
There is a combined upper limit of 80 VRCRaycast and FinalIK components for avatars.
- Aim IK
- Biped IK
- CCDIK
- FABRIK
- Full Body Biped IK
- Grounder
- Limb IK
- Rotation Limits
- Shoulder Rotator
- Twist Relaxer
- VRIK1
DynamicBone
Support for Dynamic Bone is deprecated. You should use PhysBones instead.
- DynamicBone
- DynamicBoneCollider
Footnotes
-
Using this script on a humanoid avatar will break it. ↩