How to use Cursor or Claude Code for a Godot 4 game jam

Updated 2026-10-17

AI coding agents are fast at GDScript and bad at knowing which GDScript. Most failures in a Godot 4 jam come from three things: Godot 3 APIs, nobody running the project after a change, and a web export that breaks on itch.io. Here's how to handle each.

1. Tell the agent the version and ban Godot 3 APIs

Put the engine version and a "don't write this" table in your rules file. These are the ones agents get wrong most:

Godot 3 (parse error or wrong in 4)Godot 4
KinematicBody2DCharacterBody2D
move_and_slide(velocity, Vector2.UP)set velocity, call move_and_slide()
yield(..., "timeout")await get_tree().create_timer(1.0).timeout
export var / onready var@export var / @onready var
connect("sig", self, "_m")sig.connect(_m)
instance()instantiate()

In Cursor, scope these rules to **/*.gd, **/*.tscn, project.godot with a .cursor/rules/*.mdc file (the old .cursorrules file is deprecated). In Claude Code put them in CLAUDE.md. Codex reads AGENTS.md.

2. Give the agent a way to check its work

Godot runs headless from the command line, so an agent with a terminal can verify changes. We tested these on Godot 4.7.2:

# once per fresh checkout
godot --headless --path . --import
# parse-check one script
godot --headless --path . --check-only --script res://scripts/player.gd
# run the main scene ~120 frames, see runtime errors and print()
godot --headless --path . --quit-after 120

Feed it a Godot 3 script and the check prints SCRIPT ERROR: Parse Error: "yield" was removed in Godot 4. Use "await" instead. Don't trust the exit code; have the agent search the output for SCRIPT ERROR.

The Godot MCP server (claude mcp add godot -- npx @coding-solo/godot-mcp) goes further: the agent can launch the project and read debug output itself.

3. Export for the web early

mkdir -p build/web
godot --headless --path . --export-release "Web" build/web/index.html
butler push build/web yourname/yourgame:html5

After the first butler push, set the project kind to HTML and tick "played in the browser" in itch.io's Edit game page. Do the first upload around hour 8, not hour 47.

4. Make the agent manage scope

Keep a JAM.md with the deadline, the core verb, the win/lose condition and a cut list, and tell the agent to read it every session. Rules that pay off: a playable build by hour 6, one system per change, no new dependencies after hour 12, no new mechanics after hour 30.

Get the rules

The Godot rules in this guide are free on GitHub. The full kit adds Phaser and Roblox packs, six roles and the 48h playbook.