Tala Esenlikler

Initial UE 5.7 release

Input And UI

Connect command input actions and let the UI manager present prompts for the focused interactor.

Interaction Framework 1.0.0 UE5.7

Assign Input Actions Where Commands Need Them

Interactive commands use UInputAction assets on the command row. More markers and Back markers expose input actions for paging through a command surface. Multi-participant interactions can expose a cancel input action while a route is active.

For command input actions, use a button-style input action with Value Type set to Boolean. This gives the runtime a pressed/released signal for instant, hold, multi-tap, and cancel phases. Axis and vector actions can load, but the editor validation warns because command activation does not use analog values.

Configure Runtime Input Settings

Use UInteractionFrameworkRuntimeDeveloperSettings to assign InteractionInputMappingContext. This lets the UI manager resolve input display data and bind the controls currently visible in the focused surface.

The plugin config assigns /InteractionFramework/Blueprints/Input/Interaction/IMC_Interaction by default so bundled demo target definitions have valid input references immediately. The UI manager adds the configured mapping context to the local player while an interactor is bound. Replace this setting with your project mapping context when you move beyond the demo input actions.

Configure Prompt Input Presentation

UInteractionFrameworkUIDeveloperSettings includes global input prompt presentation rules and input-family profiles. Global rules are good for layout-neutral labels such as Esc, LMB, LT, or D-Up. Profiles are better for face-button labels or glyphs that differ by controller layout.

The UI manager resolves prompt input per local player, applies the active input-family profile first, then falls back to global rules and finally to Unreal key display text. Text-only widgets can bind InputText. Glyph-aware widgets can read FInteractionUIInputPromptPresentation for the key, input family, display text, icon texture, icon material, and style name. When starting from an FInteractionUIEntryPresentation, use TryGetInputPromptPresentationFromEntry to avoid breaking nested structs in Blueprint.

Localize Command Text

Command labels come from CommandStringTable when a matching key exists. The default plugin table is /InteractionFramework/Widgets/LocalizationStringTable. Use the complete command id tag as the string table key, for example Interaction.Command.Open, and type the displayed label into Source String. These entries can be translated through Unreal Engine 5.7 localization workflows. If a key is missing, the prompt falls back to the command tag string.

Use The Automatic UI Binding Path

UInteractionUIManagerSubsystem is a local player subsystem. In the normal player-pawn setup, it listens for controller and pawn changes, finds the pawn’s UInteractionRuntimeInteractorComponent, and binds to that interactor automatically. The default widget receives projection bundles, focused prompt entries, control entries, progress updates, and payload changes.

  • Use automatic binding for ordinary player pawn prompts.
  • Use SetDefaultWidgetClass when you need to switch the default widget class at runtime.
  • Use BindInteractor only when the UI should follow an interactor that is not on the current pawn or when your project deliberately owns binding manually.
  • Use UnbindInteractor when a custom UI ownership path needs to detach from an interactor explicitly.

Use Or Create A Prompt Widget

You can start with the bundled WB_VerticalInteractionList widget from /InteractionFramework/Widgets, or create a widget Blueprint based on UInteractionUIWidgetBase. Override its Blueprint events to react to surface entries, control entries, projection updates, focus changes, proximity changes, input family changes, route progress, outcome notifications, and widget payload updates. Assign the widget class in UInteractionFrameworkUIDeveloperSettings or through a widget payload override.

Bundled Demo Widgets

The demo content includes prompt widgets you can inspect or assign directly while learning the plugin. Enable Show Plugin Content to find them under /InteractionFramework/Widgets.

  • WB_VerticalInteractionList is the regular interaction list example and the best starting point for common command prompts.
  • WBP_InteractionKey renders a single command key/prompt row and is used inside the other demo widgets.
  • The bundled four-option command widget demonstrates a multi-choice custom prompt.
  • WB_PickUpInteraction demonstrates a custom pickup prompt selected through a widget payload override.

Keep UI Data Flow One Directional

Let the interactor and UI manager push the current resolved state into the widget. The widget should display prompt entries, control entries, progress, and route state. Activation requests should come from the interactor command flow or the UI manager bound input controls, not from recreating runtime validation inside the widget.

Input Asset Discipline

Interactive command rows expect button-like input. In Enhanced Input terms, that means a Boolean value type for normal press, release, hold, and tap behavior. Axis and vector input assets are not a good fit for command activation because the runtime command patterns are built around pressed/released phases and input timing.

UI Ownership Discipline

Let the UI manager follow the local pawn interactor when using the normal player-pawn setup. Manual binding is for custom ownership, not a required setup step. If a widget is missing, check widget class settings and local pawn interactor discovery before adding manual registration code.

Suppress Prompts During Other UI

When a menu, conversation, inspection view, or other local UI temporarily owns input, suppress interaction prompts through the UI manager instead of breaking interactor focus. Full suppression hides generated prompts and blocks prompt-driven interaction input. Non-focused suppression keeps the focused prompt available while hiding nearby/passive prompt widgets.

Blueprints can call the convenience functions on UInteractionUIPromptBlueprintLibrary from a widget, player controller, or other world-context object.

Prompt Verification

  • The widget class derives from UInteractionUIWidgetBase.
  • The target definition command row has prompt text or a prompt provider.
  • The command input action is assigned on the row that should display it.
  • The interactor has a focused handle and a non-empty surface.
  • The projected position matches the authored point or point binding.