Input device glyphs
Input glyphs powered by Enhanced Input and the internal glyph database.
Interaction Engine resolves prompt visuals from the player's current input bindings and the active input device family. For Enhanced Input actions, the plugin finds the currently bound key, chooses the correct keyboard or gamepad glyph style, and returns UI-ready visual data: icon, key text, action text, resolved key, and device type.
UInteractionGlyphDatabase. CommonUI/CommonInput is not required for the built-in glyph system.
The legacy source mode setting remains only for Blueprint/config compatibility.
How resolution works
The glyph pipeline has two separate jobs: detecting the broad input family currently being used and resolving the visual prompt for a specific key or Enhanced Input action.
KeyboardMouse. Gamepad input resolves as the selected gamepad glyph style.
UInputAction.
FKey and resolved EInteractionGlyphDeviceType are looked up in the active
UInteractionGlyphDatabase. The first matching database entry provides the icon, display text, size, and padding data.
Resolved device types
The resolved device type is represented by EInteractionGlyphDeviceType. Each value maps to one icon set inside the glyph database.
For gamepads, this enum represents the prompt style being displayed, not necessarily the exact physical controller model.
| Enum value | Used for |
|---|---|
KeyboardMouse | Keyboard and mouse prompts. |
XboxController | Xbox-style gamepad prompts. |
DualSense | PlayStation 5 / DualSense-style prompts. |
DualShock4 | PlayStation 4 / DualShock 4-style prompts. |
SwitchProController | Nintendo Switch Pro Controller-style prompts. |
JoyCon | Nintendo Joy-Con-style prompts. |
Switch2Controller | Nintendo Switch 2-style prompts. |
SteamDeck | Steam Deck-style prompts. |
GenericGamepad | Generic fallback gamepad prompts. |
Gamepad glyph style
EInteractionGamepadGlyphStyle controls which gamepad icon family is used while the active input family is gamepad.
This can be set in project settings as the default and changed at runtime with Blueprint nodes for player preference menus.
| Style | Resolution behavior |
|---|---|
Auto | Uses the database DefaultGamepadFallback. If that fallback is invalid for gamepads, uses GenericGamepad. |
XboxController | Uses the XboxController glyph set. |
DualShock4 | Uses the DualShock4 glyph set. |
DualSense | Uses the DualSense glyph set. |
SwitchProController | Uses the SwitchProController glyph set. |
JoyCon | Uses the JoyCon glyph set. |
Switch2Controller | Uses the Switch2Controller glyph set. |
SteamDeck | Uses the SteamDeck glyph set. |
GenericGamepad | Uses the GenericGamepad glyph set. |
Glyph database setup
Icons are stored in a UInteractionGlyphDatabase data asset. The asset holds one FInteractionGlyphSet
per device type, and each set contains the individual key-to-icon mappings for that controller.
/InteractionEngine/InteractionEngine/Data/DA_InteractionGlyphDatabase_DataAsset.
You can use this asset directly or duplicate it into your project if you want full control over textures and labels.
DefaultGlyphDatabase to the database asset
that should be loaded by the glyph subsystem on each local game instance.
DefaultGamepadGlyphStyle. Leave it as Auto if the database fallback should decide
the default gamepad icon family, or choose a specific style such as XboxController or DualSense.
FInteractionGlyphSet, set DeviceType and fill the Entries array.
Each FInteractionGlyphEntry maps one FKey to display text, an optional icon texture, fallback text,
desired size, padding, and visibility options.
InteractionGlyphSubsystem
before showing prompt widgets. Most projects can rely on the project setting instead.
DefaultGamepadFallback inside the database so
Auto gamepad style and unknown gamepad-style prompts always have a safe icon family to use.
Glyph source mode
EInteractionGlyphSourceMode is retained for older Blueprint/config compatibility. In the current shipped runtime,
prompt visuals are resolved through the internal glyph database provider.
| Mode | Current behavior |
|---|---|
Auto | Uses the internal glyph database. This is the recommended default. |
InternalDatabase | Uses the internal glyph database explicitly. |
LegacyReserved | Hidden legacy value reserved for compatibility. Do not use it for new content. |
Blueprint nodes
Glyph operations are available through UInteractionGlyphLibrary.
These are static Blueprint Function Library calls, so widgets and actors can use them without storing a subsystem reference.
Resolve Prompt for Input Action
The primary node for projects using Enhanced Input. It resolves the currently bound key for a UInputAction, respects
active mapping contexts and runtime remapping, then returns the matching prompt visual data.
| Pin | Direction | Type | Notes |
|---|---|---|---|
| World Context Object | Input | Object | Pass Self from any Actor or Widget. |
| Input Action | Input | UInputAction | The Enhanced Input action to resolve. |
| Action Text | Input | Text | The label shown beside the key prompt, such as Interact or Pick Up. |
| Local Player Index | Input | Integer | 0 for the first local player. Pass the correct index in split-screen. |
| Return Value | Output | FInteractionPromptVisualData | Resolved icon, text, key, action label, device type, and display flags. |
Resolve Prompt for Key
Resolves prompt visuals for a raw FKey. Use this when you already know the key, when showing non-action prompts,
or when working outside the Enhanced Input action flow.
| Pin | Direction | Type | Notes |
|---|---|---|---|
| World Context Object | Input | Object | Pass Self from any Actor or Widget. |
| Key | Input | FKey | The specific key to look up in the glyph database. |
| Action Text | Input | Text | The label shown beside the key prompt. |
| Local Player Index | Input | Integer | 0 for the first local player. |
| Return Value | Output | FInteractionPromptVisualData | Resolved icon, text, key, action label, device type, and display flags. |
Gamepad style nodes
Use these nodes to support an options menu where players choose the controller prompt family they want to see.
| Node | Use |
|---|---|
Set Gamepad Glyph Style | Sets the active gamepad glyph style at runtime. |
Get Gamepad Glyph Style | Returns the currently selected gamepad glyph style. |
Reset Gamepad Glyph Style | Restores the style from DefaultGamepadGlyphStyle in project settings. |
Get Resolved Gamepad Glyph Device Type | Returns the actual EInteractionGlyphDeviceType used for gamepad lookup after resolving Auto. |
Get Current Device Type
Returns the currently active prompt device type. Keyboard and mouse input returns KeyboardMouse.
Gamepad input returns the resolved gamepad glyph device type based on the selected gamepad style.
| Pin | Direction | Type |
|---|---|---|
| World Context Object | Input | Object |
| Local Player Index | Input | Integer |
| Return Value | Output | EInteractionGlyphDeviceType |
Get Bound Key for Action
Returns the FKey currently bound to the supplied UInputAction for the specified local player.
It respects the active Enhanced Input mapping stack and prefers a key matching the current input family.
| Pin | Direction | Type |
|---|---|---|
| World Context Object | Input | Object |
| Input Action | Input | UInputAction |
| Local Player Index | Input | Integer |
| Return Value | Output | FKey |
Device type predicate nodes
Convenience Boolean nodes for branching on broad controller families without switching on the full enum.
Each takes an EInteractionGlyphDeviceType and returns a Boolean.
| Node | Returns true for |
|---|---|
Is Gamepad Device Type | Any value except KeyboardMouse. |
Is PlayStation Device Type | DualShock4 or DualSense. |
Is Nintendo Device Type | SwitchProController, JoyCon, or Switch2Controller. |
Is Xbox Device Type | XboxController. |
The resolved data struct
Both resolve nodes return FInteractionPromptVisualData. Break the struct in Blueprint to drive your UI.
| Field | Type | Notes |
|---|---|---|
bValid | Boolean | True when a valid key was resolved. Check this before applying the prompt to your widget. |
ResolvedIcon | Texture2D | The resolved icon texture. Can be null for text-only prompts. |
ResolvedKeyText | Text | The short display text for the key, such as E, Space, A, or Square. |
ActionText | Text | The action label passed into the resolve call. Returned unchanged for convenience. |
ResolvedKey | FKey | The actual key that was looked up after remapping resolution. |
ResolvedDeviceType | EInteractionGlyphDeviceType | The glyph set used for the lookup. |
bShowIcon | Boolean | True when the resolved icon should be displayed. False when only text should be shown. |
bShowText | Boolean | True when the key text should be displayed alongside or instead of the icon. |
bUsingOfficialGlyphSource | Boolean | Reserved for provider-origin reporting. With the shipped internal database provider, this is normally false. |
Reacting to device or style changes
InteractionGlyphSubsystem exposes OnInputDeviceTypeChanged. Bind to it if an already visible prompt widget
should refresh immediately when the player changes from keyboard/mouse to gamepad, from gamepad to keyboard/mouse,
or when the gamepad glyph style changes at runtime.
InteractionGlyphSubsystem as the class.
EInteractionGlyphDeviceType.
EInteractionGlyphDeviceType.
Re-run your resolve node for each visible prompt that needs to update.
Typical widget integration
UInputAction used for that prompt. Prefer action-based resolution over hardcoded key labels.
bShowIcon for the Image widget and bShowText for the key Text widget. Do not assume every entry has an icon.
OnInputDeviceTypeChanged on Construct and call the resolve node again inside the bound event
to keep the icon current if the player swaps controllers while the widget is open.
bValid is false, collapse or hide the entire prompt row rather than showing an empty icon or blank text.
Setup checklist
DefaultGlyphDatabase is set in Project Settings → Interaction Engine Glyphs, or Set Glyph Database
is called early during local initialization.
DefaultGamepadFallback so Auto gamepad style has a safe icon family.
bValid before applying icon or text to avoid showing empty UI elements.
OnInputDeviceTypeChanged is bound in the prompt widget so icon updates fire immediately on controller swap.