TsVRC Core
Structured initialization, dependency wiring, and editor codegen, so your world scripts extend a typed base class instead of hand-wiring references every time you add a behaviour.
com.tsvrc.core
1using Tsvrc.Core.Generated;23public class HelloWorld : TsBehaviour4{5 protected override void TsStart()6 {7 LogInfo("HelloWorld constructed.");8 _ts.Scoreboard.SetTrigger("Refresh");9 _ts.Memory.SetInt("greetings", 1);10 }11}
Every UdonSharp script starts on its own, with no guarantee of what order things happen in and no easy way to reach another script elsewhere in your world. Most creators solve this by hand: dragging references between objects in the Inspector, then hoping everything is still connected when the world loads.
TsVRC gives every script one shared reference, _ts, to reach anything else in your project. Setup happens in an order you control, and TsVRC works out which of your own classes to use ahead of time, in the Unity editor. See how TsVRC fits together for the full shape.
Six generated pieces cover most of what a world needs. Register or point at something once, then reach it the same way from every behaviour.
Register a TsvrcBehaviour once and TsVRC initializes it for you, in a fixed order, through TsStart, instead of you wiring startup by hand.
Details →Point at a scene object once and every behaviour can read it back by name, instead of dragging the same reference into a dozen inspector slots.
Details →A shared key-value store with ephemeral, persistent, and synced tiers, so getting a value to every player doesn't mean writing your own networking.
Details →Spawn a prefab on demand with a generated _ts.Create... call, for anything that doesn't need to stay in sync across players.
Details →Pre-instantiate and wire exactly the instances a networked prefab needs, at edit time, because VRChat can't sync an object created while the world is running.
Details →One behaviour per project standing in for the running world instance itself, found and wired automatically, so instance-level checks like "am I the master" have one obvious home.
Details →TsVRC is not affiliated with or endorsed by VRChat Inc.
It's also still a work in progress. Every part of it has its own tests, and we run them before every release, but we can't promise we've caught every case. Keep a backup of your project before adding TsVRC to it or updating it, just to be safe. If something breaks on your end, we can't fix it for you, but we'd really like to know about it. Open an issue on GitHub and we'll take a look.
Add TsVRC through VCC, then follow the getting-started guide to have a behaviour running in play mode.