Community:OSC Resources: Difference between revisions
From VRChat Wiki
Created community OSC resources page. |
added vrchat_osc, and collapsible table |
||
| (2 intermediate revisions by the same user not shown) | |||
| Line 8: | Line 8: | ||
==Libraries== | ==Libraries== | ||
{| class="wikitable" style="text-align:center" | {| class="wikitable" style="text-align:center; table-layout:fixed; width:100%" | ||
|- | |- | ||
! | ! | ||
! style="writing-mode: vertical-rl; transform: rotate(180deg); white-space: nowrap;" | [https://github.com/radarsat1/liblo liblo] | ! style="width: 3%; writing-mode: vertical-rl; transform: rotate(180deg); white-space: nowrap; padding: 0.35em 0.1em;" | [https://github.com/radarsat1/liblo liblo] | ||
! style="writing-mode: vertical-rl; transform: rotate(180deg); white-space: nowrap;" | [https://github.com/stella3d/OscCore OscCore] | ! style="width: 3%; writing-mode: vertical-rl; transform: rotate(180deg); white-space: nowrap; padding: 0.35em 0.1em;" | [https://github.com/LucHeart/CoreOSC-UTF8-ASYNC CoreOSC] | ||
! style="writing-mode: vertical-rl; transform: rotate(180deg); white-space: nowrap;" | [https://github.com/vrchat-community/vrc-oscquery-lib vrc-oscquery-lib] | ! style="width: 3%; writing-mode: vertical-rl; transform: rotate(180deg); white-space: nowrap; padding: 0.35em 0.1em;" | [https://github.com/stella3d/OscCore OscCore] | ||
! style="writing-mode: vertical-rl; transform: rotate(180deg); white-space: nowrap;" | [https://github.com/hypebeast/go-osc go-osc] | ! style="width: 3%; writing-mode: vertical-rl; transform: rotate(180deg); white-space: nowrap; padding: 0.35em 0.1em;" | [https://github.com/Natsumi-sama/OscQueryLibrary OscQueryLibrary] | ||
! style="writing-mode: vertical-rl; transform: rotate(180deg); white-space: nowrap;" | [https://github.com/hoijui/JavaOSC JavaOSC] | ! style="width: 3%; writing-mode: vertical-rl; transform: rotate(180deg); white-space: nowrap; padding: 0.35em 0.1em;" | [https://github.com/vrchat-community/vrc-oscquery-lib vrc-oscquery-lib] | ||
! style="writing-mode: vertical-rl; transform: rotate(180deg); white-space: nowrap;" | [https://github.com/colinbdclark/osc.js osc.js] | ! style="width: 3%; writing-mode: vertical-rl; transform: rotate(180deg); white-space: nowrap; padding: 0.35em 0.1em;" | [https://github.com/hypebeast/go-osc go-osc] | ||
! style="writing-mode: vertical-rl; transform: rotate(180deg); white-space: nowrap;" | [https://github.com/jangxx/node-oscquery node-oscquery] | ! style="width: 3%; writing-mode: vertical-rl; transform: rotate(180deg); white-space: nowrap; padding: 0.35em 0.1em;" | [https://github.com/hoijui/JavaOSC JavaOSC] | ||
! style="writing-mode: vertical-rl; transform: rotate(180deg); white-space: nowrap;" | [https://github.com/attwad/python-osc python-osc] | ! style="width: 3%; writing-mode: vertical-rl; transform: rotate(180deg); white-space: nowrap; padding: 0.35em 0.1em;" | [https://github.com/colinbdclark/osc.js osc.js] | ||
! style="writing-mode: vertical-rl; transform: rotate(180deg); white-space: nowrap;" | [https://github.com/theepicsnail/vrchat_oscquery vrchat_oscquery] | ! style="width: 3%; writing-mode: vertical-rl; transform: rotate(180deg); white-space: nowrap; padding: 0.35em 0.1em;" | [https://github.com/jangxx/node-oscquery node-oscquery] | ||
! style="writing-mode: vertical-rl; transform: rotate(180deg); white-space: nowrap;" | [https://github.com/fraklein/python-oscquery python-oscquery] | ! style="width: 3%; writing-mode: vertical-rl; transform: rotate(180deg); white-space: nowrap; padding: 0.35em 0.1em;" | [https://github.com/attwad/python-osc python-osc] | ||
! style="writing-mode: vertical-rl; transform: rotate(180deg); white-space: nowrap;" | [https://github.com/cyberkitsune/tinyoscquery tinyoscquery] | ! style="width: 3%; writing-mode: vertical-rl; transform: rotate(180deg); white-space: nowrap; padding: 0.35em 0.1em;" | [https://github.com/theepicsnail/vrchat_oscquery vrchat_oscquery] | ||
! style="writing-mode: vertical-rl; transform: rotate(180deg); white-space: nowrap;" | [https://github.com/klingtnet/rosc rosc] | ! style="width: 3%; writing-mode: vertical-rl; transform: rotate(180deg); white-space: nowrap; padding: 0.35em 0.1em;" | [https://github.com/fraklein/python-oscquery python-oscquery] | ||
! style="writing-mode: vertical-rl; transform: rotate(180deg); white-space: nowrap;" | [https://lib.rs/crates/oscquery oscquery] | ! style="width: 3%; writing-mode: vertical-rl; transform: rotate(180deg); white-space: nowrap; padding: 0.35em 0.1em;" | [https://github.com/cyberkitsune/tinyoscquery tinyoscquery] | ||
! style="writing-mode: vertical-rl; transform: rotate(180deg); white-space: nowrap;" | [https://github.com/orchetect/OSCKit OSCKit] | ! style="width: 3%; writing-mode: vertical-rl; transform: rotate(180deg); white-space: nowrap; padding: 0.35em 0.1em;" | [https://github.com/klingtnet/rosc rosc] | ||
! style="width: 3%; writing-mode: vertical-rl; transform: rotate(180deg); white-space: nowrap; padding: 0.35em 0.1em;" | [https://lib.rs/crates/oscquery oscquery] | |||
! style="width: 3%; writing-mode: vertical-rl; transform: rotate(180deg); white-space: nowrap; padding: 0.35em 0.1em;" | [https://github.com/minetake01/vrchat_osc vrchat_osc] | |||
! style="width: 3%; writing-mode: vertical-rl; transform: rotate(180deg); white-space: nowrap; padding: 0.35em 0.1em;" | [https://github.com/orchetect/OSCKit OSCKit] | |||
|- | |- | ||
! style="text-align:left" | Language | ! style="text-align:left" | Language | ||
| C | | style="writing-mode: vertical-rl; transform: rotate(180deg); white-space: nowrap;" | C | ||
| C# | | style="writing-mode: vertical-rl; transform: rotate(180deg); white-space: nowrap;" | C# | ||
| C# | | style="writing-mode: vertical-rl; transform: rotate(180deg); white-space: nowrap;" | C# | ||
| Go | | style="writing-mode: vertical-rl; transform: rotate(180deg); white-space: nowrap;" | C# | ||
| Java | | style="writing-mode: vertical-rl; transform: rotate(180deg); white-space: nowrap;" | C# | ||
| JavaScript | | style="writing-mode: vertical-rl; transform: rotate(180deg); white-space: nowrap;" | Go | ||
| TypeScript | | style="writing-mode: vertical-rl; transform: rotate(180deg); white-space: nowrap;" | Java | ||
| Python | | style="writing-mode: vertical-rl; transform: rotate(180deg); white-space: nowrap;" | JavaScript | ||
| Python | | style="writing-mode: vertical-rl; transform: rotate(180deg); white-space: nowrap;" | TypeScript | ||
| Python | | style="writing-mode: vertical-rl; transform: rotate(180deg); white-space: nowrap;" | Python | ||
| Python | | style="writing-mode: vertical-rl; transform: rotate(180deg); white-space: nowrap;" | Python | ||
| Rust | | style="writing-mode: vertical-rl; transform: rotate(180deg); white-space: nowrap;" | Python | ||
| Rust | | style="writing-mode: vertical-rl; transform: rotate(180deg); white-space: nowrap;" | Python | ||
| Swift | | style="writing-mode: vertical-rl; transform: rotate(180deg); white-space: nowrap;" | Rust | ||
| style="writing-mode: vertical-rl; transform: rotate(180deg); white-space: nowrap;" | Rust | |||
| style="writing-mode: vertical-rl; transform: rotate(180deg); white-space: nowrap;" | Rust | |||
| style="writing-mode: vertical-rl; transform: rotate(180deg); white-space: nowrap;" | Swift | |||
|- | |- | ||
! style="text-align:left" | License | ! style="text-align:left" | License | ||
| LGPL-2.1+ | | style="writing-mode: vertical-rl; transform: rotate(180deg); white-space: nowrap;" | LGPL-2.1+ | ||
| MIT | | style="writing-mode: vertical-rl; transform: rotate(180deg); white-space: nowrap;" | MIT | ||
| MIT | | style="writing-mode: vertical-rl; transform: rotate(180deg); white-space: nowrap;" | MIT | ||
| MIT | | style="writing-mode: vertical-rl; transform: rotate(180deg); white-space: nowrap;" | MIT | ||
| BSD-3-Clause | | style="writing-mode: vertical-rl; transform: rotate(180deg); white-space: nowrap;" | MIT | ||
| MIT / GPL-2.0 | | style="writing-mode: vertical-rl; transform: rotate(180deg); white-space: nowrap;" | MIT | ||
| MIT | | style="writing-mode: vertical-rl; transform: rotate(180deg); white-space: nowrap;" | BSD-3-Clause | ||
| Unlicense | | style="writing-mode: vertical-rl; transform: rotate(180deg); white-space: nowrap;" | MIT / GPL-2.0 | ||
| None | | style="writing-mode: vertical-rl; transform: rotate(180deg); white-space: nowrap;" | MIT | ||
| MIT | | style="writing-mode: vertical-rl; transform: rotate(180deg); white-space: nowrap;" | Unlicense | ||
| MIT | | style="writing-mode: vertical-rl; transform: rotate(180deg); white-space: nowrap;" | None | ||
| MIT / Apache-2.0 | | style="writing-mode: vertical-rl; transform: rotate(180deg); white-space: nowrap;" | MIT | ||
| MIT / Apache-2.0 | | style="writing-mode: vertical-rl; transform: rotate(180deg); white-space: nowrap;" | MIT | ||
| MIT | | style="writing-mode: vertical-rl; transform: rotate(180deg); white-space: nowrap;" | MIT / Apache-2.0 | ||
| style="writing-mode: vertical-rl; transform: rotate(180deg); white-space: nowrap;" | MIT / Apache-2.0 | |||
| style="writing-mode: vertical-rl; transform: rotate(180deg); white-space: nowrap;" | MIT / Apache-2.0 | |||
| style="writing-mode: vertical-rl; transform: rotate(180deg); white-space: nowrap;" | MIT | |||
|- | |- | ||
! colspan=" | ! colspan="18" style="text-align:left; background:#9AA0AA; color:#fff" | OSC transport | ||
|- | |- | ||
! style="text-align:left" | Send messages | ! style="text-align:left" | Send messages | ||
| style="background:#22A84A; color:#fff" | | | style="background:#22A84A; color:#fff" | ✓ | ||
| style="background:#22A84A; color:#fff" | | | style="background:#22A84A; color:#fff" | ✓ | ||
| style="background:#C03030; color:#fff" | | | style="background:#22A84A; color:#fff" | ✓ | ||
| style="background:#22A84A; color:#fff" | | | style="background:#C03030; color:#fff" | ✗<ref name="oscquerylib-osc">Pair with a separate OSC library such as [https://www.nuget.org/packages/LucHeart.CoreOSC LucHeart.CoreOSC] for UDP transport (see the [https://github.com/Natsumi-sama/OscQueryLibrary/tree/main/OscQueryExample example project]).</ref> | ||
| style="background:#22A84A; color:#fff" | | | style="background:#C03030; color:#fff" | ✗ | ||
| style="background:#22A84A; color:#fff" | | | style="background:#22A84A; color:#fff" | ✓ | ||
| style="background:#C03030; color:#fff" | | | style="background:#22A84A; color:#fff" | ✓ | ||
| style="background:#22A84A; color:#fff" | | | style="background:#22A84A; color:#fff" | ✓ | ||
| style="background:#22A84A; color:#fff" | | | style="background:#C03030; color:#fff" | ✗ | ||
| style="background:#C03030; color:#fff" | | | style="background:#22A84A; color:#fff" | ✓ | ||
| style="background:#C03030; color:#fff" | | | style="background:#22A84A; color:#fff" | ✓<ref name="python-osc-dep">Via bundled [https://pypi.org/project/python-osc/ python-osc] dependency; bundle support requires using python-osc's API directly.</ref> | ||
| style="background:#22A84A; color:#fff" | | | style="background:#C03030; color:#fff" | ✗ | ||
| style="background:#C03030; color:#fff" | | | style="background:#C03030; color:#fff" | ✗ | ||
| style="background:#22A84A; color:#fff" | | | style="background:#22A84A; color:#fff" | ✓ | ||
| style="background:#C03030; color:#fff" | ✗ | |||
| style="background:#22A84A; color:#fff" | ✓<ref name="vrchat-osc-rosc">OSC UDP encode/decode via bundled [https://github.com/klingtnet/rosc rosc].</ref> | |||
| style="background:#22A84A; color:#fff" | ✓ | |||
|- | |- | ||
! style="text-align:left" | Receive messages | ! style="text-align:left" | Receive messages | ||
| style="background:#22A84A; color:#fff" | | | style="background:#22A84A; color:#fff" | ✓ | ||
| style="background:#22A84A; color:#fff" | | | style="background:#22A84A; color:#fff" | ✓ | ||
| style="background:#C03030; color:#fff" | | | style="background:#22A84A; color:#fff" | ✓ | ||
| style="background:#22A84A; color:#fff" | | | style="background:#C03030; color:#fff" | ✗<ref name="oscquerylib-osc" /> | ||
| style="background:#22A84A; color:#fff" | | | style="background:#C03030; color:#fff" | ✗ | ||
| style="background:#22A84A; color:#fff" | | | style="background:#22A84A; color:#fff" | ✓ | ||
| style="background:#C03030; color:#fff" | | | style="background:#22A84A; color:#fff" | ✓ | ||
| style="background:#22A84A; color:#fff" | | | style="background:#22A84A; color:#fff" | ✓ | ||
| style="background:#22A84A; color:#fff" | | | style="background:#C03030; color:#fff" | ✗ | ||
| style="background:#C03030; color:#fff" | | | style="background:#22A84A; color:#fff" | ✓ | ||
| style="background:#C03030; color:#fff" | | | style="background:#22A84A; color:#fff" | ✓<ref name="python-osc-dep" /> | ||
| style="background:#22A84A; color:#fff" | | | style="background:#C03030; color:#fff" | ✗ | ||
| style="background:#C03030; color:#fff" | | | style="background:#C03030; color:#fff" | ✗ | ||
| style="background:#22A84A; color:#fff" | | | style="background:#22A84A; color:#fff" | ✓ | ||
| style="background:#C03030; color:#fff" | ✗ | |||
| style="background:#22A84A; color:#fff" | ✓<ref name="vrchat-osc-rosc" /> | |||
| style="background:#22A84A; color:#fff" | ✓ | |||
|- | |- | ||
! style="text-align:left" | Bundle support | ! style="text-align:left" | Bundle support | ||
| style="background:#22A84A; color:#fff" | | | style="background:#22A84A; color:#fff" | ✓ | ||
| style="background:#D4890B; color:#fff" | | | style="background:#22A84A; color:#fff" | ✓ | ||
| style="background:#C03030; color:#fff" | | | style="background:#D4890B; color:#fff" | ~<ref name="osccore-bundle">Receive fully supported including nested bundles; send requires low-level <code>OscWriter</code> API.</ref> | ||
| style="background:#22A84A; color:#fff" | | | style="background:#C03030; color:#fff" | ✗<ref name="oscquerylib-osc" /> | ||
| style="background:#22A84A; color:#fff" | | | style="background:#C03030; color:#fff" | ✗ | ||
| style="background:#22A84A; color:#fff" | | | style="background:#22A84A; color:#fff" | ✓ | ||
| style="background:#C03030; color:#fff" | | | style="background:#22A84A; color:#fff" | ✓ | ||
| style="background:#22A84A; color:#fff" | | | style="background:#22A84A; color:#fff" | ✓ | ||
| style="background:#22A84A; color:#fff" | | | style="background:#C03030; color:#fff" | ✗ | ||
| style="background:#C03030; color:#fff" | | | style="background:#22A84A; color:#fff" | ✓ | ||
| style="background:#C03030; color:#fff" | | | style="background:#22A84A; color:#fff" | ✓<ref name="python-osc-dep" /> | ||
| style="background:#22A84A; color:#fff" | | | style="background:#C03030; color:#fff" | ✗ | ||
| style="background:#C03030; color:#fff" | | | style="background:#C03030; color:#fff" | ✗ | ||
| style="background:#22A84A; color:#fff" | | | style="background:#22A84A; color:#fff" | ✓ | ||
| style="background:#C03030; color:#fff" | ✗ | |||
| style="background:#22A84A; color:#fff" | ✓<ref name="vrchat-osc-rosc" /> | |||
| style="background:#22A84A; color:#fff" | ✓ | |||
|- | |- | ||
! style="text-align:left" | VRChat types | ! colspan="18" style="text-align:left; background:#9AA0AA; color:#fff" | VRChat types | ||
|- | |- | ||
! style="text-align:left" | ! style="text-align:left" | <code>i</code> (int32) | ||
| <code> | | style="background:#22A84A; color:#fff" | ✓ | ||
| | | style="background:#22A84A; color:#fff" | ✓ | ||
| | | style="background:#22A84A; color:#fff" | ✓ | ||
| | | style="background:#22A84A; color:#fff" | ✓ | ||
| | | style="background:#22A84A; color:#fff" | ✓ | ||
| | | style="background:#22A84A; color:#fff" | ✓ | ||
| | | style="background:#22A84A; color:#fff" | ✓ | ||
| | | style="background:#22A84A; color:#fff" | ✓ | ||
| | | style="background:#22A84A; color:#fff" | ✓ | ||
| | | style="background:#22A84A; color:#fff" | ✓ | ||
| | | style="background:#22A84A; color:#fff" | ✓<ref name="python-osc-dep" /> | ||
| | | style="background:#22A84A; color:#fff" | ✓ | ||
| | | style="background:#22A84A; color:#fff" | ✓ | ||
| | | style="background:#22A84A; color:#fff" | ✓ | ||
| style="background:#22A84A; color:#fff" | ✓ | |||
| style="background:#22A84A; color:#fff" | ✓ | |||
| style="background:#22A84A; color:#fff" | ✓ | |||
|- | |- | ||
! colspan=" | ! style="text-align:left" | <code>f</code> (float32) | ||
| style="background:#22A84A; color:#fff" | ✓ | |||
| style="background:#22A84A; color:#fff" | ✓ | |||
| style="background:#22A84A; color:#fff" | ✓ | |||
| style="background:#22A84A; color:#fff" | ✓ | |||
| style="background:#22A84A; color:#fff" | ✓ | |||
| style="background:#22A84A; color:#fff" | ✓ | |||
| style="background:#22A84A; color:#fff" | ✓ | |||
| style="background:#22A84A; color:#fff" | ✓ | |||
| style="background:#22A84A; color:#fff" | ✓ | |||
| style="background:#22A84A; color:#fff" | ✓ | |||
| style="background:#22A84A; color:#fff" | ✓ | |||
| style="background:#22A84A; color:#fff" | ✓ | |||
| style="background:#22A84A; color:#fff" | ✓ | |||
| style="background:#22A84A; color:#fff" | ✓ | |||
| style="background:#22A84A; color:#fff" | ✓ | |||
| style="background:#22A84A; color:#fff" | ✓ | |||
| style="background:#22A84A; color:#fff" | ✓ | |||
|- | |||
! style="text-align:left" | <code>s</code> (string) | |||
| style="background:#22A84A; color:#fff" | ✓ | |||
| style="background:#22A84A; color:#fff" | ✓ | |||
| style="background:#22A84A; color:#fff" | ✓ | |||
| style="background:#22A84A; color:#fff" | ✓ | |||
| style="background:#22A84A; color:#fff" | ✓ | |||
| style="background:#22A84A; color:#fff" | ✓ | |||
| style="background:#22A84A; color:#fff" | ✓ | |||
| style="background:#22A84A; color:#fff" | ✓ | |||
| style="background:#22A84A; color:#fff" | ✓ | |||
| style="background:#22A84A; color:#fff" | ✓ | |||
| style="background:#22A84A; color:#fff" | ✓ | |||
| style="background:#22A84A; color:#fff" | ✓ | |||
| style="background:#22A84A; color:#fff" | ✓ | |||
| style="background:#22A84A; color:#fff" | ✓ | |||
| style="background:#22A84A; color:#fff" | ✓ | |||
| style="background:#22A84A; color:#fff" | ✓ | |||
| style="background:#22A84A; color:#fff" | ✓ | |||
|- | |||
! style="text-align:left" | <code>T</code> (True) | |||
| style="background:#22A84A; color:#fff" | ✓ | |||
| style="background:#22A84A; color:#fff" | ✓ | |||
| style="background:#22A84A; color:#fff" | ✓ | |||
| style="background:#22A84A; color:#fff" | ✓ | |||
| style="background:#22A84A; color:#fff" | ✓ | |||
| style="background:#22A84A; color:#fff" | ✓ | |||
| style="background:#22A84A; color:#fff" | ✓ | |||
| style="background:#22A84A; color:#fff" | ✓ | |||
| style="background:#22A84A; color:#fff" | ✓ | |||
| style="background:#22A84A; color:#fff" | ✓ | |||
| style="background:#22A84A; color:#fff" | ✓ | |||
| style="background:#22A84A; color:#fff" | ✓ | |||
| style="background:#22A84A; color:#fff" | ✓ | |||
| style="background:#22A84A; color:#fff" | ✓ | |||
| style="background:#22A84A; color:#fff" | ✓ | |||
| style="background:#22A84A; color:#fff" | ✓ | |||
| style="background:#22A84A; color:#fff" | ✓ | |||
|- | |||
! style="text-align:left" | <code>F</code> (False) | |||
| style="background:#22A84A; color:#fff" | ✓ | |||
| style="background:#22A84A; color:#fff" | ✓ | |||
| style="background:#22A84A; color:#fff" | ✓ | |||
| style="background:#22A84A; color:#fff" | ✓ | |||
| style="background:#C03030; color:#fff" | ✗ | |||
| style="background:#22A84A; color:#fff" | ✓ | |||
| style="background:#22A84A; color:#fff" | ✓ | |||
| style="background:#22A84A; color:#fff" | ✓ | |||
| style="background:#22A84A; color:#fff" | ✓ | |||
| style="background:#22A84A; color:#fff" | ✓ | |||
| style="background:#22A84A; color:#fff" | ✓ | |||
| style="background:#C03030; color:#fff" | ✗ | |||
| style="background:#22A84A; color:#fff" | ✓ | |||
| style="background:#22A84A; color:#fff" | ✓ | |||
| style="background:#22A84A; color:#fff" | ✓ | |||
| style="background:#22A84A; color:#fff" | ✓ | |||
| style="background:#22A84A; color:#fff" | ✓ | |||
|- | |||
! colspan="18" class="mw-customtoggle-ot-b-blob mw-customtoggle-ot-h-int64 mw-customtoggle-ot-d-float64 mw-customtoggle-ot-t-timetag mw-customtoggle-ot-s-symbol mw-customtoggle-ot-c-char mw-customtoggle-ot-r-rgba-color mw-customtoggle-ot-u mw-customtoggle-ot-m-midi-message mw-customtoggle-ot-n-nil mw-customtoggle-ot-i-infinitum mw-customtoggle-ot-array" style="text-align:left; background:#9AA0AA; color:#fff; cursor:pointer" | Optional types | |||
|- class="mw-collapsible mw-collapsed" id="mw-customcollapsible-ot-b-blob" | |||
! style="text-align:left" | <code>b</code> (blob) | |||
| style="background:#22A84A; color:#fff" | ✓ | |||
| style="background:#22A84A; color:#fff" | ✓ | |||
| style="background:#22A84A; color:#fff" | ✓ | |||
| style="background:#22A84A; color:#fff" | ✓ | |||
| style="background:#22A84A; color:#fff" | ✓ | |||
| style="background:#22A84A; color:#fff" | ✓ | |||
| style="background:#22A84A; color:#fff" | ✓ | |||
| style="background:#22A84A; color:#fff" | ✓ | |||
| style="background:#22A84A; color:#fff" | ✓ | |||
| style="background:#22A84A; color:#fff" | ✓ | |||
| style="background:#22A84A; color:#fff" | ✓ | |||
| style="background:#C03030; color:#fff" | ✗ | |||
| style="background:#C03030; color:#fff" | ✗ | |||
| style="background:#22A84A; color:#fff" | ✓ | |||
| style="background:#22A84A; color:#fff" | ✓ | |||
| style="background:#22A84A; color:#fff" | ✓ | |||
| style="background:#22A84A; color:#fff" | ✓ | |||
|- class="mw-collapsible mw-collapsed" id="mw-customcollapsible-ot-h-int64" | |||
! style="text-align:left" | <code>h</code> (int64) | |||
| style="background:#22A84A; color:#fff" | ✓ | |||
| style="background:#22A84A; color:#fff" | ✓ | |||
| style="background:#22A84A; color:#fff" | ✓ | |||
| style="background:#22A84A; color:#fff" | ✓ | |||
| style="background:#22A84A; color:#fff" | ✓ | |||
| style="background:#22A84A; color:#fff" | ✓ | |||
| style="background:#22A84A; color:#fff" | ✓ | |||
| style="background:#22A84A; color:#fff" | ✓ | |||
| style="background:#22A84A; color:#fff" | ✓ | |||
| style="background:#22A84A; color:#fff" | ✓ | |||
| style="background:#22A84A; color:#fff" | ✓ | |||
| style="background:#C03030; color:#fff" | ✗ | |||
| style="background:#D4890B; color:#fff" | ~<ref name="toq-lossy">lossy type mapping to Python float.</ref> | |||
| style="background:#22A84A; color:#fff" | ✓ | |||
| style="background:#22A84A; color:#fff" | ✓ | |||
| style="background:#22A84A; color:#fff" | ✓ | |||
| style="background:#22A84A; color:#fff" | ✓ | |||
|- class="mw-collapsible mw-collapsed" id="mw-customcollapsible-ot-d-float64" | |||
! style="text-align:left" | <code>d</code> (float64) | |||
| style="background:#22A84A; color:#fff" | ✓ | |||
| style="background:#22A84A; color:#fff" | ✓ | |||
| style="background:#22A84A; color:#fff" | ✓ | |||
| style="background:#22A84A; color:#fff" | ✓ | |||
| style="background:#22A84A; color:#fff" | ✓ | |||
| style="background:#22A84A; color:#fff" | ✓ | |||
| style="background:#22A84A; color:#fff" | ✓ | |||
| style="background:#22A84A; color:#fff" | ✓ | |||
| style="background:#22A84A; color:#fff" | ✓ | |||
| style="background:#22A84A; color:#fff" | ✓ | |||
| style="background:#22A84A; color:#fff" | ✓ | |||
| style="background:#C03030; color:#fff" | ✗ | |||
| style="background:#D4890B; color:#fff" | ~<ref name="toq-lossy" /> | |||
| style="background:#22A84A; color:#fff" | ✓ | |||
| style="background:#22A84A; color:#fff" | ✓ | |||
| style="background:#22A84A; color:#fff" | ✓ | |||
| style="background:#22A84A; color:#fff" | ✓ | |||
|- class="mw-collapsible mw-collapsed" id="mw-customcollapsible-ot-t-timetag" | |||
! style="text-align:left" | <code>t</code> (timetag) | |||
| style="background:#22A84A; color:#fff" | ✓ | |||
| style="background:#22A84A; color:#fff" | ✓ | |||
| style="background:#22A84A; color:#fff" | ✓ | |||
| style="background:#22A84A; color:#fff" | ✓ | |||
| style="background:#C03030; color:#fff" | ✗ | |||
| style="background:#22A84A; color:#fff" | ✓ | |||
| style="background:#22A84A; color:#fff" | ✓ | |||
| style="background:#22A84A; color:#fff" | ✓ | |||
| style="background:#22A84A; color:#fff" | ✓ | |||
| style="background:#D4890B; color:#fff" | ~<ref name="pyosc-missing">receive-only</ref> | |||
| style="background:#22A84A; color:#fff" | ✓ | |||
| style="background:#C03030; color:#fff" | ✗ | |||
| style="background:#D4890B; color:#fff" | ~<ref name="toq-lossy" /> | |||
| style="background:#22A84A; color:#fff" | ✓ | |||
| style="background:#22A84A; color:#fff" | ✓ | |||
| style="background:#22A84A; color:#fff" | ✓ | |||
| style="background:#22A84A; color:#fff" | ✓ | |||
|- class="mw-collapsible mw-collapsed" id="mw-customcollapsible-ot-s-symbol" | |||
! style="text-align:left" | <code>S</code> (symbol) | |||
| style="background:#22A84A; color:#fff" | ✓ | |||
| style="background:#22A84A; color:#fff" | ✓ | |||
| style="background:#22A84A; color:#fff" | ✓ | |||
| style="background:#C03030; color:#fff" | ✗ | |||
| style="background:#C03030; color:#fff" | ✗ | |||
| style="background:#C03030; color:#fff" | ✗ | |||
| style="background:#22A84A; color:#fff" | ✓ | |||
| style="background:#22A84A; color:#fff" | ✓ | |||
| style="background:#22A84A; color:#fff" | ✓ | |||
| style="background:#C03030; color:#fff" | ✗ | |||
| style="background:#C03030; color:#fff" | ✗ | |||
| style="background:#C03030; color:#fff" | ✗ | |||
| style="background:#C03030; color:#fff" | ✗ | |||
| style="background:#C03030; color:#fff" | ✗ | |||
| style="background:#22A84A; color:#fff" | ✓ | |||
| style="background:#D4890B; color:#fff" | ~<ref name="vrchat-osc-symbol">OSCQuery TYPE tag only; UDP encode/decode uses bundled [https://crates.io/crates/rosc rosc], which has no Symbol.</ref> | |||
| style="background:#22A84A; color:#fff" | ✓ | |||
|- class="mw-collapsible mw-collapsed" id="mw-customcollapsible-ot-c-char" | |||
! style="text-align:left" | <code>c</code> (char) | |||
| style="background:#22A84A; color:#fff" | ✓ | |||
| style="background:#22A84A; color:#fff" | ✓ | |||
| style="background:#22A84A; color:#fff" | ✓ | |||
| style="background:#C03030; color:#fff" | ✗ | |||
| style="background:#22A84A; color:#fff" | ✓ | |||
| style="background:#C03030; color:#fff" | ✗ | |||
| style="background:#22A84A; color:#fff" | ✓ | |||
| style="background:#22A84A; color:#fff" | ✓ | |||
| style="background:#22A84A; color:#fff" | ✓ | |||
| style="background:#C03030; color:#fff" | ✗ | |||
| style="background:#C03030; color:#fff" | ✗ | |||
| style="background:#C03030; color:#fff" | ✗ | |||
| style="background:#C03030; color:#fff" | ✗ | |||
| style="background:#22A84A; color:#fff" | ✓ | |||
| style="background:#22A84A; color:#fff" | ✓ | |||
| style="background:#22A84A; color:#fff" | ✓ | |||
| style="background:#22A84A; color:#fff" | ✓ | |||
|- class="mw-collapsible mw-collapsed" id="mw-customcollapsible-ot-r-rgba-color" | |||
! style="text-align:left" | <code>r</code> (RGBA color) | |||
| style="background:#C03030; color:#fff" | ✗ | |||
| style="background:#22A84A; color:#fff" | ✓ | |||
| style="background:#22A84A; color:#fff" | ✓ | |||
| style="background:#22A84A; color:#fff" | ✓ | |||
| style="background:#C03030; color:#fff" | ✗ | |||
| style="background:#C03030; color:#fff" | ✗ | |||
| style="background:#22A84A; color:#fff" | ✓ | |||
| style="background:#22A84A; color:#fff" | ✓ | |||
| style="background:#22A84A; color:#fff" | ✓ | |||
| style="background:#22A84A; color:#fff" | ✓ | |||
| style="background:#22A84A; color:#fff" | ✓ | |||
| style="background:#C03030; color:#fff" | ✗ | |||
| style="background:#C03030; color:#fff" | ✗ | |||
| style="background:#22A84A; color:#fff" | ✓ | |||
| style="background:#22A84A; color:#fff" | ✓ | |||
| style="background:#22A84A; color:#fff" | ✓ | |||
| style="background:#C03030; color:#fff" | ✗ | |||
|- class="mw-collapsible mw-collapsed" id="mw-customcollapsible-ot-u" | |||
! style="text-align:left" | <code>u</code> | |||
| style="background:#C03030; color:#fff" | ✗ | |||
| style="background:#C03030; color:#fff" | ✗ | |||
| style="background:#C03030; color:#fff" | ✗ | |||
| style="background:#C03030; color:#fff" | ✗ | |||
| style="background:#22A84A; color:#fff" | ✓ | |||
| style="background:#C03030; color:#fff" | ✗ | |||
| style="background:#C03030; color:#fff" | ✗ | |||
| style="background:#C03030; color:#fff" | ✗ | |||
| style="background:#C03030; color:#fff" | ✗ | |||
| style="background:#C03030; color:#fff" | ✗ | |||
| style="background:#C03030; color:#fff" | ✗ | |||
| style="background:#C03030; color:#fff" | ✗ | |||
| style="background:#C03030; color:#fff" | ✗ | |||
| style="background:#C03030; color:#fff" | ✗ | |||
| style="background:#C03030; color:#fff" | ✗ | |||
| style="background:#C03030; color:#fff" | ✗ | |||
| style="background:#C03030; color:#fff" | ✗ | |||
|- class="mw-collapsible mw-collapsed" id="mw-customcollapsible-ot-m-midi-message" | |||
! style="text-align:left" | <code>m</code> (MIDI message) | |||
| style="background:#22A84A; color:#fff" | ✓ | |||
| style="background:#22A84A; color:#fff" | ✓ | |||
| style="background:#22A84A; color:#fff" | ✓ | |||
| style="background:#22A84A; color:#fff" | ✓ | |||
| style="background:#C03030; color:#fff" | ✗ | |||
| style="background:#C03030; color:#fff" | ✗ | |||
| style="background:#22A84A; color:#fff" | ✓ | |||
| style="background:#22A84A; color:#fff" | ✓ | |||
| style="background:#22A84A; color:#fff" | ✓ | |||
| style="background:#22A84A; color:#fff" | ✓ | |||
| style="background:#22A84A; color:#fff" | ✓ | |||
| style="background:#C03030; color:#fff" | ✗ | |||
| style="background:#C03030; color:#fff" | ✗ | |||
| style="background:#22A84A; color:#fff" | ✓ | |||
| style="background:#22A84A; color:#fff" | ✓ | |||
| style="background:#22A84A; color:#fff" | ✓ | |||
| style="background:#22A84A; color:#fff" | ✓ | |||
|- class="mw-collapsible mw-collapsed" id="mw-customcollapsible-ot-n-nil" | |||
! style="text-align:left" | <code>N</code> (Nil) | |||
| style="background:#22A84A; color:#fff" | ✓ | |||
| style="background:#22A84A; color:#fff" | ✓ | |||
| style="background:#22A84A; color:#fff" | ✓ | |||
| style="background:#22A84A; color:#fff" | ✓ | |||
| style="background:#C03030; color:#fff" | ✗ | |||
| style="background:#22A84A; color:#fff" | ✓ | |||
| style="background:#22A84A; color:#fff" | ✓ | |||
| style="background:#22A84A; color:#fff" | ✓ | |||
| style="background:#22A84A; color:#fff" | ✓ | |||
| style="background:#22A84A; color:#fff" | ✓ | |||
| style="background:#22A84A; color:#fff" | ✓ | |||
| style="background:#C03030; color:#fff" | ✗ | |||
| style="background:#C03030; color:#fff" | ✗ | |||
| style="background:#22A84A; color:#fff" | ✓ | |||
| style="background:#22A84A; color:#fff" | ✓ | |||
| style="background:#22A84A; color:#fff" | ✓ | |||
| style="background:#22A84A; color:#fff" | ✓ | |||
|- class="mw-collapsible mw-collapsed" id="mw-customcollapsible-ot-i-infinitum" | |||
! style="text-align:left" | <code>I</code> (Infinitum) | |||
| style="background:#22A84A; color:#fff" | ✓ | |||
| style="background:#22A84A; color:#fff" | ✓ | |||
| style="background:#22A84A; color:#fff" | ✓ | |||
| style="background:#C03030; color:#fff" | ✗ | |||
| style="background:#C03030; color:#fff" | ✗ | |||
| style="background:#C03030; color:#fff" | ✗ | |||
| style="background:#22A84A; color:#fff" | ✓ | |||
| style="background:#22A84A; color:#fff" | ✓ | |||
| style="background:#22A84A; color:#fff" | ✓ | |||
| style="background:#C03030; color:#fff" | ✗ | |||
| style="background:#C03030; color:#fff" | ✗ | |||
| style="background:#C03030; color:#fff" | ✗ | |||
| style="background:#C03030; color:#fff" | ✗ | |||
| style="background:#22A84A; color:#fff" | ✓ | |||
| style="background:#22A84A; color:#fff" | ✓ | |||
| style="background:#22A84A; color:#fff" | ✓ | |||
| style="background:#22A84A; color:#fff" | ✓ | |||
|- class="mw-collapsible mw-collapsed" id="mw-customcollapsible-ot-array" | |||
! style="text-align:left" | <code>[]</code> (array) | |||
| style="background:#C03030; color:#fff" | ✗ | |||
| style="background:#22A84A; color:#fff" | ✓ | |||
| style="background:#22A84A; color:#fff" | ✓ | |||
| style="background:#22A84A; color:#fff" | ✓ | |||
| style="background:#22A84A; color:#fff" | ✓ | |||
| style="background:#C03030; color:#fff" | ✗ | |||
| style="background:#22A84A; color:#fff" | ✓ | |||
| style="background:#22A84A; color:#fff" | ✓ | |||
| style="background:#22A84A; color:#fff" | ✓ | |||
| style="background:#22A84A; color:#fff" | ✓ | |||
| style="background:#22A84A; color:#fff" | ✓ | |||
| style="background:#C03030; color:#fff" | ✗ | |||
| style="background:#C03030; color:#fff" | ✗ | |||
| style="background:#22A84A; color:#fff" | ✓ | |||
| style="background:#22A84A; color:#fff" | ✓ | |||
| style="background:#22A84A; color:#fff" | ✓ | |||
| style="background:#22A84A; color:#fff" | ✓ | |||
|- | |||
! colspan="18" style="text-align:left; background:#9AA0AA; color:#fff" | OSCQuery server — VRChat attributes | |||
|- | |- | ||
! style="text-align:left" | HTTP server | ! style="text-align:left" | HTTP server | ||
| style="background:#C03030; color:#fff" | | | style="background:#C03030; color:#fff" | ✗ | ||
| style="background:#C03030; color:#fff" | | | style="background:#C03030; color:#fff" | ✗ | ||
| style="background:#22A84A; color:#fff" | | | style="background:#C03030; color:#fff" | ✗ | ||
| style="background:#C03030; color:#fff" | | | style="background:#22A84A; color:#fff" | ✓ | ||
| style="background:#C03030; color:#fff" | | | style="background:#22A84A; color:#fff" | ✓ | ||
| style="background:#C03030; color:#fff" | | | style="background:#C03030; color:#fff" | ✗ | ||
| style="background:#22A84A; color:#fff" | | | style="background:#C03030; color:#fff" | ✗ | ||
| style="background:#C03030; color:#fff" | | | style="background:#C03030; color:#fff" | ✗ | ||
| style="background:#D4890B; color:#fff" | | | style="background:#22A84A; color:#fff" | ✓ | ||
| style="background:#22A84A; color:#fff" | | | style="background:#C03030; color:#fff" | ✗ | ||
| style="background:#22A84A; color:#fff" | | | style="background:#D4890B; color:#fff" | ~<ref name="vq-minimal">Minimal VRChat-specific subset; only serves <code>/</code> and <code>/?HOST_INFO</code>.</ref> | ||
| style="background:#C03030; color:#fff" | | | style="background:#22A84A; color:#fff" | ✓ | ||
| style="background:#22A84A; color:#fff" | | | style="background:#22A84A; color:#fff" | ✓ | ||
| style="background:#C03030; color:#fff" | | | style="background:#C03030; color:#fff" | ✗ | ||
| style="background:#22A84A; color:#fff" | ✓ | |||
| style="background:#22A84A; color:#fff" | ✓ | |||
| style="background:#C03030; color:#fff" | ✗ | |||
|- | |- | ||
! style="text-align:left" | HOST_INFO | ! style="text-align:left" | HOST_INFO | ||
| style="background:#C03030; color:#fff" | | | style="background:#C03030; color:#fff" | ✗ | ||
| style="background:#C03030; color:#fff" | | | style="background:#C03030; color:#fff" | ✗ | ||
| style="background:#22A84A; color:#fff" | | | style="background:#C03030; color:#fff" | ✗ | ||
| style="background:#C03030; color:#fff" | | | style="background:#22A84A; color:#fff" | ✓ | ||
| style="background:#C03030; color:#fff" | | | style="background:#22A84A; color:#fff" | ✓ | ||
| style="background:#C03030; color:#fff" | | | style="background:#C03030; color:#fff" | ✗ | ||
| style="background:#22A84A; color:#fff" | | | style="background:#C03030; color:#fff" | ✗ | ||
| style="background:#C03030; color:#fff" | | | style="background:#C03030; color:#fff" | ✗ | ||
| style="background:#D4890B; color:#fff" | | | style="background:#22A84A; color:#fff" | ✓ | ||
| style="background:#22A84A; color:#fff" | | | style="background:#C03030; color:#fff" | ✗ | ||
| style="background:#22A84A; color:#fff" | | | style="background:#D4890B; color:#fff" | ~<ref name="vq-hostinfo">Returns <code>OSC_PORT</code> only; missing <code>NAME</code>, <code>EXTENSIONS</code>, <code>OSC_IP</code>, <code>OSC_TRANSPORT</code>.</ref> | ||
| style="background:#C03030; color:#fff" | | | style="background:#22A84A; color:#fff" | ✓ | ||
| style="background:#22A84A; color:#fff" | | | style="background:#22A84A; color:#fff" | ✓ | ||
| style="background:#C03030; color:#fff" | | | style="background:#C03030; color:#fff" | ✗ | ||
| style="background:#22A84A; color:#fff" | ✓ | |||
| style="background:#22A84A; color:#fff" | ✓ | |||
| style="background:#C03030; color:#fff" | ✗ | |||
|- | |- | ||
! style="text-align:left" | FULL_PATH | ! style="text-align:left" | FULL_PATH | ||
| style="background:#C03030; color:#fff" | | | style="background:#C03030; color:#fff" | ✗ | ||
| style="background:#C03030; color:#fff" | | | style="background:#C03030; color:#fff" | ✗ | ||
| style="background:#22A84A; color:#fff" | | | style="background:#C03030; color:#fff" | ✗ | ||
| style="background:#C03030; color:#fff" | | | style="background:#22A84A; color:#fff" | ✓ | ||
| style="background:#C03030; color:#fff" | | | style="background:#22A84A; color:#fff" | ✓ | ||
| style="background:#C03030; color:#fff" | | | style="background:#C03030; color:#fff" | ✗ | ||
| style="background:#22A84A; color:#fff" | | | style="background:#C03030; color:#fff" | ✗ | ||
| style="background:#C03030; color:#fff" | | | style="background:#C03030; color:#fff" | ✗ | ||
| style="background:#D4890B; color:#fff" | | | style="background:#22A84A; color:#fff" | ✓ | ||
| style="background:#22A84A; color:#fff" | | | style="background:#C03030; color:#fff" | ✗ | ||
| style="background:#22A84A; color:#fff" | | | style="background:#D4890B; color:#fff" | ~<ref name="vq-hardcoded">Hardcoded to <code>/avatar</code> and <code>/tracking</code> paths; not a dynamic OSC address tree.</ref> | ||
| style="background:#C03030; color:#fff" | | | style="background:#22A84A; color:#fff" | ✓ | ||
| style="background:#22A84A; color:#fff" | | | style="background:#22A84A; color:#fff" | ✓ | ||
| style="background:#C03030; color:#fff" | | | style="background:#C03030; color:#fff" | ✗ | ||
| style="background:#22A84A; color:#fff" | ✓ | |||
| style="background:#22A84A; color:#fff" | ✓ | |||
| style="background:#C03030; color:#fff" | ✗ | |||
|- | |- | ||
! style="text-align:left" | CONTENTS | ! style="text-align:left" | CONTENTS | ||
| style="background:#C03030; color:#fff" | | | style="background:#C03030; color:#fff" | ✗ | ||
| style="background:#C03030; color:#fff" | | | style="background:#C03030; color:#fff" | ✗ | ||
| style="background:#22A84A; color:#fff" | | | style="background:#C03030; color:#fff" | ✗ | ||
| style="background:#C03030; color:#fff" | | | style="background:#22A84A; color:#fff" | ✓ | ||
| style="background:#C03030; color:#fff" | | | style="background:#22A84A; color:#fff" | ✓ | ||
| style="background:#C03030; color:#fff" | | | style="background:#C03030; color:#fff" | ✗ | ||
| style="background:#22A84A; color:#fff" | | | style="background:#C03030; color:#fff" | ✗ | ||
| style="background:#C03030; color:#fff" | | | style="background:#C03030; color:#fff" | ✗ | ||
| style="background:#D4890B; color:#fff" | | | style="background:#22A84A; color:#fff" | ✓ | ||
| style="background:#22A84A; color:#fff" | | | style="background:#C03030; color:#fff" | ✗ | ||
| style="background:#22A84A; color:#fff" | | | style="background:#D4890B; color:#fff" | ~<ref name="vq-hardcoded" /> | ||
| style="background:#C03030; color:#fff" | | | style="background:#22A84A; color:#fff" | ✓ | ||
| style="background:#22A84A; color:#fff" | | | style="background:#22A84A; color:#fff" | ✓ | ||
| style="background:#C03030; color:#fff" | | | style="background:#C03030; color:#fff" | ✗ | ||
| style="background:#22A84A; color:#fff" | ✓ | |||
| style="background:#22A84A; color:#fff" | ✓ | |||
| style="background:#C03030; color:#fff" | ✗ | |||
|- | |- | ||
! style="text-align:left" | TYPE | ! style="text-align:left" | TYPE | ||
| style="background:#C03030; color:#fff" | | | style="background:#C03030; color:#fff" | ✗ | ||
| style="background:#C03030; color:#fff" | | | style="background:#C03030; color:#fff" | ✗ | ||
| style="background:#22A84A; color:#fff" | | | style="background:#C03030; color:#fff" | ✗ | ||
| style="background:#C03030; color:#fff" | | | style="background:#22A84A; color:#fff" | ✓ | ||
| style="background:#C03030; color:#fff" | | | style="background:#22A84A; color:#fff" | ✓ | ||
| style="background:#C03030; color:#fff" | | | style="background:#C03030; color:#fff" | ✗ | ||
| style="background:#22A84A; color:#fff" | | | style="background:#C03030; color:#fff" | ✗ | ||
| style="background:#C03030; color:#fff" | | | style="background:#C03030; color:#fff" | ✗ | ||
| style="background:#C03030; color:#fff" | | | style="background:#22A84A; color:#fff" | ✓ | ||
| style="background:#22A84A; color:#fff" | | | style="background:#C03030; color:#fff" | ✗ | ||
| style="background:#22A84A; color:#fff" | | | style="background:#C03030; color:#fff" | ✗ | ||
| style="background:#C03030; color:#fff" | | | style="background:#22A84A; color:#fff" | ✓ | ||
| style="background:#22A84A; color:#fff" | | | style="background:#22A84A; color:#fff" | ✓ | ||
| style="background:#C03030; color:#fff" | | | style="background:#C03030; color:#fff" | ✗ | ||
| style="background:#22A84A; color:#fff" | ✓ | |||
| style="background:#22A84A; color:#fff" | ✓ | |||
| style="background:#C03030; color:#fff" | ✗ | |||
|- | |- | ||
! style="text-align:left" | ACCESS | ! style="text-align:left" | ACCESS | ||
| style="background:#C03030; color:#fff" | | | style="background:#C03030; color:#fff" | ✗ | ||
| style="background:#C03030; color:#fff" | | | style="background:#C03030; color:#fff" | ✗ | ||
| style="background:#22A84A; color:#fff" | | | style="background:#C03030; color:#fff" | ✗ | ||
| style="background:#C03030; color:#fff" | | | style="background:#22A84A; color:#fff" | ✓ | ||
| style="background:#C03030; color:#fff" | | | style="background:#22A84A; color:#fff" | ✓ | ||
| style="background:#C03030; color:#fff" | | | style="background:#C03030; color:#fff" | ✗ | ||
| style="background:#22A84A; color:#fff" | | | style="background:#C03030; color:#fff" | ✗ | ||
| style="background:#C03030; color:#fff" | | | style="background:#C03030; color:#fff" | ✗ | ||
| style="background:#C03030; color:#fff" | | | style="background:#22A84A; color:#fff" | ✓ | ||
| style="background:#22A84A; color:#fff" | | | style="background:#C03030; color:#fff" | ✗ | ||
| style="background:#22A84A; color:#fff" | | | style="background:#C03030; color:#fff" | ✗ | ||
| style="background:#C03030; color:#fff" | | | style="background:#22A84A; color:#fff" | ✓ | ||
| style="background:#22A84A; color:#fff" | | | style="background:#22A84A; color:#fff" | ✓ | ||
| style="background:#C03030; color:#fff" | | | style="background:#C03030; color:#fff" | ✗ | ||
| style="background:#22A84A; color:#fff" | ✓ | |||
| style="background:#22A84A; color:#fff" | ✓ | |||
| style="background:#C03030; color:#fff" | ✗ | |||
|- | |- | ||
! style="text-align:left" | VALUE | ! style="text-align:left" | VALUE | ||
| style="background:#C03030; color:#fff" | | | style="background:#C03030; color:#fff" | ✗ | ||
| style="background:#C03030; color:#fff" | | | style="background:#C03030; color:#fff" | ✗ | ||
| style="background:#22A84A; color:#fff" | | | style="background:#C03030; color:#fff" | ✗ | ||
| style="background:#C03030; color:#fff" | | | style="background:#22A84A; color:#fff" | ✓ | ||
| style="background:#C03030; color:#fff" | | | style="background:#22A84A; color:#fff" | ✓ | ||
| style="background:#C03030; color:#fff" | | | style="background:#C03030; color:#fff" | ✗ | ||
| style="background:#22A84A; color:#fff" | | | style="background:#C03030; color:#fff" | ✗ | ||
| style="background:#C03030; color:#fff" | | | style="background:#C03030; color:#fff" | ✗ | ||
| style="background:#C03030; color:#fff" | | | style="background:#22A84A; color:#fff" | ✓ | ||
| style="background:#22A84A; color:#fff" | | | style="background:#C03030; color:#fff" | ✗ | ||
| style="background:#22A84A; color:#fff" | | | style="background:#C03030; color:#fff" | ✗ | ||
| style="background:#C03030; color:#fff" | | | style="background:#22A84A; color:#fff" | ✓ | ||
| style="background:#22A84A; color:#fff" | | | style="background:#22A84A; color:#fff" | ✓ | ||
| style="background:#C03030; color:#fff" | | | style="background:#C03030; color:#fff" | ✗ | ||
| style="background:#22A84A; color:#fff" | ✓ | |||
| style="background:#22A84A; color:#fff" | ✓ | |||
| style="background:#C03030; color:#fff" | ✗ | |||
|- | |- | ||
! style="text-align:left" | RANGE | ! style="text-align:left" | RANGE | ||
| style="background:#C03030; color:#fff" | | | style="background:#C03030; color:#fff" | ✗ | ||
| style="background:#C03030; color:#fff" | | | style="background:#C03030; color:#fff" | ✗ | ||
| style="background:#D4890B; color:#fff" | | | style="background:#C03030; color:#fff" | ✗ | ||
| style="background:#C03030; color:#fff" | | | style="background:#D4890B; color:#fff" | ~<ref name="range-adv">Advertised as supported in HOST_INFO extensions but not implemented at the node level.</ref> | ||
| style="background:#C03030; color:#fff" | | | style="background:#D4890B; color:#fff" | ~<ref name="range-adv" /> | ||
| style="background:#C03030; color:#fff" | | | style="background:#C03030; color:#fff" | ✗ | ||
| style="background:#22A84A; color:#fff" | | | style="background:#C03030; color:#fff" | ✗ | ||
| style="background:#C03030; color:#fff" | | | style="background:#C03030; color:#fff" | ✗ | ||
| style="background:#C03030; color:#fff" | | | style="background:#22A84A; color:#fff" | ✓ | ||
| style="background:#C03030; color:#fff" | | | style="background:#C03030; color:#fff" | ✗ | ||
| style="background:#D4890B; color:#fff" | | | style="background:#C03030; color:#fff" | ✗ | ||
| style="background:#C03030; color:#fff" | | | style="background:#C03030; color:#fff" | ✗ | ||
| style="background:#22A84A; color:#fff" | | | style="background:#D4890B; color:#fff" | ~<ref name="range-adv" /> | ||
| style="background:#C03030; color:#fff" | | | style="background:#C03030; color:#fff" | ✗ | ||
| style="background:#22A84A; color:#fff" | ✓ | |||
| style="background:#22A84A; color:#fff" | ✓ | |||
| style="background:#C03030; color:#fff" | ✗ | |||
|- | |- | ||
! style="text-align:left" | DESCRIPTION | ! style="text-align:left" | DESCRIPTION | ||
| style="background:#C03030; color:#fff" | | | style="background:#C03030; color:#fff" | ✗ | ||
| style="background:#C03030; color:#fff" | | | style="background:#C03030; color:#fff" | ✗ | ||
| style="background:#D4890B; color:#fff" | | | style="background:#C03030; color:#fff" | ✗ | ||
| style="background:#C03030; color:#fff" | | | style="background:#D4890B; color:#fff" | ~<ref name="desc-adv">Supported on the node level but not advertised in HOST_INFO extensions.</ref> | ||
| style="background:#C03030; color:#fff" | | | style="background:#D4890B; color:#fff" | ~<ref name="desc-adv">Supported on the node level but not advertised in HOST_INFO extensions.</ref> | ||
| style="background:#C03030; color:#fff" | | | style="background:#C03030; color:#fff" | ✗ | ||
| style="background:#22A84A; color:#fff" | | | style="background:#C03030; color:#fff" | ✗ | ||
| style="background:#C03030; color:#fff" | | | style="background:#C03030; color:#fff" | ✗ | ||
| style="background:#C03030; color:#fff" | | | style="background:#22A84A; color:#fff" | ✓ | ||
| style="background:#22A84A; color:#fff" | | | style="background:#C03030; color:#fff" | ✗ | ||
| style="background:#D4890B; color:#fff" | | | style="background:#C03030; color:#fff" | ✗ | ||
| style="background:#C03030; color:#fff" | | | style="background:#22A84A; color:#fff" | ✓ | ||
| style="background:#22A84A; color:#fff" | | | style="background:#D4890B; color:#fff" | ~<ref name="desc-adv" /> | ||
| style="background:# | | style="background:#C03030; color:#fff" | ✗ | ||
| style="background:#22A84A; color:#fff" | ✓ | |||
| style="background:#D4890B; color:#fff" | ~<ref name="desc-adv" /> | |||
| style="background:#C03030; color:#fff" | ✗ | |||
|- | |- | ||
! colspan="18" class="mw-customtoggle-oe-tags mw-customtoggle-oe-extended-type mw-customtoggle-oe-unit mw-customtoggle-oe-critical mw-customtoggle-oe-clipmode mw-customtoggle-oe-overloads" style="text-align:left; background:#9AA0AA; color:#fff; cursor:pointer" | OSCQuery server — additional OSCQuery attributes | |||
|- class="mw-collapsible mw-collapsed" id="mw-customcollapsible-oe-tags" | |||
! style="text-align:left" | TAGS | ! style="text-align:left" | TAGS | ||
| style="background:#C03030; color:#fff" | | | style="background:#C03030; color:#fff" | ✗ | ||
| style="background:#C03030; color:#fff" | | | style="background:#C03030; color:#fff" | ✗ | ||
| style="background:#C03030; color:#fff" | | | style="background:#C03030; color:#fff" | ✗ | ||
| style="background:#C03030; color:#fff" | | | style="background:#C03030; color:#fff" | ✗ | ||
| style="background:#C03030; color:#fff" | | | style="background:#C03030; color:#fff" | ✗ | ||
| style="background:#C03030; color:#fff" | | | style="background:#C03030; color:#fff" | ✗ | ||
| style="background:#22A84A; color:#fff" | | | style="background:#C03030; color:#fff" | ✗ | ||
| style="background:#C03030; color:#fff" | | | style="background:#C03030; color:#fff" | ✗ | ||
| style="background:#C03030; color:#fff" | | | style="background:#22A84A; color:#fff" | ✓ | ||
| style="background:#C03030; color:#fff" | | | style="background:#C03030; color:#fff" | ✗ | ||
| style="background:#C03030; color:#fff" | | | style="background:#C03030; color:#fff" | ✗ | ||
| style="background:#C03030; color:#fff" | | | style="background:#C03030; color:#fff" | ✗ | ||
| style="background:#22A84A; color:#fff" | | | style="background:#C03030; color:#fff" | ✗ | ||
| style="background:#C03030; color:#fff" | | | style="background:#C03030; color:#fff" | ✗ | ||
|- | | style="background:#22A84A; color:#fff" | ✓ | ||
| style="background:#C03030; color:#fff" | ✗ | |||
| style="background:#C03030; color:#fff" | ✗ | |||
|- class="mw-collapsible mw-collapsed" id="mw-customcollapsible-oe-extended-type" | |||
! style="text-align:left" | EXTENDED_TYPE | ! style="text-align:left" | EXTENDED_TYPE | ||
| style="background:#C03030; color:#fff" | | | style="background:#C03030; color:#fff" | ✗ | ||
| style="background:#C03030; color:#fff" | | | style="background:#C03030; color:#fff" | ✗ | ||
| style="background:#C03030; color:#fff" | | | style="background:#C03030; color:#fff" | ✗ | ||
| style="background:#C03030; color:#fff" | | | style="background:#C03030; color:#fff" | ✗ | ||
| style="background:#C03030; color:#fff" | | | style="background:#C03030; color:#fff" | ✗ | ||
| style="background:#C03030; color:#fff" | | | style="background:#C03030; color:#fff" | ✗ | ||
| style="background:#C03030; color:#fff" | | | style="background:#C03030; color:#fff" | ✗ | ||
| style="background:#C03030; color:#fff" | | | style="background:#C03030; color:#fff" | ✗ | ||
| style="background:#C03030; color:#fff" | | | style="background:#C03030; color:#fff" | ✗ | ||
| style="background:#C03030; color:#fff" | | | style="background:#C03030; color:#fff" | ✗ | ||
| style="background:#C03030; color:#fff" | | | style="background:#C03030; color:#fff" | ✗ | ||
| style="background:#C03030; color:#fff" | | | style="background:#C03030; color:#fff" | ✗ | ||
| style="background:#22A84A; color:#fff" | | | style="background:#C03030; color:#fff" | ✗ | ||
| style="background:#C03030; color:#fff" | | | style="background:#C03030; color:#fff" | ✗ | ||
|- | | style="background:#22A84A; color:#fff" | ✓ | ||
| style="background:#C03030; color:#fff" | ✗ | |||
| style="background:#C03030; color:#fff" | ✗ | |||
|- class="mw-collapsible mw-collapsed" id="mw-customcollapsible-oe-unit" | |||
! style="text-align:left" | UNIT | ! style="text-align:left" | UNIT | ||
| style="background:#C03030; color:#fff" | | | style="background:#C03030; color:#fff" | ✗ | ||
| style="background:#C03030; color:#fff" | | | style="background:#C03030; color:#fff" | ✗ | ||
| style="background:#C03030; color:#fff" | | | style="background:#C03030; color:#fff" | ✗ | ||
| style="background:#C03030; color:#fff" | | | style="background:#C03030; color:#fff" | ✗ | ||
| style="background:#C03030; color:#fff" | | | style="background:#C03030; color:#fff" | ✗ | ||
| style="background:#C03030; color:#fff" | | | style="background:#C03030; color:#fff" | ✗ | ||
| style="background:#C03030; color:#fff" | | | style="background:#C03030; color:#fff" | ✗ | ||
| style="background:#C03030; color:#fff" | | | style="background:#C03030; color:#fff" | ✗ | ||
| style="background:#C03030; color:#fff" | | | style="background:#C03030; color:#fff" | ✗ | ||
| style="background:#C03030; color:#fff" | | | style="background:#C03030; color:#fff" | ✗ | ||
| style="background:#C03030; color:#fff" | | | style="background:#C03030; color:#fff" | ✗ | ||
| style="background:#C03030; color:#fff" | | | style="background:#C03030; color:#fff" | ✗ | ||
| style="background:#22A84A; color:#fff" | | | style="background:#C03030; color:#fff" | ✗ | ||
| style="background:#C03030; color:#fff" | | | style="background:#C03030; color:#fff" | ✗ | ||
|- | | style="background:#22A84A; color:#fff" | ✓ | ||
| style="background:#C03030; color:#fff" | ✗ | |||
| style="background:#C03030; color:#fff" | ✗ | |||
|- class="mw-collapsible mw-collapsed" id="mw-customcollapsible-oe-critical" | |||
! style="text-align:left" | CRITICAL | ! style="text-align:left" | CRITICAL | ||
| style="background:#C03030; color:#fff" | | | style="background:#C03030; color:#fff" | ✗ | ||
| style="background:#C03030; color:#fff" | | | style="background:#C03030; color:#fff" | ✗ | ||
| style="background:#C03030; color:#fff" | | | style="background:#C03030; color:#fff" | ✗ | ||
| style="background:#C03030; color:#fff" | | | style="background:#C03030; color:#fff" | ✗ | ||
| style="background:#C03030; color:#fff" | | | style="background:#C03030; color:#fff" | ✗ | ||
| style="background:#C03030; color:#fff" | | | style="background:#C03030; color:#fff" | ✗ | ||
| style="background:#22A84A; color:#fff" | | | style="background:#C03030; color:#fff" | ✗ | ||
| style="background:#C03030; color:#fff" | | | style="background:#C03030; color:#fff" | ✗ | ||
| style="background:#C03030; color:#fff" | | | style="background:#22A84A; color:#fff" | ✓ | ||
| style="background:#C03030; color:#fff" | | | style="background:#C03030; color:#fff" | ✗ | ||
| style="background:#C03030; color:#fff" | | | style="background:#C03030; color:#fff" | ✗ | ||
| style="background:#C03030; color:#fff" | | | style="background:#C03030; color:#fff" | ✗ | ||
| style="background:#22A84A; color:#fff" | | | style="background:#C03030; color:#fff" | ✗ | ||
| style="background:#C03030; color:#fff" | | | style="background:#C03030; color:#fff" | ✗ | ||
|- | | style="background:#22A84A; color:#fff" | ✓ | ||
| style="background:#C03030; color:#fff" | ✗ | |||
| style="background:#C03030; color:#fff" | ✗ | |||
|- class="mw-collapsible mw-collapsed" id="mw-customcollapsible-oe-clipmode" | |||
! style="text-align:left" | CLIPMODE | ! style="text-align:left" | CLIPMODE | ||
| style="background:#C03030; color:#fff" | | | style="background:#C03030; color:#fff" | ✗ | ||
| style="background:#C03030; color:#fff" | | | style="background:#C03030; color:#fff" | ✗ | ||
| style="background:#C03030; color:#fff" | | | style="background:#C03030; color:#fff" | ✗ | ||
| style="background:#C03030; color:#fff" | | | style="background:#C03030; color:#fff" | ✗ | ||
| style="background:#C03030; color:#fff" | | | style="background:#C03030; color:#fff" | ✗ | ||
| style="background:#C03030; color:#fff" | | | style="background:#C03030; color:#fff" | ✗ | ||
| style="background:#22A84A; color:#fff" | | | style="background:#C03030; color:#fff" | ✗ | ||
| style="background:#C03030; color:#fff" | | | style="background:#C03030; color:#fff" | ✗ | ||
| style="background:#C03030; color:#fff" | | | style="background:#22A84A; color:#fff" | ✓ | ||
| style="background:#C03030; color:#fff" | | | style="background:#C03030; color:#fff" | ✗ | ||
| style="background:#C03030; color:#fff" | | | style="background:#C03030; color:#fff" | ✗ | ||
| style="background:#C03030; color:#fff" | | | style="background:#C03030; color:#fff" | ✗ | ||
| style="background:#22A84A; color:#fff" | | | style="background:#C03030; color:#fff" | ✗ | ||
| style="background:#C03030; color:#fff" | | | style="background:#C03030; color:#fff" | ✗ | ||
|- | | style="background:#22A84A; color:#fff" | ✓ | ||
| style="background:#C03030; color:#fff" | ✗ | |||
| style="background:#C03030; color:#fff" | ✗ | |||
|- class="mw-collapsible mw-collapsed" id="mw-customcollapsible-oe-overloads" | |||
! style="text-align:left" | OVERLOADS | ! style="text-align:left" | OVERLOADS | ||
| style="background:#C03030; color:#fff" | | | style="background:#C03030; color:#fff" | ✗ | ||
| style="background:#C03030; color:#fff" | | | style="background:#C03030; color:#fff" | ✗ | ||
| style="background:#C03030; color:#fff" | | | style="background:#C03030; color:#fff" | ✗ | ||
| style="background:#C03030; color:#fff" | | | style="background:#C03030; color:#fff" | ✗ | ||
| style="background:#C03030; color:#fff" | | | style="background:#C03030; color:#fff" | ✗ | ||
| style="background:#C03030; color:#fff" | | | style="background:#C03030; color:#fff" | ✗ | ||
| style="background:#C03030; color:#fff" | | | style="background:#C03030; color:#fff" | ✗ | ||
| style="background:#C03030; color:#fff" | | | style="background:#C03030; color:#fff" | ✗ | ||
| style="background:#C03030; color:#fff" | | | style="background:#C03030; color:#fff" | ✗ | ||
| style="background:#C03030; color:#fff" | | | style="background:#C03030; color:#fff" | ✗ | ||
| style="background:#C03030; color:#fff" | | | style="background:#C03030; color:#fff" | ✗ | ||
| style="background:#C03030; color:#fff" | | | style="background:#C03030; color:#fff" | ✗ | ||
| style="background:#22A84A; color:#fff" | | | style="background:#C03030; color:#fff" | ✗ | ||
| style="background:#C03030; color:#fff" | | | style="background:#C03030; color:#fff" | ✗ | ||
| style="background:#22A84A; color:#fff" | ✓ | |||
| style="background:#C03030; color:#fff" | ✗ | |||
| style="background:#C03030; color:#fff" | ✗ | |||
|- | |- | ||
! colspan=" | ! colspan="18" style="text-align:left; background:#9AA0AA; color:#fff" | OSCQuery client | ||
|- | |- | ||
! style="text-align:left" | HTTP client | ! style="text-align:left" | HTTP client | ||
| style="background:#C03030; color:#fff" | | | style="background:#C03030; color:#fff" | ✗ | ||
| style="background:#C03030; color:#fff" | | | style="background:#C03030; color:#fff" | ✗ | ||
| style="background:#22A84A; color:#fff" | | | style="background:#C03030; color:#fff" | ✗ | ||
| style="background:#C03030; color:#fff" | | | style="background:#22A84A; color:#fff" | ✓ | ||
| style="background:#C03030; color:#fff" | | | style="background:#22A84A; color:#fff" | ✓ | ||
| style="background:#C03030; color:#fff" | | | style="background:#C03030; color:#fff" | ✗ | ||
| style="background:#22A84A; color:#fff" | | | style="background:#C03030; color:#fff" | ✗ | ||
| style="background:#C03030; color:#fff" | | | style="background:#C03030; color:#fff" | ✗ | ||
| style="background:#C03030; color:#fff" | | | style="background:#22A84A; color:#fff" | ✓ | ||
| style="background:#22A84A; color:#fff" | | | style="background:#C03030; color:#fff" | ✗ | ||
| style="background:#22A84A; color:#fff" | | | style="background:#C03030; color:#fff" | ✗ | ||
| style="background:#C03030; color:#fff" | | | style="background:#22A84A; color:#fff" | ✓ | ||
| style="background:#C03030; color:#fff" | | | style="background:#22A84A; color:#fff" | ✓ | ||
| style="background:#C03030; color:#fff" | | | style="background:#C03030; color:#fff" | ✗ | ||
| style="background:#C03030; color:#fff" | ✗ | |||
| style="background:#22A84A; color:#fff" | ✓ | |||
| style="background:#C03030; color:#fff" | ✗ | |||
|- | |- | ||
! colspan=" | ! colspan="18" style="text-align:left; background:#9AA0AA; color:#fff" | Service discovery | ||
|- | |- | ||
! style="text-align:left" | mDNS advertisement | ! style="text-align:left" | mDNS advertisement | ||
| style="background:#C03030; color:#fff" | | | style="background:#C03030; color:#fff" | ✗ | ||
| style="background:#C03030; color:#fff" | | | style="background:#C03030; color:#fff" | ✗ | ||
| style="background:#22A84A; color:#fff" | | | style="background:#C03030; color:#fff" | ✗ | ||
| style="background:#C03030; color:#fff" | | | style="background:#22A84A; color:#fff" | ✓ | ||
| style="background:#C03030; color:#fff" | | | style="background:#22A84A; color:#fff" | ✓ | ||
| style="background:#C03030; color:#fff" | | | style="background:#C03030; color:#fff" | ✗ | ||
| style="background:#22A84A; color:#fff" | | | style="background:#C03030; color:#fff" | ✗ | ||
| style="background:#C03030; color:#fff" | | | style="background:#C03030; color:#fff" | ✗ | ||
| style="background:#22A84A; color:#fff" | | | style="background:#22A84A; color:#fff" | ✓ | ||
| style="background:#22A84A; color:#fff" | | | style="background:#C03030; color:#fff" | ✗ | ||
| style="background:#22A84A; color:#fff" | | | style="background:#22A84A; color:#fff" | ✓ | ||
| style="background:#C03030; color:#fff" | | | style="background:#22A84A; color:#fff" | ✓ | ||
| style="background:#C03030; color:#fff" | | | style="background:#22A84A; color:#fff" | ✓ | ||
| style="background:#C03030; color:#fff" | | | style="background:#C03030; color:#fff" | ✗ | ||
| style="background:#C03030; color:#fff" | ✗ | |||
| style="background:#22A84A; color:#fff" | ✓ | |||
| style="background:#C03030; color:#fff" | ✗ | |||
|- | |- | ||
! style="text-align:left" | mDNS discovery | ! style="text-align:left" | mDNS discovery | ||
| style="background:#C03030; color:#fff" | | | style="background:#C03030; color:#fff" | ✗ | ||
| style="background:#C03030; color:#fff" | | | style="background:#C03030; color:#fff" | ✗ | ||
| style="background:#22A84A; color:#fff" | | | style="background:#C03030; color:#fff" | ✗ | ||
| style="background:#C03030; color:#fff" | | | style="background:#22A84A; color:#fff" | ✓ | ||
| style="background:#C03030; color:#fff" | | | style="background:#22A84A; color:#fff" | ✓ | ||
| style="background:#C03030; color:#fff" | | | style="background:#C03030; color:#fff" | ✗ | ||
| style="background:#22A84A; color:#fff" | | | style="background:#C03030; color:#fff" | ✗ | ||
| style="background:#C03030; color:#fff" | | | style="background:#C03030; color:#fff" | ✗ | ||
| style="background:#C03030; color:#fff" | | | style="background:#22A84A; color:#fff" | ✓ | ||
| style="background:#22A84A; color:#fff" | | | style="background:#C03030; color:#fff" | ✗ | ||
| style="background:#22A84A; color:#fff" | | | style="background:#C03030; color:#fff" | ✗ | ||
| style="background:#C03030; color:#fff" | | | style="background:#22A84A; color:#fff" | ✓ | ||
| style="background:#C03030; color:#fff" | | | style="background:#22A84A; color:#fff" | ✓ | ||
| style="background:#C03030; color:#fff" | | | style="background:#C03030; color:#fff" | ✗ | ||
| style="background:#C03030; color:#fff" | ✗ | |||
| style="background:#22A84A; color:#fff" | ✓ | |||
| style="background:#C03030; color:#fff" | ✗ | |||
|} | |} | ||
{{reflist | {{reflist}} | ||
==See Also== | ==See Also== | ||
Latest revision as of 02:39, 14 August 2026
The following was created by the community. It may contain material not directly endorsed by the VRChat team. To learn more, consider reading Contributing to the VRChat Wiki.
Open Sound Control enables users to read and write data in VRChat. There are plenty of helpful community made tools and libraries, that use OSC, and makes developing OSC tools easier.
Tools
Libraries
| liblo | CoreOSC | OscCore | OscQueryLibrary | vrc-oscquery-lib | go-osc | JavaOSC | osc.js | node-oscquery | python-osc | vrchat_oscquery | python-oscquery | tinyoscquery | rosc | oscquery | vrchat_osc | OSCKit | |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Language | C | C# | C# | C# | C# | Go | Java | JavaScript | TypeScript | Python | Python | Python | Python | Rust | Rust | Rust | Swift |
| License | LGPL-2.1+ | MIT | MIT | MIT | MIT | MIT | BSD-3-Clause | MIT / GPL-2.0 | MIT | Unlicense | None | MIT | MIT | MIT / Apache-2.0 | MIT / Apache-2.0 | MIT / Apache-2.0 | MIT |
| OSC transport | |||||||||||||||||
| Send messages | ✓ | ✓ | ✓ | ✗[1] | ✗ | ✓ | ✓ | ✓ | ✗ | ✓ | ✓[2] | ✗ | ✗ | ✓ | ✗ | ✓[3] | ✓ |
| Receive messages | ✓ | ✓ | ✓ | ✗[1] | ✗ | ✓ | ✓ | ✓ | ✗ | ✓ | ✓[2] | ✗ | ✗ | ✓ | ✗ | ✓[3] | ✓ |
| Bundle support | ✓ | ✓ | ~[4] | ✗[1] | ✗ | ✓ | ✓ | ✓ | ✗ | ✓ | ✓[2] | ✗ | ✗ | ✓ | ✗ | ✓[3] | ✓ |
| VRChat types | |||||||||||||||||
i (int32)
|
✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓[2] | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
f (float32)
|
✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
s (string)
|
✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
T (True)
|
✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
F (False)
|
✓ | ✓ | ✓ | ✓ | ✗ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✗ | ✓ | ✓ | ✓ | ✓ | ✓ |
b (blob)
|
✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✗ | ✗ | ✓ | ✓ | ✓ | ✓ |
h (int64)
|
✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✗ | ~[5] | ✓ | ✓ | ✓ | ✓ |
d (float64)
|
✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✗ | ~[5] | ✓ | ✓ | ✓ | ✓ |
t (timetag)
|
✓ | ✓ | ✓ | ✓ | ✗ | ✓ | ✓ | ✓ | ✓ | ~[6] | ✓ | ✗ | ~[5] | ✓ | ✓ | ✓ | ✓ |
S (symbol)
|
✓ | ✓ | ✓ | ✗ | ✗ | ✗ | ✓ | ✓ | ✓ | ✗ | ✗ | ✗ | ✗ | ✗ | ✓ | ~[7] | ✓ |
c (char)
|
✓ | ✓ | ✓ | ✗ | ✓ | ✗ | ✓ | ✓ | ✓ | ✗ | ✗ | ✗ | ✗ | ✓ | ✓ | ✓ | ✓ |
r (RGBA color)
|
✗ | ✓ | ✓ | ✓ | ✗ | ✗ | ✓ | ✓ | ✓ | ✓ | ✓ | ✗ | ✗ | ✓ | ✓ | ✓ | ✗ |
u
|
✗ | ✗ | ✗ | ✗ | ✓ | ✗ | ✗ | ✗ | ✗ | ✗ | ✗ | ✗ | ✗ | ✗ | ✗ | ✗ | ✗ |
m (MIDI message)
|
✓ | ✓ | ✓ | ✓ | ✗ | ✗ | ✓ | ✓ | ✓ | ✓ | ✓ | ✗ | ✗ | ✓ | ✓ | ✓ | ✓ |
N (Nil)
|
✓ | ✓ | ✓ | ✓ | ✗ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✗ | ✗ | ✓ | ✓ | ✓ | ✓ |
I (Infinitum)
|
✓ | ✓ | ✓ | ✗ | ✗ | ✗ | ✓ | ✓ | ✓ | ✗ | ✗ | ✗ | ✗ | ✓ | ✓ | ✓ | ✓ |
[] (array)
|
✗ | ✓ | ✓ | ✓ | ✓ | ✗ | ✓ | ✓ | ✓ | ✓ | ✓ | ✗ | ✗ | ✓ | ✓ | ✓ | ✓ |
| OSCQuery server — VRChat attributes | |||||||||||||||||
| HTTP server | ✗ | ✗ | ✗ | ✓ | ✓ | ✗ | ✗ | ✗ | ✓ | ✗ | ~[8] | ✓ | ✓ | ✗ | ✓ | ✓ | ✗ |
| HOST_INFO | ✗ | ✗ | ✗ | ✓ | ✓ | ✗ | ✗ | ✗ | ✓ | ✗ | ~[9] | ✓ | ✓ | ✗ | ✓ | ✓ | ✗ |
| FULL_PATH | ✗ | ✗ | ✗ | ✓ | ✓ | ✗ | ✗ | ✗ | ✓ | ✗ | ~[10] | ✓ | ✓ | ✗ | ✓ | ✓ | ✗ |
| CONTENTS | ✗ | ✗ | ✗ | ✓ | ✓ | ✗ | ✗ | ✗ | ✓ | ✗ | ~[10] | ✓ | ✓ | ✗ | ✓ | ✓ | ✗ |
| TYPE | ✗ | ✗ | ✗ | ✓ | ✓ | ✗ | ✗ | ✗ | ✓ | ✗ | ✗ | ✓ | ✓ | ✗ | ✓ | ✓ | ✗ |
| ACCESS | ✗ | ✗ | ✗ | ✓ | ✓ | ✗ | ✗ | ✗ | ✓ | ✗ | ✗ | ✓ | ✓ | ✗ | ✓ | ✓ | ✗ |
| VALUE | ✗ | ✗ | ✗ | ✓ | ✓ | ✗ | ✗ | ✗ | ✓ | ✗ | ✗ | ✓ | ✓ | ✗ | ✓ | ✓ | ✗ |
| RANGE | ✗ | ✗ | ✗ | ~[11] | ~[11] | ✗ | ✗ | ✗ | ✓ | ✗ | ✗ | ✗ | ~[11] | ✗ | ✓ | ✓ | ✗ |
| DESCRIPTION | ✗ | ✗ | ✗ | ~[12] | ~[12] | ✗ | ✗ | ✗ | ✓ | ✗ | ✗ | ✓ | ~[12] | ✗ | ✓ | ~[12] | ✗ |
| OSCQuery server — additional OSCQuery attributes | |||||||||||||||||
| TAGS | ✗ | ✗ | ✗ | ✗ | ✗ | ✗ | ✗ | ✗ | ✓ | ✗ | ✗ | ✗ | ✗ | ✗ | ✓ | ✗ | ✗ |
| EXTENDED_TYPE | ✗ | ✗ | ✗ | ✗ | ✗ | ✗ | ✗ | ✗ | ✗ | ✗ | ✗ | ✗ | ✗ | ✗ | ✓ | ✗ | ✗ |
| UNIT | ✗ | ✗ | ✗ | ✗ | ✗ | ✗ | ✗ | ✗ | ✗ | ✗ | ✗ | ✗ | ✗ | ✗ | ✓ | ✗ | ✗ |
| CRITICAL | ✗ | ✗ | ✗ | ✗ | ✗ | ✗ | ✗ | ✗ | ✓ | ✗ | ✗ | ✗ | ✗ | ✗ | ✓ | ✗ | ✗ |
| CLIPMODE | ✗ | ✗ | ✗ | ✗ | ✗ | ✗ | ✗ | ✗ | ✓ | ✗ | ✗ | ✗ | ✗ | ✗ | ✓ | ✗ | ✗ |
| OVERLOADS | ✗ | ✗ | ✗ | ✗ | ✗ | ✗ | ✗ | ✗ | ✗ | ✗ | ✗ | ✗ | ✗ | ✗ | ✓ | ✗ | ✗ |
| OSCQuery client | |||||||||||||||||
| HTTP client | ✗ | ✗ | ✗ | ✓ | ✓ | ✗ | ✗ | ✗ | ✓ | ✗ | ✗ | ✓ | ✓ | ✗ | ✗ | ✓ | ✗ |
| Service discovery | |||||||||||||||||
| mDNS advertisement | ✗ | ✗ | ✗ | ✓ | ✓ | ✗ | ✗ | ✗ | ✓ | ✗ | ✓ | ✓ | ✓ | ✗ | ✗ | ✓ | ✗ |
| mDNS discovery | ✗ | ✗ | ✗ | ✓ | ✓ | ✗ | ✗ | ✗ | ✓ | ✗ | ✗ | ✓ | ✓ | ✗ | ✗ | ✓ | ✗ |
- ↑ 1.0 1.1 1.2 Pair with a separate OSC library such as LucHeart.CoreOSC for UDP transport (see the example project).
- ↑ 2.0 2.1 2.2 2.3 Via bundled python-osc dependency; bundle support requires using python-osc's API directly.
- ↑ 3.0 3.1 3.2 OSC UDP encode/decode via bundled rosc.
- ↑ Receive fully supported including nested bundles; send requires low-level
OscWriterAPI. - ↑ 5.0 5.1 5.2 lossy type mapping to Python float.
- ↑ receive-only
- ↑ OSCQuery TYPE tag only; UDP encode/decode uses bundled rosc, which has no Symbol.
- ↑ Minimal VRChat-specific subset; only serves
/and/?HOST_INFO. - ↑ Returns
OSC_PORTonly; missingNAME,EXTENSIONS,OSC_IP,OSC_TRANSPORT. - ↑ 10.0 10.1 Hardcoded to
/avatarand/trackingpaths; not a dynamic OSC address tree. - ↑ 11.0 11.1 11.2 Advertised as supported in HOST_INFO extensions but not implemented at the node level.
- ↑ 12.0 12.1 12.2 12.3 Supported on the node level but not advertised in HOST_INFO extensions.