Godot Platformer Kit

Complete 2D platformer starter project for Godot 4.x

$5 Godot 4.2+ GDScript Beginner Friendly

What You Get

Player Controller

Walk, jump, double-jump, wall-slide, wall-jump. Coyote time and jump buffering for tight, responsive controls.

Enemy AI

State machine pattern with patrol, chase, and attack behaviors. Ground (Slime) and flying (Bat) enemy types.

Game Manager

Autoload singleton managing score, lives, health, and level transitions. Signals keep everything in sync.

HUD System

Health, score, and lives display. Message overlay for "Level Complete" and "Game Over" events.

Sample Level

A complete level scene with platforms, enemies, and collectibles. Ready to duplicate and customize.

Step-by-Step Tutorial

Every line of code is commented. TUTORIAL.md walks you through every system from scratch.

Code Preview: Player Controller

src/player/player.gd
# Variable jump height — tap for short, hold for high
if Input.is_action_just_released("jump") and velocity.y < 0:
    velocity.y *= jump_cut_multiplier

# Coyote time — jump grace period after leaving a ledge
if was_on_floor and not is_on_floor() and velocity.y >= 0:
    coyote_timer = coyote_time

# Wall sliding — slow fall when against a wall
if is_on_wall_only() and not is_on_floor() and velocity.y > 0:
    is_wall_sliding = true
    velocity.y = min(velocity.y, wall_slide_speed)

Code Preview: Enemy State Machine

src/enemies/slime.gd
enum State { IDLE, PATROL, CHASE }

func _physics_process(delta: float) -> void:
    if not is_on_floor():
        velocity.y += gravity * delta

    match current_state:
        State.IDLE:
            process_idle(delta)
        State.PATROL:
            process_patrol(delta)
        State.CHASE:
            process_chase(delta)

    move_and_slide()

Game Preview

[Game Screenshot]

Open in Godot 4.2+ to see the full game with colored placeholders.
Replace ColorRect nodes with your own pixel art sprites!

Godot Platformer Kit
$7.00
Buy Now