Skip to content

TheArmagan/advosc

Folders and files

NameName
Last commit message
Last commit date

Latest commit

ย 

History

85 Commits
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 

Repository files navigation

ADVOSC Logo

ADVOSC

Your ultimate VRChat OSC companion

Discord Platform Downloads License

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.


โœจ Features

๐Ÿ’ฌ Simple Chatbox Editor

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.

Simple Chatbox Editor

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

๐Ÿง  Smart Sources, Not Just OSC

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.

โšก Examples You Can Build Quickly

  • 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

โœ๏ธ Advanced Chatbox Editor

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.

Advanced Chatbox Editor


๐Ÿงฉ Chatbox Modules

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.

OVR Trackers Module

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!


๐ŸŽญ Beyond Chatbox: Avatar OSC Control

Once your chatbox is set up, ADVOSC also gives you direct control over avatar parameters with tools built for real VRChat use.

Avatar OSC Parameters

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

Parameter Linking Parameter Animation


๐Ÿ‘— Beyond Chatbox: Avatar Profiles

Save, reuse, and restore complete avatar parameter states in a few clicks.

Avatar Profiles

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

๐Ÿšง Coming Soon

  • ๐Ÿ—ฃ๏ธ Speech to Text & Translation โ€” Speak and let your words flow into the chatbox, automatically translated

๐Ÿ› ๏ธ Development

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

๐Ÿ“„ License

Distributed under the GPL-3.0 License.


Made with โค๏ธ for the VRChat Community