
Controller - No-Code - Player Movement for Godot 4
A downloadable Godot System
No-code character controller for Godot 4.3+. Top-down + platformer movers (coyote time, jump buffer, variable jump), press-E interaction, follow camera with deadzone & shake, movement locking. Standalone.
Every game starts with the same wall: something has to move when you press the keys, and making it *feel good* is a hundred small decisions — acceleration curves, coyote time, jump buffering, camera smoothing. This is all of that as nodes you click together, tuned defaults included.
**Bake it on from the dock.** Select any node, click **Make Platformer Player** or **Make Top-Down Player**. The dock adds the CharacterBody2D, the mover, and a CollisionShape2D. Press Play - arrows move, Space jumps. Zero code to a playable character.
**Feel, built in.** The platformer mover ships with coyote time (jump just after walking off a ledge), jump buffering (press slightly early, still jump), and variable jump height (release early = shorter hop) - the three things that separate "floaty" from "tight". The top-down mover does 8-way movement with acceleration/friction, or instant arcade response at 0.
**Press E on things.** Drop an **Interactor** on the player and make any prop **Interactable**. Nearest-target focus, a `prompt` string for your UI, and an `event` string mirrored on the global bus - so a sign, a chest, or an NPC can kick off quests and dialogue without a single connection drawn by hand.
**A camera that behaves.** Smooth follow with a deadzone (no pixel-jitter), velocity look-ahead, and one-call `shake()`. Leave its target empty and it finds the player by itself.
**Dialogue-ready.** Any system can call `Controllers.lock_movement("dialogue")` - locks are reason-counted, so a cutscene and a menu can overlap and movement resumes only when both release. Movers persist position through the Save addon with one `save_id`.
**Touch-friendly.** `jump()`, `release_jump()`, and `interact()` are public methods - wire them to on-screen buttons and you have mobile controls.
### What you get
- `ControllerTopDownMover` - 8-way movement, acceleration/friction, remappable actions, save-aware.
- `ControllerPlatformerMover` - gravity, run, coyote time, jump buffer, variable jump height; `jumped`/`landed` signals.
- `ControllerInteractor` / `ControllerInteractable` - nearest-focus press-E interaction; bus-mirrored `event` strings.
- `ControllerFollowCamera` - smooth follow, deadzone, look-ahead, `shake()`.
- `Controllers` autoload bus - player registry, `interacted`, reason-counted movement locks.
- **Editor chooser dock** - bake a playable character (body + mover + shape) onto any node.
- Playable demo: one body, both movers, a readable sign, a follow camera. Docs: quick start, movement, interaction & camera, integration, dock, troubleshooting.
- Headless-verified: 35 automated checks green.
### Requirements
Godot 4.3 or newer. Pure GDScript - no GDExtension. 2D (CharacterBody2D / Area2D).
### License
MIT.
| Updated | 18 hours ago |
| Published | 3 days ago |
| Status | Released |
| Category | Assets |
| Author | selodev |
| Genre | Platformer |
| Tags | camera, character-controller, Godot, godot4, interaction, movement, no-code, player, Top-Down |
| Content | No generative AI was used |
Purchase
In order to download this Godot System you must purchase it at or above the minimum price of $4.99 USD. You will get access to the following files:

Leave a comment
Log in with itch.io to leave a comment.