--- uid: input-system-custom-devices --- # Custom devices Extend the Input System with devices and input sources that Unity does not provide out of the box. Send low-level input events into the runtime, or implement a custom Device with layouts, state, and registration. Use **Input events** when you need to inject or observe raw input; follow **Create a custom device** when you integrate a third-party API or replace HID fallback behavior. | **Topic** | **Description** | | :--- | :--- | | **[Input events](input-events.md)** | Listen for, create, record, and process low-level input events for custom devices. | | **[Create a custom device](create-custom-device.md)** | Walk through state struct, Device class, update, registration, and optional commands. | ## Additional resources - [Layouts](layouts.md) - [Human Interface Device specification](hid-specification.md) - [Debug layouts](debug-layouts.md) - [Devices (scripting)](devices-scripting.md)