Skip to main content

Unity Layers in VRChat

Layers are used in Unity to organize your Game Objects, determine collisions and Raycasts between Game Objects, selectively render parts of the scene, and more.

You can freely use most Layers in your VRChat world. Some Layers are shared and used by Unity and VRChat.

When you create a Unity project with VRChat's Worlds SDK, your project will automatically be configured to use VRChat's built-in layers. If you change the collision matrix, rename, or remove built-in layers, your changes will be overridden when you upload your world to VRChat.

  • Layers 0-7 are 'Builtin' Unity layers.
  • Layers 3, 6, and 7 are internal Unity layers. They cannot be used.
  • Layers 8-21 are 'User' Unity layers managed by VRChat's SDK.
  • Layers 22-31 are unused 'User' Unity layers. You can edit them freely, and changes to these layers will not be discarded when you build & upload your world.

Unity's built-in layers

Layer numberLayer NameDescription
0DefaultUsed for Unity's Game Objects by default. Used by VRChat's Avatar Pedestals.
1TransparentFXUsed for Unity's Flare Assets.
2IgnoreRaycastIgnored by Unity's Physics Raycasts if no layer mask is provided. Not ignored by VRChat's Physics Raycasts.
4WaterUsed by Unity's Standard Assets. Used by VRChat's Portals. Used by VRChat's Mirrors. Often used for Unity's Post Processing.
5UI⚠ You may not want to use this layer. Used by Unity's UI by default. Ignored by VRChat's UI pointer unless the player has the VRChat menu open. Ignored by the VRChat's camera unless 'UI' is enabled in the camera.
8InteractiveUnused by Unity and VRChat.
9PlayerUsed for VRChat's players, except the local player.
10PlayerLocalUsed by VRChat to render the local player. Humanoid avatars are rendered without their head bone.
11EnvironmentUnused by Unity and VRChat.
12UiMenu⚠ Avoid using this layer. Used by VRChat's nameplates. Ignored by VRChat's UI pointer unless the player has the VRChat menu open.
13PickupUsed by VRChat's Pickups by default when you add a pickup component. Does not collide with players.
14PickupNoEnvironmentColliders on this Layer only collide with 'Pickup.'
15StereoLeftUnused by Unity and VRChat.
16StereoRightUnused by Unity and VRChat.
17WalkthroughColliders on this layer do not collide with players.
18MirrorReflectionUsed by VRChat to render the local player in Mirrors.
Renderers on this Layer will only appear in Mirrors.
Renderers on this Layer are not rendered in VRChat's main camera.
Colliders on this Layer do not block VRChat's Raycasts.
19InternalUI⚠ Avoid using this layer. Used by VRChat for internal UI elements such as debug consoles.
20HardwareObjects⚠ Avoid using this layer. Used by VRChat to render virtual representations of physical hardware in-game i.e. controllers and trackers
21reserved4⚠ Avoid using this layer. Reserved by VRChat. When you upload your world, any Game Object on a reserved Layer will be moved to Layer 0 (Default).
22-31Unused by Unity and VRChat. VRChat will not override the name and collision matrix of these Layers in uploaded worlds.

Interaction Block and Passthrough on VRChat Layers

Interaction (grabbing an item from a distance, toggling a UI element with the laser) is blocked by most VRChat layers. The following layers are transparent to interaction and allow you to interact through them:

  • UiMenu
  • UI
  • PlayerLocal
  • MirrorReflection

Interaction Passthrough for User Layers

Interaction through User layers is blocked by default. Use the "Interact Passthrough" mask to define layers that will be transparent to interaction (allow interactions to pass through). Note that collision test rays originate differently from Desktop/Mobile players (inside the player capsule) versus VR players (from the user's tracked hand). This means that VR players can penetrate colliders with their hand even when the player collider is blocked. Those same colliders will therefore not block interaction from the VR player, since the hand has penetrated.