Agent skill

Godot Input Handling

by thedivergentai in thedivergentai/GD-Agentic-Skills

Expert patterns for input handling covering InputMap actions, InputEvent processing, controller support, rebinding, deadzones, and input buffering.

LGPL-3.0Auto-check passedGame Development

Install Godot Input Handling

skills CLI
$ npx skills add thedivergentai/GD-Agentic-Skills --skill godot-input-handling -a claude-code

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

GitHub CLI
$ gh skill install thedivergentai/GD-Agentic-Skills godot-input-handling --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/thedivergentai/GD-Agentic-Skills.git skills-src && mkdir -p .claude/skills && cp -r skills-src/skills/godot-input-handling .claude/skills/godot-input-handling && 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
godot-input-handling
GitHub stars
821
Token cost
~4k tokens
SKILL.md length
1,257 words
Files
23 (incl. scripts, references)
Skills in repo
98
Repo updated
First seen
Licence
LGPL-3.0

At a glance

Expert patterns for input handling covering InputMap actions, InputEvent processing, controller support, rebinding, deadzones, and input buffering.

  • Works in 4 steps: Analog Deadzones → Expert polling delta (no hardcoded keys) → Handling Input Modes → …
  • Setting up player controls
  • SKILL.md covers MANDATORY script triggers (by…, Do-NOT-Load (by scenario), Available Scripts and NEVER Do in Input Handling, plus 6 more sections
  • Implementing input systems

What it does

Godot Input Handling is an agent skill from thedivergentai/GD-Agentic-Skills. Expert patterns for input handling covering InputMap actions, InputEvent processing, controller support, rebinding, deadzones, and input buffering. Use when setting up player controls, implementing input systems, or adding gamepad/accessibility features. Keywords InputMap, InputEvent, gamepad, controller, rebinding, deadzone, input buffer.

Its SKILL.md is about 4k tokens, which your agent loads only when the skill is triggered. The skill folder holds 24 other files, including scripts and reference files (for example `references/expert-input-extensions.md`, `references/godot-47-input-device-ids.md` and `references/input-event-processing.md`).

It sits in Game Development, covering Game development and Accessibility. It works with Godot. The repository describes itself as: The official "Long-Term Memory" for Godot 4.7+ AI Agents. A high-density library of 99 expert skills and 27 genre blueprints, providing audited, strictly typed GDScript patterns… The licence is LGPL-3.0.

When your agent uses it

  • Setting up player controls
  • Implementing input systems
  • Adding gamepad/accessibility features

Example prompts

  • “/godot-input-handling”

Workflow steps

4 steps, taken from the step headings in SKILL.md.

  1. Analog Deadzones
  2. Expert polling delta (no hardcoded keys)
  3. Handling Input Modes
  4. Dynamic Glyph Swapping

What it can do on your machine

Read from SKILL.md and the folder at commit 4c4d0ff. 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 12 files in scripts/, which the agent can run.

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

  • Network

    Links to these hosts (documentation or services it may open):

    • docs.godotengine.org

    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

Godot Input Handling loads about 4k tokens when it runs, and up to ~5.7k if it reads all its reference files. Until then it costs about 91 tokens; SKILL.md has 1,257 words of instructions outside code blocks.

Always · name and description, kept in context so the agent knows when to use it
~91
When it runs · the whole SKILL.md, loaded when a task matches
~4k
With references · SKILL.md plus every file in references/, read only if the agent opens them
~5.7k

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 thedivergentai/GD-Agentic-Skills at commit 4c4d0ff, republished under its LGPL-3.0 licence (© thedivergentai). 1,257 words, ~3,987 tokens.

Download SKILL.mdSave it as .claude/skills/godot-input-handling/SKILL.md (or your agent's skills folder). This skill also uses 22 other files; get the full folder from GitHub.
name
godot-input-handling
description
Expert patterns for input handling covering InputMap actions, InputEvent processing, controller support, rebinding, deadzones, and input buffering. Use when setting up player controls, implementing input systems, or adding gamepad/accessibility features. Keywords InputMap, InputEvent, gamepad, controller, rebinding, deadzone, input buffer.

Input Handling

Handle keyboard, mouse, gamepad, and touch input with proper buffering and accessibility support.

MANDATORY script triggers (by scenario)

ScenarioLoad before coding
Jump/dash/coyote feelinput_buffer.gd (physics-tied decay) + advanced_input_buffer.gd for multi-action priority
Settings remapping UIsafe_runtime_rebind.gd (ConfigFile persist to user://)
Analog stick movementanalog_deadzone_manager.gd — never raw axis without radial deadzone
"Press X / Press E" promptsglyph_prompt_manager.gd
UI nav vs gameplay confirminput_echo_filter.gd — echoes move menus, not Confirm/Back
Gameplay vs menu clicksunhandled_input_priority.gd

Do-NOT-Load (by scenario)

ScenarioLoadDo NOT load
Settings remapping UIsafe_runtime_rebind.gdmulti_touch_gestures.gd, mouse_capture_manager.gd, combo/replay injectors
Mobile / touch gesturesmulti_touch_gestures.gdmouse_capture_manager.gd, desktop remapper persistence
Jump/dash buffer onlyinput_buffer.gd / advanced_input_buffer.gdRemapper, multi-touch, replay, combo validator
FPS mouse lookmouse_capture_manager.gd + deadzone/glyph as neededmulti_touch_gestures.gd, combo/replay
Combo / fighting sequencescombo_validator.gd + buffersTouch gestures, mouse capture
Replay / virtual injection testsinput_replay_buffer.gd / virtual_input_injector.gdRemapper UI, multi-touch

Available Scripts

advanced_input_buffer.gd

Frame-perfect input buffering system for responsive jumps, dashes, and combo chains.

input_buffer.gd

Timed action buffer with _physics_process decay so windows match CharacterBody consumption, not render FPS.

safe_runtime_rebind.gd

Dynamic input rebinding with conflict detection and user://input_rebinds.cfg persistence.

analog_deadzone_manager.gd

Radial deadzone management for analog sticks to eliminate drift while maintaining natural follow-through.

multi_touch_gestures.gd

Handling touch, drags, and pinch-to-zoom gestures for mobile and touchscreen compatibility.

input_echo_filter.gd

Filtering echo events to distinguish between hold-to-navigate (UI) and one-time gameplay actions.

mouse_capture_manager.gd

Robust mouse capture and sensitivity scaling logic for FPS and mouse-intensive systems.

hold_toggle_accessibility.gd

Software-side support for user-defined 'Hold' vs 'Toggle' accessibility preferences.

glyph_prompt_manager.gd

Real-time switching between Keyboard and Gamepad UI prompts based on the last active device.

action_state_machine.gd

Tracking the lifecycle of an action ('Just Pressed', 'Held', 'Released') for complex state logic.

unhandled_input_priority.gd

Demonstrating the correct use of _unhandled_input to prevent gameplay logic from leaking into UI.

virtual_input_injector.gd

Input.parse_input_event injection for CI tutorials / AI assistance — not physical hardware.

combo_validator.gd

Rolling timed sequence buffer for special-move validation (fighting / action RPG).

input_replay_buffer.gd

Frame-tagged capture + deterministic replay via parse_input_event.

NEVER Do in Input Handling

  • NEVER poll input in _process() for gameplay actions — Use _physics_process() or _unhandled_input(). _process() is frame-rate dependent, causing dropped inputs at low FPS [22].
  • NEVER use hardcoded key checks (e.g., KEY_W) — Always use InputMap actions. Hardcoded keys prevent rebinding and break compatibility with non-QWERTY layouts [23].
  • NEVER ignore analog stick deadzones — Drifting sticks at 0.05 magnitude will cause unintended movement. Implement a radial deadzone (not axial) in code or settings [24].
  • NEVER assume a single input device — Players may switch between Keyboard and Controller mid-session. Use Input.joy_connection_changed to update UI prompts dynamically [25].
  • NEVER use _input() for gameplay actions — _input() fires for ALL events (including UI). Use _unhandled_input() so gameplay logic doesn't trigger while clicking menus [26].
  • NEVER omit input buffering in fast-paced games — If a player presses jump 50ms before landing, the input is lost without a buffer. Implement a 100-150ms buffer for a "tight" feel [27].
  • NEVER use Input.is_action_pressed() for one-time triggers — It returns true every frame the key is held. Use _just_pressed for jumps, attacks, and toggles to avoid logic spam.
  • NEVER implement manual 'Hold vs Toggle' logic in multiple places — Centralize it in a setting or input wrapper to ensure accessibility consistency across the whole game.
  • NEVER forget to handle InputEvent.is_echo() in UI navigation — Echo events (keyboard repeat) should move menus but rarely should they trigger "Confirm" or "Back" actions.
  • NEVER capture the mouse without a 'Release' shortcut — If your game crashes or blocks ui_cancel, the user is trapped. Always provide a fallback escape for mouse capture.

Input Propagation & Isolation

Godot propagates input events in a specific order. Understanding this is key to isolating UI from gameplay.

  1. _input(event): High-priority global intercept. Use for dev consoles or debug overlays.
  2. _gui_input(event): Handled by Control nodes (UI). If a UI element consumes the event (e.g., clicking a button), it calls accept_event(), stopping further propagation.
  3. _unhandled_input(event): Reached ONLY if no UI element consumed the event. Expert Pattern: Put all gameplay logic (jump, shoot) here to prevent accidental triggers while interacting with menus.

InputMap Best Practices

Avoid physical key checks. Define semantic actions (e.g., move_left, interact) in Project Settings > Input Map.

1. Analog Deadzones

Analog sticks suffer from drift. MANDATORY: analog_deadzone_manager.gd. Prefer Input.get_vector() for circular deadzones — never subtract axes into a square deadzone.

2. Expert polling delta (no hardcoded keys)

Gameplay samples actions in _physics_process / _unhandled_input — never KEY_* / MOUSE_BUTTON_* branches. Pause/cancel must be InputMap actions (e.g. ui_cancel) so rebinds and non-QWERTY layouts work. See unhandled_input_priority.gd.

Multi-Modal Input & UI Glyphs

Modern games must handle simultaneous Controller and Keyboard/Mouse input smoothly.

1. Handling Input Modes
Show full SKILL.md (501 more words)Show less
2. Dynamic Glyph Swapping

MANDATORY: glyph_prompt_manager.gd for last-device prompt swaps. Do not hand-roll event is InputEventJoypadButton detectors in every HUD widget.

Expert Input Extensions (script sole-source)

Deep recipes (on demand)

TopicReference / script
Buffering / coyote / MP syncinput-event-processing.md
Virtual injection / combos / replayexpert-input-extensions.md
InputMap & device IDsinputmap-best-practices.md

Reference

Progressive disclosure: open Official Documentation links only when researching a specific API; load Related Skills when routing to a peer domain — do not preload the whole lattice.

Official Documentation
  • Using InputEvent — Event propagation order (_input → GUI → _unhandled_input) and why gameplay belongs after UI consumes events.
  • Input examples — Practical InputMap action polling, mouse buttons, and keyboard patterns this skill builds on.
  • Controllers, gamepads, and joysticks — Joypad connection, button/axis events, and multi-device mapping for remappers and glyph swaps.
  • Controller vibration and features — Extended pad capabilities beyond basic buttons when shipping console-style feedback.
  • Mouse and input coordinates — Viewport vs screen coordinates for clicks, aim, and capture-relative motion.
  • Customizing the mouse cursor — Cursor shapes alongside Input.mouse_mode capture/release flows.
  • Handling quit requests — Safe ESC / back / quit paths so mouse capture never traps the player.
  • Input — Singleton API: is_action_*, get_vector, mouse_mode, parse_input_event, and joy connection signals.
  • InputMap — Runtime action_add_event / erase / conflict checks for safe rebinding.
  • InputEvent — Base event API including is_echo(), is_action_pressed(), and device IDs.
  • Idle and Physics Processing — Why hold/poll gameplay input in _physics_process, not frame-tied _process.
  • Control — _gui_input / accept_event so menus stop events before _unhandled_input gameplay.
Prerequisites
  • godot-project-foundations — Project Settings Input Map, scene boot, and Autoload registration that host remappers and glyph managers.
  • godot-gdscript-mastery — Typed InputEvent branches, StringName actions, and safe signal/await patterns used in buffers and device routers.
Complements
Downstream / consumers
  • godot-genre-platformer — Coyote time and jump buffers are the primary consumer of input buffering.
  • godot-genre-shooter-fps — Captured mouse aim, fire just-pressed, and gamepad look rely on this skill’s capture/deadzone stack.
  • godot-genre-fighting — Combo sequence validators and frame-perfect buffers feed special-move detection.
  • godot-multiplayer-networking — Authoritative peers need sanitized action snapshots / RPC’d input, not raw local keycodes.
Master
  • godot-master — Library router and mirrored module entry; open when discovering which Domain Skill owns a cross-cutting input concern.

© thedivergentai, LGPL-3.0. 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 22 other files (scripts, references) in skills/godot-input-handling of thedivergentai/GD-Agentic-Skills.

  • SKILL.md
  • references/expert-input-extensions.md
  • references/godot-47-input-device-ids.md
  • references/input-event-processing.md
  • references/inputmap-best-practices.md
  • references/migration-notes.md
  • references/multi-modal-input-ui-glyphs.md
  • scripts/action_state_machine.gd
  • scripts/advanced_input_buffer.gd
  • scripts/analog_deadzone_manager.gd
  • scripts/combo_validator.gd
  • scripts/glyph_prompt_manager.gd
  • scripts/hold_toggle_accessibility.gd
  • scripts/input_buffer.gd
  • scripts/input_buffer_manager.gd
  • scripts/input_echo_filter.gd
  • scripts/input_remapper.gd
  • scripts/input_replay_buffer.gd
  • scripts/mouse_capture_manager.gd
  • … and 4 more

Open the folder on GitHubat commit 4c4d0ff

Compare with similar skills

Godot Input Handling 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.

Godot Input Handling compared with similar skills
SkillStarsUsed inTokensAuto-checkLicenceRepo updated
Godot Input Handling this skillthedivergentai/GD-Agentic-Skills821—~4kAutomated safety check: PassLGPL-3.0
UI Theme QAhashgraph-online/awesome-codex-plugins1.3k—~1.8kAutomated safety check: PassApache-2.0
Scenario Godot UIscenario-labs/skills946—~5.5kAutomated safety check: PassMIT
Input Systemsukanwat/overtime3871 repos~2kAutomated safety check: PassApache-2.0
UI KitRandallLiuXin/GodotMaker550—~2.8kAutomated safety check: PassCustom licence
Godot Data Driven Configinfometa/workbuddyskills348—~2.2kAutomated safety check: PassNone

Similar skills

  • UI Theme QA

    hashgraph-online/awesome-codex-plugins

    A skill your agent uses to find and fix undisciplined Control-node UI in a Godot project — spacing that follows no ladder, font sizes with no modular scale, near-duplicate colours, and text that…

    1.3k GitHub stars~1.8k tokensUpdated yesterday
    Frontend & DesignAuto-check passed
  • Scenario Godot UI

    scenario-labs/skills

    A skill your agent uses when building or fixing game UI in Godot 4.7: main menu, settings screen, HUD (health bar, ammo, minimap frame), Control layout, containers, anchors, themes in code, 'UI…

    946 GitHub stars~5.5k tokensUpdated yesterday
    Game DevelopmentAuto-check passed
  • Input Systems

    ukanwat/overtime

    Architect game input — action mapping (abstracting keys into named actions), rebinding with conflict detection and persistence, multi-device support (keyboard, gamepad, touch), analog deadzones, and…

    387 GitHub starsUsed in 1 repo~2k tokens
    Game DevelopmentAuto-check passed
  • UI Kit

    RandallLiuXin/GodotMaker

    Produce a complete reusable flat-first Godot UI Theme from a binding visual reference, with two provider-generated source sheets, fixed square nine-slice patches, stable AtlasTexture icons, and…

    550 GitHub stars~2.8k tokensUpdated 23 days ago
    Game DevelopmentAuto-check passed
  • Godot Data Driven Config

    infometa/workbuddyskills

    Create or extend data-driven config tables (WeaponData, EnemyData, LevelData, etc.) in a Godot 4 project so that designers can tweak numbers in .tres files via natural language.

    348 GitHub stars~2.2k tokensUpdated yesterday
    Game DevelopmentAuto-check passed
  • Godot Gdscript Patterns

    925236118/AlphaAgent

    Master Godot 4 GDScript patterns including signals, scenes, state machines, and optimization.

    103 GitHub starsUsed in 10 repos~5k tokens
    Game DevelopmentAuto-check passed

More from thedivergentai/GD-Agentic-Skills

All 98 skills in this repo
  • Godot 2D Animation

    thedivergentai/GD-Agentic-Skills

    Expert patterns for 2D animation in Godot using AnimatedSprite2D and skeletal cutout rigs.

    821 GitHub stars~3.6k tokensUpdated 1 mo ago
    Auto-check passed
  • Godot 3D World Building

    thedivergentai/GD-Agentic-Skills

    Expert patterns for 3D level design using GridMap with MeshLibrary, CSG constructive solid geometry, occlusion, and runtime GridMap builders.

    821 GitHub stars~3.3k tokensUpdated 1 mo ago
    Auto-check passed
  • Godot Adapt 2D To 3D

    thedivergentai/GD-Agentic-Skills

    Expert patterns for migrating 2D games to 3D including node type conversions, camera systems (third-person, first-person, orbit), physics layer migration, sprite-to-model art pipeline, and control…

    821 GitHub stars~4.7k tokensUpdated 1 mo ago
    Auto-check passed
  • Godot Adapt 3D To 2D

    thedivergentai/GD-Agentic-Skills

    Expert patterns for simplifying 3D games to 2D including dimension reduction strategies, 2.5D fake-depth, isometric ports, camera flattening, physics conversion, 3D-to-sprite art pipeline, and…

    821 GitHub stars~4.5k tokensUpdated 1 mo ago
    Auto-check passed
  • Godot Agent Vision

    thedivergentai/GD-Agentic-Skills

    Agentic eyes for Godot work: cross-platform screenshot CLI (asset/region/window/screen) to budgeted WebP, TEMP editor viewport bridge under .gdskills/, and Taste Receptor Atlas v2 (~237…

    821 GitHub stars~3.5k tokensUpdated 1 mo ago
    Auto-check passed
  • Godot Animation Tree Mastery

    thedivergentai/GD-Agentic-Skills

    Expert patterns for AnimationTree including StateMachine transitions, BlendSpace2D for directional movement, BlendTree for layered animations, root motion, transition conditions, advance…

    821 GitHub stars~3.6k tokensUpdated 1 mo ago
    Auto-check passed

Works with

Questions about Godot Input Handling

What does Godot Input Handling do?

Expert patterns for input handling covering InputMap actions, InputEvent processing, controller support, rebinding, deadzones, and input buffering. Godot Input Handling is an agent skill from thedivergentai/GD-Agentic-Skills. Expert patterns for input handling covering InputMap actions, InputEvent processing, controller support, rebinding, deadzones, and input buffering.

When should I use Godot Input Handling?

Godot Input Handling fits situations like: setting up player controls; implementing input systems; adding gamepad/accessibility features.

How do I install Godot Input Handling in Claude Code?

Run `npx skills add thedivergentai/GD-Agentic-Skills --skill godot-input-handling -a claude-code`. Or copy the skill folder (skills/godot-input-handling in thedivergentai/GD-Agentic-Skills) into .claude/skills/godot-input-handling in your project. Claude Code loads it when a task matches its description.

How do I install Godot Input Handling in Codex?

Run `npx skills add thedivergentai/GD-Agentic-Skills --skill godot-input-handling -a codex`. Or copy the skill folder (skills/godot-input-handling in thedivergentai/GD-Agentic-Skills) into .agents/skills/godot-input-handling in your project. Codex loads it when a task matches its description.

Can I use Godot Input Handling 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 thedivergentai/GD-Agentic-Skills --skill godot-input-handling -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/godot-input-handling, .gemini/skills/godot-input-handling, .github/skills/godot-input-handling and .opencode/skills/godot-input-handling in your project.

What does Godot Input Handling need to run?

SKILL.md names no scripts, command-line tools or credentials: Godot Input Handling is instructions for the agent only.

Does Godot Input Handling access the network?

SKILL.md names 1 domain. As links in the text: docs.godotengine.org. This is read from the text; nothing was executed.

Is Godot Input Handling 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 Godot Input Handling use?

Godot Input Handling is published under the LGPL-3.0 licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.

How many tokens does Godot Input Handling use?

About 4k tokens (SKILL.md is roughly 16k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full. Its references folder adds about 1.7k tokens, read only when the agent opens those files.

What are the alternatives to Godot Input Handling?

Skills that share tags, products or a category with Godot Input Handling: UI Theme QA (hashgraph-online/awesome-codex-plugins, 1.3k stars), Scenario Godot UI (scenario-labs/skills, 946 stars), Input Systems (ukanwat/overtime, 387 stars) and UI Kit (RandallLiuXin/GodotMaker, 550 stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.

Who maintains Godot Input Handling?

thedivergentai (a GitHub user) maintains it in thedivergentai/GD-Agentic-Skills, which has 821 GitHub stars. The repository holds 98 skills in this directory. The repository was last updated on September 9, 2026.

Source: thedivergentai/GD-Agentic-Skills on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.