release
Release procedure for agent-skills-vrc-udon: sync main into dev, bump the five version fields, open and merge the release PR,…
Scene, component, and upload guidance for VRChat World SDK 3. Active support / last verified: SDK 3.10.6. VRChat changes Unity behaviour in ways the editor does not show (reserved layers, runtime layer names, Android limits, Build Panel validation), so load this skill before
Claude Code
$ npx -y skills add niaka3dayo/agent-skills-vrc-udon --skill unity-vrc-world-sdk-3 --agent claude-code
Codex
$ npx skills add niaka3dayo/agent-skills-vrc-udon --skill unity-vrc-world-sdk-3 -a codex -y
Cursor
$ npx skills add niaka3dayo/agent-skills-vrc-udon --skill unity-vrc-world-sdk-3 -a cursor -y
Gemini CLI
$ npx skills add niaka3dayo/agent-skills-vrc-udon --skill unity-vrc-world-sdk-3 -a gemini-cli -y
GitHub Copilot
$ npx skills add niaka3dayo/agent-skills-vrc-udon --skill unity-vrc-world-sdk-3 -a github-copilot -y
OpenCode
$ npx skills add niaka3dayo/agent-skills-vrc-udon --skill unity-vrc-world-sdk-3 -a opencode -y
Windsurf
$ npx skills add niaka3dayo/agent-skills-vrc-udon --skill unity-vrc-world-sdk-3 -a windsurf -y
name: unity-vrc-world-sdk-3
description: >
Scene, component, and upload guidance for VRChat World SDK 3. Active support /
last verified: SDK 3.10.6. VRChat changes Unity behaviour in ways the editor does not show
(reserved layers, runtime layer names, Android limits, Build Panel validation), so load
this skill before setting up or reviewing a VRChat world scene, even for one component.
Covers VRC SDK component placement and Inspector setup (VRC_SceneDescriptor, VRC_Pickup,
VRC_Station, VRC_Mirror, VRC_ObjectSync, VRC_CameraDolly, VRCBillboard, VRCPlacementZone,
spawn points), layers and collision matrices, baked lighting, Quest/Android performance,
WorldQualitySettings, Dynamics for Worlds (PhysBone and Contact component placement,
Box Contacts, Global Avatar PhysBone Colliders, VRCPhysBoneCollider component setup),
audio/video, SDK validation, Build Panel warning triage (Auto Fix, red/yellow/white
warnings), and upload. Do not use for UdonSharp C# or VRCTween calls; use
unity-vrc-udon-sharp for runtime scripting, asmdef, and Version Defines work.
license: MIT
metadata:
author: niaka3dayo
version: "4.3.1"
tags: vrchat, world-sdk, scene-setup, optimization, components, upload, sdk-validation, build-panel| Section | Content | Reference | | ------------------------------------------ | -------------------------- | ------------------------------- | | [Scene Setup](#scene-setup) | VRC_SceneDescriptor, Spawn | This file | | [Components](#components) | Pickup, Station, Mirror | `references/components.md` | | [Layers & Collision](#layers--collision) | Layers, Collision Matrix | `references/layers.md` | | [Performance](#performance) | Optimization guide | `references/performance.md` | | [Lighting](#lighting) | Lighting settings | `references/lighting.md` | | [Audio & Video](#audio--video) | Audio, Video players | `references/audio-video.md` | | [Build Validation](references/build-validation.md) | Red/yellow/white SDK alerts | `references/build-validation.md` | | [World Upload](#world-upload) | Upload workflow | `references/upload.md` | | [Troubleshooting](#troubleshooting) | Problem solving | `references/troubleshooting.md` | | [Cheatsheet](CHEATSHEET.md) | Quick reference | `CHEATSHEET.md` |
---
These cause silent world failures, performance disasters, or Quest incompatibility:
| # | NEVER do this | Why it hurts | Use instead | |---|---------------|-------------|-------------| | 1 | Enable Mirror by default (active on world join) | A mirror adds another costly scene render; the impact depends on view, scene, resolution, and device | Default Mirror OFF; add a player-controlled toggle and profile each target device | | 2 | Use realtime directional lights with real-time shadows without profiling | Realtime shadow cost varies with scene geometry, view, and target device and can dominate frame time on Android | Prefer baked lightmaps + light probes; profile the target device before keeping any realtime shadows | | 3 | Set Respawn Height at or above the world floor | Player respawns → falls → respawns again → infinite loop; players cannot recover | Set to an unreachable depth (e.g., floor at Y=0 → Respawn at Y=-100) | | 4 | Skip "Setup Layers for VRChat" on a new project | Layer collision matrix is wrong by default — players walk through walls, Pickups clip floors | Run VRChat SDK > Builder > "Setup Layers for VRChat" before placing any colliders | | 5 | Enable Post-Processing without an Android build profile | Post-processing is disabled at runtime on Android, so the authored effect will not appear and unnecessary resources can still enlarge the build | Use a separate Android build profile with post-processing removed | | 6 | Leave several video players decoding at once without profiling the target devices | Each active player adds decoding overhead, which can cause frame drops and audio issues | Disable players that are not playing; profile concurrent playback on each target | | 7 | Use Cloth on Android, or add many Unity Constraints without profiling | Cloth is disabled on Android. Unity Constraints are permitted in worlds, but overuse can significantly affect performance | Remove Cloth from the Android build; prefer VRC Constraints for new work and profile any constraint-heavy setup | | 8 | Upload without completing a lightmap bake | Realtime GI adds substantial scene-dependent render cost and is unsuitable as an unmeasured fallback on Android | Bake lights before upload, then verify the result on the target device | | 9 | Place player walkable surfaces on Default layer (0) | Collision matrix is wrong by default — avatar physics collision is unreliable; players may clip through geometry | Use Environment (layer 11) for all walkable geometry, walls, and floors | | 10 | Use very high lightmap resolution for large areas without profiling | Texture memory can spike significantly at high resolutions; a common cause of OOM crashes on mobile headsets | Start at 10-20 texels/unit (PC) / 5-10 (Quest) as a practical guideline; profile VRAM and adjust — official guidance says "keep lightmap resolution low" for Quest | | 11 | Add VRC_UIShape to a Screen Space or Overlay Canvas | VRC_UIShape requires World Space Canvas; other modes throw a runtime Unity error in VRChat — the UI renders visually but is not interactive, with no visible error to the world builder | Set Canvas > Render Mode to World Space before adding VRC_UIShape |
Load only what the task requires. When a request spans several rows, load every M
Skills, rules, and validation hooks that teach AI coding agents to generate correct UdonSharp code
Release procedure for agent-skills-vrc-udon: sync main into dev, bump the five version fields, open and merge the release PR,…
VRChat skill renovator for knowledge fill, refresh, and quality improvement. Use this skill when updating VRChat skills to new…
Rules and references for VRChat UdonSharp on SDK 3.10.6, the active and verified target. UdonSharp compiles only a subset of C#,…
You MUST use this before any creative work - creating features, building components, adding functionality, modifying behavior, or…
Ask which skill or flow fits your situation. A router over the skills in this repo.