niaka3dayo/agent-skills-vrc-udonMIT13 files

Unity Vrc World SDK 3

>

Specification
Skill ID
niaka3dayo/agent-skills-vrc-udon/unity-vrc-world-sdk-3
Publisher
niaka3dayo
Repository
agent-skills-vrc-udon
Installs
0
Files
13
License
MIT
Synced
Sep 23, 2026
How to use it

Open any RiverX project, open the Skills panel in the chat, and search for this identifier. The files are fetched from the source repository at install time.

niaka3dayo/agent-skills-vrc-udon/unity-vrc-world-sdk-3Installs these files
  • CHEATSHEET.md
  • LICENSE.txt
  • SKILL.md
  • assets/templates/VRC_Pickup_Rigidbody.cs
  • assets/templates/VRC_Station_Basic.cs
  • references/audio-video.md
  • references/build-validation.md
  • references/components.md
  • references/layers.md
  • references/lighting.md
  • references/performance.md
  • references/troubleshooting.md
  • references/upload.md

What this skill tells the agent

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
Build ValidationRed/yellow/white SDK alertsreferences/build-validation.md
World UploadUpload workflowreferences/upload.md
TroubleshootingProblem solvingreferences/troubleshooting.md
CheatsheetQuick referenceCHEATSHEET.md

Method Migration

The following public methods were renamed because an unprefixed, parameterless public UdonSharp method remains callable through legacy network dispatch:

BeforeAfter
ForceDropPickup_ForceDropPickup
IsHeld_IsHeld
IsOccupied_IsOccupied
StopSound_StopSound
SlowUpdate_SlowUpdate

Update Inspector event strings, SendCustomEvent* calls, delayed events and nameof(...) expressions, and cross-behaviour calls. Compatibility aliases are not provided because an old unprefixed alias would restore the same legacy network exposure.


Common Mistakes (NEVER List)

These cause silent world failures, performance disasters, or Quest incompatibility:

#NEVER do thisWhy it hurtsUse instead
1Enable Mirror by default (active on world join)A mirror adds another costly scene render; the impact depends on view, scene, resolution, and deviceDefault Mirror OFF; add a player-controlled toggle and profile each target device
2Use realtime directional lights with real-time shadows without profilingRealtime shadow cost varies with scene geometry, view, and target device and can dominate frame time on AndroidPrefer baked lightmaps + light probes; profile the target device before keeping any realtime shadows
3Set Respawn Height at or above the world floorPlayer respawns → falls → respawns again → infinite loop; players cannot recoverSet to an unreachable depth (e.g., floor at Y=0 → Respawn at Y=-100)
4Skip "Setup Layers for VRChat" on a new projectLayer collision matrix is wrong by default — players walk through walls, Pickups clip floorsRun VRChat SDK > Builder > "Setup Layers for VRChat" before placing any colliders
5Enable Post-Processing without an Android build profilePost-processing is disabled at runtime on Android, so the authored effect will not appear and unnecessary resources can still enlarge the buildUse a separate Android build profile with post-processing removed
6Place more than 2 active video players simultaneouslyEach player adds significant decoding overhead; running >2 simultaneously is a common cause of frame drops and audio issues in practiceDisable extra players at scene start; activate only the currently playing one
7Use Cloth on Android, or add many Unity Constraints without profilingCloth is disabled on Android. Unity Constraints are permitted in worlds, but overuse can significantly affect performanceRemove Cloth from the Android build; prefer VRC Constraints for new work and profile any constraint-heavy setup
8Upload without completing a lightmap bakeRealtime GI adds substantial scene-dependent render cost and is unsuitable as an unmeasured fallback on AndroidBake lights before upload, then verify the result on the target device
9Place player walkable surfaces on Default layer (0)Collision matrix is wrong by default — avatar physics collision is unreliable; players may clip through geometryUse Environment (layer 11) for all walkable geometry, walls, and floors
10Use very high lightmap resolution for large areas without profilingTexture memory can spike significantly at high resolutions; a common cause of OOM crashes on mobile headsetsStart 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
11Add VRC_UIShape to a Screen Space or Overlay CanvasVRC_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 builderSet Canvas > Render Mode to World Space before adding VRC_UIShape

Reference Loading Guide

Load only what the task requires.

TaskMANDATORY READOptionalDo NOT LoadLoad Rationale
Setting up a new scene from scratchcomponents.md, layers.mdupload.mdaudio-video.md, troubleshooting.mdCollision matrix non-obvious; component deps needed upfront
Making objects grabbable (VRC_Pickup)components.mdlayers.mdaudio-video.md, lighting.mdPickup/Rigidbody requirements not in standard Unity docs
Configuring Dynamics for Worlds (PhysBones, Contacts, Box Contacts, Global Avatar PhysBone Colliders, world VRCPhysBoneCollider access)components.mdlayers.md, troubleshooting.md; use unity-vrc-udon-sharp for Udon codeaudio-video.md, lighting.mdDynamics component availability and Udon access are SDK-version sensitive
Setting up seating (VRC_Station)components.mdlayers.mdaudio-video.md, performance.mdStation collider + exit requirements are VRChat-specific
Optimizing FPS for Questperformance.md, lighting.mdtroubleshooting.mdaudio-video.md, upload.mdQuest limits differ from PC; bake requirements non-obvious
Adding audio or video player / voice zones (SetVoiceGain, Steam Audio)audio-video.md, components.mdtroubleshooting.mdlighting.md, performance.mdAVPro vs Unity Video selection is VRChat-specific
Configuring WorldQualitySettings, realtime probes, or Shadowmask Modecomponents.mdlighting.md; Udon API: unity-vrc-udon-sharpaudio-video.md, layers.mdExisting startup setters and override flags can overwrite authored quality choices
Baking lights / lightmap setuplighting.md, performance.md—audio-video.md, layers.mdLightmap resolution and probe placement affect Quest VRAM
SDK Build Panel validation alerts, red/yellow/white warnings, or Auto Fix questionsbuild-validation.mdupload.md, troubleshooting.mdaudio-video.md, lighting.mdAlert severity, build consequence, and Auto Fix side effects must come from SDK-backed catalog
World upload and publishupload.mdbuild-validation.md, troubleshooting.mdaudio-video.md, lighting.mdUpload steps and validation order are fragile; easy to miss
Debugging collision or layer issueslayers.md, troubleshooting.mdcomponents.mdaudio-video.md, lighting.mdVRChat collision matrix differs from Unity default
Mirror setup and configurationcomponents.mdperformance.mdaudio-video.md, upload.mdMirror layer mask requirements are VRChat-specific

Before Starting a New World — Design Decisions

Use this skill in a project

Open any RiverX project, search the Skills panel for niaka3dayo/agent-skills-vrc-udon/unity-vrc-world-sdk-3, and install it in one click.

Use this skill