Not in the top 1,000 by GitHub stars

niaka3dayo/agent-skills-vrc-udon

Skills, rules, and validation hooks that teach AI coding agents to generate correct UdonSharp code

History

Review weekly changes to SKILL.md before updating. Dates mark the weeks in which we observed each version; checks apply to the recorded commits.

View weekly changes

skills/unity-vrc-udon-sharp/SKILL.md

Week of Nov 2, 2026 · +29 / −27 lines

Before Not checked yet → After Local scripts

f6dc6c020a09 → fd4303fa7072

Diff text is unavailable under the recorded licenses. Line counts and the GitHub link remain available.

Compare on GitHub

Week of Oct 26, 2026 · Line counts unavailable

Before Not checked yet → After Not checked yet

First observation → f6dc6c020a09

No earlier version was observed for comparison.

Compare on GitHub

skills/unity-vrc-world-sdk-3/SKILL.md

Week of Nov 2, 2026 · Line counts unavailable

Before Not checked yet → After Instructions only

f6dc6c020a09 → fd4303fa7072

A local comparison is unavailable. You can inspect the recorded versions on GitHub.

Diff text is unavailable under the recorded licenses. Line counts and the GitHub link remain available.

Compare on GitHub

Week of Oct 26, 2026 · Line counts unavailable

Before Not checked yet → After Not checked yet

First observation → f6dc6c020a09

No earlier version was observed for comparison.

Compare on GitHub

View on GitHubAdd to my skills

Verified commit fd4303fa7072094a33556747333053de15745af2

git clone --filter=blob:none --no-checkout https://github.com/niaka3dayo/agent-skills-vrc-udon.git .hotskills/niaka3dayo-agent-skills-vrc-udon && git -C .hotskills/niaka3dayo-agent-skills-vrc-udon checkout --detach fd4303fa7072094a33556747333053de15745af2 # Copy each selected skill directory from .hotskills/niaka3dayo-agent-skills-vrc-udon into .claude/skills/<skill-name>/
git clone --filter=blob:none --no-checkout https://github.com/niaka3dayo/agent-skills-vrc-udon.git .hotskills/niaka3dayo-agent-skills-vrc-udon && git -C .hotskills/niaka3dayo-agent-skills-vrc-udon checkout --detach fd4303fa7072094a33556747333053de15745af2 # Copy each selected skill directory from .hotskills/niaka3dayo-agent-skills-vrc-udon into .agents/skills/<skill-name>/
346GitHub stars
4stars in 7 days
2skills in this repository
6commits in 30 days

Heat

4.2
  • Star growth, last 7 daysNot available
  • Star growth, last 24 hoursNot available
  • Rank movement, last 7 daysNot available
  • Commits, last 30 daysNot available
  • Accounts asking about it through MCP, last 7 daysNot available
  • Hot votes this weekNot available

Heat never changes the order by stars, and sponsorship never touches it. How heat works

Stars over time

Oct 25, 2026Nov 5, 2026346

30-day change not yet available: not enough history.

Individual skills in this repository

How it works

unity-vrc-udon-sharp

When your agent uses it

UdonSharp scripting skill for VRChat SDK 3.10.6 (active and verified target). Use when writing, reviewing, debugging, or migrating UdonSharp C# and UdonBehaviour code. Positive triggers include UdonSharp, NetworkCallable, NetworkCalling, CallingPlayer, Udon network authorization, synced runtime state, a local public helper, public-method audit, C# to Udon conversion, and UdonSharp Assembly Version Defines. VRCQualitySettings, VRCBillboard, constraint source, and VRCTween calls, PhysBone/Contact callbacks, world VRCPhysBoneCollider runtime access, persistence, collection, web, and other component APIs trigger this skill when the request is about Udon, C#, or runtime API access. Excludes scene setup, component setup, Build Panel work, layers, scene and rendering optimization, and upload; route those requests to unity-vrc-world-sdk-3.

What it loads into context

Frontmatter

270 tokens

Always available to the agent

SKILL.md

9,452 tokens

When the skill is activated

Reference documents

236,808 tokens

Loaded on request

Token counts are estimates. Scripts run separately; they are not counted as reference context.

The playbook

  1. Why This Skill Matters
  2. Before Writing Network Code
  3. Context Preservation
  4. Core Principles
  5. SDK 3.10.4 event receiver arguments
  6. Common Mistakes (NEVER List)
  7. Sync Mode Quick Decision
  8. Sync Debugging Quick Decision
  9. Reference Loading Guide
  10. Pattern Selection Guide
  11. Template Selection Guide
  12. Rules (Constraints & Networking)
  13. SDK Versions
  14. Official Resources
  15. References
  16. Templates (`assets/templates/`)
  17. Hooks
  18. Quick Reference

Scripts executed separately

  • hooks/validate-udonsharp.ps1
  • hooks/validate-udonsharp.sh

