Agent skill

Unreal Enhanced Input Setup

by kevinpbuckley in kevinpbuckley/VibeUE

Creates and wires Unreal Engine Enhanced Input assets through VibeUE's InputService: Input Actions, Mapping Contexts, key bindings, triggers and modifiers.

MITAuto-check passedGame Development

Install Unreal Enhanced Input Setup

skills CLI
$ npx skills add kevinpbuckley/VibeUE --skill enhanced-input -a claude-code

Project install by default; add -g for ~/.claude/skills/.

GitHub CLI
$ gh skill install kevinpbuckley/VibeUE enhanced-input --agent claude-code

Project scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).

Manual copy
$ git clone --depth 1 https://github.com/kevinpbuckley/VibeUE.git skills-src && mkdir -p .claude/skills && cp -r skills-src/Content/Skills/enhanced-input .claude/skills/enhanced-input && rm -rf skills-src

Use ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.

Claude Code skills documentation · loads skills from .claude/skills/

Facts

Skill name
enhanced-input
GitHub stars
726
Token cost
~2.4k tokens
SKILL.md length
698 words
Files
2 (incl. scripts)
Skills in repo
39
Repo updated
First seen
Licence
MIT

At a glance

Creates and wires Unreal Engine Enhanced Input assets through VibeUE's InputService: Input Actions, Mapping Contexts, key bindings, triggers and modifiers.

  • Creating an Input Action or Input Mapping Context in Unreal Engine
  • SKILL.md covers Critical Rules, Workflows, Sample scripts (run via… and PIE input injection (issue #550)
  • Binding a key to a gameplay action through VibeUE
  • Adding a trigger or modifier to an existing input mapping

What it does

The skill documents the real Python method names on InputService, warning that the class docstring's MCP-style action ids, like action_create or mapping_list_contexts, are not callable method names and that a discovery call against them matches nothing. It lists the actual methods grouped by area: reflection calls such as discover_types and get_available_keys, action methods like create_action and configure_action, context methods like create_mapping_context, mapping methods such as add_key_mapping, and trigger and modifier methods for shaping how an input fires.

create_action takes a value type string from discover_types, such as Boolean, Axis1D, Axis2D or Axis3D. The skill also notes an optional complementary MCP tool, unreal-engine-skills-manager, that supplies additional Unreal domain knowledge when present in the session, but tells the agent to skip that call entirely and proceed with this skill alone when the tool is not available, such as under Claude Code or Codex.

When your agent uses it

  • Creating an Input Action or Input Mapping Context in Unreal Engine
  • Binding a key to a gameplay action through VibeUE
  • Adding a trigger or modifier to an existing input mapping

Example prompts

  • “Create an Input Action called IA_Jump with an Axis1D value type.”
  • “Set up a Mapping Context that binds Space to the jump action.”
  • “Add a hold trigger to the sprint action's key mapping.”

Requirements

  • The VibeUE Unreal Engine plugin with its InputService

What it can do on your machine

Read from SKILL.md and the folder at commit dc051be. It shows what the files ask for, not the result of running them.

  • Tool permissions

    Pre-approves nothing: there is no allowed-tools line, so your agent's usual permission prompts apply.

    From allowed-tools in the SKILL.md frontmatter.

  • Runs code

    Ships 1 file in scripts/, which the agent can run.

    From the folder's file list and the shell code blocks in SKILL.md.

  • Network

    No URLs in SKILL.md.

    From URLs in SKILL.md, links to its own repository left out.

  • Credentials

    Names no API keys, tokens, secrets or passwords.

    From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.

Context cost

Unreal Enhanced Input Setup loads about 2.4k tokens when it runs. Until then it costs about 77 tokens; SKILL.md has 698 words of instructions outside code blocks.

Always · name and description, kept in context so the agent knows when to use it
~77
When it runs · the whole SKILL.md, loaded when a task matches
~2.4k

Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.

Safety

Auto-check passed

The automated check found no risky patterns in SKILL.md.

Automated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); the scripts in this folder are not scanned.

SKILL.md

The full file from kevinpbuckley/VibeUE at commit dc051be, republished under its MIT licence (© kevinpbuckley). 698 words, ~2,447 tokens.

Download SKILL.mdSave it as .claude/skills/enhanced-input/SKILL.md (or your agent's skills folder). This skill also uses 1 other file; get the full folder from GitHub.
name
enhanced-input
description
Create and configure Enhanced Input — Input Actions, Mapping Contexts, key mappings, triggers, and modifiers (InputService). Use when the user asks to set up player input, create an Input Action (IA_) or Input Mapping Context (IMC_), bind keys to actions, or configure input triggers/modifiers.
display_name
Enhanced Input System
vibeue_classes
InputService
unreal_classes
EditorAssetLibrary

🧠 Brains complement: IF an unreal-engine-skills-manager tool (external MCP) exists in this session, call it with {action: "load", skill: "enhanced-input"} for UE domain knowledge on this topic — correct APIs, architecture, best practices — and treat it as the rubric for any review / "best practices" question. If no such tool is available (e.g. running under Claude Code or Codex without that MCP), skip this line entirely and proceed with this skill alone — do NOT attempt the call.

Enhanced Input Skill

Critical Rules

🚨 Real Python method names — do NOT search for the docstring's "action" names

The InputService class docstring lists MCP-style action ids (action_create, mapping_list_contexts, action_configure, ...). Those are not the Python method names — discover_python_class(method_filter=...) matches nothing for them. The complete real API is below; you rarely need a discovery call at all:

AreaMethods
Reflectiondiscover_types(), get_available_keys(filter=""), get_available_modifier_types(), get_available_trigger_types()
Actionscreate_action(name, path, value_type="Axis1D"), list_input_actions(), get_input_action_info(action_path) → info or None, configure_action(action_path, consume_input=True, trigger_when_paused=False, description=""), input_action_exists(action_path)
Contextscreate_mapping_context(name, path, priority=0), list_mapping_contexts(), get_mapping_context_info(context_path) → info or None, mapping_context_exists(context_path)
Mappingsget_mappings(context_path), add_key_mapping(context_path, action_path, key_name), remove_mapping(context_path, mapping_index), key_mapping_exists(context_path, action_path)
Modifiersadd_modifier(context_path, mapping_index, modifier_type), remove_modifier(context_path, mapping_index, modifier_index), get_modifiers(context_path, mapping_index)
Triggersadd_trigger(context_path, mapping_index, trigger_type, properties_json=""), add_action_trigger(action_path, trigger_type, properties_json="") → JSON, remove_trigger(context_path, mapping_index, trigger_index), get_triggers(context_path, mapping_index)

create_action value types are the strings discover_types() returns: "Boolean" (alias "Digital"), "Axis1D", "Axis2D", "Axis3D". The create_* folder may be a bare folder ("Input" goes under /Game) or start with its mount point (/Game/..., a plugin root); /Engine, /Script and /Temp are refused, and so is an invalid asset name (empty, a space, .), each with the reason in error_message. Modifiers and triggers are addressed by index on the mapping, so get_mappings / get_modifiers / get_triggers first, then add/remove by index.

⚠️ Property Names on Info Structs
StructWRONGCORRECT
InputTypeDiscoveryResultvalue_typesaction_value_types
KeyMappingInfokeykey_name
InputModifierInfomodifier_typetype_name or display_name
InputTriggerInfotrigger_typetype_name or display_name
⚠️ Value Types
Value TypeUse Case
BooleanSimple press/release (Jump, Fire)
Axis1DSingle axis (Throttle, Zoom)
Axis2DTwo axes (Move, Look)
Axis3DThree axes (3D manipulation)
⚠️ Key Names

Keyboard: SpaceBar, LeftShift, W, A, S, D, F1, Enter, Escape, BackSpace...
Mouse: LeftMouseButton, RightMouseButton, MouseScrollUp
Gamepad: Gamepad_FaceButton_Bottom, Gamepad_LeftThumbstick, Gamepad_LeftTrigger, Gamepad_RightTrigger
Paired axes (use these for Axis2D bindings): Mouse2D (mouse look), Gamepad_Left2D / Gamepad_Right2D (analog sticks)

Verify any other name with get_available_keys("thumb") (substring filter) instead of guessing.

⚠️ Triggers and Modifiers

Triggers: Pressed, Released, Down, Hold, Tap, Pulse
Modifiers: Negate, DeadZone, Scalar, SwizzleAxis (also: Smooth, SmoothDelta, ScaleByDeltaTime — use get_available_modifier_types() for the full set)


Workflows

Create Input Action
python
import unreal

result = unreal.InputService.create_action("Jump", "/Game/Input", "Boolean")
if result.success:
    unreal.EditorAssetLibrary.save_asset(result.asset_path)
Create Mapping Context
python
import unreal

result = unreal.InputService.create_mapping_context("Default", "/Game/Input", 0)
unreal.EditorAssetLibrary.save_asset(result.asset_path)
Add Key Mapping
python
import unreal

context_path = "/Game/Input/IMC_Default"
action_path = "/Game/Input/IA_Jump"
unreal.InputService.add_key_mapping(context_path, action_path, "SpaceBar")
unreal.EditorAssetLibrary.save_asset(context_path)
Add Triggers and Modifiers
python
import unreal

context_path = "/Game/Input/IMC_Default"
action_path = "/Game/Input/IA_Fire"

unreal.InputService.add_key_mapping(context_path, action_path, "LeftMouseButton")

# Get mapping index
mappings = unreal.InputService.get_mappings(context_path)
mapping_index = len(mappings) - 1

# Add trigger/modifier using mapping index
unreal.InputService.add_trigger(context_path, mapping_index, "Pressed")
unreal.InputService.add_modifier(context_path, mapping_index, "DeadZone")
unreal.EditorAssetLibrary.save_asset(context_path)
Show full SKILL.md (294 more words)Show less
Trigger Settings

properties_json sets the new trigger's settings, by C++ name or snake_case (HoldTimeThreshold or hold_time_threshold, bIsOneShot or is_one_shot). Only the settings the trigger's Details panel shows can be set: runtime state such as HeldDuration, LastValue or bShouldAlwaysTick is refused ("not a trigger setting"), and a number outside the property's ClampMin/ClampMax is refused with the allowed range (hold_time_threshold must be >= 0). An unknown name, a refused setting or a bad value fails the call and adds nothing. add_action_trigger puts the trigger on the Input Action itself, so it applies to every mapping of the action; it returns PIE_ACTIVE while a play session runs (stop PIE first). Neither saves the asset, and a running PIE session keeps its copy of the triggers: restart PIE to see a change.

python
import unreal

# Hold 0.4 s before the charged attack fires, once per hold
unreal.InputService.add_trigger("/Game/Input/IMC_Default", 0, "Hold",
    '{"hold_time_threshold": 0.4, "is_one_shot": true}')

# A quick tap on the action itself, for every key bound to it
result = unreal.InputService.add_action_trigger("/Game/Input/IA_Dash", "Tap",
    '{"tap_release_time_threshold": 0.25}')
print(result)   # {"success": true, "trigger_index": 0, ...} or an error_code
unreal.EditorAssetLibrary.save_asset("/Game/Input/IA_Dash")
Get Mappings Info
python
import unreal

mappings = unreal.InputService.get_mappings("/Game/Input/IMC_Default")
for m in mappings:
    print(f"Action: {m.action_name}, Key: {m.key_name}")

info = unreal.InputService.get_input_action_info("/Game/Input/IA_Jump")
if info:
    print(f"Action: {info.action_name}, ValueType: {info.value_type}")
Discover Available Types
python
import unreal

types = unreal.InputService.discover_types()
print(f"Value Types: {types.action_value_types}")
print(f"Modifiers: {types.modifier_types}")
print(f"Triggers: {types.trigger_types}")

keys = unreal.InputService.get_available_keys()

Sample scripts (run via execute_python_code)

  • scripts/setup_input.txt — create an Input Action + Mapping Context and bind a key.

PIE input injection (issue #550)

Test input-driven gameplay WITHOUT remapping game assets or OS-level SendKeys — inject directly into the running PIE session (no OS window focus needed):

python
import unreal

# Enhanced Input action, QUEUED for the next input tick and released on the one after.
# X/Y/Z map to the value type. Read the result in a later call: nothing ticks while this one runs.
print(unreal.InputService.inject_action("/Game/Input/IA_Fire", 1.0))

# Hold an action for 1.5 s of real time (a guard, a charge, a Hold trigger); returns at once.
print(unreal.InputService.inject_action_for("/Game/Input/IA_Block", 1.5))
print(unreal.InputService.stop_injection("/Game/Input/IA_Block"))   # release early

# Raw key through Slate to the game viewport: "tap" (default), "down", "up", or "hold".
print(unreal.InputService.inject_key("SpaceBar"))
print(unreal.InputService.inject_key("RightMouseButton", "hold", 1.5))

All return JSON with success/error_code (PIE not running, NO_LOCAL_PLAYER / NO_PLAYER_CONTROLLER while PIE or a client's join is still starting — retry on a later call —, unknown key, BAD_DURATION outside 0.05 to 60 s). inject_action reports queued: true: it was queued, not yet applied. The action calls take pie_instance to pick a PIE world: -1, the default, is the first PIE world with a local player (the lowest instance number), and replies report the instance actually used. A hold is one hold per action and PIE world whatever the path spelling, so stop_injection finds it either way; holding a held key again extends it (extended: true); ending PIE drops every hold. See the pie-testing skill for the full verification loop.

© kevinpbuckley, MIT. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file

Files

SKILL.md and 1 other file (scripts) in Content/Skills/enhanced-input of kevinpbuckley/VibeUE.

  • SKILL.md
  • scripts/setup_input.txt

Open the folder on GitHubat commit dc051be

Compare with similar skills

Unreal Enhanced Input Setup next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.

Unreal Enhanced Input Setup compared with similar skills
SkillStarsUsed inTokensAuto-checkLicenceRepo updated
Unreal Enhanced Input Setup this skillkevinpbuckley/VibeUE726—~2.4kAutomated safety check: PassMIT
Scenario Unreal Expertscenario-labs/skills931—~6.4kAutomated safety check: PassMIT
Unreal BridgeTornLux/UnrealBridge305—~8.4kAutomated safety check: NotesMIT
Unreal Blueprint Authoringflopperam/unreal-engine-mcp1.1k—~1.6kAutomated safety check: PassNone
UMG Material MCPwinyunq/UnrealMotionGraphicsMCP210—~913Automated safety check: PassMIT
Unreal Engine MCPEpicGames/unreal-engine-skills-for-claude-code-plugin332—~1.8kAutomated safety check: PassMIT

Similar skills

  • Scenario Unreal Expert

    scenario-labs/skills

    A skill your agent uses when an agent drives Unreal Engine 5.8 on a Mac for any task: Editor Python (the unreal module), headless UnrealEditor-Cmd -run=pythonscript jobs, Epic's Unreal MCP server…

    931 GitHub stars~6.4k tokensUpdated yesterday
    Game DevelopmentAuto-check passed
  • Unreal Bridge

    TornLux/UnrealBridge

    Execute Python scripts inside a running Unreal Engine 5.3+ editor via TCP bridge.

    305 GitHub stars~8.4k tokensUpdated 8 days ago
    Game DevelopmentAuto-check: notes
  • Unreal Blueprint Authoring

    flopperam/unreal-engine-mcp

    Walks an agent through creating and editing Unreal Engine Blueprints with the Flopperam MCP's bp_* tools, from inspection to commit and verification.

    1.1k GitHub stars~1.6k tokensUpdated 3 mo ago
    Game DevelopmentAuto-check passed
  • UMG Material MCP

    winyunq/UnrealMotionGraphicsMCP

    Creates, edits and compiles Unreal Engine 5.8 material assets as one HLSL Custom node through the UMG MCP bridge, instead of editing .uasset files directly.

    210 GitHub stars~913 tokensUpdated 2 mo ago
    Game DevelopmentAuto-check passed
  • Unreal Engine MCP

    EpicGames/unreal-engine-skills-for-claude-code-plugin

    Drives a live Unreal Editor through the unreal-mcp server: spawn actors, edit Blueprints, materials and sequences, change properties and trigger Live Coding.

    332 GitHub stars~1.8k tokensUpdated 22 days ago
    Game DevelopmentAuto-check passed
  • Fmodel Unpack

    pa001024/dna-builder

    This skill documents how to use the fmodel-mcp toolkit (a CUE4Parse-based .NET CLI plus a thin Python MCP server) to inspect and export Unreal Engine game assets — pak files, textures, meshes…

    136 GitHub stars~2.6k tokensUpdated yesterday
    Game DevelopmentAuto-check passed

More from kevinpbuckley/VibeUE

All 39 skills in this repo
  • Unreal Animation Bone Editor

    kevinpbuckley/VibeUE

    Previews, validates and bakes bone-rotation edits on Unreal Engine AnimSequences, enforcing a coordinate space and a constraint-checked preview-validate-bake loop.

    726 GitHub stars~1.3k tokensUpdated 2 days ago
    Auto-check passed
  • Unreal Animation Montage

    kevinpbuckley/VibeUE

    Creates and edits Unreal Engine Animation Montages through AnimMontageService: sections, slots, segments, branching points, notifies and blend settings.

    726 GitHub stars~3.6k tokensUpdated 2 days ago
    Auto-check passed
  • Unreal AnimSequence Editor

    kevinpbuckley/VibeUE

    Creates and edits AnimSequence keyframes and bone tracks in Unreal Engine through AnimSequenceService, following an inspect, preview, validate and bake workflow with correct bone-space handling.

    726 GitHub stars~3.2k tokensUpdated 2 days ago
    Auto-check passed
  • Unreal Asset Import and Export

    kevinpbuckley/VibeUE

    Imports files into Unreal Engine, exports textures, reads the Content Browser selection and checks open assets via VibeUE, plus mesh reimport material fixes.

    726 GitHub stars~6.5k tokensUpdated 2 days ago
    Auto-check passed
  • Unreal Engine Settings Control

    kevinpbuckley/VibeUE

    Changes Unreal Engine console variables, scalability levels and raw INI values through VibeUE's Python API, now that registered settings moved to the engine's own toolset.

    726 GitHub stars~1.3k tokensUpdated 2 days ago
    Auto-check passed
  • Unreal Enum and Struct Editor

    kevinpbuckley/VibeUE

    Creates, edits and inspects Unreal Engine UserDefinedEnums and UserDefinedStructs through Python, including adding values or members and reading internal versus display names.

    726 GitHub stars~2.3k tokensUpdated 2 days ago
    Auto-check passed

Questions about Unreal Enhanced Input Setup

What does Unreal Enhanced Input Setup do?

Creates and wires Unreal Engine Enhanced Input assets through VibeUE's InputService: Input Actions, Mapping Contexts, key bindings, triggers and modifiers. The skill documents the real Python method names on InputService, warning that the class docstring's MCP-style action ids, like action_create or mapping_list_contexts, are not callable method names and that a discovery call against them matches nothing. It lists the actual methods grouped by area: reflection calls such as discover_types and get_available_keys, action methods like create_action and configure_action, context methods like create_mapping_context, mapping methods such as add_key_mapping, and trigger and modifier methods for shaping how an input fires.

When should I use Unreal Enhanced Input Setup?

Unreal Enhanced Input Setup fits situations like: creating an Input Action or Input Mapping Context in Unreal Engine; binding a key to a gameplay action through VibeUE; adding a trigger or modifier to an existing input mapping.

How do I install Unreal Enhanced Input Setup in Claude Code?

Run `npx skills add kevinpbuckley/VibeUE --skill enhanced-input -a claude-code`. Or copy the skill folder (Content/Skills/enhanced-input in kevinpbuckley/VibeUE) into .claude/skills/enhanced-input in your project. Claude Code loads it when a task matches its description.

How do I install Unreal Enhanced Input Setup in Codex?

Run `npx skills add kevinpbuckley/VibeUE --skill enhanced-input -a codex`. Or copy the skill folder (Content/Skills/enhanced-input in kevinpbuckley/VibeUE) into .agents/skills/enhanced-input in your project. Codex loads it when a task matches its description.

Can I use Unreal Enhanced Input Setup in Cursor, Gemini CLI or GitHub Copilot?

Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add kevinpbuckley/VibeUE --skill enhanced-input -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/enhanced-input, .gemini/skills/enhanced-input, .github/skills/enhanced-input and .opencode/skills/enhanced-input in your project.

What does Unreal Enhanced Input Setup need to run?

SKILL.md names no scripts, command-line tools or credentials: Unreal Enhanced Input Setup is instructions for the agent only. Our summary lists: The VibeUE Unreal Engine plugin with its InputService.

Does Unreal Enhanced Input Setup access the network?

SKILL.md contains no URLs. Any network use would come from the scripts or tools the agent runs. This is read from the text; nothing was executed.

Is Unreal Enhanced Input Setup safe to install?

Our automated static check of SKILL.md found no risky patterns, such as piping downloads into a shell, reading credential files or hidden Unicode. It is not a guarantee. The check reads SKILL.md only: the scripts in the folder are not scanned, so read them before running anything.

What licence does Unreal Enhanced Input Setup use?

Unreal Enhanced Input Setup is published under the MIT licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.

How many tokens does Unreal Enhanced Input Setup use?

About 2.4k tokens (SKILL.md is roughly 9.8k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full.

What are the alternatives to Unreal Enhanced Input Setup?

Skills that share tags, products or a category with Unreal Enhanced Input Setup: Scenario Unreal Expert (scenario-labs/skills, 931 stars), Unreal Bridge (TornLux/UnrealBridge, 305 stars), Unreal Blueprint Authoring (flopperam/unreal-engine-mcp, 1.1k stars) and UMG Material MCP (winyunq/UnrealMotionGraphicsMCP, 210 stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.

Who maintains Unreal Enhanced Input Setup?

kevinpbuckley (a GitHub user) maintains it in kevinpbuckley/VibeUE, which has 726 GitHub stars. The repository holds 39 skills in this directory. The repository was last updated on October 7, 2026.

Source: kevinpbuckley/VibeUE on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.