How-To: Bind CommonUI Actions (UE 5.8+)

Goal: bind UI navigation actions (Escape, Confirm, Back, Tab) to CommonUI widgets directly from Enhanced Input, so glyphs track the player's live binding and you keep no UCommonUIInputData DataTable.

Prerequisites
UE 5.8+, the CommonUI plugin enabled, and a UCommonActivatableWidget (or UCrimsonActivatableWidget) you can edit.

1. Enable Enhanced Input support for CommonUI

In Config/DefaultGame.ini, turn on Enhanced Input support so FBindUIActionArgs accepts a UInputAction* directly:

ini
[/Script/CommonInput.CommonInputSettings]
bEnableEnhancedInputSupport=True
EnhancedInputClickAction=/Game/Input/IA_UI_Confirm.IA_UI_Confirm
EnhancedInputBackAction=/Game/Input/IA_UI_Back.IA_UI_Back
Without this flag the binding no-ops
If bEnableEnhancedInputSupport is false, the UInputAction* constructor of FBindUIActionArgs has no effect and your action never fires.

2. Populate UIInputActions and the settings mirror

Add one entry per UI semantic action to your config's UIInputActions list, then also assign the confirm/back assets in Project Settings -> Crimson -> Crimson Input -> UI Input (UCrimsonInputSettings.UIConfirmAction / UIBackAction) so game code has one authoritative reference.

Left: CrimsonInputConfig -> UI Actions -> UIInputActions (UI.Escape, UI.Confirm, UI.Back). Right: Project Settings -> Crimson -> Crimson Input -> UI Input -> UI Confirm/Back Action.
Suggested tagAssign
InputTag.UI.EscapeYour Escape / Pause UInputAction
InputTag.UI.ConfirmYour Accept / Confirm UInputAction
InputTag.UI.BackYour Back / Cancel UInputAction

3. Bind the action in a widget

Resolve the action by tag (from an InputConfig reference the widget holds) and register the binding with FBindUIActionArgs. CommonUI's action router reads the currently-bound key from the player's IMC, so glyphs auto-update on rebind. This step is C++-only - see the callout below.

This binding is C++-only by design
Unreal ships no Blueprint node for FBindUIActionArgs(UInputAction*, ...), and CrimsonInput deliberately does not add one - wrapping CommonUI's binding would pull a UI dependency into an input plugin. On the full Crimson stack, CrimsonUI and CrimsonCore bind UI actions natively for you; standalone, wrap the call below in your own C++ widget base. CrimsonInput's role is only to supply the tagged UInputAction assets - and FindUIInputActionForTag is BlueprintCallable, so Blueprint can still look the action up.
cpp
#include "CrimsonInputConfig.h"
#include "Input/CommonUIInputTypes.h" // FBindUIActionArgs
void UMyWidget::NativeOnInitialized()
{
Super::NativeOnInitialized();
const FGameplayTag EscapeTag = FGameplayTag::RequestGameplayTag(FName("InputTag.UI.Escape"));
if (const UInputAction* Escape = InputConfig->FindUIInputActionForTag(EscapeTag, /*bLogNotFound*/ false))
{
RegisterUIActionBinding(FBindUIActionArgs(Escape, /*bShouldDisplayInActionBar*/ false,
FSimpleDelegate::CreateUObject(this, &ThisClass::HandleEscape)));
}
}

There is no Blueprint node for this binding. If you use CrimsonUI / CrimsonCore it is handled for you; otherwise expose a thin BlueprintCallable wrapper (taking the resolved UInputAction*) on your own C++ widget base and call that from Blueprint.

Verify
The UI action fires from keyboard and gamepad, and rebinding the key updates the on-screen glyph without touching a DataTable.

4. HUD-level Escape (CrimsonUI)

If you use CrimsonUI, UCrimsonHUDLayout exposes an optional EscapeInputAction. Assign it and the HUD's Escape binding uses the Enhanced Input path (live glyph); leave it null to fall back to the legacy tag-based binding.

Input-mode is CrimsonUI's job
Which input still reaches gameplay while a menu is open is controlled by CrimsonUI, not CrimsonInput - ECrimsonWidgetInputMode on UCrimsonActivatableWidget drives an FUIInputConfig on activation, and UE 5.8 action-domain tables give coarser per-layer defaults. See the CrimsonUI wiki. CrimsonInput's job here is only to supply the UInputAction assets and the settings mirror.

See also

  • How-To: Create an Input Config - the UIInputActions list.
  • CrimsonUI wiki - activatable widgets, input modes, and HUD layout.