Plugin Messaging

Last validated: 2026-05-05

Use this page when a custom Oden plugin needs to exchange user-defined messages between the Player and Streamer. For the standard vehicle-control path, start with Oden Control Pipeline overview. Use Com Channels when you need plugin-level messages that are outside the Oden Control Pipeline contract.

Com Channels

Com Channels is Oden’s built-in communication channel for plugin-defined messages. Messages can be sent between Player and Streamer over the configured Oden links. The transport is UDP, so the same practical constraints apply: packets can be delayed, reordered, duplicated, or lost.

Messages can be processed in two ways:

Synchronous

Delivered in the application frame loop. Use this when message handling must line up with Oden update timing.

Asynchronous

Delivered through listener queues serviced by separate threads. Use this when plugin work should not wait for the main frame loop.

Com Channels are used through the Voysys Plugin SDK. Contact Voysys for SDK access when building native plugins.

Use the Com Channels sidebar tab while testing a plugin integration.

Link

Shows transmit and receive statistics, send rate, last received message, and other per-link counters. Use it to prove that messages are moving over the same links as the Oden session.

Message Queues

Shows message types currently being sent or received. The sender side can show message names; the receiver side shows message identifiers. Use it to spot duplicate message types, missing senders, or a queue that is no longer being drained.

Advanced Settings

Most projects should keep defaults. Tune these only after a measured problem is visible in the queue or link stats.

Max Packet Size

Maximum UDP packet payload used for Com Channel messages.

Queue Size

Maximum queued messages per listener. The synchronous listener queue is cleared each frame; each asynchronous listener has its own queue and thread.

Limit Send Rate

Limits how often an asynchronous send queue is flushed.

Async Send Rate

Flush cadence used when send-rate limiting is enabled.

Max Invalid Packets In A Row

Number of timestamp-invalid packets that must arrive before Oden accepts the new timestamp sequence. This helps after one Player disconnects and another Player on a different computer connects to the same Streamer.

If a plugin only uses synchronous messages and the frame rate is low, a smaller send-rate limit can make messages feel more responsive. Validate this with the real plugin and network path before deploying.

Design Notes

Keep Com Channel messages small and versioned. Include enough message identity for the receiver to ignore unknown or incompatible messages. Do not put safety-critical vehicle limits only in a Com Channel plugin; the vehicle-side safety controller must still enforce its own limits.

For operator UI data in a webview, use Webview and JavaScript SDK. For vehicle control and telemetry over TCP/JSON, use Vehicle-Side Control and Operator-Side Control.