Files

  • ../../.claude-plugin/marketplace.jsonasset525 bytes
  • CHEATSHEET.mddoc21,718 bytes
  • LICENSE.txtdoc1,067 bytes
  • SKILL.mdcore40,233 bytes
  • SKILL.mdcore40,233 bytes
  • SKILL.mdcore40,233 bytes
  • SKILL.mdcore40,233 bytes
  • SKILL.mdcore40,233 bytes
  • SKILL.mdcore40,233 bytes
  • SKILL.mdcore40,233 bytes
  • assets/templates/ArrayUtils.csasset4,678 bytes
  • assets/templates/BasicInteraction.csasset2,331 bytes
  • assets/templates/BatchedSync.csasset3,352 bytes
  • assets/templates/CloggedRetrySync.csasset4,061 bytes
  • assets/templates/ContactReceiver.csasset8,304 bytes
  • assets/templates/CustomInspector.csasset9,578 bytes
  • assets/templates/DataPersistence.csasset12,274 bytes
  • assets/templates/DualCopySync.csasset3,179 bytes
  • assets/templates/EventBus.csasset3,121 bytes
  • assets/templates/MasterManagedPlayerPool.csasset15,691 bytes
  • assets/templates/PackedStateSync.csasset2,893 bytes
  • assets/templates/PlayerSettings.csasset3,562 bytes
  • assets/templates/RateLimitedSync.csasset3,720 bytes
  • assets/templates/StateMachine.csasset12,733 bytes
  • assets/templates/SyncedObject.csasset5,723 bytes
  • assets/templates/UdonSharpProgramAssetAutoGenerator.csasset5,814 bytes
  • assets/templates/UndoableGameManager.csasset6,170 bytes
  • hooks/validate-udonsharp.ps1runs37,347 bytes
  • hooks/validate-udonsharp.shruns40,077 bytes
  • references/api.mddoc54,501 bytes
  • references/assembly-definitions.mddoc7,479 bytes
  • references/constraints.mddoc45,650 bytes
  • references/context-preservation.mddoc10,238 bytes
  • references/dynamics.mddoc36,664 bytes
  • references/editor-scripting.mddoc33,089 bytes
  • references/events.mddoc33,554 bytes
  • references/image-loading-vram.mddoc34,474 bytes
  • references/networking-antipatterns.mddoc24,010 bytes
  • references/networking-bandwidth.mddoc14,751 bytes
  • references/networking.mddoc54,525 bytes
  • references/patterns-core.mddoc23,010 bytes
  • references/patterns-networking.mddoc43,432 bytes
  • references/patterns-performance.mddoc48,094 bytes
  • references/patterns-ui.mddoc61,752 bytes
  • references/patterns-utilities.mddoc31,164 bytes
  • references/patterns-video.mddoc28,504 bytes
  • references/persistence.mddoc32,004 bytes
  • references/sdk-migration.mddoc24,081 bytes
  • references/sync-examples.mddoc15,622 bytes
  • references/testing.mddoc10,735 bytes
  • references/troubleshooting.mddoc51,483 bytes
  • references/vrctween.mddoc4,919 bytes
  • references/web-loading-advanced.mddoc34,765 bytes
  • references/web-loading.mddoc20,688 bytes
  • rules/udonsharp-constraints.mddoc12,265 bytes
  • rules/udonsharp-networking.mddoc13,565 bytes
  • rules/udonsharp-sync-selection.mddoc3,142 bytes
  • ../unity-vrc-world-sdk-3/CHEATSHEET.mddoc12,508 bytes
  • ../unity-vrc-world-sdk-3/LICENSE.txtdoc1,067 bytes
  • ../unity-vrc-world-sdk-3/SKILL.mddoc32,386 bytes
  • ../unity-vrc-world-sdk-3/assets/templates/VRC_Pickup_Rigidbody.csasset7,369 bytes
  • ../unity-vrc-world-sdk-3/assets/templates/VRC_Station_Basic.csasset7,852 bytes
  • ../unity-vrc-world-sdk-3/references/audio-video.mddoc23,867 bytes
  • ../unity-vrc-world-sdk-3/references/build-validation.mddoc27,894 bytes
  • ../unity-vrc-world-sdk-3/references/components.mddoc33,467 bytes
  • ../unity-vrc-world-sdk-3/references/layers.mddoc7,735 bytes
  • ../unity-vrc-world-sdk-3/references/lighting.mddoc12,371 bytes
  • ../unity-vrc-world-sdk-3/references/performance.mddoc23,439 bytes
  • ../unity-vrc-world-sdk-3/references/troubleshooting.mddoc12,871 bytes
  • ../unity-vrc-world-sdk-3/references/upload.mddoc12,697 bytes
Read SKILL.md

# UdonSharp Skill

## Why This Skill Matters

UdonSharp looks like regular Unity C# scripting — until you hit its hidden walls. Many standard C# features (`List<T>`, `async/await`, `try/catch`, LINQ, generics) **silently fail or refuse to compile** in code that runs in the Udon runtime. Editor-evaluated field initializers are a separate context: they can use some ordinary C# features to generate a final value that Udon can hold. Networking is even more treacherous: modifying a synced variable without ownership produces no error — it just does nothing. Forgetting `RequestSerialization` means your state changes never leave your machine. Standard single-player local testing gives zero signal about these networking bugs because there is only one player.

Every rule in this skill exists because UdonSharp's default behavior is to **fail silently**. Read the Rules before generating any code.

## Before Writing Network Code

Four architectural decisions that must be made before choosing sync modes or writing any synced variable. Changing them mid-implementation typically requires a full rewrite:

- **Who owns this state?** One owner writes; all others read. If two players can both write (e.g., a shared toggle), you need an ownership transfer protocol — writes without ownership are silently discarded.
- **When does ownership transfer?** On grab? Interact? Game event? `OnPlayerLeft`? `Networking.SetOwner` is **locally immediate** on the calling client — `Networking.IsOwner(gameObject)` is `true` synchronously after the call, and writing `[UdonSynced]` fields plus `RequestSerialization()` immediately afterwards is safe under an `IsOwner` guard. Concurrent `SetOwner` calls from multiple clients are resolved by network arrival order — there is no client-side arbitration, so accept that the loser's write is overwritten.
View the complete source on GitHub

Skills included

  • unity-vrc-udon-sharp
  • unity-vrc-world-sdk-3

Repository facts

License
MIT
Created
Feb 26, 2026
Last pushed
Nov 4, 2026
Forks
5
Open issues
0
Project activity
Active

Before you install

Local scripts

Automated signals, not a guarantee

Checked Nov 7, 2026

Not fully analyzed: some files were too long, unreadable or missing. This never lowers the level.

