Godot Gdscript Patterns
925236118/AlphaAgent
Master Godot 4 GDScript patterns including signals, scenes, state machines, and optimization.
Expert architectural standards for building scalable Godot GAMES (RPGs, Platformers, Shooters) using the Composition pattern (Entity-Component).
$ npx skills add thedivergentai/GD-Agentic-Skills --skill godot-composition -a claude-codeProject install by default; add -g for ~/.claude/skills/.
$ gh skill install thedivergentai/GD-Agentic-Skills godot-composition --agent claude-codeProject scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).
$ git clone --depth 1 https://github.com/thedivergentai/GD-Agentic-Skills.git skills-src && mkdir -p .claude/skills && cp -r skills-src/skills/godot-composition .claude/skills/godot-composition && rm -rf skills-srcUse ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.
Claude Code skills documentation · loads skills from .claude/skills/
Install the "godot-composition" agent skill from https://github.com/thedivergentai/GD-Agentic-Skills/tree/main/skills/godot-composition into .claude/skills/godot-composition/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "godot-composition", then confirm the skill loads.Claude Code copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$skill-installer install https://github.com/thedivergentai/GD-Agentic-Skills/tree/main/skills/godot-compositionType this inside Codex. $skill-installer <name> installs a curated skill from openai/skills. The installer writes to $CODEX_HOME/skills (default ~/.codex/skills). Restart Codex if the skill does not show up.
$ npx skills add thedivergentai/GD-Agentic-Skills --skill godot-composition -a codexProject install goes to .agents/skills/; add -g for ~/.codex/skills/.
$ gh skill install thedivergentai/GD-Agentic-Skills godot-composition --agent codexProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/thedivergentai/GD-Agentic-Skills.git skills-src && mkdir -p .agents/skills && cp -r skills-src/skills/godot-composition .agents/skills/godot-composition && rm -rf skills-srcUse ~/.agents/skills/ instead of .agents/skills for a personal install.
Codex skills documentation · loads skills from .agents/skills/
Install the "godot-composition" agent skill from https://github.com/thedivergentai/GD-Agentic-Skills/tree/main/skills/godot-composition into .agents/skills/godot-composition/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "godot-composition", then confirm the skill loads.Codex copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add thedivergentai/GD-Agentic-Skills --skill godot-composition -a cursorProject install goes to .agents/skills/; add -g for ~/.cursor/skills/.
$ gh skill install thedivergentai/GD-Agentic-Skills godot-composition --agent cursorProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/thedivergentai/GD-Agentic-Skills.git skills-src && mkdir -p .cursor/skills && cp -r skills-src/skills/godot-composition .cursor/skills/godot-composition && rm -rf skills-srcUse ~/.cursor/skills/ instead of .cursor/skills for a personal install.
Cursor skills documentation · loads skills from .cursor/skills/, .agents/skills/, .claude/skills/, .codex/skills/
Install the "godot-composition" agent skill from https://github.com/thedivergentai/GD-Agentic-Skills/tree/main/skills/godot-composition into .cursor/skills/godot-composition/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "godot-composition", then confirm the skill loads.Cursor copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gemini skills install https://github.com/thedivergentai/GD-Agentic-Skills.git --path skills/godot-composition--scope user (default) or --scope workspace; --path is the subfolder of the repo that holds the skill; --consent skips the security confirmation prompt.
$ npx skills add thedivergentai/GD-Agentic-Skills --skill godot-composition -a gemini-cliProject install goes to .agents/skills/; add -g for ~/.gemini/skills/.
$ gh skill install thedivergentai/GD-Agentic-Skills godot-composition --agent gemini-cliProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/thedivergentai/GD-Agentic-Skills.git skills-src && mkdir -p .gemini/skills && cp -r skills-src/skills/godot-composition .gemini/skills/godot-composition && rm -rf skills-srcUse ~/.gemini/skills/ instead of .gemini/skills for a personal install, then run /skills reload.
Gemini CLI skills documentation · loads skills from .gemini/skills/, .agents/skills/
Install the "godot-composition" agent skill from https://github.com/thedivergentai/GD-Agentic-Skills/tree/main/skills/godot-composition into .gemini/skills/godot-composition/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "godot-composition", then confirm the skill loads.Gemini CLI copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gh skill install thedivergentai/GD-Agentic-Skills godot-compositionInstalls for Copilot at project scope by default; add --scope user for a personal install. Preview a skill first with gh skill preview. Needs GitHub CLI 2.90.0 or later (public preview).
$ npx skills add thedivergentai/GD-Agentic-Skills --skill godot-composition -a github-copilotProject install goes to .agents/skills/; add -g for ~/.copilot/skills/.
$ git clone --depth 1 https://github.com/thedivergentai/GD-Agentic-Skills.git skills-src && mkdir -p .github/skills && cp -r skills-src/skills/godot-composition .github/skills/godot-composition && rm -rf skills-srcUse ~/.copilot/skills/ instead of .github/skills for a personal install. Commit .github/skills so cloud agent and code review can use it.
GitHub Copilot skills documentation · loads skills from .github/skills/, .claude/skills/, .agents/skills/
Install the "godot-composition" agent skill from https://github.com/thedivergentai/GD-Agentic-Skills/tree/main/skills/godot-composition into .github/skills/godot-composition/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "godot-composition", then confirm the skill loads.GitHub Copilot copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add thedivergentai/GD-Agentic-Skills --skill godot-composition -a opencodeOpenCode documents no install command of its own. Project install goes to .agents/skills/; add -g for ~/.config/opencode/skills/.
$ gh skill install thedivergentai/GD-Agentic-Skills godot-composition --agent opencodeProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/thedivergentai/GD-Agentic-Skills.git skills-src && mkdir -p .opencode/skills && cp -r skills-src/skills/godot-composition .opencode/skills/godot-composition && rm -rf skills-srcUse ~/.config/opencode/skills/ instead of .opencode/skills for a personal install.
OpenCode skills documentation · loads skills from .opencode/skills/, .claude/skills/, .agents/skills/
Install the "godot-composition" agent skill from https://github.com/thedivergentai/GD-Agentic-Skills/tree/main/skills/godot-composition into .opencode/skills/godot-composition/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "godot-composition", then confirm the skill loads.OpenCode copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
godot-compositionExpert architectural standards for building scalable Godot GAMES (RPGs, Platformers, Shooters) using the Composition pattern (Entity-Component).
Godot Composition is an agent skill from thedivergentai/GD-Agentic-Skills. Expert architectural standards for building scalable Godot GAMES (RPGs, Platformers, Shooters) using the Composition pattern (Entity-Component). Use when designing player controllers, NPCs, enemies, weapons, or complex gameplay systems. Enforces "Has-A" relationships for game entities. Trigger keywords: Entity-Component, ECS, Gameplay, Actors, NPCs, Enemies, Weapons, Hitboxes, Game Loop, Level Design.
Its SKILL.md is about 3.7k tokens, which your agent loads only when the skill is triggered. The skill folder holds 17 other files, including scripts and reference files (for example `references/migration-notes.md` and `references/orchestrator-recipes.md`).
It sits in Game Development, covering Game development, Game design and Design patterns. It works with Godot. The repository describes itself as: The official "Long-Term Memory" for Godot 4.7+ AI Agents. A high-density library of 99 expert skills and 27 genre blueprints, providing audited, strictly typed GDScript patterns… The licence is LGPL-3.0.
5 steps, taken from the step headings in SKILL.md.
Read from SKILL.md and the folder at commit 4c4d0ff. It shows what the files ask for, not the result of running them.
Pre-approves nothing: there is no allowed-tools line, so your agent's usual permission prompts apply.
From allowed-tools in the SKILL.md frontmatter.
Ships 10 files in scripts/, which the agent can run.
From the folder's file list and the shell code blocks in SKILL.md.
Links to these hosts (documentation or services it may open):
docs.godotengine.orgFrom URLs in SKILL.md, links to its own repository left out.
Names no API keys, tokens, secrets or passwords.
From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.
Godot Composition loads about 3.7k tokens when it runs, and up to ~5.5k if it reads all its reference files. Until then it costs about 106 tokens; SKILL.md has 1,101 words of instructions outside code blocks.
Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.
The automated check found no risky patterns in SKILL.md.
Automated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); the scripts in this folder are not scanned.
The full file from thedivergentai/GD-Agentic-Skills at commit 4c4d0ff, republished under its LGPL-3.0 licence (© thedivergentai). 1,101 words, ~3,743 tokens.
.claude/skills/godot-composition/SKILL.md (or your agent's skills folder). This skill also uses 14 other files; get the full folder from GitHub.This skill enforces Composition over Inheritance ("Has-a" vs "Is-a"). In Godot, Nodes are components. A complex entity (Player) is simply an Orchestrator managing specialized Worker Nodes (Components).
player.gd) does no logic. It only manages state and passes data between components.| Situation | Choose |
|---|---|
| Gameplay entity behaviors (HP, hitbox, move, interact) | Composition — child components + orchestrator (composition_root_init.gd) |
| Cross-scene services (audio bus, save, net, economy ledger) | Autoload — not a component on the player |
| True is-a engine specialization (custom Control/Node with shared lifecycle) | Inheritance exception — rare; never for "adds a gun" / "adds HP" |
Specialized Node for managing lifespan, damage logic, and death signals across any entity.
Area-based component for intercepting damage and delegating it to a HealthComponent.
Area-based component for dealing damage specifically to HitBoxComponents.
Encapsulated movement and acceleration logic for reuse across Players and Enemies.
Decoupled interaction handler using injecting Callable logic for context-aware actions.
Decoupled tracking logic using NodePath injection for smooth entity following.
Component-based state machine pattern using child nodes as individual states.
Managing temporary modifiers (buffs/debuffs) by stacking effect scenes as children.
Separating logical state (velocity/direction) from visual representation (sprite flipping).
MANDATORY first read — Orchestrator wiring via typed @export (Inspector / %UniqueNames in the scene). Matches NEVER: no $ / get_node for components.
Player > Entity > LivingThing > Node) — Creates brittle "God Classes" that are hard to refactor [21].get_node() or $ for components — This breaks if the scene tree is rearranged. Always use @export or %UniqueNames [22].ShootingComponent, don't make it inherit from ShooterEnemy.CombatComponent needs HealthComponent, look it up in _ready() or inject it via the parent [11]._process) and signals. If you only need data, use a Resource._enter_tree() and _exit_tree() for setup/cleanup that must happen regardless of the parent's state.NodePath or Callable properties so the parent can wire the component in the Inspector [13].Do not rely on tree order. Use explicit dependency injection via @export with static typing.
The "Godot Way" for strict godot-composition:
# The Orchestrator (e.g., player.gd)
class_name Player extends CharacterBody3D
# Dependency Injection: Define the "slots" in the backpack
@export var health_component: HealthComponent
@export var movement_component: MovementComponent
@export var input_component: InputComponent
# Use Scene Unique Names (%) for auto-assignment in Editor
# or drag-and-drop in the Inspector.Components must define class_name to be recognized as types.
Standard Component Boilerplate:
class_name MyComponent extends Node
# Use Node for logic, Node3D/2D if it needs position
@export var stats: Resource # Components can hold their own data
signal happened_something(value)
func _ready() -> void:
_validate_dependencies()
func _validate_dependencies() -> void:
# 2. Dependency-Validation: Fail early during development if setup is wrong [2]
# NOTE: assert() is stripped in release builds [10].
assert(stats != null, "Stats Resource missing on %s" % name)
func do_logic(delta: float) -> void:
# Perform specific task
passInline Input/Movement/Health recipes removed. MANDATORY: start from composition_root_init.gd, then load the matching script:
Typed @export wiring stays under Implementation Standards above.
Encapsulate complex behaviors into child nodes that act as states. The parent StateComponent delegates lifecycle calls to the active child [4, 6].
MANDATORY: Read state_component_vsm.gd — do not paste an inline StateMachine. For deeper VSM / hierarchical FSMs, open godot-state-machine-advanced.
Avoid slow tree traversal for sibling communication. Catalog children in a Dictionary at ready (by name or group).
var _components: Dictionary = {}
func _ready() -> void:
for child in get_children():
_components[child.name] = child
for group in child.get_groups():
_components[group] = child
func get_comp(key: StringName) -> Node:
return _components.get(key)Fail fast with @export asserts, not get_node_or_null paths (paths break when the tree is rearranged).
@export var health_component: HealthComponent
@export var input_component: InputComponent
func _ready() -> void:
assert(health_component != null, "Missing HealthComponent export!")
assert(input_component != null, "Missing InputComponent export!")MANDATORY for Input/Movement/Health orchestrator recipes and registry depth: orchestrator-recipes.md. Do NOT Load when composition_root_init.gd + one component script suffice.
Nodes are lightweight. Do not fear adding 10-20 nodes per entity. The organizational benefit of Composition vastly outweighs the negligible memory cost of Node instances.
Progressive disclosure: open Official Documentation links only when researching a specific API; load Related Skills when routing to a peer domain — do not preload the whole lattice.
class_name components over deep inheritance trees for gameplay entities.health_depleted, state_changed) parents connect without reverse dependencies.@export slots for Inspector dependency injection instead of brittle $ paths.%Name lookups that survive scene-tree reorders when wiring composition roots._ready / enter-tree timing for validating and connecting component dependencies.class_name, typed @export, Callables, and assert patterns required for typed component APIs.move_and_slide.© thedivergentai, LGPL-3.0. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file
SKILL.md and 14 other files (scripts, references) in skills/godot-composition of thedivergentai/GD-Agentic-Skills.
Open the folder on GitHubat commit 4c4d0ff
Godot Composition next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.
| Skill | Stars | Used in | Tokens | Auto-check | Licence | Repo updated |
|---|---|---|---|---|---|---|
| Godot Composition this skillthedivergentai/GD-Agentic-Skills | 821 | — | ~3.7k | Automated safety check: Pass | LGPL-3.0 | |
| Godot Gdscript Patterns925236118/AlphaAgent | 103 | 10 repos | ~5k | Automated safety check: Pass | MIT | |
| Godot Ability Systemjame581/GodotPrompter | 805 | — | ~3k | Automated safety check: Pass | MIT | |
| Godot Camera Systemsjame581/GodotPrompter | 805 | — | ~2.8k | Automated safety check: Pass | MIT | |
| Input MapperRandallLiuXin/GodotMaker | 550 | 1 repos | ~727 | Automated safety check: Pass | Custom licence | |
| Dependency Injectionjame581/GodotPrompter | 805 | — | ~2.8k | Automated safety check: Pass | MIT |
925236118/AlphaAgent
Master Godot 4 GDScript patterns including signals, scenes, state machines, and optimization.
jame581/GodotPrompter
Builds a data-driven ability system in Godot 4 from Resources and a component node, with cooldowns, buffs, stat modifiers, gameplay tags and HUD binding.
jame581/GodotPrompter
Shows how to build cameras in Godot 4.3 and later: smooth follow, trauma-based screen shake, camera zones and transitions, with GDScript and C# examples for 2D and 3D.
RandallLiuXin/GodotMaker
Manage Godot input action mappings in project.godot. An agent skill from RandallLiuXin/GodotMaker.
jame581/GodotPrompter
A skill your agent uses when managing dependencies between systems — autoloads, service locators, @export injection, and scene injection patterns
autonomous-ai/openharness
Build Godot games with GDScript, native gameplay assertions and sandboxed Web exports.
thedivergentai/GD-Agentic-Skills
Expert patterns for 2D animation in Godot using AnimatedSprite2D and skeletal cutout rigs.
thedivergentai/GD-Agentic-Skills
Expert patterns for 3D level design using GridMap with MeshLibrary, CSG constructive solid geometry, occlusion, and runtime GridMap builders.
thedivergentai/GD-Agentic-Skills
Expert patterns for migrating 2D games to 3D including node type conversions, camera systems (third-person, first-person, orbit), physics layer migration, sprite-to-model art pipeline, and control…
thedivergentai/GD-Agentic-Skills
Expert patterns for simplifying 3D games to 2D including dimension reduction strategies, 2.5D fake-depth, isometric ports, camera flattening, physics conversion, 3D-to-sprite art pipeline, and…
thedivergentai/GD-Agentic-Skills
Agentic eyes for Godot work: cross-platform screenshot CLI (asset/region/window/screen) to budgeted WebP, TEMP editor viewport bridge under .gdskills/, and Taste Receptor Atlas v2 (~237…
thedivergentai/GD-Agentic-Skills
Expert patterns for AnimationTree including StateMachine transitions, BlendSpace2D for directional movement, BlendTree for layered animations, root motion, transition conditions, advance…
Works with
Categories
Expert architectural standards for building scalable Godot GAMES (RPGs, Platformers, Shooters) using the Composition pattern (Entity-Component). Godot Composition is an agent skill from thedivergentai/GD-Agentic-Skills. Expert architectural standards for building scalable Godot GAMES (RPGs, Platformers, Shooters) using the Composition pattern (Entity-Component).
Godot Composition fits situations like: designing player controllers; complex gameplay systems; keywords: Entity-Component.
Run `npx skills add thedivergentai/GD-Agentic-Skills --skill godot-composition -a claude-code`. Or copy the skill folder (skills/godot-composition in thedivergentai/GD-Agentic-Skills) into .claude/skills/godot-composition in your project. Claude Code loads it when a task matches its description.
Run `npx skills add thedivergentai/GD-Agentic-Skills --skill godot-composition -a codex`. Or copy the skill folder (skills/godot-composition in thedivergentai/GD-Agentic-Skills) into .agents/skills/godot-composition in your project. Codex loads it when a task matches its description.
Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add thedivergentai/GD-Agentic-Skills --skill godot-composition -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/godot-composition, .gemini/skills/godot-composition, .github/skills/godot-composition and .opencode/skills/godot-composition in your project.
SKILL.md names no scripts, command-line tools or credentials: Godot Composition is instructions for the agent only.
SKILL.md names 1 domain. As links in the text: docs.godotengine.org. This is read from the text; nothing was executed.
Our automated static check of SKILL.md found no risky patterns, such as piping downloads into a shell, reading credential files or hidden Unicode. It is not a guarantee. The check reads SKILL.md only: the scripts in the folder are not scanned, so read them before running anything.
Godot Composition is published under the LGPL-3.0 licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.
About 3.7k tokens (SKILL.md is roughly 15k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full. Its references folder adds about 1.8k tokens, read only when the agent opens those files.
Skills that share tags, products or a category with Godot Composition: Godot Gdscript Patterns (925236118/AlphaAgent, 103 stars), Godot Ability System (jame581/GodotPrompter, 805 stars), Godot Camera Systems (jame581/GodotPrompter, 805 stars) and Input Mapper (RandallLiuXin/GodotMaker, 550 stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.
thedivergentai (a GitHub user) maintains it in thedivergentai/GD-Agentic-Skills, which has 821 GitHub stars. The repository holds 98 skills in this directory. The repository was last updated on September 9, 2026.
Source: thedivergentai/GD-Agentic-Skills on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.