Chat with a system prompt
Lowest effort. Paste a Godot-specific system prompt so the model stops answering as a generalist. Good for explanation and small scripts.
Get the agent fileAI assistants are genuinely useful on Godot projects, and they fail in a specific, predictable way. This is how to get the useful part without shipping the failure.
The core problem is not that models are bad at Godot. It is that they learned Godot 3, and Godot 4 renamed a lot of it.
Lowest effort. Paste a Godot-specific system prompt so the model stops answering as a generalist. Good for explanation and small scripts.
Get the agent fileCursor, Claude Code, Copilot. The model reads your actual files, so it stops inventing your project structure. This is the sweet spot for most people.
The assistant can run the project, read the real debug output, and edit scenes. Closes the loop between writing code and knowing whether it works.
Set up Godot MCPGodot 3 was current for years, so it dominates what these models learned. Godot 4 renamed a large amount of it. The result is code that looks fluent, references classes that no longer exist, and fails on the first run.
Every rename below is confirmed in Godot's official upgrade guide. If you see the left column, the answer is stale:
| Godot 3 (stale) | Godot 4 | Note |
|---|---|---|
KinematicBody2D | CharacterBody2D | The single most common giveaway. |
Spatial | Node3D | All the 3D base classes were renamed. |
Position2D | Marker2D | Marker3D in 3D. |
change_scene() | change_scene_to_file() | On SceneTree. |
instance() | instantiate() | On PackedScene. |
connect("hit", self, "_on_hit") | hit.connect(_on_hit) | Signals are objects now, not strings. |
Two more worth memorising: in Godot 4 move_and_slide() takes no arguments and reads the velocity property, and
annotations are written @export and @onready.
The pattern: it is good at things you could verify in a minute, and bad at things that depend on state it cannot see.
WeakHow do I move a character in Godot?
BetterGodot 4.7, GDScript with type hints. Write a CharacterBody2D script using the velocity property and move_and_slide() with no arguments.
Naming the version and the API shape blocks the Godot 3 default.
WeakWhy is my player not colliding?
BetterMy scene is Player (CharacterBody2D) > Sprite2D, CollisionShape2D. The floor is StaticBody2D > CollisionShape2D. Player passes through. What is wrong?
Most Godot bugs are structural. Without the tree the model invents one.
WeakWrite me an inventory system.
BetterShould inventory items be Resources or plain dictionaries in Godot 4.7? Argue both, then implement the one you pick.
You get the reasoning you can check, instead of confident code you cannot.
WeakIs this the right way to save?
BetterWhich Godot 4 class should persist this, and what does the official documentation say that class is for?
Forcing a justification surfaces invented APIs fast.
Run this list against any non-trivial block of Godot code an AI hands you:
AI is unusually good at concept translation, because that is a language problem rather than a state problem. Ask it "what is the Godot equivalent of a Unity ScriptableObject" and it will usually be right. Ask it to wire that into your specific scene and it will guess.
Check anything it tells you against the equivalents dictionary, which is verified against the Godot 4.7 documentation, and start from the migration hub if you are early in the move.