Separate continuous input from one-frame button presses.
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.
Treat input events and held state as different tools.
Use is_action_pressed for held state and is_action_just_pressed for edges.
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.