Skip to content

Steam Input

The Steam Input feature provides access to Steam's action-based controller input system.

Instead of relying only on fixed physical button names, Steam Input allows your game to define named digital actions, analog actions, action sets, and action set layers that Steam maps to different controller types.

The feature also exposes controller glyphs, localized action/origin names, vibration, haptics, motion data, LED control, Steam Deck detection, and Steam gamepad text input.


Main Capabilities

  • Initialize Steam Input
  • Enumerate Steam-managed controllers
  • Identify controller/device types
  • Activate action sets and action set layers
  • Read digital and analog action values
  • Query the physical origins bound to actions
  • Load Steam controller glyphs for UI
  • Read localized action and input-origin names
  • Open Steam's controller binding panel
  • Control vibration, haptics, motion data, and controller LEDs
  • Detect Steam Deck
  • Open gamepad and floating text input
  • Subscribe to text-input dismissal events

Action-Based Input Model

Steam Input is built around actions defined by your game rather than hard-coded controller buttons.

A typical setup contains:

  • Action Sets — groups of actions for a gameplay context, such as Menu or Gameplay
  • Digital Actions — button-like actions such as Jump or Interact
  • Analog Actions — 1D/2D actions such as Move or Look
  • Action Set Layers — temporary layers added on top of the active action set

The names used by the plugin must match the names configured in your Steam Input manifest.


Basic Workflow

A typical Steam Input flow is:

  1. Configure Steam Input actions and sets for the application.
  2. Let the plugin initialize Steam Input automatically, or call Initialize Steam Input explicitly if needed.
  3. Retrieve connected FSteamInputDevice values.
  4. Activate the appropriate action set for each device.
  5. Read digital or analog actions by name during gameplay.
  6. Use action origins and Steam glyphs to display the correct prompts for the active controller.

For Steamworks configuration, see Steamworks Setup.

For practical Blueprint workflows, see Examples.


Devices and Controller Types

Connected controllers are represented by FSteamInputDevice.

The controller model reported by Steam uses ESteamInputDeviceType.

Steam Input can also translate between a Steam Input device and its emulated gamepad index when Steam owns that slot.


Action Values and Origins

Digital actions return a pressed state and can be checked for active availability.

Analog actions return a FVector2D together with a source mode represented by ESteamInputAnalogMode.

Physical bindings are returned as FSteamInputOrigin values. These origins can be converted into localized names or Steam-provided controller glyphs.


Glyphs and UI Prompts

Steam Input can provide the current glyph for an action origin as either:

  • A transient UTexture2D
  • A local PNG path

Glyph resolution is selected using ESteamInputGlyphResolution.

This allows UI prompts to follow the user's current controller and bindings instead of showing hard-coded button icons.


Haptics, Motion, and LEDs

The feature supports traditional vibration and Steam Input haptic APIs on compatible devices.

Motion sensor data is returned through FSteamInputMotionData.

Controller LED color can also be changed or reset on supported hardware.

Hardware capabilities vary by controller, so unsupported features may have no effect.


Gamepad Text Input

Steam Input exposes both standard gamepad text input and floating text input.

The corresponding modes are configured through the Steam Input enums in the Enumerations reference.

Dismissal events are persistent subscriptions and return FSteamInputListenerHandle.


Important Notes

  • Steam Input actions, sets, and layers must match your configured manifest names.
  • The plugin attempts to initialize Steam Input automatically.
  • Action availability depends on the active action set and layers.
  • Glyphs and origins reflect the user's actual Steam Input bindings.
  • Haptics, LEDs, motion sensors, and other hardware-specific features depend on controller support.
  • Steam Deck detection reports whether the current process is running on Steam Deck; it does not replace action-based input handling.