Contents

Unreal Engine 5.8 · System guide

Enhanced Input

Build contextual remappable input systems

On this page

Choose a task

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

  1. Define one UInputAction per player intent, not per physical key.
  2. Choose its value type: Boolean, Axis1D, Axis2D, or Axis3D.
  3. Group mappings by coherent situation in UInputMappingContext assets.
  4. Add/remove contexts on the correct UEnhancedInputLocalPlayerSubsystem with documented priorities and mutual-exclusion rules.
  5. Transform raw values with modifiers; decide activation timing with triggers.
  6. Bind action trigger events through UEnhancedInputComponent or Blueprint action events.
  7. 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 →

Original AI skill and source files

Open the complete skill on GitHub