Godot game rules: AGENTS.md, CLAUDE.md & Cursor rules
AI coding tools can write GDScript well, but they can't click around the Godot editor and they get Godot 3 vs 4 mixed up. These rules account for both.
Stack these rules assume: Godot 4, GDScript, scenes (.tscn) and resources (.tres). Different stack? Customize it in the generator.
Want the full step-by-step kit?
Tiny Game Builder Kit ($9): An agent brief, a one-page game design doc, and an 8-step prompt ladder with "stop and test" checkpoints: from an empty folder to a small, finished game you can share.
Get the kit for $9 on Gumroad → See what's inside
or get all 5 kits for $25 (save $14) →
One markdown file, instant download. 7-day refund, no questions asked.
Quick start
- Copy the
AGENTS.mdbelow into your project's root folder. - Fill in the three
[bracketed]lines under "Project". Delete any rule that doesn't fit. - Start your first chat with: "Read AGENTS.md and follow it for this whole session."
AGENTS.md (works across tools)
Read by OpenAI Codex, Cursor, GitHub Copilot, Claude Code (when there's no CLAUDE.md) and many other agents.
# AGENTS.md: Godot game
Instructions for AI coding agents working on this project. Replace anything in [brackets].
## Project
- What it is: [one sentence: what you are building and who it is for]
- Stack: Godot 4, GDScript, scenes (.tscn) and resources (.tres)
- Version 1 only needs to: [the ONE thing it must do]
## Commands
- Run the game: Open the project in Godot 4 and press F5 (or the Play button)
- Run the current scene: F6 in the editor
## Project rules
- This is a Godot 4 project. Use Godot 4 GDScript syntax and APIs only (for example CharacterBody2D, not KinematicBody2D).
- Prefer telling me which nodes to add in the editor. If you edit .tscn or .tres files as text, change only what's needed and tell me to reload the scene.
- One script per node that needs behavior. Keep scripts next to their scenes.
- Use signals for communication between nodes instead of hard-coded paths like get_node("../../Player") where possible.
- Put tunable values in @export variables so I can change them in the Inspector.
- The .godot/ folder is generated. Never edit it and keep it in .gitignore.
## How to work
- Do one task per request. If my request is really several tasks, list them and do only the first.
- Before writing code, give a 3-line plan: what you'll change, which files, and how I'll test it.
- Make the smallest change that works. Don't refactor, rename, or reformat code I didn't ask about.
- Ask before adding a dependency, deleting or moving files, changing the data/database structure, or touching more than 3 files.
- If you're not sure a library, API, or setting exists in the version we use, say so and check the installed package or the docs instead of guessing.
- Never say something works unless you ran it or I confirmed it. Report errors exactly.
- Secrets (API keys, tokens, passwords) live only in environment variables or a .env file listed in .gitignore. Never print, hardcode, or commit them.
- Never run destructive commands (rm -rf, git reset --hard, force-push, dropping tables) without asking first.
## Finish every task with
1. What changed (list the files).
2. How to run or test it in under a minute, and what I should see.
3. A suggested git commit message.
Want the full step-by-step kit?
Tiny Game Builder Kit ($9): An agent brief, a one-page game design doc, and an 8-step prompt ladder with "stop and test" checkpoints: from an empty folder to a small, finished game you can share.
Get the kit for $9 on Gumroad → See what's inside
or get all 5 kits for $25 (save $14) →
One markdown file, instant download. 7-day refund, no questions asked.
Why each rule exists
- Godot game ruleThis is a Godot 4 project. Use Godot 4 GDScript syntax and APIs only (for example CharacterBody2D, not KinematicBody2D).Why: Godot 3 code is everywhere online and much of it doesn't work in Godot 4. Saying the version up front prevents a lot of it.
- Godot game rulePrefer telling me which nodes to add in the editor. If you edit .tscn or .tres files as text, change only what's needed and tell me to reload the scene.Why: Scene files are fragile text. A small wrong edit can make a scene fail to open.
- Godot game ruleOne script per node that needs behavior. Keep scripts next to their scenes.Why: Matching scene + script pairs make it obvious where to look when something misbehaves.
- Godot game ruleUse signals for communication between nodes instead of hard-coded paths like get_node("../../Player") where possible.Why: Long node paths break the moment you move a node. Signals survive reorganizing.
- Godot game rulePut tunable values in @export variables so I can change them in the Inspector.Why: You can tweak speed or jump height without asking the AI (and without spending a prompt).
- Godot game ruleThe .godot/ folder is generated. Never edit it and keep it in .gitignore.Why: It's Godot's cache. Editing or committing it causes confusing diffs and merge pain.
- How to workDo one task per request. If my request is really several tasks, list them and do only the first.Why: Big multi-part requests are where AI tools change 12 files and you can't tell which change broke things.
- How to workBefore writing code, give a 3-line plan: what you'll change, which files, and how I'll test it.Why: A plan you can read in 10 seconds catches the wrong approach before it costs you an hour or a pile of credits.
- How to workMake the smallest change that works. Don't refactor, rename, or reformat code I didn't ask about.Why: Drive-by "cleanups" are the #1 cause of "it was working yesterday".
- How to workAsk before adding a dependency, deleting or moving files, changing the data/database structure, or touching more than 3 files.Why: These are the changes that are hard to undo. One quick question is cheaper than a rollback.
- How to workIf you're not sure a library, API, or setting exists in the version we use, say so and check the installed package or the docs instead of guessing.Why: AI tools confidently invent functions and config options. Making it check is the cure.
- How to workNever say something works unless you ran it or I confirmed it. Report errors exactly.Why: "Should work now" isn't a test result. You want facts, not optimism.
- How to workSecrets (API keys, tokens, passwords) live only in environment variables or a .env file listed in .gitignore. Never print, hardcode, or commit them.Why: Leaked keys get found by bots within minutes of a public push. This rule is the cheapest insurance you'll ever buy.
- How to workNever run destructive commands (rm -rf, git reset --hard, force-push, dropping tables) without asking first.Why: One bad command can delete the only copy of your work.
- Finish every task withWhat changed, how to test it, and a commit message.Why: This turns every task into a checkpoint: you test it, you commit it, and you always have a last good version to go back to.
Use it as CLAUDE.md (Claude Code)
Pick one:
- Do nothing. Current Claude Code versions read
AGENTS.mdwhen the project has noCLAUDE.md. Run/memoryin a session to check it loaded. - Import it (best if you want Claude-only extras, or you're on an older Claude Code). Create
CLAUDE.mdnext toAGENTS.md:
@AGENTS.md
## Claude Code
- Use plan mode before any change that touches more than 3 files.
- Claude only? Save the same AGENTS.md text as
CLAUDE.mdinstead. Don't keep two separate copies; they drift apart.
Heads-up: if a project has both files and CLAUDE.md doesn't import AGENTS.md, Claude Code reads only CLAUDE.md by default. More in AGENTS.md vs CLAUDE.md.
Use it as Cursor rules (.cursor/rules/*.mdc)
Cursor reads AGENTS.md too, so the file above already works. If you prefer Cursor's own Project Rules, split it into two .mdc files. The .mdc extension and frontmatter are required; Cursor ignores plain .md files in .cursor/rules.
---
description: Project overview and working rules for Godot game
alwaysApply: true
---
# Godot game
Instructions for AI coding agents working on this project. Replace anything in [brackets].
## Project
- What it is: [one sentence: what you are building and who it is for]
- Stack: Godot 4, GDScript, scenes (.tscn) and resources (.tres)
- Version 1 only needs to: [the ONE thing it must do]
## Commands
- Run the game: Open the project in Godot 4 and press F5 (or the Play button)
- Run the current scene: F6 in the editor
## How to work
- Do one task per request. If my request is really several tasks, list them and do only the first.
- Before writing code, give a 3-line plan: what you'll change, which files, and how I'll test it.
- Make the smallest change that works. Don't refactor, rename, or reformat code I didn't ask about.
- Ask before adding a dependency, deleting or moving files, changing the data/database structure, or touching more than 3 files.
- If you're not sure a library, API, or setting exists in the version we use, say so and check the installed package or the docs instead of guessing.
- Never say something works unless you ran it or I confirmed it. Report errors exactly.
- Secrets (API keys, tokens, passwords) live only in environment variables or a .env file listed in .gitignore. Never print, hardcode, or commit them.
- Never run destructive commands (rm -rf, git reset --hard, force-push, dropping tables) without asking first.
## Finish every task with
1. What changed (list the files).
2. How to run or test it in under a minute, and what I should see.
3. A suggested git commit message.
The project rules only attach when a matching file is in the chat (globs with alwaysApply: false). Want them on all the time? Change it to alwaysApply: true.
---
globs: **/*.gd, **/*.tscn, **/*.tres
alwaysApply: false
---
# Project rules: Godot game
- This is a Godot 4 project. Use Godot 4 GDScript syntax and APIs only (for example CharacterBody2D, not KinematicBody2D).
- Prefer telling me which nodes to add in the editor. If you edit .tscn or .tres files as text, change only what's needed and tell me to reload the scene.
- One script per node that needs behavior. Keep scripts next to their scenes.
- Use signals for communication between nodes instead of hard-coded paths like get_node("../../Player") where possible.
- Put tunable values in @export variables so I can change them in the Inspector.
- The .godot/ folder is generated. Never edit it and keep it in .gitignore.
Use either AGENTS.md or these .mdc files, not both, so you don't send the same rules twice. See Cursor rules vs AGENTS.md.
Related
- Best AI tool to make a Godot game (which tool to use, real prices)
- AGENTS.md, CLAUDE.md and Cursor rules formats explained