vrc-udon

Teach VRChat Udon networking patterns for ownership and state synchronization.

Updated Aug 23, 2026
One-click install
npx skills add https://github.com/AlexanderStephenThompson/claude-hub --skill vrc-udon
Or copy as Structured Prompt for Agent
Please help me install this Agent Skill.
Skill: vrc-udon
Source: https://github.com/AlexanderStephenThompson/claude-hub/tree/main/world-building/VR%20Chat/skills/vrc-udon
Command: npx skills add https://github.com/AlexanderStephenThompson/claude-hub --skill vrc-udon

SYSTEM DOCUMENTATION & REQUIREMENTS

💡 This Skill includes references (resource) and assets (resource) components.

What problem does it solve?

VRChat Udon and UdonSharp projects require careful handling of ownership and network synchronization to ensure consistent state across all players. This skill provides patterns and best practices for reliable networking, ownership transfer, deserialization handling, and late-joiner state restoration.

Core Features & Use Cases

  • Ownership and synchronization patterns using UdonSharp
  • Deserialization handling, late-joiner restoration
  • Event-driven communication and common anti-patterns

Quick Start

Show a VRChat Udon example where Interact() transfers ownership, toggles a synced flag, and calls RequestSerialization, with OnDeserialization updating all visuals and a late-joiner receiving the current state.

Frequently Asked Questions about vrc-udon

High-intent search queries and answers about installing and using this skill.

FAQPage Schema
How do I transfer network ownership and sync variables in VRChat Udon?

In VRChat Udon, transfer ownership using SetOwner, update the synced variable, and call RequestSerialization to broadcast state changes across the network to all connected players.

How does OnDeserialization work for VRChat Udon synced variables?

OnDeserialization in VRChat Udon triggers on non-owning clients when synced variables update, allowing you to refresh visuals and local state to match the newly received network data.

What is the best way to handle late joiners in VRChat UdonSharp?

Late-joiner restoration in VRChat UdonSharp relies on synced variables; when a new player joins, the network automatically syncs the current state, and OnDeserialization updates their local visuals.

When do I need to call RequestSerialization in UdonSharp networking?

Call RequestSerialization in UdonSharp networking after modifying any synced variable on the owning client to push the updated state to all other connected players in the VRChat instance.

What are common VRChat Udon networking anti-patterns to avoid?

Common VRChat Udon networking anti-patterns include frequent serialization requests, writing synced variables without ownership checks, and neglecting to update visuals during OnDeserialization.