Steamworks Steam Input Setup
This section explains the Steamworks-side setup required before using the Steam Input feature in your game.
Steam Input uses an action-based input system. Instead of reading specific physical buttons directly, your game works with named actions such as Jump, Move, or OpenMenu, while Steam maps those actions to the player's controller configuration.
Create an In-Game Actions File
Steam Input actions are defined in an In-Game Actions (IGA) file.
The IGA file describes:
- Action Sets
- Digital Actions
- Analog Actions
- Localized action names
A typical project may define action sets such as:
GameplayMenuVehicle
And actions such as:
JumpInteractPauseMoveLook
The action names defined in this file are the names used by the Steam Input API and by the plugin.
For example, if the IGA file contains a digital action named:
Jump
use Jump when requesting that action from the plugin.
Note
Action names are identifiers and must match exactly between the Steam Input configuration and your game.
Action Sets
An Action Set is a group of actions that are active together.
For example:
Gameplaymay contain movement, camera, jump, and interaction actionsMenumay contain navigation, confirm, and cancel actionsVehiclemay contain steering, acceleration, and braking actions
Only the action set relevant to the current gameplay context normally needs to be active.
The plugin can retrieve Action Set handles by name and activate them for connected Steam Input devices.
Digital Actions
Digital Actions represent inputs that are either active or inactive.
Typical examples include:
- Jump
- Interact
- Reload
- Pause
- Confirm
In the IGA file, digital actions are defined inside the Button section of an Action Set.
The action name used in the IGA file is the same name used when retrieving the corresponding Steam Input Digital Action handle in the plugin.
Analog Actions
Analog Actions provide one or two axes of continuous input.
Typical examples include:
- Character movement
- Camera movement
- Steering
- Analog triggers
Steam Input supports both one-axis and two-axis analog actions.
In the IGA file, analog actions are defined using the appropriate analog action type and input mode.
The action name used in the IGA file is the same name used when retrieving the corresponding Steam Input Analog Action handle in the plugin.
Configure Controller Bindings
After defining the available actions, create a Steam Input configuration that maps physical controller inputs to those actions.
For example:
- Controller face button →
Jump - Left Stick →
Move - Right Stick →
Look - Menu button →
Pause
Steam Input sits between the physical controller and the game, allowing the same game actions to be mapped differently for different controller types.
The game should continue to work with named actions rather than depending on a specific physical controller layout.
Action Manifest
Steam also uses an Action Manifest to locate the game's In-Game Actions file.
The manifest associates the application with the IGA configuration used by Steam Input.
Make sure the manifest references the correct IGA file and is included with the game as required by Steam Input.
For the exact manifest format and current Steam requirements, refer to the official Steamworks documentation.
Publish and Test the Configuration
After configuring Steam Input, make sure the configuration is saved and available to the Steam account used for testing.
When testing:
- The Steam client must be running
- The game must use the correct Steam App ID
- A supported controller should be connected
- The configured action and action set names must match the names used by the game
- The Steam Input configuration for the application must be available in the Steam client
Changes to Steam Input configuration may not appear immediately in an already running game or Steam client session.
Restart the game, and if necessary the Steam client, after changing Steam Input configuration.
Using Action Names in the Plugin
The Steam Input API identifies Action Sets and Actions by name.
For example, if your Steam Input configuration defines:
- Action Set:
Gameplay - Digital Action:
Jump - Analog Action:
Move
use those same names when retrieving their handles through the plugin.
A typical runtime workflow is:
- Initialize Steam Input
- Retrieve connected Steam Input devices
- Get the Action Set handle for
Gameplay - Get the Digital Action handle for
Jump - Get the Analog Action handle for
Move - Activate the required Action Set
- Read the action state during gameplay
The plugin exposes the Steam Input runtime API, but the Action Sets and Actions themselves must already exist in the Steam Input configuration.
Official Steamworks Documentation
For complete information about Steam Input, the In-Game Actions file, Action Manifests, Action Sets, controller configurations, and advanced input features, refer to the official Steam Input documentation.
Common Configuration Mistakes
- Action Set names in Unreal do not match the names defined in the Steam Input configuration
- Digital or Analog Action names do not match exactly
- The In-Game Actions file is missing or invalid
- The Action Manifest points to the wrong IGA file
- No Steam Input configuration has been created for the application
- Steam is running with the wrong App ID
- Steam or the game was not restarted after changing the configuration