Your ultimate VRChat OSC companion
A modern desktop toolkit for VRChat OSC with a block-based chatbox editor for everyone, a full advanced editor for power users, avatar parameter control, and real-time media integration.
ADVOSC now includes a block-based chatbox editor designed to make the placeholder system approachable for everyone. You can build rich VRChat chatbox layouts visually, without needing to memorize placeholder syntax first.
| Why it is easy to use | What it gives you |
|---|---|
| Visual block workflow | Build your message by adding blocks instead of writing raw templates by hand |
| Live preview | See the resulting chatbox output immediately while editing |
| Reorderable layout | Move blocks up or down to shape the final message structure quickly |
| Safe by default | The editor generates the correct placeholder template for you |
| Same real engine underneath | It still uses ADVOSC's full placeholder system, so you do not lose power by starting simple |
The simple editor currently includes 30 block types across the most useful chatbox workflows:
| Category | Blocks |
|---|---|
| Basic | Text, Text Transform, Text Replace, Text Truncate, Text Pad, Text Fallback, Current Time, New Line |
| Media | Now Playing, Song Progress, Heart Rate |
| Display | Progress Bar, Health Bar, Star Rating, Toggle Text, Number Format |
| Animate | Marquee / Scroll, Bounce, Typewriter, Blink, Cycle Texts |
| Logic | Condition |
| VRChat | Hotkey State, Avatar Param, VR Tracker |
| Tools | Stopwatch, Session Time, Shortcut, Number Calc, Random Number |
Most source-driven blocks can read from more than one kind of value. That means you can build complex chatbox outputs without being locked to raw OSC parameters.
Supported source styles include:
42, true, or custom text/avatar/parameters/Health[[MediaInfo:Duration]]{{Shortcut;Time}}This makes the simple editor good enough for real everyday templates, not just beginner demos. You can mix media data, tracker info, heart rate, stopwatch values, hotkeys, conditions, reusable shortcuts, text cleanup, and numeric utilities in one visual flow.
It also now covers more cleanup and utility workflows directly in the UI, including text transforms, text replacement, truncation, padding, fallback values, numeric clamping, range mapping, rounding, absolute values, and random ranges.
Some of the newly exposed simple-editor workflows include:
When you want direct control, ADVOSC still includes the full advanced editor. It is ideal for users who prefer writing placeholders manually, composing custom expressions, or fine-tuning complex templates line by line.
Both chatbox editors are powered by the same 12 chatbox modules and the same placeholder engine. Start with the simple editor, switch to the advanced editor whenever you want, and keep using the exact same underlying system.
The simple editor covers the most common combinations visually. The module list below shows the full engine that powers both editing styles.
Click to expand each module for details:
Display real-time information about your currently playing media with synced lyrics support.
| Placeholder | Output | Description |
|---|---|---|
{{MediaInfo;Status}} |
Playing |
Current playback status (Playing, Paused, Stopped) |
{{MediaInfo;Track}} |
Never Gonna Give You Up |
Currently playing track title |
{{MediaInfo;Artist}} |
Rick Astley |
Artist name |
{{MediaInfo;Album}} |
Whenever You Need Somebody |
Album name |
{{MediaInfo;Position}} |
120000 |
Current position in milliseconds |
{{MediaInfo;Duration}} |
300000 |
Total duration in milliseconds |
{{MediaInfo;AppName}} |
Spotify |
Media player application name |
{{MediaInfo;Lyric}} |
Never gonna give you up |
Current synced lyric line |
Comprehensive time and date formatting with timezone support.
| Placeholder | Output | Description |
|---|---|---|
{{Time;NowMillis}} |
1700000000000 |
Current time in milliseconds (Unix epoch) |
{{Time;Now;HH:mm}} |
14:30 |
Current time with custom format |
{{Time;Now;yyyy-MM-dd}} |
2023-11-14 |
Current date with custom format |
{{Time;Timezone}} |
America/New_York |
System timezone identifier |
{{Time;UTCOffset}} |
+00:00 |
Current UTC offset |
{{Time;FormatDuration;3600000;Short}} |
1h 0m 0s |
Format milliseconds as duration |
{{Time;ElapsedMillis;...}} |
5000 |
Elapsed time since timestamp |
Transform, build, format, and animate text with a large set of utilities.
| Placeholder | Output | Description |
|---|---|---|
{{Text;Upper;hello}} |
HELLO |
Convert to uppercase |
{{Text;Lower;HELLO}} |
hello |
Convert to lowercase |
{{Text;Title;hello world}} |
Hello World |
Convert to title case |
{{Text;Trim; hello }} |
hello |
Remove leading and trailing whitespace |
{{Text;Replace;cat;dog;cat nap}} |
dog nap |
Replace all matching text |
{{Text;Length;hello}} |
5 |
Get text length |
{{Text;Reverse;hello}} |
olleh |
Reverse text |
{{Text;Repeat;3;Hi }} |
Hi Hi Hi |
Repeat text N times |
{{Text;Slice;0;5;Hello World}} |
Hello |
Extract substring |
{{Text;Format;Rounded;text}} |
โฃโโงโฃ |
Apply special formatting |
{{Text;Format;Bold;text}} |
๐ญ๐๐ฑ๐ญ |
Apply one of the newer visual styles |
{{Text;Truncate;10;Long text...}} |
Long text... |
Truncate with ellipsis |
{{Text;Build;ProgressBar;30;100;10;โ;โ;โ}} |
โโโโโโโโโโ |
Build a progress bar with an optional head character |
{{Text;Build;HealthBar;3;5;โฅ;โก}} |
โฅโฅโฅโกโก |
Build a hearts / health style meter |
{{Text;Build;StarRating;3;5;โ
;โ}} |
โ
โ
โ
โโ |
Build a rating display |
{{Text;Build;Toggle;true;ON;OFF}} |
ON |
Map truthy / falsy values to text |
{{Text;NumberFormat;2;.;,;1234.5}} |
1,234.50 |
Format numeric text for display |
{{Text;Animate;Marquee;...}} |
scrolling |
Animated marquee effect |
{{Text;Animate;Typewriter;Hello}} |
H โ He โ Hel |
Reveal text over time |
{{Text;Animate;Blink;ON;OFF}} |
ON โ OFF |
Alternate between two texts |
{{Text;Animate;EachOne;A;B;C}} |
A โ B โ C |
Cycle through items |
Mathematical operations and random number generation.
| Placeholder | Output | Description |
|---|---|---|
{{Number;Random;Int;1;100}} |
42 |
Random integer between min and max |
{{Number;Random;Float;0;1}} |
0.7531 |
Random float between min and max |
{{Number;Clamp;150;0;100}} |
100 |
Clamp value between min and max |
{{Number;Map;5;0;10;0;100}} |
50 |
Map value from one range to another |
{{Number;Floor;3.7}} |
3 |
Round down |
{{Number;Ceil;3.2}} |
4 |
Round up |
{{Number;Round;3.5}} |
4 |
Round to nearest integer |
{{Number;Abs;-5}} |
5 |
Absolute value |
Evaluate conditions and mathematical expressions.
| Placeholder | Output | Description |
|---|---|---|
{{Expr;5 > 3;Yes;No}} |
Yes |
Conditional evaluation |
{{Expr;Math.sqrt(16)}} |
4 |
Math expressions |
{{Expr;Math.sin(Math.PI/2)}} |
1 |
Trigonometric functions |
{{Expr;[[MediaInfo:Status]]=='Playing';๐ต;โธ๏ธ}} |
๐ต |
Dynamic conditions |
Display real-time heart rate data from Pulsoid.
| Placeholder | Output | Description |
|---|---|---|
{{Pulsoid;TOKEN;HeartRate}} |
75 |
Current heart rate |
{{Pulsoid;TOKEN;IsOnline}} |
true |
Connection status |
{{Pulsoid;TOKEN;AverageHR;300}} |
72 |
Average HR over N seconds |
{{Pulsoid;TOKEN;MaxHR}} |
120 |
Session maximum heart rate |
{{Pulsoid;TOKEN;MinHR}} |
55 |
Session minimum heart rate |
Access raw OSC parameter values from your avatar.
| Placeholder | Output | Description |
|---|---|---|
{{OSCData;/avatar/parameters/AFK}} |
true |
Read any OSC parameter value |
{{OSCData;/avatar/parameters/VelocityX}} |
0.5 |
Read float parameters |
Monitor your VR trackers' battery and status.
| Placeholder | Output | Description |
|---|---|---|
{{OVRTrackers;BatteryLevel;finder}} |
85 |
Battery level (0-100) |
{{OVRTrackers;IsCharging;finder}} |
true |
Charging status |
{{OVRTrackers;ModelNumber;finder}} |
Vive Tracker 3.0 |
Tracker model |
{{OVRTrackers;SerialNumber;finder}} |
LHR-12345678 |
Serial number |
{{OVRTrackers;IsExists;finder}} |
true |
Check if tracker exists |
Finder can be device index, serial number, device class, or model number.
Track process information and session times.
| Placeholder | Output | Description |
|---|---|---|
{{Process;IsRunning;VRChat.exe}} |
true |
Check if process is running |
{{Process;StartedAt;VRChat.exe}} |
1700000000000 |
Process start timestamp |
{{Process;SessionTime;VRChat.exe}} |
3600000 |
Time since process started |
Create interactive hotkey-triggered content.
| Placeholder | Output | Description |
|---|---|---|
{{Hotkey;IsPressed;MyHotkey;1000}} |
true |
Check if pressed within timeout |
{{Hotkey;IsToggled;MyHotkey}} |
false |
Toggle state (press to switch) |
Create stopwatches controlled by hotkeys from the Hotkey module. Perfect for afk detection, session tracking, or any timed activities.
| Placeholder | Output | Description |
|---|---|---|
{{Stopwatch;ElapsedMs;MyTimer}} |
125000 |
Elapsed time in milliseconds |
{{Stopwatch;IsRunning;MyTimer}} |
true |
Whether stopwatch is actively running |
{{Stopwatch;IsPaused;MyTimer}} |
false |
Whether stopwatch is paused |
Hotkey Actions:
Define your own reusable placeholder shortcuts.
Create custom shortcuts that expand to complex placeholder combinations. Perfect for frequently used patterns!
๐ Want to master placeholders? Check out our Placeholder Learning Guide for a beginner-friendly, in-depth tutorial on the two-layer placeholder system with real examples!
Once your chatbox is set up, ADVOSC also gives you direct control over avatar parameters with tools built for real VRChat use.
| Feature | Description |
|---|---|
| ๐ Parameter Locking | Lock toggles to prevent accidental changes |
| ๐ Link & Redirect | Route one parameter's value to another |
| โจ Animate Parameters | Create breathing effects, color shifts, and more |
Save, reuse, and restore complete avatar parameter states in a few clicks.
| Feature | Description |
|---|---|
| ๐พ Save Profiles | Capture outfits, toggles, props, and moods |
| โก Quick Load | Restore any profile with a single click |
| ๐ค Export & Import | Share profiles or back them up as JSON |
| ๐ Search & Filter | Find profiles by name or filter by avatar |
This project uses Bun, Electron, Svelte 5, and Rust.
# Install dependencies
bun install
# Start development server
bun run dev
# Build for production
bun run build
# Create distributable
bun run package
Distributed under the GPL-3.0 License.
Made with โค๏ธ for the VRChat Community