Allowlisted World Components
The following is the list of components usable within VRChat worlds. If a component is not on this page, you should assume it will not work correctly in a VRChat world.
Check the allowlist while building or importing world content, especially when an asset works in Unity play mode but fails SDK validation, behaves differently after upload, or relies on a component that normal Unity supports but VRChat does not.
Check component compatibility before adding unfamiliar Unity systems to a VRChat world.
- Search for the component name before relying on it in a world system.
- Use VRChat-specific replacements when a component is deprecated.
- Retest on Quest or Android when targeting cross-platform worlds.
The allowlist is enforced by VRChat's SDK and runtime expectations. A Unity component that works in the editor may still be removed, blocked, or behave differently in an uploaded world.
Oculus Quest
The Android version of VRChat has exceptions and platform-specific differences. If you are targeting Quest or Android, always double-check the current official VRChat documentation before relying on a component.
How To Use This Reference
| If you are doing this | Check |
|---|---|
| Importing a Unity asset pack | whether its scripts/components appear on this list |
| Fixing SDK validation errors | which component the Builder is rejecting |
| Targeting Android or Quest | platform-specific exceptions in the official docs |
| Replacing old systems | whether a deprecated component has a VRChat-supported replacement |
| Building a world system | whether the component works after upload, not only in editor play mode |
An allowlisted component is not automatically a good performance choice. It only means the component is permitted for use in VRChat worlds. You still need to test behavior, networking expectations, platform support, and performance.
Common Checks Before Upload
- Open the VRChat SDK Builder and read validation messages.
- Search this list for any unfamiliar component names.
- Check imported prefabs for unsupported custom scripts.
- Replace deprecated components before building new systems.
- Test in VRChat, not just Unity play mode.
- Recheck the official page before relying on old tutorial advice.
Help! A Unity component I use is not listed.
Assume it is not safe for a VRChat world until confirmed otherwise. Look for an allowlisted replacement or a VRChat-specific workflow before building around it.
Help! A component is marked deprecated.
Do not start new systems with deprecated components. Use the current VRChat-supported replacement, such as PhysBones or VRChat Constraints where appropriate.
Help! Does this mean it works on Quest too?
Not always. Quest and Android can have platform-specific limits, shader differences, and component behavior changes, so cross-platform worlds need separate testing.
Help! It works in Unity play mode but not after upload.
Unity play mode is not the same as VRChat runtime. Check SDK validation, unsupported scripts, platform restrictions, and whether the component relies on editor-only or non-networked behavior.
Help! An asset pack includes scripts I do not recognize.
Do not assume asset-store scripts are VRChat-ready. Search the component names, remove unsupported scripts from a test copy, and confirm the world still behaves correctly in Build & Test.
Important VRChat World Components
Some entries are especially common in beginner world projects:
| Component | Why it matters |
|---|---|
VRC_SceneDescriptor |
required for every scene you want to build as a VRChat world |
VRCPipelineManager |
connects uploaded content with its VRChat blueprint identity |
VRC_SpatialAudioSource |
handles VRChat-specific spatial audio behavior |
VRC_MirrorReflection |
used for VRChat mirrors |
VRC_Station |
used for seats and station interactions |
VRC_AvatarPedestal |
lets worlds display/select avatars |
If one of these components is missing or duplicated incorrectly, the SDK Builder may fail or the world may behave differently than expected.
Unity Components
AimConstraintAnimatorAudioChorusFilterAudioDistortionFilterAudioEchoFilterAudioHighPassFilterAudioLowPassFilterAudioReverbFilterAudioReverbZoneAudioSourceBillboardRendererBoxColliderCameraCanvasCanvasGroupCanvasRendererCapsuleColliderCharacterJointClothConfigurableJointConstantForceEllipsoidParticleEmitterFixedJointFlareLayerGridHaloHingeJointLODGroupLensFlareLightLightProbeGroupLightProbeProxyVolumeLineRendererLookAtConstraintMeshColliderMeshFilterMeshParticleEmitterMeshRendererNavMeshAgentNavMeshObstacleOcclusionAreaOcclusionPortalOffMeshLinkParentConstraintParticleAnimatorParticleEmitterParticleRendererParticleSystemParticleSystemForceFieldParticleSystemRendererPlayableDirectorPositionConstraintProjectorRectTransformReflectionProbeRendering.SortingGroupRigidbodyRotationConstraintScaleConstraintSkinnedMeshRendererSkyboxSphereColliderSpringJointSpriteMaskSpriteRendererTerrainTerrainColliderTextMeshTilemapTilemapRendererTrailRendererTransformTreeVideoPlayerWheelColliderWorldParticleColliderWindZone
VRChat Components
VRC_AvatarPedestalVRCContactReceiver
Maximum shape limits apply.VRCContactSender
Maximum shape limits apply.VRC_IKFollower
Deprecated. Use VRChat Constraints or Unity Constraints instead.VRC_MidiListenerVRC_MirrorReflectionVRCPhysBone
Maximum shape limits apply.VRCPhysBoneCollider
Maximum shape limits apply.VRCPhysBoneRootVRCPipelineManagerVRC_PortalMarkerVRC_SceneDescriptorVRC_SpatialAudioSourceVRC_StationVRC_UiShape
Dynamic Bone
DynamicBone
Deprecated. Use VRChat PhysBones instead.DynamicBoneCollider
Deprecated. Use VRChat PhysBone Colliders instead.
Text Mesh Pro
TMP_DropdownTMP_InputFieldTMP_ScrollbarEventHandlerTMP_SelectionCaretTMP_SpriteAnimatorTMP_SubMeshTMP_SubMeshUITMP_TextTextContainerTextMeshProTextMeshProUGUI
Unity Event System
BaseInputBaseInputModuleBaseRaycasterEventSystemEventTriggerPhysicsRaycasterPointerInputModuleStandaloneInputModuleTouchInputModuleUIBehaviour
Unity UI
AspectRatioFitterBaseMeshEffectButtonCanvasScalerContentSizeFitterDropdownGraphicGraphicRaycasterGridLayoutGroupHorizontalLayoutGroupHorizontalOrVerticalLayoutGroupImageInputFieldLayoutElementLayoutGroupMaskMaskableGraphicOutlinePositionAsUV1RawImageRectMask2DScrollRectScrollbarSelectableShadowSliderTextToggleToggleGroupVerticalLayoutGroup
Post Processing Stack V2
Post Processing Stack v1 is not supported in VRCSDK2 or VRCSDK3 and has been deprecated by Unity.
PostProcessDebugPostProcessLayerPostProcessVolume
AVPro
ApplyToMaterialApplyToMeshAudioOutputDisplayIMGUIDisplayUGUIMediaPlayerSubtitlesUGUI
Oculus Spatializer Unity
ONSPAmbisonicsNativeONSPAudioSourceONSPReflectionZoneOculusSpatializerUnity
Final IK
VRChat notes that its implementation of Final IK is highly modified. These components may not behave exactly as documented outside VRChat, so test carefully in-world before relying on them.
AimIKAimPoserAmplifierAnimationBlockerBehaviourBaseBehaviourFallBehaviourPuppetBipedIKBipedRagdollCreatorBodyTiltCCDIKFABRIKFABRIKRootFBBIKArmBendingFBBIKHeadEffectorFingerRigFullBodyBipedIKGenericPoserGrounderGrounderBipedIKGrounderFBBIKGrounderIKGrounderQuadrupedGrounderVRIKHandPoserHitReactionHitReactionVRIKIKIKExecutionOrderInertiaInteractionObjectInteractionSystemInteractionTargetInteractionTriggerJointBreakBroadcasterLegIKLimbIKLookAtIKMuscleCollisionBroadcasterOffsetModifierOffsetModifierVRIKOffsetPosePoserPressureSensorPropPropRootPuppetMasterPuppetMasterSettingsRagdollCreatorRagdollEditorRagdollUtilityRecoilRotationLimitRotationLimitAngleRotationLimitHingeRotationLimitPolygonalRotationLimitSplineShoulderRotatorSolverManagerTriggerEventBroadcasterTrigonometricIKTwistRelaxerVRIK
Footnotes
- Maximum shape limits apply to
VRCContactReceiver,VRCContactSender,VRCPhysBone, andVRCPhysBoneCollider.
Helpful follow-up pages
- Getting Started With VRC
- World Creation
- World Upload Troubleshooting Checklist
- Unity Layers in VRChat
- Understanding World Performance
Official References
- Official source: VRChat Allowlisted World Components - reviewed 2026-05-26.
- Local note: This page mirrors a volatile official allowlist. Check the official VRChat page before troubleshooting unsupported components or publishing a new copied list.