Agent Skills Vrc Udon

by niaka3dayo• 342•• Scanned•Claim this listing•Request removal
Coding Agentsai agentclaude codecodex cligemini cliudonsharp

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

Agent Skills Vrc Udon is an open-source agent skill by niaka3dayo, written mainly in Shell, with 342 GitHub stars and the MIT license. Its code was last updated Oct 30, 2026. The latest npm release is agent-skills-vrc-udon 4.3.1, published Nov 10, 2026, with 656 downloads last week.

English | 日本語 | 简体中文 | 繁體中文 | 한국어

<p align="center"> <img src="https://img.shields.io/badge/VRChat_SDK-3.10.6-00b4d8?style=for-the-badge" alt="VRChat SDK" /> <img src="https://img.shields.io/badge/UdonSharp-C%23_%E2%86%92_Udon-5C2D91?style=for-the-badge&logo=csharp&logoColor=white" alt="UdonSharp" /> <img src="https://img.shields.io/badge/AI_Agent-Skills_%26_Rules-ff6b35?style=for-the-badge" alt="Agent Skills" /> <img src="https://img.shields.io/github/license/niaka3dayo/agent-skills-vrc-udon?style=for-the-badge" alt="License" /> </p> <p align="center"> <img src="https://img.shields.io/npm/v/agent-skills-vrc-udon?style=flat-square&label=npm" alt="npm version" /> <img src="https://img.shields.io/npm/dm/agent-skills-vrc-udon?style=flat-square&label=downloads" alt="npm downloads" /> <img src="https://img.shields.io/github/actions/workflow/status/niaka3dayo/agent-skills-vrc-udon/ci.yml?branch=dev&style=flat-square&label=CI" alt="CI" /> </p> <h1 align="center">Agent Skills for VRChat UdonSharp</h1> <p align="center"> <b>Skills, rules, and validation hooks that teach AI coding agents to generate correct UdonSharp code</b> </p> <p align="center"> <a href="#about">About</a> &bull; <a href="#install">Install</a> &bull; <a href="#structure">Structure</a> &bull; <a href="#skills">Skills</a> &bull; <a href="#rules">Rules</a> &bull; <a href="#hooks">Hooks</a> &bull; <a href="#contributing">Contributing</a> &bull; <a href="#disclaimer">Disclaimer</a> </p>
<h2 id="about">About</h2>

