World Utilities
io.vrctools.world - values, converters, applicators and UI components that remove most of the boilerplate from VRChat world creation.
World Utilities is a toolbox of UdonSharp behaviours for the things nearly every world needs: settings menus, toggles, sliders, synced switches, saved preferences, remote images, teleports and trigger zones. Everything is configured from the inspector - no scripting required - but every piece is also a plain UdonSharp behaviour you can talk to from your own code.
The mental model
Almost everything in the package revolves around values: small components that hold a single piece of state (a boolean, a color, a float, …) and announce whenever it changes. Other components either write to values or react to them:
┌──────────────┐ writes ┌──────────────┐ notifies ┌──────────────┐ applies ┌──────────────────┐
│ UI / Preset │────────▶│ Value │─────────▶│ Applicator │─────────▶│ objects, │
│ Interaction │ │ local/sync/ │ │ │ │ materials, │
└──────────────┘ │ persisted │ └──────────────┘ │ animators, UI... │
└──────┬───────┘ └──────────────────┘
│ notifies ┌──────────────┐ writes ┌──────────────┐
└───────────▶│ Converter │─────────▶│ another Value│──▶ ...
└──────────────┘ └──────────────┘
- Values hold state. They come in three kinds: local (per player), synchronized (shared by the instance) and persisted (per player, saved across visits).
- Converters derive new values from existing ones - combine two booleans, do math, shift a color, download an image from a URL.
- Applicators push a value into the world: toggle objects, set material or animator parameters, swap materials, fire events.
- UI components connect Unity UI controls (toggles, sliders, input fields, labels, color pickers) to values in both directions.
- Player components and utilities cover interactions, teleports, trigger volumes and event fan-out.
Because each piece does one job, you can chain them freely: a Persisted Float driven by a Slider can feed a Float Math Converter whose result is applied to a material and displayed by a Label.
Installation
Add the VRCTools repository to Creator Companion as described in Getting Started and install VRCTools - World Utilities. The following dependencies are installed automatically:
| Package | Version | Purpose |
|---|---|---|
com.vrchat.worlds |
^3.7.0 |
VRChat Worlds SDK |
io.vrctools.event |
^0.2.0 |
Event system used by values to notify listeners |
io.vrctools.common |
^0.1.0 |
Shared helpers used by VRCTools packages |
Component catalog
Values
| Type | Local | Synchronized | Persisted | Typical use |
|---|---|---|---|---|
| Boolean | ✓ | ✓ | ✓ | on/off switches, feature flags |
| Color | ✓ | ✓ | ✓ | light & material colors |
| Float | ✓ | ✓ | ✓ | volume, brightness, intensities |
| Int | ✓ | ✓ | ✓ | option selection, counters, limits |
| String | ✓ | ✓ | ✓ | announcements, names, free text |
| URL | ✓ | ✓ | image & video links | |
| Vector3 | ✓ | ✓ | ✓ | positions, directions |
| Texture2D | ✓ | downloaded or assigned images |
Converters, applicators & UI
| Category | Components |
|---|---|
| Converters | Boolean Operation, Color Adjustment, Color Component, Float Math, Int Math, Texture2D Loader |
| Applicators | Object Toggle, Material Swap, Material Property, Animator Parameter, Raw Image, Boolean Event |
| Presets | Presets for Color, Float, Int, String, URL and Vector3 |
| UI | Toggle, Toggle Button, Slider, Labels, Input Fields, Color Picker |
| Player | Interact Trigger, Teleport Target, Trigger Volume |
| Utilities | Event Broadcaster, Fake Skybox shader |