# Plugin API

Build native Oden extensions for entities, capture, controls, messaging, and integrations.

Last validated: 2026-05-05

Use plugins when an integration needs to run inside Oden instead of beside it. Plugins can add custom entities, global background logic, capture sources, controls, and messaging.

## Start here

-   [Load and configure plugins](../configure/plugins.md) - project plugin paths, global plugins, startup parameters, and troubleshooting.
    
-   [Plugin Distribution](plugin-distribution.md) - package plugins with projects and deployments.
    
-   [C/C++/Rust](plugin-languages.md) - choose an SDK language path.
    
-   [Plugin Messaging](plugin-messaging.md) - use Com Channels and webview messages.
    

## When to use a plugin

Use a plugin when you need:

-   Native Oden update-loop behavior.
    
-   Custom entities or GUI controls.
    
-   Direct plugin-to-plugin shared data.
    
-   Custom video capture.
    
-   A control or telemetry integration that cannot be cleanly handled by OCP TCP or webview messages.
    

Do not put safety-critical vehicle limits only in a plugin. Vehicle-side safety controllers should enforce their own limits and command timeouts.