VRChat world development with UdonSharp (C# → Udon Assembly) has strict compile constraints that differ significantly from standard C#. In Udon runtime code, features like List<T>, async/await, try/catch, LINQ, and lambdas cause compile errors. Editor-evaluated field initializers are a separate C# context and may use some of these features to generate a final field value that Udon supports.

This repository provides AI coding agents with the knowledge to generate correct UdonSharp code from the start.

ProblemSolution
AI generates Udon-incompatible List<T>, async/await, etc. in runtime codeRules + hooks auto-detect and warn
Sync variable bloatDecision tree + data budget
Incorrect networking patternsPattern library + anti-patterns
SDK version feature differencesVersion table with feature mapping
Late Joiner state inconsistencySync pattern selection framework

This is NOT:

  • A VRChat SDK or UdonSharp distribution
  • A Unity project (no executable code)
  • A replacement for official VRChat documentation
  • A guarantee of all AI behaviors

Issues: Bug reports and knowledge requests are welcome via GitHub Issues. PRs: Pull Requests are not accepted. See CONTRIBUTING.md for details.


<h2 id="install">Install</h2>

Migrating from fork/clone? — You no longer need to fork or clone this repository. Run one of the install commands below inside your VRChat Unity project. If you cloned this repo earlier, you can delete the cloned directory after switching.

Method 1: skills CLI (recommended)

npx skills add niaka3dayo/agent-skills-vrc-udon

This uses the skills.sh ecosystem to install skills into your project. The skills CLI requires Node.js 22.20 or later.

Method 2: Claude Code plugin

claude plugin install vrc-udon-skills --marketplace niaka3dayo/agent-skills-vrc-udon

On Claude Code older than 2.1.292, run claude plugin marketplace add niaka3dayo/agent-skills-vrc-udon first, then claude plugin install vrc-udon-skills@agent-skills-vrc-udon.

Method 3: git clone

git clone https://github.com/niaka3dayo/agent-skills-vrc-udon.git

Installing a specific version

All published versions remain permanently available on npm and as git tags — nothing is ever removed.

# skills CLI, pinned to a git tag
npx skills add https://github.com/niaka3dayo/agent-skills-vrc-udon/tree/v2.3.0

# npm (any published version, v1.0.0 and later); the skills are in node_modules/agent-skills-vrc-udon/skills/
npm install --save-exact agent-skills-vrc-udon@2.3.0

# git tag
git clone --branch v2.3.0 https://github.com/niaka3dayo/agent-skills-vrc-udon.git

<h2 id="structure">Structure</h2>
skills/                                  # All skills
  unity-vrc-udon-sharp/                 # UdonSharp core skill
    SKILL.md                              # Skill definition + frontmatter
    LICENSE.txt                           # MIT License
    CHEATSHEET.md                         # Quick reference (1 page)
    rules/                               # Constraint rules
      udonsharp-constraints.md
      udonsharp-networking.md
      udonsharp-sync-selection.md
    hooks/                               # PostToolUse validation
      validate-udonsharp.sh
      validate-udonsharp.ps1
    assets/templates/                    # Code templates (17 files)
    references/                          # Detailed documentation (25 files)
  unity-vrc-world-sdk-3/                # VRC World SDK skill
    SKILL.md, LICENSE.txt, CHEATSHEET.md, references/ (8 files)
templates/                               # AI tool config templates
  CLAUDE.md  AGENTS.md  GEMINI.md        # Starter project instructions (copy manually)
.claude-plugin/marketplace.json         # Claude Code plugin registration
hooks/hooks.json                        # Claude Code plugin hook registration
CLAUDE.md                               # Development guide (this repo only)

<h2 id="skills">Skills</h2>

unity-vrc-udon-sharp

UdonSharp scripting core skill. Covers compile constraints, networking, events, and templates.

AreaContent
ConstraintsC# features blocked in Udon runtime, their alternatives (List<T> → DataList, async → SendCustomEventDelayedSeconds), and the Editor-evaluated initializer boundary
NetworkingOwnership model, Manual/Continuous sync, FieldChangeCallback, anti-patterns
NetworkCallableIntroduced in SDK 3.8.1: parameterized network events (up to 8 args)
PersistenceIntroduced in SDK 3.7.4: PlayerData/PlayerObject API
DynamicsIntroduced in SDK 3.10.0: PhysBones, Contacts, VRC Constraints for Worlds
Web LoadingString/Image download, VRCJson, VRCUrl constraints
Templates17 templates (interactions, sync patterns, persistence, editor utilities, and more)

unity-vrc-world-sdk-3

World-level scene setup, component placement, and optimization.

AreaContent
Scene SetupVRC_SceneDescriptor, spawn points, Reference Camera
ComponentsVRC_Pickup, Station, ObjectSync, Mirror, Portal, CameraDolly
LayersVRChat reserved layers and collision matrix
PerformanceFPS targets, Quest/Android limits, optimization checklist
LightingBaked lighting best practices
Audio/VideoSpatial audio, video player selection (AVPro vs Unity)
UploadBuild and upload workflow, pre-upload checklist

<h2 id="rules">Rules</h2>

Rules are constraint files that guide AI agents before code generation.

Rule FileContent
udonsharp-constraintsBlocked C# features, code generation rules, attributes, syncable types
udonsharp-networkingOwnership model, sync modes, anti-patterns, NetworkCallable constraints
udonsharp-sync-selectionSync decision tree, data budget targets, 6 minimization principles

Networking rule: A parameterless public method without a leading _ is a legacy network entry. Prefix local-only/custom public methods with _, and use [NetworkCallable] to expose only intentional entries. Confirm NetworkCalling.InNetworkCall before reading NetworkCalling.CallingPlayer; authorize the caller separately from receiver ownership. Never use instance master as a security or access-control boundary.

Sync Decision Tree

Q1: Visible to other players?
    No  --> No sync (0 bytes)
    Yes --> Q2

Q2: Late Joiner needs current state?
    No  --> Events only (0 bytes)
    Yes --> Q3

Q3: Continuous change? (position/rotation)
    Yes --> Continuous sync
    No  --> Manual sync (minimal [UdonSynced])

Target: < 50 bytes per behaviour. Small-medium worlds: < 100 bytes total.


<h2 id="hooks">Validation Hooks</h2>

A PostToolUse hook checks every .cs file the agent writes or edits and reports what it finds back to the agent.

Claude Code plugin — registered automatically. The plugin runs the Bash validator, so bash must be on PATH. On Windows, Git Bash is enough; jq is not needed.

skills CLI or git clone — register the hook yourself. For Claude Code, add this to .claude/settings.json:

{
  "hooks": {
    "PostToolUse": [
      {
        "matcher": "Write|Edit",
        "hooks": [
          {
            "type": "command",
            "command": "bash \"$CLAUDE_PROJECT_DIR/.claude/skills/unity-vrc-udon-sharp/hooks/validate-udonsharp.sh\""
          }
        ]
      }
    ]
  }
}

To use the PowerShell validator, set the command to pwsh -NoProfile -File "$CLAUDE_PROJECT_DIR/.claude/skills/unity-vrc-udon-sharp/hooks/validate-udonsharp.ps1".

CategoryCheckSeverity
Context-sensitive FeaturesList<T>, LINQ, lambdas (blocked in Udon runtime; may be valid in Editor-evaluated field initializers)WARNING
Blocked Runtime Featuresasync/await, try/catch, coroutinesERROR
Blocked PatternsAddListener(), StartCoroutine()ERROR
Networking[UdonSynced] without RequestSerialization()WARNING
Networking[UdonSynced] without Networking.SetOwner()WARNING
Sync Bloat6+ synced variables per behaviourWARNING
Sync Bloatint[]/float[] sync (recommend smaller types)WARNING
Config MismatchNoVariableSync mode with [UdonSynced] fieldsERROR
Config MismatchNone mode with [NetworkCallable] or a SendCustomNetworkEvent call on itself (the event is never delivered)WARNING

Supports both Bash (validate-udonsharp.sh) and PowerShell (validate-udonsharp.ps1).

Findings reach the agent as additional context on the edit, and the same lines are printed to stderr for manual runs. The hook never blocks an edit.

When a validator cannot run, for example because it cannot read the hook input or the file, it reports VALIDATOR-WARNING: validation skipped (<reason>); the hook does not silently claim that validation succeeded.

Codex edits files with apply_patch, which passes the patch text to the hook instead of a file path. Both validators accept that input and check each .cs file named in the patch.


SDK Versions

Active support / last verified: VRChat SDK 3.10.6

From v4.0.0 onward, the support policy is latest stable SDK only; the support target moves to a new stable release only after this repository verifies it. A new stable release is not supported automatically. Current last verified target: 3.10.6.

The table below keeps historical feature-introduction notes for migration reference. SDK 3.7.1-3.10.5 entries are historical information only; they are not active support or validation targets for this Skill. This is the Skill's support boundary, not a statement about VRChat's own SDK policy.

SDK VersionKey FeaturesStatus
3.7.1StringBuilder, Regex, System.RandomHistorical
3.7.4Persistence API (PlayerData / PlayerObject)Historical
3.7.6Multi-platform Build & Publish (PC + Android)Historical
3.8.0PhysBone dependency sorting, Force Kinematic On RemoteHistorical
3.8.1[NetworkCallable] parameterized events, Others/Self targetsHistorical
3.9.0Camera Dolly API, Auto Hold pickupHistorical
3.10.0VRChat Dynamics for Worlds (PhysBones, Contacts, VRC Constraints)Historical
3.10.1Bug fixes, stability improvementsHistorical
3.10.2EventTiming.PostLateUpdate/FixedUpdate, PhysBones fixes, shader time globalsHistorical
3.10.3VRCPlayerApi.isVRCPlus, VRCRaycast (avatar), Mirror render-order fixHistorical
3.10.4VRCTween, Box-shaped Contacts, Global Avatar PhysBone Colliders, world VRCPhysBoneCollider Udon access, DataList/DataDictionary capacity APIsHistorical
3.10.5WorldQualitySettings, writable VRCQualitySettings, Assembly Version Defines, Pickup Outline Renderers, Pipeline Manager validationHistorical
3.10.6VRCBillboard, VRCVelocityTracker, VRCPlacementZone, constraint source methods and Smoothing Factor, Interact Outline Renderers, UdonSharp enum-comparison and named-argument fixesActive / Last verified

Note: Before publishing, confirm that the project uses an SDK version currently supported by VRChat.


Official Resources

ResourceURL
VRChat Creators Docshttps://creators.vrchat.com/
UdonSharp API Referencehttps://udonsharp.docs.vrchat.com/
VRChat Forums (Q&A)https://ask.vrchat.com/
VRChat Canny (Bugs/Features)https://feedback.vrchat.com/
VRChat Community GitHubhttps://github.com/vrchat-community

<h2 id="community-contributors">Community Contributors</h2>

This project has benefited from people who took the time to file concrete Issues and help verify the fixes. Thank you to:

<!-- community-contributors:start --> <p> <a href="https://github.com/KatanoShingo" title="@KatanoShingo"><img src="https://github.com/KatanoShingo.png?size=64" width="64" height="64" alt="@KatanoShingo"></a> <a href="https://github.com/Guribo" title="@Guribo"><img src="https://github.com/Guribo.png?size=64" width="64" height="64" alt="@Guribo"></a> <a href="https://github.com/haru0416-dev" title="@haru0416-dev"><img src="https://github.com/haru0416-dev.png?size=64" width="64" height="64" alt="@haru0416-dev"></a> <a href="https://github.com/Yodokoro" title="@Yodokoro"><img src="https://github.com/Yodokoro.png?size=64" width="64" height="64" alt="@Yodokoro"></a> <a href="https://github.com/tetradice" title="@tetradice"><img src="https://github.com/tetradice.png?size=64" width="64" height="64" alt="@tetradice"></a> <a href="https://github.com/owlboy" title="@owlboy"><img src="https://github.com/owlboy.png?size=64" width="64" height="64" alt="@owlboy"></a> <a href="https://github.com/nomlasvrc" title="@nomlasvrc"><img src="https://github.com/nomlasvrc.png?size=64" width="64" height="64" alt="@nomlasvrc"></a> <a href="https://github.com/ureishi" title="@ureishi"><img src="https://github.com/ureishi.png?size=64" width="64" height="64" alt="@ureishi"></a> <a href="https://github.com/irucaVRC" title="@irucaVRC"><img src="https://github.com/irucaVRC.png?size=64" width="64" height="64" alt="@irucaVRC"></a> </p> <!-- community-contributors:end -->
<h2 id="contributing">Contributing</h2>

Issues are welcome -- bug reports and knowledge requests help improve this project.

Pull Requests are not accepted -- all fixes and updates are made by the maintainer.

See CONTRIBUTING.md for details.


<h2 id="disclaimer">Disclaimer</h2>

This project is not affiliated with VRChat Inc. No official endorsement, partnership, or association is implied.

"VRChat", "UdonSharp", "Udon" and related names/logos are trademarks of VRChat Inc. All trademarks belong to their respective owners.

This repository is a personal knowledge base for AI coding agents to generate correct UdonSharp code. It does not distribute any part of the VRChat SDK or UdonSharp compiler.

Accuracy

  • Content is provided "AS IS" without warranty. See LICENSE.
  • This is a personal project. Errors, outdated information, or incomplete content may exist. Always verify against official VRChat documentation.
  • The author assumes no liability for issues caused by this repository (build errors, upload rejections, unexpected world behavior, etc.).
  • Active SDK support is limited to 3.10.6, the last verified target. Older version entries are historical migration information, not a promise to test or fix those SDKs. Behavior may change with new VRChat releases.

AI-Assisted Creation

This knowledge base was created and maintained with AI tool assistance (Claude, Gemini, Codex). All content has been reviewed, but AI-generated portions may contain subtle errors. Use at your own risk.


License

This project is licensed under the MIT License. See LICENSE for details.

Fork, modify, and redistribute freely under MIT License terms. This license applies to the documentation, rules, templates, and hooks in this repository. It does not grant any rights to VRChat's SDK, UdonSharp compiler, or other VRChat intellectual property.

Agent Skills Vrc Udon alternatives

View more →

Similar agent skills in Coding Agents, ranked by GitHub stars. Compare licence, recent activity and scan status before you choose.

NameStarsLicenceLast updatedScan
Agent Skills Vrc Udon (this page)
niaka3dayo
342MITOct 30, 2026Scanned, no flagged issues
Rea
morluto
417kMITNov 1, 2026Scanned, no flagged issues
Agent Skills
addyosmani
112kMITOct 31, 2026Scanned, no flagged issues
I Have Adhd
ayghri
60kMITOct 19, 2026Scanned, no flagged issues
Open Code Review
alibaba
49kApache-2.0Oct 30, 2026Scanned, no flagged issues
Agent Skills For Context Engineering
muratcankoylan
18kMITOct 12, 2026Scanned, no flagged issues