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:
- Plain values like
42,true, or custom text - VRChat OSC addresses like
/avatar/parameters/Health - Inner placeholders like
[[MediaInfo:Duration]] - Full placeholders like
{{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.
- A now-playing line with fallback text when nothing is playing
- A song progress bar with a moving head character
- A VRChat status line driven by hotkeys or avatar parameters
- A heart-rate or tracker battery overlay
- Cleaned-up text blocks using uppercase, replace, pad, truncate, or fallback logic
- Numeric HUD values clamped, mapped, rounded, or randomized without hand-writing placeholders
- Animated text sections like marquee, blink, typewriter, or rotating messages
- Conditional templates such as AFK status, stream status, or context-aware HUD text
Some of the newly exposed simple-editor workflows include:
- Turning any source into uppercase, lowercase, title case, reversed text, trimmed text, capitalized text, text length, or word count
- Replacing text fragments inside a live source before displaying it
- Truncating long media titles or other dynamic values to fit tight chatbox layouts
- Padding values like HP, combo counters, or indices for cleaner HUD-style formatting
- Falling back to safe text when a source is empty
- Clamping or mapping numeric values from one range into another directly inside the editor
- Generating random integers or floats from static values or live sources
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:
๐ต Media Info โ Display currently playing media information
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 |
๐ Time โ Date, time, and duration utilities
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 |
๐ค Text โ Text manipulation and animations
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 |
๐ข Number โ Math operations and random numbers
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 |
๐งช Expression โ Logic and math expressions
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 |
โค๏ธ Pulsoid โ Heart rate monitoring
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 |
๐ก OSC Data โ Read avatar OSC parameters
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 |
๐ฎ OpenVR Trackers โ VR tracker information
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.
โ๏ธ Process โ Monitor running processes
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 |
โจ๏ธ Hotkey โ Keyboard shortcuts
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) |
โฑ๏ธ Stopwatch โ Hotkey-controlled timers
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:
- Start/Toggle โ Start or pause the stopwatch
- Pause โ Pause without resetting
- Reset โ Reset to zero (keeps running if active)
- Stop โ Reset and pause completely
- Reset + Start โ Reset to zero and immediately start (perfect for afk detection!)
๐ Shortcut โ Custom placeholder shortcuts
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 |
- ๐ฃ๏ธ Speech to Text & Translation โ Speak and let your words flow into the chatbox, automatically translated
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 packageDistributed under the GPL-3.0 License.
Made with โค๏ธ for the VRChat Community


