Appearance
Menu action cues
Use CommonActionWidget for CommonUI navigation actions and IFActionPrompt for registered Enhanced Input gameplay mappings. Both use CommonInput's configured controller data; they serve different action sources.
Build the menu band in Blueprint
- In your IFScreen Widget Blueprint, add a Horizontal Box beside your menu identity. Add a CommonActionWidget, an IFText key fallback and an IFText action label for each action. Keep a fixed gap between the two action groups, outside the glyph widgets: a collapsed glyph must not remove the gap.
- On Construct, call Get Default Accept Action → Set Input Action on the first CommonActionWidget. Use Get Default Back Action for the second. These nodes read the project's configured Common Input Settings Input Data, including your replacement class.
- Implement a custom event, such as Refresh Menu Navigation. Call it after initialization and from On Input Presentation Updated. Get Input Presentation on the owning player's IFInputPresentationSubsystem gives Pointer, Keyboard, Gamepad or Touch. Show the band for Keyboard/Gamepad; collapse it for Pointer/Touch. The sample uses this presentation policy; your Blueprint can choose another.
- For each icon, Get Display Text → Set Text on the action label. Get Navigation Action Key takes Self and the same action row → Get Key Display Name → Set Text on the fallback. Get Icon → Get Brush Resource → Is Valid determines whether to collapse the fallback or show it. CommonActionWidget handles its icon updates.
flowchart TD
C[Construct] --> R[Get Default Accept / Back Action]
R --> S[CommonActionWidget: Set Input Action]
S --> U[Refresh Menu Navigation]
E[On Input Presentation Updated] --> U
U --> V[Get Input Presentation → band visibility]
U --> T[Get Display Text → action label]
U --> K[Get Navigation Action Key → Get Key Display Name → fallback]
U --> I[Get Icon → Get Brush Resource → Is Valid → fallback visibility]
Expected: a controller button changes the band to configured icons; meaningful mouse input hides it; keyboard intent restores actual row key names. Returning from a dialog or another screen retains CommonUI focus/back behavior. The getters resolve presentation only: they do not bind, execute or remap actions. CommonUI owns Accept/Back routing. Enhanced Input controls edits affect registered gameplay rows, not these separate CommonUI defaults.
Editable examples and limits
WBP_AshenMainMenu and WBP_AshenPause contain MenuIdentityBand, MenuNavigationCues, NavigationAcceptIcon/Key/Label and NavigationBackIcon/Key/Label. Their saved Blueprint graphs use the nodes above. Replace the row, layout, fonts or icon class in your project; no plugin-source edits are required. The band does not add focusable controls or replace the existing screen stack.
The original generic controller data supplies four face-position glyphs. The example has no keyboard/brand glyph pack and uses readable key fallback. Configure additional controller data for your target hardware. Large localized labels, arbitrary replacement key names, other platforms and physical controller/disconnection tests remain separate verification gates. The user has explicitly deferred physical-device checks.