ue-enhanced-input

Implement player input in Unreal Engine using the Enhanced Input system.

55|5|Updated Mar 26, 2026
One-click install
npx skills add https://github.com/kevinpbuckley/unreal-engine-skills --skill ue-enhanced-input-kevinpbuckley
Or copy as Structured Prompt for Agent
Please help me install this Agent Skill.
Skill: ue-enhanced-input
Source: https://github.com/kevinpbuckley/unreal-engine-skills/tree/main/skills/core/ue-enhanced-input
Command: npx skills add https://github.com/kevinpbuckley/unreal-engine-skills --skill ue-enhanced-input-kevinpbuckley

SYSTEM DOCUMENTATION & REQUIREMENTS

💡 This Skill includes references (resource) components.

What problem does it solve? Setting up player controls in Unreal Engine requires correctly wiring Input Actions, Input Mapping Contexts, the Enhanced Input Local Player Subsystem, and the Enhanced Input Component — a process with many failure points such as missing Build.cs dependencies, unset default input classes, and value type mismatches. This Skill provides the exact classes, API signatures, binding patterns, and gotchas needed to implement Enhanced Input correctly in C++. ## Core Features & Use Cases - Action and context setup: Create UInputAction assets with the right value types (Boolean, Axis1D, Axis2D, Axis3D) and UInputMappingContext assets with per-key modifiers and triggers. - C++ binding patterns: Bind actions via UEnhancedInputComponent::BindAction with the correct ETriggerEvent, read FInputActionValue with Get<T>(), and push/pop mapping contexts at runtime for context switching (on-foot vs. in-vehicle vs. UI). - Modifiers and triggers: Apply Negate, SwizzleAxis, DeadZone, Scalar, and Smooth modifiers, and Pressed, Released, Hold, Tap, Pulse, and ChordedAction triggers, including the WASD-as-Axis2D modifier pattern. - Use Case: You are building a character controller and need WASD movement, mouse look, and jump working in C++. The Skill gives you the complete SetupPlayerInputComponent implementation, the subsystem call to add the mapping context on possession, and the modifier configuration for the four WASD keys. ## Quick Start Use the ue-enhanced-input skill to set up WASD movement, mouse look, and jump bindings for my Character class in Unreal Engine 5.8.

Frequently Asked Questions about ue-enhanced-input

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

FAQPage Schema
How do I bind input actions in Unreal Engine C++ with Enhanced Input?

Cast the input component to UEnhancedInputComponent in SetupPlayerInputComponent and call BindAction with the UInputAction, an ETriggerEvent, and a handler taking const FInputActionValue&. Add the mapping context first via UEnhancedInputLocalPlayerSubsystem::AddMappingContext.

How to set up WASD movement as an Axis2D input action in Unreal?

Create one UInputAction with value type Axis2D and four key mappings in the UInputMappingContext. Leave D unmodified, add Negate to A, add SwizzleAxis (YXZ) to W, and add SwizzleAxis plus Negate to S so each key contributes the correct axis sign.

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

Common causes are a missing EnhancedInput entry in Build.cs, default input classes not set to EnhancedPlayerInput and EnhancedInputComponent in Project Settings, or the mapping context never being added to the local player subsystem. Adding the context before the local player exists also silently fails.

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

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

Can I migrate legacy BindAxis and BindAction input to Enhanced Input?

Yes, replace DefaultInput.ini axis and action mappings with UInputAction and UInputMappingContext assets, then replace BindAxis and BindAction(FName, ...) calls with UEnhancedInputComponent::BindAction. Legacy binds are deleted on the enhanced component unless ENHANCED_INPUT_ALLOW_LEGACY_BINDING=1 is set.

How do I switch input mapping contexts at runtime in Unreal?

Call AddMappingContext and RemoveMappingContext on UEnhancedInputLocalPlayerSubsystem, typically from PawnClientRestart or when entering and exiting a vehicle. Use the priority parameter to let overlay contexts like UI win over gameplay contexts mapping the same keys.