unity-vrc-world-sdk-3

VRChat World SDK 3 scene setup and optimization guide. Use this skill when configuring VRChat world scenes, placing SDK components, setting up layers, optimizing performance, or uploading worlds. Covers VRC_SceneDescriptor, spawn points, VRC_Pickup, VRC_Station, VRC_Mirror, VRC_ObjectSync, VRC_CameraDolly, layer/collision matrix, baked lighting, Quest/Android limits, and upload workflow. SDK 3.7.1 - 3.10.2 coverage. Triggers on: VRChat world, VRC SDK, scene setup, VRC_SceneDescriptor, spawn point, VRC_Pickup, VRC_Station, VRC_ObjectSync, layer setup, optimization, Quest support, light baking, upload, FPS improvement. Related: Use unity-vrc-udon-sharp for UdonSharp C# coding.

Safety Notice

This listing is imported from skills.sh public index metadata. Review upstream SKILL.md and repository scripts before running.

Copy this and send it to your AI assistant to learn

Install skill "unity-vrc-world-sdk-3" with this command: npx skills add niaka3dayo/agent-skills-vrc-udon/niaka3dayo-agent-skills-vrc-udon-unity-vrc-world-sdk-3

VRChat World SDK 3 Guide

Table of Contents

SectionContentReference
Scene SetupVRC_SceneDescriptor, SpawnThis file
ComponentsPickup, Station, Mirrorreferences/components.md
Layers & CollisionLayers, Collision Matrixreferences/layers.md
PerformanceOptimization guidereferences/performance.md
LightingLighting settingsreferences/lighting.md
Audio & VideoAudio, Video playersreferences/audio-video.md
World UploadUpload workflowreferences/upload.md
TroubleshootingProblem solvingreferences/troubleshooting.md
CheatsheetQuick referenceCHEATSHEET.md

SDK Versions

Supported versions: SDK 3.7.1 - 3.10.2 (as of March 2026)

SDKNew FeaturesStatus
3.7.1StringBuilder, Regex, System.Random
3.7.4Persistence API (PlayerData/PlayerObject)
3.7.6Multi-platform Build & Publish (simultaneous PC + Android builds)
3.8.0PhysBone dependency sorting, Force Kinematic On Remote, Drone API
3.8.1[NetworkCallable] events with parameters, Others/Self targets
3.9.0Camera Dolly API, Auto Hold simplification, VRCCameraSettings
3.10.0Dynamics for Worlds (PhysBones, Contacts, VRC Constraints)
3.10.1Bug fixes and stability improvements
3.10.2EventTiming extensions, PhysBones fixes, shader time globals✅ Latest stable

Important: SDK versions below 3.9.0 are deprecated as of December 2, 2025. New world uploads are no longer possible with these versions.


Scene Setup

VRC_SceneDescriptor (Required)

Exactly one is required in every VRChat world.

[VRCWorld Prefab]
├── VRC_SceneDescriptor (Required)
├── VRC_PipelineManager (Auto-added)
├── VRCWorldSettings (Optional - movement speed settings)
└── AvatarScalingSettings (Optional - avatar scale limits)

All Properties

PropertyTypeDescriptionDefault
SpawnsTransform[]Array of spawn pointsDescriptor position
Spawn OrderenumSequential/Random/DemoSequential
Respawn HeightfloatRespawn height (Y axis)-100
Object Behaviour At RespawnenumRespawn/DestroyRespawn
Reference CameraCameraPlayer camera settings referenceNone
Forbid User PortalsboolDisable user portalsfalse
Voice Falloff RangefloatVoice attenuation range-
Interact PassthroughLayerMaskInteract passthrough layersNothing
Maximum CapacityintMax player count (hard limit)-
Recommended CapacityintRecommended player count (UI)-

Spawn Order Behavior

Sequential: 0 → 1 → 2 → 0 → 1 → 2... (in order)
Random:     Random selection
Demo:       All players spawn at Spawns[0]

Reference Camera Usage

// Usage:
// 1. Adjust Near/Far clipping (recommended for VR: 0.01 ~ 1000)
// 2. Apply Post Processing effects
// 3. Set background color

// Setup steps:
// 1. Create a Camera (name: "ReferenceCamera")
// 2. Adjust Camera component settings
// 3. Disable the Camera (uncheck the component)
// 4. Assign it to VRC_SceneDescriptor's Reference Camera

Spawn Points Setup

// Setup steps:
// 1. Create an empty GameObject
// 2. Set position and rotation (players face the Z+ direction)
// 3. Add to the VRC_SceneDescriptor Spawns array

// Recommendations:
// - At least 2-3 spawn points (for simultaneous joins)
// - Slightly above the floor (~0.1m)
// - Clear of obstacles
// - Account for VR player guardian boundaries

Required Setup Checklist

□ Exactly one VRCWorld Prefab exists in the scene
□ At least one Transform set in Spawns
□ Respawn Height set to an appropriate value (well below the floor)
□ Reference Camera configured for clipping distances (for VR)
□ Layer/Collision Matrix correctly configured
□ "Setup Layers for VRChat" has been executed

Components

ComponentRequired ElementsPurposeSDK
VRC_SceneDescriptor-World settings (required)-
VRC_PickupCollider + RigidbodyGrabbable objects-
VRC_StationColliderSittable locations-
VRC_ObjectSyncRigidbodyAuto-sync Transform/physics-
VRC_MirrorReflection-Mirror (⚠️ high cost)-
VRC_PortalMarker-Portal to other worlds-
VRC_SpatialAudioSourceAudioSource3D audio-
VRC_UIShapeCanvas (World Space)Unity UI interaction-
VRC_AvatarPedestal-Avatar display/switch-
VRC_CameraDolly-Camera dolly3.9+

