# Custom Plugin Control

Use Oden plugins for custom vehicle control and operator integrations.

Last validated: 2026-05-05

Use a custom plugin when the integration needs direct Oden APIs, shared data, custom entities, custom capture, or tighter coupling to the Oden update loop than a TCP sidecar provides.

For most vehicle controllers, start with OCP TCP first. Move to a plugin only when the integration needs native Oden behavior.

## Good plugin use cases

-   Custom operator input device handling.
    
-   Custom visualization entities.
    
-   Plugin-defined video capture.
    
-   Shared data between Oden plugins.
    
-   Operator-side data that should feed OCP without a webview or external TCP client.
    
-   Project-specific controls that need to run inside the Oden frame loop.
    

## APIs to look at

Plugin SDK

Main native extension surface. Use it for custom entities, global plugins, GUI controls, and update-loop integration.

Com Channels

Plugin-defined messages between Player and Streamer. Use when you need custom Oden-to-Oden messages outside the OCP contract.

OCP shared data

Operator-side plugins can read `vehicle_ocp` and publish `client_ocp`. Use this when plugin code is the operator-side control source.

Webview named messages

Use when a browser UI should exchange JSON with plugins.

See [Plugin API](plugin-api.md) and [Plugin Messaging](plugin-messaging.md).
