Interactive Lab Quest

Input Playground

See how pressed, just-pressed, and direction checks behave before using them in a controller.

10-20 min Practice first Godot 4.7

Live Input Lab

Godot Input Playground

Press WASD or arrow keys and watch input map actions, movement vector, velocity, and event flow update in one place.

Idle

Input Drills

Prove the input pattern, then move on

Each drill maps one live interaction to the Godot code habit it represents.

0/4 drills complete
Input.get_vector

Map held movement

Press W, A, S, or D and watch the action chip, direction, velocity, and moving state agree.

Proof to capture A movement action lights up and the node accelerates.

Input Map Actions

Move the node inside the viewport

move_left move_right move_up move_down jump
Node

What this playground is showing

  • Held input: movement uses polling, the same idea as Input.is_action_pressed().
  • One-shot input: new key presses go into the event log, like using _input(event).
  • Input Map names: the visible action chips match the action strings you would define in Project Settings.
  • Mouse events: the cursor readout updates relative to the arena, matching viewport-local input checks.

Godot input FAQ

How do I check if a key is pressed in Godot 4?
Use Input.is_key_pressed(KEY_W) for raw keys, but the recommended approach is to register an action in Project Settings > Input Map, then call Input.is_action_pressed("action_name"). Action-based input keeps your code portable across keyboard, mouse, and gamepad.
What's the difference between _input, _unhandled_input, and _process in Godot?
_input(event) runs for every input event and fires before any node consumes it. _unhandled_input(event) runs only for events not consumed by UI. _process(delta) runs every frame regardless of input; use it with Input.is_action_pressed() to read held state.
How does Godot input compare to Unity's Input.GetAxis?
Godot's analog of Input.GetAxis("Horizontal") is Input.get_axis("move_left", "move_right"). It returns a float in the range -1 to 1, derived from the named actions you defined in the Input Map.
Tutor Checkpoint

Lock the pattern in

Before jumping to the next page, turn the idea into one tiny scene or script. That is where the Godot habit sticks.

Unity habit

Separate continuous input from one-frame button presses.

Unreal habit

Treat input events and held state as different tools.

Godot habit

Use is_action_pressed for held state and is_action_just_pressed for edges.

Try this

Press keys slowly and quickly, then predict which checks should light up.

Frequently asked questions

What is the Input Playground?
A browser-based lab for experimenting with Godot's input system concepts. Press keyboard keys and see how Godot's Input.is_action_pressed() and Input.is_action_just_pressed() APIs respond.
Can I test gamepad input in the playground?
The playground demonstrates keyboard and mouse input concepts visually. For actual gamepad testing, you'll need the Godot editor with a connected controller.