stick-map

input rebind gamepad deadzone accessibility
by @iberry420gaming
Design an engine-neutral game input layer: named actions, per-device bindings, radial deadzone, buffer and coyote windows, rebind with conflict checks, and an accessibility card. Use when the user wants input mapping, rebind controls, gamepad support, deadzone, input buffering, coyote time, or accessible controls. Gaming only, not a Godot tutor.
SKILL PACKAGE

Directory layout for Grok — SKILL.md plus scripts, references, and assets. 6 file(s).

Select a file

Edit in place, then Save (full package security scan). Use fullscreen for a larger workspace.

SYNCED SUMMARY (from SKILL.md)
# Stick Map

Gameplay reads named actions. Keys and sticks are just devices.

Inspired by gamedev-skills/awesome-gamedev-agent-skills input-systems (Apache-2.0). Original Grok remake. Engine-neutral. Complements save-slot (persist bindings), juice-pass (feel on an action that already fires), room-flow (space), gold-sink (economy). Not godot-teacher.

Read `references/input-rules.md` before you design. Fill the three templates.

## When to use
- Input mapping, rebind controls, gamepad support
- Deadzone, input buffering, coyote time
- Accessible controls, last-device prompts, virtual stick
- Named action layer so gameplay never reads raw keys

## When NOT to use
- Godot InputMap tutorial or engine API dumps (use godot-teacher)
- Save file format for the binding document (use save-slot)
- Hit juice polish on an action that already fires (use juice-pass)
- Level blockout (use room-flow)
- Cracked trainers, aimbots, input-injection malware, account theft

## Inputs
- Genre slice (platformer, twin-stick, menu-heavy, touch-first, etc.)
- Action list they care about (jump, interact, move, aim, pause)
- Devices in scope (keyboard, gamepad, touch)
- Current pain: missed jumps, diagonal clip, rebind fights, inaccessible chords
- Accessibility needs they named (toggle, invert, larger windows)

## Procedure
1. Read `references/input-rules.md`. Refuse trainers, aimbots, injection malware, CSAM, and account theft.
2. Name actions first. Never wire gameplay to raw keys. Gameplay reads jump, interact, move. Devices bind to those names.
3. Bind per device (keyboard, gamepad, touch). Abstract face buttons as South / East / West / North. Last-used device swaps on-screen prompts and glyphs.
4. Classify each action: edge (pressed-this-frame) for discrete (jump, interact). Held / level for continuous (move, aim). Mixing them causes double-fires or missed presses.
5. Analog: radial deadzone on vector length, then rescale so motion starts at 0 at the deadzone edge. Per-axis deadzones clip diagonals. Optional sensitivity curve.
6. Buffer about 0.10-0.15s in seconds (not frames). Coyote about 0.08-0.12s after leaving ground. Consume both on fire so one press equals one jump.
7. Rebind: capture next input, detect conflicts, persist via save-slot, reset-to-default. Never unbind the only way back to the menu.
8. Accessibility card: full remap, toggle-vs-hold, no required simultaneous presses for essentials, adjustable sensitivity and deadzone, invert axes, hold-instead-of-mash, extend windows.
9. Touch: same action layer. Floating-origin virtual stick. Large hit areas.
10. Poll held / axis in the physics step. Latch discrete presses so none are lost between ticks.
11. Fill `templates/action-map.md`, `templates/feel-windows.md`, and `templates/access-card.md`.
12. Optional tiny original pseudocode only if they asked, engine-neutral, not vendor dumps.

## Output format
- Action map (edge vs held, default keyboard + gamepad + touch)
- Feel windows (deadzone, sensitivity, buffer, coyote, consume rule)
- Access card (rebind/conflicts/reset, last-device prompts, toggle-vs-hold, no-chords, verify)
- One line: game-design worksheet; not a trainer or injection tool

## Safety
- Follow `references/input-rules.md` with no exceptions.
- No cracked trainers, aimbots, input-injection malware, CSAM, or account theft.
- Engine-neutral notes only. Not a Godot tutor.

## Stop conditions
- Three templates delivered, or refused for malware / trainers / wrong scope (godot-teacher / save-slot / juice-pass / room-flow)
Version History
Comments (0)
No comments yet. Be the first!
Sign in to leave a comment.