Skip to content

Latest commit

History

1,468 Commits

Folders and files

NameName
Last commit message
Last commit date

Repository files navigation

UdonSharp CE

Community Edition fork of UdonSharp — higher-level C# for VRChat Udon.

Udon has no generics, no collections, and gives you no feedback when it silently discards a synced write from a non-owner. CE adds runtime libraries and editor tooling that close those gaps while staying inside the UdonSharp supported subset.

📖 Documentation · Community Edition overview


What CE adds

  • Collections where Udon has noneCEList<T>, CEDictionary, data bridges and JSON helpers.
  • Compile-time analysis of networking correctness — VRChat discards synced writes from non-owners silently, so the bug surfaces hours later in a live instance as "the score is wrong on one client". CE's analyzers catch that class of mistake at compile time, along with unserialized manual-sync behaviours, saturated serialization rates, and ownership mistakes.
  • Declared sync authority[Sync(Authority.Owner)] vs [Sync(Authority.Predicted)] states at the field who may write it, so predict-and-reconcile code is no longer reported as a bug.
  • Networked physics — a rollback-based framework with input streaming and snapshots.
  • Performance tooling — an ECS-lite world, pooling, grids, LOD and batching, plus compiler optimizers.

Modules

ModuleStatusWhat it provides
CE.CoreImplementedCallback helpers and compiler-facing attributes
CE.DataImplementedCEList, CEDictionary, data bridges, JSON helpers
CE.DevToolsImplementedRuntime logger, debug console, profiler
CE.PerfImplementedECS-lite world, pooling, grids, LOD, batching
CE.ProcgenImplementedDeterministic RNG, noise, dungeon and WFC tools
CE.GraphBridgeImplementedAttributes and generators for graph nodes
Editor ToolsImplementedAnalyzers, optimizers, inspector, menu tools
CE.NetPhysicsImplemented (beta)Networked physics framework
CE.NetPartialSync/RPC annotations, analysis helpers, rate limiting
CE.PersistencePartialPlayer data models, validation, size estimation
CE.AsyncPartialUdonTask; Delay/Yield awaits work — result-awaiting is not wired

Status is tracked in UDONSHARP_CE_FEATURES.md. Please read the status column before depending on a module — Partial means exactly what it says.

Install

Add the VPM listing in the VRChat Creator Companion:

https://vrc.furroxide.dev/vpm/index.json

Then add UdonSharp CE to your world project. See the install guide for details.

Note: CE replaces UdonSharp in a project — do not install both.

Relationship to upstream

This is a fork of MerlinVR/UdonSharp by Merlin, and carries its full history. CE tracks upstream and keeps the compiler's behaviour compatible; the CE additions live under Packages/com.merlin.UdonSharp/{Runtime/Libraries,Editor}/CE/.

Report CE issues here. For bugs in UdonSharp itself, or in the VRChat SDK, use vrchat-community/UdonSharp instead — Upstream-Risk-Changes documents where CE diverges.

Contributing

See CONTRIBUTING.md. There is no CLA.

License

MIT. UdonSharp is © Merlin and UdonSharp Contributors, and © VRChat Inc.; CE additions are © UdonSharp CE Contributors. All original copyright notices are retained.

About

Community Edition fork of UdonSharp — generics and collections where Udon has none, rollback netcode for networked physics, and compile-time analysis of ownership and sync correctness.

Topics

Resources

Code of conduct

Contributing

Security policy

Stars

2 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages