-
Notifications
You must be signed in to change notification settings - Fork 1
Options
Everything on the Options page, with its default. Config keys are
given so a setting can be found in config.json.
The connection to VRChat. This is the only part that must be right for anything to appear in the game.
| Setting | Key | Default | What it does |
|---|---|---|---|
| Send to VRChat | send_to_vrchat |
off | Master switch. Off means nothing is sent at all |
| Target IP | osc_ip |
127.0.0.1 |
Where VRChat is listening |
| Target port | osc_port |
9000 |
VRChat's OSC input port |
| Send interval | interval_sec |
5 sec | How often the assembled message goes out |
| Instant send | osc_instant_send |
on | Push a changed message immediately instead of waiting for the next tick |
| Slim chatbox | slim_chatbox |
on | Narrow bar instead of the big box |
Instant send always stays inside VRChat's rate limit; a message that would be too soon is postponed, not dropped.
Slim chatbox appends an invisible control suffix that makes VRChat render the narrow bar. The suffix always stays at the end — if the text is too long, the text is trimmed rather than the suffix dropped, otherwise the big box would suddenly come back.
| Setting | Key | Default | What it does |
|---|---|---|---|
| Native OSCQuery | oscquery_enabled |
on | Advertise the app over mDNS so VRChat finds it automatically |
With OSCQuery on, VRChat negotiates the ports itself and the fixed port
numbers above stop mattering. Requires zeroconf; the toggle is
disabled when it is missing.
Receiving, rather than sending. Needed by the Avatar parameter and External OSC blocks in Advanced Mode.
| Setting | Key | Default | What it does |
|---|---|---|---|
| Receive avatar parameters | osc_input_enabled |
off | Bind a port and listen |
| Port | osc_input_port |
9001 |
VRChat's default output port |
| External OSC target IP | osc_ext_ip |
127.0.0.1 |
Default target for the External OSC out block |
| External OSC target port | osc_ext_port |
9002 |
same |
Off by default because it binds a UDP port, and 9001 is contested territory — other OSC tools want it too. A port that is already taken is explained in the status line rather than crashed on.
The external target is kept separate from the VRChat target on purpose: pointing one somewhere else must not be able to break the chatbox.
| Setting | Key | Default | What it does |
|---|---|---|---|
| Watch the keyboard | hotkey_input_enabled |
off | Lets the Get Hotkey block react to a combination pressed anywhere |
It watches which keys are down and never swallows them or records what you type — but it is still the keyboard, so it stays off until switched on.
- Windows: a low-level hook, nothing to install.
-
Linux: reads
/dev/inputthroughpython-evdev, which usually means your user has to be in theinputgroup:
sudo usermod -aG input $USER
# log out and back in| Setting | Key | Default | What it does |
|---|---|---|---|
| Theme | theme |
default |
One of eight presets |
| Colour overrides | theme_colors |
(none) | Per-theme, per-token colour |
| Background image | theme_background |
(none) | A file from config/backgrounds/
|
| Card opacity | theme_opacity |
0.82 | How transparent cards are over a background |
Themes: default, carbon, nebula, embers, grass, ocean,
rose, mono.
Ten colour tokens can be overridden individually per theme: bg,
panel, card, inner, border, accent, accent_hi, text,
dim, danger. An override that is not a valid #rrggbb value is
ignored rather than breaking the whole stylesheet.
| Setting | Key | Default | What it does |
|---|---|---|---|
| Debug | debug |
off | Verbose console output, including plugin logs |
Not everything is on the Options page. For completeness:
| Setting | Key | Default |
|---|---|---|
| Personal Status active | status_active |
on |
| Status texts / count / cycle |
status_texts, status_count, status_cycle_sec
|
20 slots, 1, 10 sec |
| Status template | status_template_active |
1 |
| MediaPlay active | media_active |
off |
| MediaPlay poll interval | media_poll_sec |
1 sec |
| Hardware active | hw_active |
off |
| Hardware poll interval | hw_poll_sec |
2 sec |
| FPS via MangoHud |
hw_fps, hw_mangohud_dir
|
off |
| Custom Box active | box_active |
off |
| All in one active | aio_active |
off |
| All in one mode | aio_mode |
normal |
| Number of strings | aio_count |
1 |
| Rotate strings |
aio_rotate, aio_rotate_sec
|
off, 10 sec |
| App order | app_order |
status, media, hardware |
| Setting | Key | Default |
|---|---|---|
| Pause apps after sending | textbox_pause_sec |
10 sec |
| Number of presets | textbox_preset_count |
5 |
| Card order | textbox_order |
chat, stt, presets |
| Spoken language | stt_language |
de-DE |
| Target language | stt_output |
(none — no translation) |
| Translation backend | stt_method |
Lingva |
| Microphone | stt_mic |
system default |
| Strict microphone | stt_mic_strict |
on |
| Send as | stt_send_mode |
Standard |
| Position (Line mode) | chat_anchor |
above All in one |
| Keep for | chat_hold_sec |
0 (until replaced) |
| Show original + translation | stt_show_both |
off |
| Say when translating | stt_translate_notice |
on |
| Translation notice text | stt_translate_notice_text |
Translate … |
| Block apps | stt_block |
off |
| ... also block plugins | stt_block_plugins |
on |
| ... also block the box | stt_block_box |
on |
~/.config/OSC-DreamChatbox/config.json
Plain JSON, safe to read and to edit while the app is closed. A corrupt file is backed up rather than overwritten, so nothing is lost silently.
Unknown keys are kept, so downgrading does not delete settings made in a newer version.
OSC-DreamChatbox · GPL-3.0-or-later · github.com/yakuda-stack/OSC-DreamChatbox