Lasse Broekstra

Project Overview

Steam Input API Plugin for Unreal Engine is a drop‑in replacement for Unreal’s built‑in Steam Input controller, delivering seamless support for gamepads, controllers, and custom mappings via the Enhanced Input System and Slate UI. It was developed to overcome the legacy plugin’s dependence on the deprecated input pipeline, enabling zero‑boilerplate setup and full compatibility with Unreal’s modern input architecture.

Configure Once, Then Forget

In the plugin’s settings page, just list your Steam action names and their types. It automatically generates matching Enhanced Input keys, ready to bind in your Input Action Mappings—no extra code or manual wiring required.

Automatically generated custom keys to ensure conflict‑free input

Each Steam action you register gets its own unique Enhanced Input key, so you never have to worry about clashing with engine defaults or other plugins. This isolation means you can bind, unbind, and debug each action independently, making complex input setups far easier to manage. By avoiding hard‑coded key values, you get a more robust, future‑proof input system that scales cleanly as your action list grows.

An image of a Input Mapping context's ´Bind Key´ window showing custom created input keys available for binding

Native handling of Steam action types

The plugin automatically dispatches each Steam action according to its declared type: digital actions fire standard button‑pressed/released events, analog actions drive axis inputs, and actions marked as MouseInput simulate raw mouse movement through Unreal’s input pipeline. This ensures pointer‑based controls—cursors, camera pans, drag‑and‑drop—work seamlessly without hacks, while all other inputs still behave exactly as expected.

The code that drives what determines the type of action that get's handled

Rebindable Slate navigation actions

By default, Slate UI uses hard‑coded keys for menu navigation—no runtime rebinding. Our plugin adds a settings panel under Project Settings where you can map any Steam Input action (Up, Down, Left, Right, Confirm, Cancel, etc.) to Slate events. This gives players full control over UI bindings without touching code or rebuilds.

Graceful fallback when Steam Input is disabled

If Steam Input is turned off or unavailable, the plugin remains inactive—no input actions are sent—so Unreal’s default input systems (Enhanced Input, Slate UI, native controllers) continue to function without interference. You can enable or disable Steam Input at runtime or via project settings, and the plugin will seamlessly toggle its mappings.

Open source and free to download

As with all my projects, Steam Tools is open source and free to download on GitHub.

Get It here