godot-gdscript
Write idiomatic GDScript for Godot 4.x: static typing, the node lifecycle (_ready/_process/_physics_process), @export/@onready/@tool annotations, signals, and await for asynchronous flow. Use when editing .gd scripts in a Godot project (project.godot), writing or debugging GDScript, or porting 3.x GDScript to 4.x (func signatures, yield -> await, export -> @export).
npx skills add gamedev-skills/awesome-gamedev-agent-skills --skill godot-gdscript --agent claude-code
Same command for any agent — swap --agent for codex, cursor, copilot.
Weekly change comes from our own snapshots, not the repository page — it measures attention, not adoption.
# Godot GDScript (4.x) Write correct, statically typed GDScript and use the node lifecycle and signal system the way the engine intends. Targets **Godot 4.3+** (GDScript 2.0). ## When to use - Use when writing or fixing `.gd` files: declaring variables, functions, classes, using `@export`/`@onready`, connecting signals, or awaiting coroutines/signals. - Use when porting Godot 3.x scripts to 4.x and the script no longer parses. **When *not* to use:** scene/node structure and instancing questions → `godot-nodes-scenes`; signal *architecture*/decoupling patterns → `godot-signals-groups`; using C# instead of GDScript → `godot-csharp`. ## Core workflow 1. **Type everything you can.** GDScript 2.0 supports static types (`var hp: int = 10`, `func add(a: int, b: int) -> int:`). Types catch errors at parse time and speed up the VM. Use `:=` for inferred types. 2. **Use the lifecycle callbacks for their purpose:** `_ready()` once when the node and its children enter the tree; `_process(delta)` every rendered frame; `_physics_process(delta)` on the fixed physics tick (use it for movement/physics). 3. **Grab node references with `@onready`**, not in `_init()` — children do not exist until the
- When to use
- Core workflow
- Patterns
- 1. A typed script with lifecycle, @export, and @onready
- 2. Signals: declare, emit, connect (4.x Callable syntax)
- 3. await — pause until a timer or signal fires (replaces 3.x yield)
- 4. Lambdas, typed arrays, and safe access
- Pitfalls
- References
- Related skills
What does the godot-gdscript skill do?
Write idiomatic GDScript for Godot 4.x: static typing, the node lifecycle (_ready/_process/_physics_process), @export/@onready/@tool annotations, signals, and await for asynchronous flow. Use when editing .gd scripts in a Godot project (project.godot), writing or debugging GDScript, or porting 3.x GDScript to 4.x (func signatures, yield -> await, export -> @export).
How do I install it?
Run `npx skills add gamedev-skills/awesome-gamedev-agent-skills --skill godot-gdscript --agent claude-code` — it drops the skill into your project so the agent can pick it up. Swap the --agent value for codex, cursor or copilot if you use one of those.
Where does this skill come from?
From gamedev-skills/awesome-gamedev-agent-skills, a repository with 406 stars. We read it straight from the repository tree rather than a submitted listing, so what you see here is what is actually published.
Is a popular skill a good skill?
Not necessarily. Stars measure attention, not adoption — a repository can trend for a week and be abandoned. That is why we show the weekly change from our own snapshots next to the total, instead of a single flattering number.
