Contents
Unreal Engine 5.8 · System guide
Enhanced Input
Build contextual remappable input systems
On this page
Choose a task
Choose an approach
Build and understand
Troubleshoot
Workflow and boundaries
Use these checks when a task crosses several systems. The focused references above contain the specific actions.
Ownership boundary
This skill owns action/context/trigger/modifier semantics and player-mappable key profiles. Route menu
layers, focus, and UI input routing to
unreal-umg-commonui. Use
unreal-save-load only when settings join a broader custom slot,
versioning, user, or cloud-persistence policy; do not duplicate key-profile authority in two systems.
Build the input model
- Define one
UInputActionper player intent, not per physical key. - Choose its value type: Boolean, Axis1D, Axis2D, or Axis3D.
- Group mappings by coherent situation in
UInputMappingContextassets. - Add/remove contexts on the correct
UEnhancedInputLocalPlayerSubsystemwith documented priorities and mutual-exclusion rules. - Transform raw values with modifiers; decide activation timing with triggers.
- Bind action trigger events through
UEnhancedInputComponentor Blueprint action events. - Forward semantic intent to the possessed pawn, component, GAS, UI, or command layer.
Read references/architecture.md and
references/contexts-ownership.md first.
Select event semantics deliberately
Started: evaluation began.Ongoing: trigger conditions are partially satisfied.Triggered: all trigger conditions succeeded; may repeat depending on trigger.Completed: a triggered action returned to none.Canceled: evaluation ended before successful completion.
Read references/triggers-modifiers.md. Do not assume
Triggered means a one-shot press; without a one-shot trigger, actuation can trigger each tick.
Separate detection from gameplay forgiveness
Enhanced Input detects and interprets input. A gameplay buffer stores a timestamped semantic
request until the gameplay state can accept it. Implement buffers and coyote time in the
gameplay action/movement layer, not as an invented built-in Enhanced Input feature. Read
references/buffering.md.
Rebinding
Use UE 5.8 UEnhancedInputUserSettings, Player Mappable Key Settings, mapping names, slots,
and key profiles. Register all relevant contexts with settings, map with FMapPlayerKeyArgs,
surface failure reasons/conflicts, apply, and save. Read
references/rebinding-settings.md.
Hard rules
- Add contexts to the Local Player that owns the input, not to a global gameplay object.
- Do not leave mutually exclusive contexts active and hope priority hides every collision.
- Do not bind the same action repeatedly across possession/reinitialization.
- Do not put gameplay logic inside reusable modifiers or triggers when a semantic command will do.
- Do not identify saved mappings by localized display text; use stable mapping names and slots.
- Do not treat client input as authoritative gameplay state.
- Test context rebuilds while keys are held; UE 5.8 preserves trigger/modifier state more reliably, but custom classes must implement reinstancing behavior when stateful.
Use references/patterns.md for common controls and
references/troubleshooting.md for missing, repeated, stuck,
or conflicting input. See references/sources.md for the UE 5.8 trail.
Version and evidence
Targets Unreal Engine 5.8 documentation. This label does not establish that every procedure was tested in an editor or packaged build.
Read the documentation sources and verification notes →