enhanced-input

Implement player input bindings using Unreal Engine's Enhanced Input system in C++.

1|Updated Sep 6, 2026
One-click install
npx skills add https://github.com/ziyarduc/Baran-bk-game --skill enhanced-input-ziyarduc
Or copy as Structured Prompt for Agent▼
Please help me install this Agent Skill.
Skill: enhanced-input
Source: https://github.com/ziyarduc/Baran-bk-game/tree/main/.agents/skills/enhanced-input
Command: npx skills add https://github.com/ziyarduc/Baran-bk-game --skill enhanced-input-ziyarduc

SYSTEM DOCUMENTATION & REQUIREMENTS

💡 This Skill includes references (resource) components.

What problem does it solve? Setting up player controls in Unreal Engine 5 requires coordinating Input Actions, Input Mapping Contexts, the Enhanced Input subsystem, and C++ action bindings, and misconfiguring any step causes silent input failures or crashes. This Skill provides the complete setup checklist, binding patterns, and debugging guidance to wire player input correctly the first time. ## Core Features & Use Cases - Action and Context Setup: Create UInputAction assets with correct value types (Boolean, Axis1D, Axis2D, Axis3D) and UInputMappingContext assets with per-key modifiers and triggers. - C++ Action Binding: Bind actions via UEnhancedInputComponent::BindAction with the correct ETriggerEvent (Started, Triggered, Completed, Canceled, Ongoing) and read values from FInputActionValue. - Runtime Context Switching: Push and pop mapping contexts at runtime for on-foot, in-vehicle, or UI input modes using UEnhancedInputLocalPlayerSubsystem. - Use Case: When building a third-person shooter character, use this Skill to bind WASD movement as an Axis2D action with Swizzle and Negate modifiers, bind jump to Started/Completed events, and add an ADS aim context that adjusts camera behavior without switching to first person. ## Quick Start Ask the AI to set up Enhanced Input movement, look, and jump bindings for a new UE5 Character class in C++.

Frequently Asked Questions about 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 C++?▼

Add "EnhancedInput" to PrivateDependencyModuleNames in Build.cs, set Default Player Input Class to EnhancedPlayerInput and Default Input Component Class to EnhancedInputComponent in Project Settings, then create UInputAction and UInputMappingContext assets. Push the context via UEnhancedInputLocalPlayerSubsystem and bind actions in SetupPlayerInputComponent.

How do I bind WASD movement to a single Axis2D input action?▼

Create one UInputAction with Axis2D value type and add four key mappings in the Input Mapping Context. Apply a Swizzle YXZ modifier to W, Swizzle plus Negate to S, Negate to A, and no modifier to D so each key contributes to the correct axis.

Why are my Enhanced Input actions not firing in Unreal Engine?▼

The most common causes are a missing mapping context (the subsystem must have the IMC added before keys reach actions), unset default input classes in Project Settings, or adding the context before the local player exists. Add contexts from PawnClientRestart or BeginPlay, never the constructor.

What is the difference between ETriggerEvent Started, Triggered, and Completed?▼

Started fires once on the frame the key passes the actuation threshold, Triggered fires every tick while held, and Completed fires when the key is released. Use Triggered for continuous movement, Started for one-shot presses like jump, and Completed for release actions.

Can Enhanced Input coexist with legacy BindAxis and BindAction input?▼

Legacy BindAxis and BindAction(FName, ...) calls are deleted on UEnhancedInputComponent by default and cause compile errors unless ENHANCED_INPUT_ALLOW_LEGACY_BINDING=1 is set. Migrate by replacing axis mappings with UInputAction and UInputMappingContext assets and using UEnhancedInputComponent::BindAction.

How do I switch input mapping contexts at runtime in UE5?▼

Call AddMappingContext and RemoveMappingContext on UEnhancedInputLocalPlayerSubsystem, obtained from the local player. Use priority values to overlay contexts, such as adding a vehicle context at higher priority while keeping the on-foot context active underneath.