World Utilities

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

Where to go next