VRC_ObjectSync vs UdonSynced

ScenarioVRC_ObjectSyncUdonSynced variables
Throwable objects / physics✅ Recommended
State only / complex logic✅ Recommended

SDK 3.8.0+: Force Kinematic On Remote — Makes Rigidbody kinematic on non-owner clients, preventing unexpected physics behavior.

→ For detailed properties, Udon events, and code examples, see references/components.md


Layers & Collision

VRChat Reserved Layers

Layer #NamePurpose
0DefaultGeneral objects
9PlayerRemote players
10PlayerLocalLocal player
11EnvironmentEnvironment (walls, floors)
13PickupGrabbable objects
14PickupNoEnvironmentPickups that don't collide with environment
17WalkthroughWalk-through objects
18MirrorReflectionMirror reflection only
22-31User LayersAvailable for custom use

Layer Setup Steps

1. VRChat SDK > Show Control Panel
2. Builder tab
3. Click "Setup Layers for VRChat"
4. Collision Matrix is automatically configured

→ For details, see references/layers.md


Performance

Target FPS

PlatformFPS TargetMeasurement Point
PC VR45+ FPSSpawn point, 1 player
PC Desktop60+ FPSSpawn point, 1 player
Quest72 FPSSpawn point, 1 player

Critical Limits

ItemRecommendedReason
Mirrors1, default OFFRenders the entire scene 2x
Video playersMax 2Decoding overhead
Realtime lights0-1Dynamic shadows are expensive
LightmapsRequiredPerformance foundation

Quest/Android Restrictions

ComponentPCQuest
Dynamic Bones❌ Disabled
Cloth❌ Disabled
Post-Processing❌ Disabled
Unity Constraints❌ Disabled
Realtime lights⚠️ Avoid

→ For details, see references/performance.md


Lighting

Baked Lighting (Required)

✅ Recommended settings:
├── Lightmapper: Progressive GPU
├── Lightmap Resolution: 10-20 texels/unit
├── Light Mode: Baked or Mixed
└── Light Probes: Place along player paths

❌ Avoid:
├── Realtime lights (dynamic shadows)
├── High-resolution lightmaps (memory consumption)
└── Excessive Reflection Probes

→ For details, see references/lighting.md


Audio & Video

VRC_SpatialAudioSource

PropertyDescriptionDefault
GainVolume (dB)0 (World: +10)
NearAttenuation start0m
FarAttenuation end40m
Volumetric RadiusSource spread0m
Enable Spatialization3D positioningtrue

Video Player Selection

FeatureAVProUnity Video
Live streaming
Editor preview
YouTube/Twitch
Quest support

→ For details, see references/audio-video.md


World Upload

Upload Steps

1. Check Validation
   └── VRChat SDK > Build Panel > Validations

2. Build & Test (local testing)
   └── "Build & Test New Build"
   └── Supports multi-client testing

3. Upload
   └── "Build and Upload"
   └── Set Content Warnings
   └── Set Capacity

4. Publish settings
   └── Configure public/private on the VRChat website

Pre-Upload Checklist

□ VRC_SceneDescriptor × 1
□ Spawns configured
□ Respawn Height appropriate
□ Layer/Collision Matrix verified
□ Light baking complete
□ Mirror default OFF
□ 45+ FPS in VR
□ No Validation errors
□ Content Warnings set
□ Capacity set

→ For details, see references/upload.md


Troubleshooting

Common Issues

IssueCauseSolution
Player walks through wallsWrong layerSet to Environment
Can't grab PickupMissing Collider/RigidbodyAdd both
Pickup doesn't syncMissing ObjectSyncAdd VRC_ObjectSync
Can't sit in StationMissing ColliderAdd Collider
Mirror doesn't reflectLayer settingsCheck MirrorReflection
Build errorValidation failureCheck SDK Panel

→ For details, see references/troubleshooting.md


Related Skills

TaskSkill to Use
C# code creationunity-vrc-udon-sharp
Network sync (Udon)unity-vrc-udon-sharp
Event implementationunity-vrc-udon-sharp
Scene setupThis skill
Component placementThis skill
Performance optimizationThis skill

Web Search

Official Documentation (WebSearch)

# Search official documentation
WebSearch: "component or feature to look up site:creators.vrchat.com"

Issue Investigation (WebSearch)

# Step 1: Forum search
WebSearch:
  query: "issue description site:ask.vrchat.com"
  allowed_domains: ["ask.vrchat.com"]

# Step 2: Known bug search
WebSearch:
  query: "issue description site:feedback.vrchat.com"
  allowed_domains: ["feedback.vrchat.com"]

# Step 3: GitHub Issues
WebSearch:
  query: "issue description site:github.com/vrchat-community"

Official Resources


References

FileContentApprox. Lines
references/components.mdAll component details800+
references/layers.mdLayers & collision400+
references/performance.mdPerformance optimization500+
references/lighting.mdLighting settings400+
references/audio-video.mdAudio & video400+
references/upload.mdUpload procedure300+
references/troubleshooting.mdTroubleshooting guide500+
CHEATSHEET.mdQuick reference200+

Source Transparency

This detail page is rendered from real SKILL.md content. Trust labels are metadata-based hints, not a safety guarantee.

Related Skills

Related by shared tags or category signals.

Automation

unity-vrc-udon-sharp

No summary provided by upstream source.

Repository SourceNeeds Review
Automation

unity-vrc-skills-renovator

No summary provided by upstream source.

Repository SourceNeeds Review
General

components

No summary provided by upstream source.

Repository SourceNeeds Review
Coding

components

No summary provided by upstream source.

Repository SourceNeeds Review