unreal-enhanced-input

Design and implement remappable player input systems with Unreal Engine 5.8 Enhanced Input.

Updated May 28, 2023
One-click install
npx skills add https://github.com/steveulrich/ProjectB --skill unreal-enhanced-input-steveulrich
Or copy as Structured Prompt for Agent▼
Please help me install this Agent Skill.
Skill: unreal-enhanced-input
Source: https://github.com/steveulrich/ProjectB/tree/main/.cursor/skills/unreal-enhanced-input
Command: npx skills add https://github.com/steveulrich/ProjectB --skill unreal-enhanced-input-steveulrich

SYSTEM DOCUMENTATION & REQUIREMENTS

💡 This Skill includes references (resource) components.

What problem does it solve? Building player input in Unreal Engine 5.8 involves many interacting pieces—Input Actions, Mapping Contexts, triggers, modifiers, rebinding profiles, and multiplayer boundaries—and mistakes cause missing events, stuck input, duplicate bindings, or broken remapping. This Skill provides structured guidance to design, implement, remap, test, and debug Enhanced Input correctly. ## Core Features & Use Cases - Input Model Design: Define Input Actions by intent with correct value types, group mappings into coherent Mapping Contexts, and manage priorities and ownership on the correct Local Player subsystem. - Trigger & Modifier Semantics: Choose deliberate trigger events (Started, Ongoing, Triggered, Completed, Canceled), compose hold/tap/chord behavior, and apply dead zones, sensitivity, and inversion modifiers. - Rebinding & Persistence: Implement player-mappable key settings with UEnhancedInputUserSettings, stable mapping names and slots, conflict policies, and save/load testing. - Gameplay Buffering: Implement input buffering and coyote time as explicit gameplay-layer patterns, with multiplayer validation boundaries. - Use Case: A player reports jump sometimes not registering near ledges. Use this Skill to add a timestamped jump buffer plus coyote time in the movement layer, bind the correct trigger event, and verify context rebuild behavior while keys are held. ## Quick Start Use the unreal-enhanced-input skill to design the Input Actions, Mapping Contexts, and rebinding flow for my character's movement, look, and jump controls in Unreal Engine 5.8.

Frequently Asked Questions about unreal-enhanced-input

High-intent search queries and answers about installing and using this skill.

FAQPage Schema
How do I set up Enhanced Input in Unreal Engine 5?▼

Create one UInputAction per player intent with the correct value type, group key mappings into UInputMappingContext assets, and add contexts to the owning UEnhancedInputLocalPlayerSubsystem with explicit priorities. Bind action events through UEnhancedInputComponent once during input initialization.

How to implement key rebinding with Enhanced Input user settings?▼

Use UEnhancedInputUserSettings with Player Mappable Key Settings, assigning each mapping a stable unique name, slot, and localized display name. Call MapPlayerKey with FMapPlayerKeyArgs, inspect failure-reason tags, apply, and save settings asynchronously.

Why does my input action fire every frame instead of once?▼

A raw action with no one-shot trigger produces Triggered repeatedly while actuated. Add a Pressed trigger or bind the appropriate event, and avoid patching with gameplay booleans before understanding trigger semantics.

Does Enhanced Input support split screen and multiple local players?▼

Yes. Contexts are applied per UEnhancedInputLocalPlayerSubsystem, so each local player has isolated mappings. Resolve the ULocalPlayer from the correct PlayerController and never assume player index 0 in reusable code.

How do I add input buffering and coyote time for jumping?▼

Implement buffering in the gameplay movement layer, not as an Enhanced Input feature. Store a timestamped jump request on press, consume it when CanJump succeeds, and track last grounded time to allow jumps within a coyote window.

Why is my input stuck after opening a UI menu?▼

Stuck input usually comes from UI focus and gameplay context lifecycle conflicts. Handle flushed input with Canceled/Completed cleanup, clear held state on context or pawn changes, and route UI input through the project's Common UI architecture rather than stacking high-priority contexts.