Show 7 notes
  • skills/unity-vrc-udon-sharp/SKILL.md:1 Analysis incomplete: Referenced executable target unavailable; not analyzed
  • skills/unity-vrc-udon-sharp/SKILL.md:1 Analysis incomplete: Referenced executable target unavailable; not analyzed
  • skills/unity-vrc-udon-sharp/SKILL.md:1 Analysis incomplete: Referenced executable target unavailable; not analyzed
  • skills/unity-vrc-udon-sharp/SKILL.md:1 Analysis incomplete: Referenced executable target unavailable; not analyzed
  • skills/unity-vrc-udon-sharp/SKILL.md:1 Analysis incomplete: Referenced executable target unavailable; not analyzed
  • skills/unity-vrc-udon-sharp/SKILL.md:1 Analysis incomplete: Referenced executable target unavailable; not analyzed
  • skills/unity-vrc-world-sdk-3/SKILL.md:1 Analysis incomplete: Referenced executable target unavailable; not analyzed
Show all 187 signals by file

skills/unity-vrc-udon-sharp/SKILL.md

  • Network accessline 80
    The receiver argument is still required; only the explicit `(IUdonEventReceiver)` cast is unnecessary on the active SDK. Keep any pre-3.10.4 cast in the historical migration reference only. This follows the [official SDK 3.10.4 release note
  • Network accessline 80
    The receiver argument is still required; only the explicit `(IUdonEventReceiver)` cast is unnecessary on the active SDK. Keep any pre-3.10.4 cast in the historical migration reference only. This follows the [official SDK 3.10.4 release note

skills/unity-vrc-udon-sharp/assets/templates/UdonSharpProgramAssetAutoGenerator.cs

  • Network accessline 1
    // MIT License // Copyright (c) 2026 nemurigi // Based on: https://gist.github.com/nemurigi/dea7c0a1fb94f7b9cf1c36481a459ded
  • Network accessline 3
    // Based on: https://gist.github.com/nemurigi/dea7c0a1fb94f7b9cf1c36481a459ded

skills/unity-vrc-udon-sharp/hooks/validate-udonsharp.ps1

  • Executable scriptline 1
    Executable file

skills/unity-vrc-udon-sharp/hooks/validate-udonsharp.sh

  • Executable scriptline 1
    #!/bin/bash
  • Dangerous shell operationline 65
    trap 'rm -f "$masked_file" "$flat_file"' EXIT

skills/unity-vrc-udon-sharp/references/api.md

  • Network accessline 94
    > **Note**: The voice getters are named in the [SDK 3.6.1 release notes](https://creators.vrchat.com/releases/release-3-6-1/) — added to `VRCPlayerApi` and exposed to Udon — but do not appear on the current [Player Audio](https://creators.v
  • Network accessline 274
    Official behavior reference: [VRChat Network Events](https://creators.vrchat.com/worlds/udon/networking/events/).
  • Network accessline 597
    > **Setup precondition**: Attach `PoolInteractForwarded` to the **same GameObject as the `VRCObjectPool`** it references. `NetworkEventTarget.Owner` resolves to the owner of the *sending UdonBehaviour's* GameObject (per [creators.vrchat.com
  • Network accessline 1000
    Sources: [official quality settings reference](https://creators.vrchat.com/worlds/udon/vrc-graphics/vrc-quality-settings/),
  • Network accessline 1001
    [SDK 3.10.5 release notes](https://creators.vrchat.com/releases/release-3-10-5/).

skills/unity-vrc-udon-sharp/references/assembly-definitions.md

  • Network accessline 69
    Sources: [SDK 3.10.5 release notes](https://creators.vrchat.com/releases/release-3-10-5/),
  • Network accessline 70
    [Unity Version Defines](https://docs.unity3d.com/2022.3/Documentation/Manual/ScriptCompilationAssemblyDefinitionFiles.html#version-defines),
  • Network accessline 107
    - UdonSharp migration docs: <https://udonsharp.docs.vrchat.com/migration/>
  • Network accessline 108
    - Unity assembly definition file format: <https://docs.unity3d.com/Manual/assembly-definition-file-format.html>

skills/unity-vrc-udon-sharp/references/constraints.md

  • Network accessline 194
    The SDK 3.10.5 compiler implements these distinctions in `Packages/com.vrchat.worlds/Integrations/UdonSharp/Editor/Compiler/CompilationContext.cs` (`BuildMethodLayout`). Source: [SDK 3.10.5 release](https://github.com/vrchat/packages/releas
  • Network accessline 195
    `Packages/com.vrchat.worlds/Integrations/UdonSharp/Editor/Compiler/CompilationContext.cs` (`BuildMethodLayout`). Source: [SDK 3.10.5 release](https://github.com/vrchat/packages/releases/tag/3.10.5) and [official network-event requirements](
  • Network accessline 196
    (`BuildMethodLayout`). Source: [SDK 3.10.5 release](https://github.com/vrchat/packages/releases/tag/3.10.5)
  • Network accessline 197
    and [official network-event requirements](https://creators.vrchat.com/worlds/udon/networking/events/).

skills/unity-vrc-udon-sharp/references/dynamics.md

  • Network accessline 292
    In [SDK 3.10.5](https://creators.vrchat.com/releases/release-3-10-5/), PhysBone
  • Network accessline 454
    After changing constraint properties from a script, call `ApplyConfigurationChanges()` once; the [official Constraints API](https://creators.vrchat.com/common-components/constraints/constraints-api) states that changes may not be applied ot
  • Network accessline 527
    The properties below are read/write from Udon on every VRC Constraint component, except the read-only `TargetTransform`. Descriptions follow the [official Constraints API](https://creators.vrchat.com/common-components/constraints/constraint

skills/unity-vrc-udon-sharp/references/editor-scripting.md

  • Network accessline 314
    `VRC.SDKBase.IEditorOnly` is a marker interface with no members (verified against SDK 3.10.3). The [official build-pipeline callbacks and interfaces docs](https://creators.vrchat.com/sdk/build-pipeline-callbacks-and-interfaces/) state that 
  • Network accessline 484
    For tooling branching on `VRC_SdkBuilder.ActiveBuildType`, [SDK 3.10.5](https://creators.vrchat.com/releases/release-3-10-5/) reports `Test`
  • Network accessline 485
    [SDK 3.10.5](https://creators.vrchat.com/releases/release-3-10-5/) reports `Test`
  • Network accessline 489
    The SDK exposes two documented hooks for running custom code when a world or avatar build starts. Both are verified against SDK 3.10.3 and documented on the [official build pipeline page](https://creators.vrchat.com/sdk/build-pipeline-callb
  • Network accessline 935
    > **Credit**: Based on [nemurigi's AssetPostprocessor pattern](https://gist.github.com/nemurigi/dea7c0a1fb94f7b9cf1c36481a459ded) (MIT License).

skills/unity-vrc-udon-sharp/references/events.md

  • Network accessline 754
    Reference: [VRChat Official Docs — Event Execution Order](https://creators.vrchat.com/worlds/udon/event-execution-order/)

skills/unity-vrc-udon-sharp/references/networking-antipatterns.md

  • Network accessline 63
    **Explanation**: `Networking.SetOwner` is **locally immediate**. After the call returns, `Networking.IsOwner(gameObject)` is `true` and `OnOwnershipTransferred` has already fired synchronously inside the `SetOwner` stack on the calling clie

skills/unity-vrc-udon-sharp/references/networking-bandwidth.md

  • Network accessline 9
    > Udon scripts can send out about **11 kilobytes** per second. > — [VRChat Creator Docs](https://creators.vrchat.com/worlds/udon/networking/network-details)
  • Network accessline 10
    > — [VRChat Creator Docs](https://creators.vrchat.com/worlds/udon/networking/network-details)

skills/unity-vrc-udon-sharp/references/networking.md

  • Network accessline 533
    > *Footnote: Pre-2021.2.2 SDKs treated `SetOwner` as asynchronous on the calling client; the active target (SDK 3.10.6) is locally immediate. Source: [Ownership Transfer Events](https://creators.vrchat.com/worlds/udon/networking/ownership/#
  • Network accessline 610
    > **Important**: `OnOwnershipRequest` runs locally on **both the requester and the current owner** (per the official [Network Components page](https://creators.vrchat.com/worlds/udon/networking/network-components/): "This logic runs locally
  • Network accessline 721
    `FieldChangeCallback` is useful for scalar synced fields, but it is not a receiver contract for arrays. The official [`OnVariableChanged` guidance](https://creators.vrchat.com/worlds/udon/networking/network-components/#onvariablechanged)
  • Network accessline 722
    receiver contract for arrays. The official [`OnVariableChanged` guidance](https://creators.vrchat.com/worlds/udon/networking/network-components/#onvariablechanged)
  • Network accessline 723
    states that changing an array's contents does not trigger the event because the array itself is unchanged. The official [Udon Example Scene](https://creators.vrchat.com/worlds/examples/udon-example-scene/) uses `OnDeserialization()` for its
  • Network accessline 724
    array itself is unchanged. The official [Udon Example Scene](https://creators.vrchat.com/worlds/examples/udon-example-scene/)
  • Network accessline 928
    > **Official warning:** Instance master is for gameplay/session arbitration, not security or access control. Do not use `isMaster` as an authorization boundary. VRChat's [Object Ownership](https://creators.vrchat.com/worlds/udon/networking/
  • Network accessline 982
    Official behavior reference: [VRChat Network Events](https://creators.vrchat.com/worlds/udon/networking/events/).
  • Network accessline 1543
    > **Reference**: VRChat networking documentation — https://creators.vrchat.com/worlds/udon/networking/

skills/unity-vrc-udon-sharp/references/patterns-performance.md

  • Network accessline 335
    When an object only needs to face the local viewpoint, register it with `VRCBillboard` instead of rotating it from `Update()` or `PostLateUpdate()`. The client rotates every registered `Transform` in one pass. Rules from the [official VRCBi
  • Network accessline 1104
    Udon dispatches cross-behaviour method calls via `SendCustomEvent` internally, and per the [official UdonSharp performance pointers](https://udonsharp.docs.vrchat.com/random-tips-&-performance-pointers/) "Udon can take on the order of 200x 

skills/unity-vrc-udon-sharp/references/sdk-migration.md

  • Network accessline 25
    1. Update Base and Worlds together. SDK 3.10.6 still uses Unity 2022.3; the    [release notes](https://creators.vrchat.com/releases/release-3-10-6/) say not
  • Network accessline 26
    [release notes](https://creators.vrchat.com/releases/release-3-10-6/) say not

skills/unity-vrc-udon-sharp/references/testing.md

  • Network accessline 44
    Since [SDK 3.10.5](https://creators.vrchat.com/releases/release-3-10-5/), leaving

skills/unity-vrc-udon-sharp/references/troubleshooting.md

  • Network accessline 895
    This is a [known long-standing issue](https://vrchat.canny.io/sdk-bug-reports/p/playerlocal-collision-should-remain-on-players-in-stations) (unresolved as of SDK 3.10.3).
  • Network accessline 897
    **Remote-player collider (client 2026.4.1)**: the [SDK 3.10.6 release notes](https://creators.vrchat.com/releases/release-3-10-6/) state that client 2026.4.1 adjusts the collider shape on remote players to match the local player's capsule. 
  • Network accessline 1881
    - [Official UdonSharp Docs](https://udonsharp.docs.vrchat.com/)
  • Network accessline 1882
    - [VRChat Creator Docs](https://creators.vrchat.com/worlds/udon/)
  • Network accessline 1883
    - [UdonSharp GitHub Issues](https://github.com/vrchat-community/UdonSharp/issues)
  • Network accessline 1884
    - [VRChat Forums](https://ask.vrchat.com/) - Q&A, solutions
  • Network accessline 1885
    - [VRChat Canny](https://feedback.vrchat.com/) - Bug reports, known issues

skills/unity-vrc-udon-sharp/references/web-loading-advanced.md

  • Possible obfuscationline 192
    byte[] rawBytes = Convert.FromBase64String(base64Data);
  • Possible obfuscationline 814
    byte[] rawBytes = Convert.FromBase64String(base64String);

skills/unity-vrc-udon-sharp/references/web-loading.md

  • Network accessline 69
    > For the latest list, refer to [VRChat Wiki: Trusted URLs](https://wiki.vrchat.com/wiki/Trusted_URLs).
  • Network accessline 80
    |------|:----:|------| | Set VRCUrl field in Inspector | Yes | Serialized at build time | | `new VRCUrl("https://literal-string")` | Yes | The literal is embedded as a constant in Udon Assembly and passes the VM's security filter |
  • Network accessline 81
    | Set VRCUrl field in Inspector | Yes | Serialized at build time | | `new VRCUrl("https://literal-string")` | Yes | The literal is embedded as a constant in Udon Assembly and passes the VM's security filter | | `new VRCUrl(stringVariable)` 
  • Network accessline 82
    | `new VRCUrl("https://literal-string")` | Yes | The literal is embedded as a constant in Udon Assembly and passes the VM's security filter |
  • Network accessline 160
    // Server-side routing pattern: Fixed single URL, server returns the data [SerializeField] private VRCUrl scoreBoardUrl; // "https://example.github.io/scores.json"
  • Network accessline 161
    [SerializeField] private VRCUrl scoreBoardUrl; // "https://example.github.io/scores.json"
  • Network accessline 173
    // NG: Generating VRCUrl from a runtime string - blocked by Udon VM string dynamicUrl = "https://api.example.com/data?id=" + playerId;
  • Network accessline 174
    string dynamicUrl = "https://api.example.com/data?id=" + playerId;

skills/unity-vrc-world-sdk-3/SKILL.md

  • Network accessline 125
    performance, and a single-client Quest result does not predict a particular PC frame rate. Use the Unity Profiler and the [official Android content optimization guide](https://creators.vrchat.com/platforms/android/quest-content-optimization
  • Network accessline 125
    performance, and a single-client Quest result does not predict a particular PC frame rate. Use the Unity Profiler and the [official Android content optimization guide](https://creators.vrchat.com/platforms/android/quest-content-optimization
  • Network accessline 126
    frame rate. Use the Unity Profiler and the [official Android content optimization guide](https://creators.vrchat.com/platforms/android/quest-content-optimization/) before publishing.
  • Network accessline 126
    frame rate. Use the Unity Profiler and the [official Android content optimization guide](https://creators.vrchat.com/platforms/android/quest-content-optimization/) before publishing.
  • Network accessline 127
    guide](https://creators.vrchat.com/platforms/android/quest-content-optimization/)
  • Network accessline 127
    guide](https://creators.vrchat.com/platforms/android/quest-content-optimization/)

skills/unity-vrc-world-sdk-3/references/audio-video.md

  • Network accessline 215
    > **Status**: Shipped default. Steam Audio replaced ONSP as the spatializer for every player on every platform in > VRChat client release **2025.4.2** ([December 3, 2025, Build 1768](https://docs.vrchat.com/docs/vrchat-202542)).
  • Network accessline 215
    > **Status**: Shipped default. Steam Audio replaced ONSP as the spatializer for every player on every platform in > VRChat client release **2025.4.2** ([December 3, 2025, Build 1768](https://docs.vrchat.com/docs/vrchat-202542)).
  • Network accessline 216
    > VRChat client release **2025.4.2** ([December 3, 2025, Build 1768](https://docs.vrchat.com/docs/vrchat-202542)).
  • Network accessline 216
    > VRChat client release **2025.4.2** ([December 3, 2025, Build 1768](https://docs.vrchat.com/docs/vrchat-202542)).
  • Network accessline 237
    that "almost all content will work without any adjustments" after two months of open beta — but the conversion is not guaranteed to be inaudible ([Developer Update, December 4, 2025](https://ask.vrchat.com/t/developer-update-4-december-2025
  • Network accessline 237
    that "almost all content will work without any adjustments" after two months of open beta — but the conversion is not guaranteed to be inaudible ([Developer Update, December 4, 2025](https://ask.vrchat.com/t/developer-update-4-december-2025
  • Network accessline 239
    ([Developer Update, December 4, 2025](https://ask.vrchat.com/t/developer-update-4-december-2025/47243)).
  • Network accessline 239
    ([Developer Update, December 4, 2025](https://ask.vrchat.com/t/developer-update-4-december-2025/47243)).
  • Network accessline 246
    VRChat also added a server-side tuning path in [2025.4.2p1](https://docs.vrchat.com/docs/vrchat-202542p1), so parts of the audio experience can change without a
  • Network accessline 246
    VRChat also added a server-side tuning path in [2025.4.2p1](https://docs.vrchat.com/docs/vrchat-202542p1), so parts of the audio experience can change without a
  • Network accessline 247
    [2025.4.2p1](https://docs.vrchat.com/docs/vrchat-202542p1), so parts of the audio experience can change without a
  • Network accessline 247
    [2025.4.2p1](https://docs.vrchat.com/docs/vrchat-202542p1), so parts of the audio experience can change without a
  • Network accessline 254
    Do not install the Steam Audio Unity package into a world project to reach those features. No Steam Audio component appears on the [allowlisted world components](https://creators.vrchat.com/worlds/whitelisted-world-components/) list,
  • Network accessline 254
    Do not install the Steam Audio Unity package into a world project to reach those features. No Steam Audio component appears on the [allowlisted world components](https://creators.vrchat.com/worlds/whitelisted-world-components/) list,
  • Network accessline 255
    appears on the [allowlisted world components](https://creators.vrchat.com/worlds/whitelisted-world-components/) list,
  • Network accessline 255
    appears on the [allowlisted world components](https://creators.vrchat.com/worlds/whitelisted-world-components/) list,
  • Network accessline 295
    - EQ and compressor tuning changed - Source-directionality was added — a speaker's orientation relative to the listener now affects what you hear - Client [2025.4.2p1](https://docs.vrchat.com/docs/vrchat-202542p1) applied further tuning to 
  • Network accessline 295
    - EQ and compressor tuning changed - Source-directionality was added — a speaker's orientation relative to the listener now affects what you hear - Client [2025.4.2p1](https://docs.vrchat.com/docs/vrchat-202542p1) applied further tuning to 
  • Network accessline 296
    - Source-directionality was added — a speaker's orientation relative to the listener now affects what you hear - Client [2025.4.2p1](https://docs.vrchat.com/docs/vrchat-202542p1) applied further tuning to voice falloff and   compression
  • Network accessline 296
    - Source-directionality was added — a speaker's orientation relative to the listener now affects what you hear - Client [2025.4.2p1](https://docs.vrchat.com/docs/vrchat-202542p1) applied further tuning to voice falloff and   compression
  • Network accessline 297
    - Client [2025.4.2p1](https://docs.vrchat.com/docs/vrchat-202542p1) applied further tuning to voice falloff and
  • Network accessline 297
    - Client [2025.4.2p1](https://docs.vrchat.com/docs/vrchat-202542p1) applied further tuning to voice falloff and
  • Network accessline 350
    author can open the Audio Sources page; enable **World Debugging** in the world's settings on the VRChat website to let others see it — users already in the instance must rejoin before the page becomes available to them. See the official [W
  • Network accessline 350
    author can open the Audio Sources page; enable **World Debugging** in the world's settings on the VRChat website to let others see it — users already in the instance must rejoin before the page becomes available to them. See the official [W
  • Network accessline 351
    let others see it — users already in the instance must rejoin before the page becomes available to them. See the official [World Debug Views](https://creators.vrchat.com/worlds/udon/world-debug-views/) documentation for the full column list
  • Network accessline 351
    let others see it — users already in the instance must rejoin before the page becomes available to them. See the official [World Debug Views](https://creators.vrchat.com/worlds/udon/world-debug-views/) documentation for the full column list
  • Network accessline 352
    official [World Debug Views](https://creators.vrchat.com/worlds/udon/world-debug-views/) documentation for the full
  • Network accessline 352
    official [World Debug Views](https://creators.vrchat.com/worlds/udon/world-debug-views/) documentation for the full

skills/unity-vrc-world-sdk-3/references/components.md

  • Network accessline 136
    Sources: [official quality settings reference](https://creators.vrchat.com/worlds/udon/vrc-graphics/vrc-quality-settings/),
  • Network accessline 136
    Sources: [official quality settings reference](https://creators.vrchat.com/worlds/udon/vrc-graphics/vrc-quality-settings/),
  • Network accessline 137
    [SDK 3.10.5 release notes](https://creators.vrchat.com/releases/release-3-10-5/),
  • Network accessline 137
    [SDK 3.10.5 release notes](https://creators.vrchat.com/releases/release-3-10-5/),
  • Network accessline 147
    SDK 3.10.5 adds **Outline Renderers** for choosing which renderers receive the pickup outline. For supported renderer types and the fallback when no valid renderer is assigned, use the [official VRC Pickup reference](https://creators.vrchat
  • Network accessline 147
    SDK 3.10.5 adds **Outline Renderers** for choosing which renderers receive the pickup outline. For supported renderer types and the fallback when no valid renderer is assigned, use the [official VRC Pickup reference](https://creators.vrchat
  • Network accessline 149
    renderer is assigned, use the [official VRC Pickup reference](https://creators.vrchat.com/worlds/components/vrc_pickup/).
  • Network accessline 149
    renderer is assigned, use the [official VRC Pickup reference](https://creators.vrchat.com/worlds/components/vrc_pickup/).
  • Network accessline 153
    accessor). Starting in client 2026.4.1, pickups and interactables whose list is empty no longer outline SkinnedMeshRenderers by default ([SDK 3.10.6 release notes](https://creators.vrchat.com/releases/release-3-10-6/)).
  • Network accessline 153
    accessor). Starting in client 2026.4.1, pickups and interactables whose list is empty no longer outline SkinnedMeshRenderers by default ([SDK 3.10.6 release notes](https://creators.vrchat.com/releases/release-3-10-6/)).
  • Network accessline 154
    empty no longer outline SkinnedMeshRenderers by default ([SDK 3.10.6 release notes](https://creators.vrchat.com/releases/release-3-10-6/)). Assign the renderers explicitly when a skinned mesh should be outlined. The
  • Network accessline 154
    empty no longer outline SkinnedMeshRenderers by default ([SDK 3.10.6 release notes](https://creators.vrchat.com/releases/release-3-10-6/)). Assign the renderers explicitly when a skinned mesh should be outlined. The
  • Network accessline 155
    ([SDK 3.10.6 release notes](https://creators.vrchat.com/releases/release-3-10-6/)).
  • Network accessline 155
    ([SDK 3.10.6 release notes](https://creators.vrchat.com/releases/release-3-10-6/)).
  • Network accessline 720
    For Udon registration and the frame-order caveat, see the [UdonSharp pattern](../../unity-vrc-udon-sharp/references/patterns-performance.md#vrcbillboard-sdk-3106). Source: [official VRCBillboard page](https://creators.vrchat.com/worlds/udon
  • Network accessline 720
    For Udon registration and the frame-order caveat, see the [UdonSharp pattern](../../unity-vrc-udon-sharp/references/patterns-performance.md#vrcbillboard-sdk-3106). Source: [official VRCBillboard page](https://creators.vrchat.com/worlds/udon
  • Network accessline 722
    Source: [official VRCBillboard page](https://creators.vrchat.com/worlds/udon/vrc-billboard/).
  • Network accessline 722
    Source: [official VRCBillboard page](https://creators.vrchat.com/worlds/udon/vrc-billboard/).
  • Network accessline 731
    `GetFixed...` variants measure over the last physics step. All four return zero while the component is disabled. Source: [official VRC Velocity Tracker page](https://creators.vrchat.com/worlds/components/vrc_velocitytracker/).
  • Network accessline 731
    `GetFixed...` variants measure over the last physics step. All four return zero while the component is disabled. Source: [official VRC Velocity Tracker page](https://creators.vrchat.com/worlds/components/vrc_velocitytracker/).
  • Network accessline 733
    [official VRC Velocity Tracker page](https://creators.vrchat.com/worlds/components/vrc_velocitytracker/).
  • Network accessline 733
    [official VRC Velocity Tracker page](https://creators.vrchat.com/worlds/components/vrc_velocitytracker/).
  • Network accessline 752
    - Portal rules apply to portals that users place, not to portals the world   creator placed in the scene   ([Developer Update, 22 October 2026](https://ask.vrchat.com/t/developer-update-22-october-2026/49154)).
  • Network accessline 752
    - Portal rules apply to portals that users place, not to portals the world   creator placed in the scene   ([Developer Update, 22 October 2026](https://ask.vrchat.com/t/developer-update-22-october-2026/49154)).
  • Network accessline 753
    creator placed in the scene   ([Developer Update, 22 October 2026](https://ask.vrchat.com/t/developer-update-22-october-2026/49154)). - If Udon moves a zone or changes its permissions at runtime, sync that state to
  • Network accessline 753
    creator placed in the scene   ([Developer Update, 22 October 2026](https://ask.vrchat.com/t/developer-update-22-october-2026/49154)). - If Udon moves a zone or changes its permissions at runtime, sync that state to
  • Network accessline 754
    ([Developer Update, 22 October 2026](https://ask.vrchat.com/t/developer-update-22-october-2026/49154)).
  • Network accessline 754
    ([Developer Update, 22 October 2026](https://ask.vrchat.com/t/developer-update-22-october-2026/49154)).
  • Network accessline 759
    This repository compiled the Udon setters and ran them in ClientSim; it has not tested placement itself in a VRChat client. Source: [official VRC Placement Zone page](https://creators.vrchat.com/worlds/components/vrc_placementzone/).
  • Network accessline 759
    This repository compiled the Udon setters and ran them in ClientSim; it has not tested placement itself in a VRChat client. Source: [official VRC Placement Zone page](https://creators.vrchat.com/worlds/components/vrc_placementzone/).
  • Network accessline 761
    [official VRC Placement Zone page](https://creators.vrchat.com/worlds/components/vrc_placementzone/).
  • Network accessline 761
    [official VRC Placement Zone page](https://creators.vrchat.com/worlds/components/vrc_placementzone/).
  • Network accessline 871
    VRChat worlds run only whitelisted components. The authoritative list is the official [whitelisted world components](https://creators.vrchat.com/worlds/whitelisted-world-components/)
  • Network accessline 871
    VRChat worlds run only whitelisted components. The authoritative list is the official [whitelisted world components](https://creators.vrchat.com/worlds/whitelisted-world-components/)
  • Network accessline 872
    [whitelisted world components](https://creators.vrchat.com/worlds/whitelisted-world-components/)
  • Network accessline 872
    [whitelisted world components](https://creators.vrchat.com/worlds/whitelisted-world-components/)

skills/unity-vrc-world-sdk-3/references/layers.md

  • Network accessline 61
    > matrix" of layers 22-31. Runtime observation (2026-07) showed layer *names* > ARE overridden to `user0`-`user9`; only the collision matrix is preserved. > See [Issue #286](https://github.com/niaka3dayo/agent-skills-vrc-udon/issues/286)
  • Network accessline 61
    > matrix" of layers 22-31. Runtime observation (2026-07) showed layer *names* > ARE overridden to `user0`-`user9`; only the collision matrix is preserved. > See [Issue #286](https://github.com/niaka3dayo/agent-skills-vrc-udon/issues/286)
  • Network accessline 62
    > ARE overridden to `user0`-`user9`; only the collision matrix is preserved. > See [Issue #286](https://github.com/niaka3dayo/agent-skills-vrc-udon/issues/286) > (includes a layer-dump script and full runtime output) and
  • Network accessline 62
    > ARE overridden to `user0`-`user9`; only the collision matrix is preserved. > See [Issue #286](https://github.com/niaka3dayo/agent-skills-vrc-udon/issues/286) > (includes a layer-dump script and full runtime output) and
  • Network accessline 63
    > See [Issue #286](https://github.com/niaka3dayo/agent-skills-vrc-udon/issues/286)
  • Network accessline 63
    > See [Issue #286](https://github.com/niaka3dayo/agent-skills-vrc-udon/issues/286)
  • Network accessline 64
    > (includes a layer-dump script and full runtime output) and > [this independent report](https://ask.vrchat.com/t/user-defined-unity-layers-raycasts-ignored-by-vrchat/47933). > After the upstream report
  • Network accessline 64
    > (includes a layer-dump script and full runtime output) and > [this independent report](https://ask.vrchat.com/t/user-defined-unity-layers-raycasts-ignored-by-vrchat/47933). > After the upstream report
  • Network accessline 65
    > [this independent report](https://ask.vrchat.com/t/user-defined-unity-layers-raycasts-ignored-by-vrchat/47933).
  • Network accessline 65
    > [this independent report](https://ask.vrchat.com/t/user-defined-unity-layers-raycasts-ignored-by-vrchat/47933).
  • Network accessline 66
    > After the upstream report > [vrchat-community/creator-docs#303](https://github.com/vrchat-community/creator-docs/issues/303), > the official wording was corrected to match in
  • Network accessline 66
    > After the upstream report > [vrchat-community/creator-docs#303](https://github.com/vrchat-community/creator-docs/issues/303), > the official wording was corrected to match in
  • Network accessline 67
    > [vrchat-community/creator-docs#303](https://github.com/vrchat-community/creator-docs/issues/303),
  • Network accessline 67
    > [vrchat-community/creator-docs#303](https://github.com/vrchat-community/creator-docs/issues/303),
  • Network accessline 68
    > the official wording was corrected to match in > [creator-docs#319](https://github.com/vrchat-community/creator-docs/pull/319) > (merged 2026-11-03). A copy of the official page that still says the names
  • Network accessline 68
    > the official wording was corrected to match in > [creator-docs#319](https://github.com/vrchat-community/creator-docs/pull/319) > (merged 2026-11-03). A copy of the official page that still says the names
  • Network accessline 69
    > [creator-docs#319](https://github.com/vrchat-community/creator-docs/pull/319)
  • Network accessline 69
    > [creator-docs#319](https://github.com/vrchat-community/creator-docs/pull/319)

skills/unity-vrc-world-sdk-3/references/performance.md

  • Network accessline 436
    Reference: https://creators.vrchat.com/platforms/android/quest-content-optimization
  • Network accessline 436
    Reference: https://creators.vrchat.com/platforms/android/quest-content-optimization
  • Network accessline 688
    From the official Android Content Optimization documentation: <https://creators.vrchat.com/platforms/android/quest-content-optimization/>
  • Network accessline 688
    From the official Android Content Optimization documentation: <https://creators.vrchat.com/platforms/android/quest-content-optimization/>
  • Network accessline 689
    <https://creators.vrchat.com/platforms/android/quest-content-optimization/>
  • Network accessline 689
    <https://creators.vrchat.com/platforms/android/quest-content-optimization/>
  • Network accessline 701
    These are approximate guidelines based on community practice and the official optimization guide: <https://creators.vrchat.com/platforms/android/quest-content-optimization/>
  • Network accessline 701
    These are approximate guidelines based on community practice and the official optimization guide: <https://creators.vrchat.com/platforms/android/quest-content-optimization/>
  • Network accessline 702
    <https://creators.vrchat.com/platforms/android/quest-content-optimization/>
  • Network accessline 702
    <https://creators.vrchat.com/platforms/android/quest-content-optimization/>
  • Network accessline 713
    No hard SDK limit exists for draw calls. The targets below are community-derived approximate guidelines, not official VRChat thresholds. Verify current recommendations against the official documentation: <https://creators.vrchat.com/platfor
  • Network accessline 713
    No hard SDK limit exists for draw calls. The targets below are community-derived approximate guidelines, not official VRChat thresholds. Verify current recommendations against the official documentation: <https://creators.vrchat.com/platfor
  • Network accessline 715
    official documentation: <https://creators.vrchat.com/platforms/android/quest-content-optimization/>
  • Network accessline 715
    official documentation: <https://creators.vrchat.com/platforms/android/quest-content-optimization/>

skills/unity-vrc-world-sdk-3/references/troubleshooting.md

  • Network accessline 616
    - [VRChat Creators](https://creators.vrchat.com/worlds/)
  • Network accessline 616
    - [VRChat Creators](https://creators.vrchat.com/worlds/)
  • Network accessline 617
    - [VRChat Forums](https://ask.vrchat.com/)
  • Network accessline 617
    - [VRChat Forums](https://ask.vrchat.com/)
  • Network accessline 618
    - [VRChat Canny](https://feedback.vrchat.com/)
  • Network accessline 618
    - [VRChat Canny](https://feedback.vrchat.com/)
  • Network accessline 619
    - [SDK Release Notes](https://creators.vrchat.com/releases/)
  • Network accessline 619
    - [SDK Release Notes](https://creators.vrchat.com/releases/)

skills/unity-vrc-world-sdk-3/references/upload.md

  • Network accessline 373
    1. Verify on VRChat website    - https://vrchat.com/home/
  • Network accessline 373
    1. Verify on VRChat website    - https://vrchat.com/home/
  • Network accessline 374
    - https://vrchat.com/home/
  • Network accessline 374
    - https://vrchat.com/home/
  • Network accessline 558
    | Purpose | URL | |---------|-----| | VRChat Home | https://vrchat.com/home/ |
  • Network accessline 558
    | Purpose | URL | |---------|-----| | VRChat Home | https://vrchat.com/home/ |
  • Network accessline 559
    |---------|-----| | VRChat Home | https://vrchat.com/home/ | | My Worlds | https://vrchat.com/home/worlds |
  • Network accessline 559
    |---------|-----| | VRChat Home | https://vrchat.com/home/ | | My Worlds | https://vrchat.com/home/worlds |
  • Network accessline 560
    | VRChat Home | https://vrchat.com/home/ |
  • Network accessline 560
    | VRChat Home | https://vrchat.com/home/ |
  • Network accessline 561
    | My Worlds | https://vrchat.com/home/worlds |
  • Network accessline 561
    | My Worlds | https://vrchat.com/home/worlds |
  • Network accessline 562
    | World Detail | https://vrchat.com/home/world/{worldId} |
  • Network accessline 562
    | World Detail | https://vrchat.com/home/world/{worldId} |

How the signals fit together

Facts from a static read of the files at the pinned commit. They describe what the code does, not why.

Some files could not be read; the facts below still hold.

Signal confidence: 185 facts

and 135 more

Works with

Agent compatibility, from the files in this repository
AgentStatusEvidenceInstall to
Claude CodeNativeManifest .claude-plugin/marketplace.json.claude/skills/<skill-name>/
CodexNativeManifest templates/AGENTS.md.agents/skills/<skill-name>/
CursorCompatibleStandard SKILL.md skills/unity-vrc-udon-sharp/SKILL.md.cursor/skills/<skill-name>/
Gemini CLICompatibleStandard SKILL.md skills/unity-vrc-udon-sharp/SKILL.md.gemini/skills/<skill-name>/
GitHub CopilotCompatibleStandard SKILL.md skills/unity-vrc-udon-sharp/SKILL.md.github/skills/<skill-name>/
OpenCodeCompatibleStandard SKILL.md skills/unity-vrc-udon-sharp/SKILL.md.opencode/skills/<skill-name>/
  • Native The repository ships a manifest, folder or frontmatter field for this agent.
  • Compatible A standard SKILL.md that this agent can read.
  • Unknown No evidence either way.

Derived automatically from paths, manifests and frontmatter. Not tested on each agent.