Community:OSC Resources: Difference between revisions
From VRChat Wiki
Created community OSC resources page. |
add CoreOSC and OscQueryLibrary |
||
| (One intermediate revision by the same user not shown) | |||
| Line 11: | Line 11: | ||
|- | |- | ||
! | ! | ||
! style="writing-mode: vertical-rl; transform: rotate(180deg); white-space: nowrap;" | [https://github.com/radarsat1/liblo liblo] | ! style="width: 6%; writing-mode: vertical-rl; transform: rotate(180deg); white-space: nowrap;" | [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: 6%; writing-mode: vertical-rl; transform: rotate(180deg); white-space: nowrap;" | [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: 6%; writing-mode: vertical-rl; transform: rotate(180deg); white-space: nowrap;" | [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: 6%; writing-mode: vertical-rl; transform: rotate(180deg); white-space: nowrap;" | [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: 6%; writing-mode: vertical-rl; transform: rotate(180deg); white-space: nowrap;" | [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: 6%; writing-mode: vertical-rl; transform: rotate(180deg); white-space: nowrap;" | [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: 6%; writing-mode: vertical-rl; transform: rotate(180deg); white-space: nowrap;" | [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: 6%; writing-mode: vertical-rl; transform: rotate(180deg); white-space: nowrap;" | [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: 6%; writing-mode: vertical-rl; transform: rotate(180deg); white-space: nowrap;" | [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: 6%; writing-mode: vertical-rl; transform: rotate(180deg); white-space: nowrap;" | [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: 6%; writing-mode: vertical-rl; transform: rotate(180deg); white-space: nowrap;" | [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: 6%; writing-mode: vertical-rl; transform: rotate(180deg); white-space: nowrap;" | [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: 6%; writing-mode: vertical-rl; transform: rotate(180deg); white-space: nowrap;" | [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: 6%; writing-mode: vertical-rl; transform: rotate(180deg); white-space: nowrap;" | [https://github.com/klingtnet/rosc rosc] | ||
! style="width: 6%; writing-mode: vertical-rl; transform: rotate(180deg); white-space: nowrap;" | [https://lib.rs/crates/oscquery oscquery] | |||
! style="width: 6%; writing-mode: vertical-rl; transform: rotate(180deg); white-space: nowrap;" | [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;" | 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 | |||
|- | |- | ||
! colspan=" | ! colspan="17" 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" | ✓ | |||
|- | |- | ||
! 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" | ✓ | |||
|- | |- | ||
! 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" | ✓ | |||
|- | |- | ||
! style="text-align:left" | VRChat types | ! colspan="17" 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" | ✓ | |||
|- | |- | ||
! 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="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="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="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" | ✓ | |||
|- | |||
! colspan="17" style="text-align:left; background:#9AA0AA; color:#fff" | Optional types | |||
|- | |||
! 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="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="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="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="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:#22A84A; color:#fff" | ✓ | |||
|- | |||
! 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="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:#C03030; color:#fff" | ✗ | |||
|- | |||
! 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="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="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="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="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" | ✓ | |||
|- | |||
! colspan="17" 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:#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:#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:#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:#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:#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:#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:#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:#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:#C03030; color:#fff" | | | style="background:#C03030; color:#fff" | ✗ | ||
| style="background:#22A84A; color:#fff" | ✓ | |||
| style="background:#C03030; color:#fff" | ✗ | |||
|- | |- | ||
! colspan=" | ! colspan="17" style="text-align:left; background:#9AA0AA; color:#fff" | OSCQuery server — additional OSCQuery attributes | ||
|- | |- | ||
! 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="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="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="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="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="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" | ✗ | |||
|- | |- | ||
! colspan=" | ! colspan="17" 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:#C03030; color:#fff" | ✗ | |||
|- | |- | ||
! colspan=" | ! colspan="17" 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:#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:#C03030; color:#fff" | ✗ | |||
|} | |} | ||
{{reflist | {{reflist}} | ||
==See Also== | ==See Also== | ||
Latest revision as of 04:17, 1 May 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 | OSCKit | |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Language | C | C# | C# | C# | C# | Go | Java | JavaScript | TypeScript | Python | Python | Python | Python | 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 |
| OSC transport | ||||||||||||||||
| Send messages | ✓ | ✓ | ✓ | ✗[1] | ✗ | ✓ | ✓ | ✓ | ✗ | ✓ | ✓[2] | ✗ | ✗ | ✓ | ✗ | ✓ |
| Receive messages | ✓ | ✓ | ✓ | ✗[1] | ✗ | ✓ | ✓ | ✓ | ✗ | ✓ | ✓[2] | ✗ | ✗ | ✓ | ✗ | ✓ |
| Bundle support | ✓ | ✓ | ~[3] | ✗[1] | ✗ | ✓ | ✓ | ✓ | ✗ | ✓ | ✓[2] | ✗ | ✗ | ✓ | ✗ | ✓ |
| VRChat types | ||||||||||||||||
i (int32)
|
✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓[2] | ✓ | ✓ | ✓ | ✓ | ✓ |
f (float32)
|
✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
s (string)
|
✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
T (True)
|
✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
F (False)
|
✓ | ✓ | ✓ | ✓ | ✗ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✗ | ✓ | ✓ | ✓ | ✓ |
| Optional types | ||||||||||||||||
b (blob)
|
✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✗ | ✗ | ✓ | ✓ | ✓ |
h (int64)
|
✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✗ | ~[4] | ✓ | ✓ | ✓ |
d (float64)
|
✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✗ | ~[4] | ✓ | ✓ | ✓ |
t (timetag)
|
✓ | ✓ | ✓ | ✓ | ✗ | ✓ | ✓ | ✓ | ✓ | ~[5] | ✓ | ✗ | ~[4] | ✓ | ✓ | ✓ |
S (symbol)
|
✓ | ✓ | ✓ | ✗ | ✗ | ✗ | ✓ | ✓ | ✓ | ✗ | ✗ | ✗ | ✗ | ✗ | ✓ | ✓ |
c (char)
|
✓ | ✓ | ✓ | ✗ | ✓ | ✗ | ✓ | ✓ | ✓ | ✗ | ✗ | ✗ | ✗ | ✓ | ✓ | ✓ |
r (RGBA color)
|
✗ | ✓ | ✓ | ✓ | ✗ | ✗ | ✓ | ✓ | ✓ | ✓ | ✓ | ✗ | ✗ | ✓ | ✓ | ✗ |
u
|
✗ | ✗ | ✗ | ✗ | ✓ | ✗ | ✗ | ✗ | ✗ | ✗ | ✗ | ✗ | ✗ | ✗ | ✗ | ✗ |
m (MIDI message)
|
✓ | ✓ | ✓ | ✓ | ✗ | ✗ | ✓ | ✓ | ✓ | ✓ | ✓ | ✗ | ✗ | ✓ | ✓ | ✓ |
N (Nil)
|
✓ | ✓ | ✓ | ✓ | ✗ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✗ | ✗ | ✓ | ✓ | ✓ |
I (Infinitum)
|
✓ | ✓ | ✓ | ✗ | ✗ | ✗ | ✓ | ✓ | ✓ | ✗ | ✗ | ✗ | ✗ | ✓ | ✓ | ✓ |
[] (array)
|
✗ | ✓ | ✓ | ✓ | ✓ | ✗ | ✓ | ✓ | ✓ | ✓ | ✓ | ✗ | ✗ | ✓ | ✓ | ✓ |
| OSCQuery server — VRChat attributes | ||||||||||||||||
| HTTP server | ✗ | ✗ | ✗ | ✓ | ✓ | ✗ | ✗ | ✗ | ✓ | ✗ | ~[6] | ✓ | ✓ | ✗ | ✓ | ✗ |
| HOST_INFO | ✗ | ✗ | ✗ | ✓ | ✓ | ✗ | ✗ | ✗ | ✓ | ✗ | ~[7] | ✓ | ✓ | ✗ | ✓ | ✗ |
| FULL_PATH | ✗ | ✗ | ✗ | ✓ | ✓ | ✗ | ✗ | ✗ | ✓ | ✗ | ~[8] | ✓ | ✓ | ✗ | ✓ | ✗ |
| CONTENTS | ✗ | ✗ | ✗ | ✓ | ✓ | ✗ | ✗ | ✗ | ✓ | ✗ | ~[8] | ✓ | ✓ | ✗ | ✓ | ✗ |
| TYPE | ✗ | ✗ | ✗ | ✓ | ✓ | ✗ | ✗ | ✗ | ✓ | ✗ | ✗ | ✓ | ✓ | ✗ | ✓ | ✗ |
| ACCESS | ✗ | ✗ | ✗ | ✓ | ✓ | ✗ | ✗ | ✗ | ✓ | ✗ | ✗ | ✓ | ✓ | ✗ | ✓ | ✗ |
| VALUE | ✗ | ✗ | ✗ | ✓ | ✓ | ✗ | ✗ | ✗ | ✓ | ✗ | ✗ | ✓ | ✓ | ✗ | ✓ | ✗ |
| RANGE | ✗ | ✗ | ✗ | ~[9] | ~[9] | ✗ | ✗ | ✗ | ✓ | ✗ | ✗ | ✗ | ~[9] | ✗ | ✓ | ✗ |
| DESCRIPTION | ✗ | ✗ | ✗ | ~[10] | ~[10] | ✗ | ✗ | ✗ | ✓ | ✗ | ✗ | ✓ | ~[10] | ✗ | ✓ | ✗ |
| 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.
- ↑ Receive fully supported including nested bundles; send requires low-level
OscWriterAPI. - ↑ 4.0 4.1 4.2 lossy type mapping to Python float.
- ↑ receive-only
- ↑ Minimal VRChat-specific subset; only serves
/and/?HOST_INFO. - ↑ Returns
OSC_PORTonly; missingNAME,EXTENSIONS,OSC_IP,OSC_TRANSPORT. - ↑ 8.0 8.1 Hardcoded to
/avatarand/trackingpaths; not a dynamic OSC address tree. - ↑ 9.0 9.1 9.2 Advertised as supported in HOST_INFO extensions but not implemented at the node level.
- ↑ 10.0 10.1 10.2 Supported on the node level but not advertised in HOST_INFO extensions.