Gdscript Patterns
jame581/GodotPrompter
A skill your agent uses when writing GDScript — static typing, await/coroutines, lambdas, match patterns, export annotations, inner classes, and common idioms
Expert GDScript landmine guidance: static typing opcodes, signal-up/call-down, %UniqueName/@onready lifecycle, Callable bind/unbind, await sequences, typed collections, and safe Dictionary iteration.
$ npx skills add thedivergentai/GD-Agentic-Skills --skill godot-gdscript-mastery -a claude-codeProject install by default; add -g for ~/.claude/skills/.
$ gh skill install thedivergentai/GD-Agentic-Skills godot-gdscript-mastery --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-gdscript-mastery .claude/skills/godot-gdscript-mastery && 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-gdscript-mastery" agent skill from https://github.com/thedivergentai/GD-Agentic-Skills/tree/main/skills/godot-gdscript-mastery into .claude/skills/godot-gdscript-mastery/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "godot-gdscript-mastery", 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-gdscript-masteryType 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-gdscript-mastery -a codexProject install goes to .agents/skills/; add -g for ~/.codex/skills/.
$ gh skill install thedivergentai/GD-Agentic-Skills godot-gdscript-mastery --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-gdscript-mastery .agents/skills/godot-gdscript-mastery && 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-gdscript-mastery" agent skill from https://github.com/thedivergentai/GD-Agentic-Skills/tree/main/skills/godot-gdscript-mastery into .agents/skills/godot-gdscript-mastery/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "godot-gdscript-mastery", 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-gdscript-mastery -a cursorProject install goes to .agents/skills/; add -g for ~/.cursor/skills/.
$ gh skill install thedivergentai/GD-Agentic-Skills godot-gdscript-mastery --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-gdscript-mastery .cursor/skills/godot-gdscript-mastery && 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-gdscript-mastery" agent skill from https://github.com/thedivergentai/GD-Agentic-Skills/tree/main/skills/godot-gdscript-mastery into .cursor/skills/godot-gdscript-mastery/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "godot-gdscript-mastery", 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-gdscript-mastery--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-gdscript-mastery -a gemini-cliProject install goes to .agents/skills/; add -g for ~/.gemini/skills/.
$ gh skill install thedivergentai/GD-Agentic-Skills godot-gdscript-mastery --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-gdscript-mastery .gemini/skills/godot-gdscript-mastery && 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-gdscript-mastery" agent skill from https://github.com/thedivergentai/GD-Agentic-Skills/tree/main/skills/godot-gdscript-mastery into .gemini/skills/godot-gdscript-mastery/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "godot-gdscript-mastery", 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-gdscript-masteryInstalls 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-gdscript-mastery -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-gdscript-mastery .github/skills/godot-gdscript-mastery && 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-gdscript-mastery" agent skill from https://github.com/thedivergentai/GD-Agentic-Skills/tree/main/skills/godot-gdscript-mastery into .github/skills/godot-gdscript-mastery/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "godot-gdscript-mastery", 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-gdscript-mastery -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-gdscript-mastery --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-gdscript-mastery .opencode/skills/godot-gdscript-mastery && 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-gdscript-mastery" agent skill from https://github.com/thedivergentai/GD-Agentic-Skills/tree/main/skills/godot-gdscript-mastery into .opencode/skills/godot-gdscript-mastery/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "godot-gdscript-mastery", 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-gdscript-masteryExpert GDScript landmine guidance: static typing opcodes, signal-up/call-down, %UniqueName/@onready lifecycle, Callable bind/unbind, await sequences, typed collections, and safe Dictionary iteration.
Godot Gdscript Mastery is an agent skill from thedivergentai/GD-Agentic-Skills. Expert GDScript landmine guidance: static typing opcodes, signal-up/call-down, %UniqueName/@onready lifecycle, Callable bind/unbind, await sequences, typed collections, and safe Dictionary iteration. Use for code review, refactoring hot paths, or project standards. Trigger keywords: statictyping, signalarchitecture, uniquenodes, @onready, classname, signalupcalldown, Callable.bind, typedcollections, awaitsequence.
Its SKILL.md is about 3.3k tokens, which your agent loads only when the skill is triggered. The skill folder holds 19 other files, including scripts and reference files (for example `references/gdscript-core-directives.md`, `references/migration-notes.md` and `style_checklist.md`).
It sits in Development, covering Game development, Type safety and Refactoring. 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 14 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 Gdscript Mastery loads about 3.3k tokens when it runs, and up to ~5.5k if it reads all its reference files. Until then it costs about 112 tokens; SKILL.md has 987 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). 987 words, ~3,323 tokens.
.claude/skills/godot-gdscript-mastery/SKILL.md (or your agent's skills folder). This skill also uses 17 other files; get the full folder from GitHub.Expert guidance for writing performant, maintainable GDScript — Godot-landmine decision trees, not a style-guide reprint.
type_checker, performance_analyzer, signal_architecture_validator) as runtime gameplay code.@onready and @export on the same variable — Initialization order will cause @onready to overwrite the Inspector value.dict.keys().duplicate() or iterate a clone to safely erase elements.connect("signal", ...) — Always use the Signal object syntax (button.pressed.connect(...)) for compile-time safety.queue_free() or get_class() is unsupported and will be ignored by engine callbacks.get_node() or $ inside _process() — Fetching paths every frame stalls the CPU. Cache and use @onready.Parent.method() calls — Violates "Signal Up, Call Down". Use signals to communicate with parents.is followed by a hard cast — If the type check passes but the object changes, it crashes. Use as and check for null.print() for production debugging — Use push_error(), push_warning(), or breakpoints._ready() — Use ResourceLoader.load_threaded_request() for async loading.static var is sufficient — Static variables offer better encapsulation.| Landmine | Decision |
|---|---|
Hot path still Variant? | Annotate vars/returns; prefer typed collections |
Generic math in _process? | Use typed helpers (absf, ceili, clampf) |
| Green safe-lines missing? | Fix inference with := or explicit types |
MANDATORY: typed_collections_mastery.gd, array_preallocation_perf.gd, type_checker.gd (EditorScript audit).
| Landmine | Decision |
|---|---|
| Child needs parent reaction? | Emit signal up — never call parent methods |
| Cross-script payload unsafe? | Typed signal name(arg: Type) |
| Connect visibility? | Prefer _ready() connects over invisible editor-only wiring |
MANDATORY: typed_signal_definitions.gd, signal_architecture_validator.gd.
| Landmine | Decision |
|---|---|
| Need child nodes? | @onready / %UniqueName — never in _init() |
| Scene-instanced node with ctor args? | Use @export injection — _init(args) breaks PackedScene.instantiate() |
| Path lookup every frame? | Cache once; never $ / get_node in _process |
MANDATORY: safe_type_casting.gd.
| Landmine | Decision |
|---|---|
| Extra context on callback? | Callable.bind(...) |
| Discard unused signal args? | Callable.unbind(n) |
| One-off timeout logic? | Inline lambda OK; keep refs if create_callback-style longevity matters |
MANDATORY: callable_binding_context.gd, unbind_signal_args.gd, advanced_lambdas.gd, functional_lambda_logic.gd.
| Landmine | Decision |
|---|---|
| Sequence timers without threads? | await chains — see await manager |
| Global state without Autoload bloat? | static var (+ nullify large statics when done) |
| Erase while iterating Dictionary? | Clone keys first |
MANDATORY: await_sequence_manager.gd, static_var_singleton_alt.gd, dictionary_safe_iteration.gd, performance_analyzer.gd (EditorScript).
| Script | When to open |
|---|---|
| typed_collections_mastery.gd | Typed Array/Dictionary opcodes |
| functional_lambda_logic.gd | reduce / all / any |
| advanced_lambdas.gd | Higher-order Callables |
| safe_type_casting.gd | as + null checks |
| typed_signal_definitions.gd | Typed signal boundaries |
| callable_binding_context.gd | bind() context injection |
| unbind_signal_args.gd | unbind() arity trim |
| await_sequence_manager.gd | Non-blocking await flows |
| array_preallocation_perf.gd | resize() pre-alloc |
| static_var_singleton_alt.gd | Lightweight global state |
| dictionary_safe_iteration.gd | Safe erase-while-iterate |
| type_checker.gd | EditorScript typing audit |
| performance_analyzer.gd | EditorScript hot-path scan |
| signal_architecture_validator.gd | EditorScript signal-up checks |
dict.get("key", default) over dict["key"] when presence is uncertain.%Name for critical UI/nodes.extends → class_name → signals/enums/consts → exports/onready → lifecycle → public → _private.LLM-ignorance rule: If a general agent would not know it before reading, load the reference — never delete expert deltas.
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.
signal declarations, await, and first-class Callables this skill standardizes.extends → class_name → signals → exports → lifecycle → methods) used in reviews and refactoring.bind() / unbind() APIs for injecting or discarding callback arguments without wrapper nodes.resize(), and functional methods (filter/map/reduce/all/any) used in the scripts..get() defaults and why size must not change while iterating keys.@onready / %UniqueName instead of get_node/$ inside _process loops.static var singleton alternatives shown here.@onready, unique names, and await sequences must stay valid across scene swaps and loaders.watch_signals / spies reliable in unit tests.© 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 17 other files (scripts, references) in skills/godot-gdscript-mastery of thedivergentai/GD-Agentic-Skills.
Open the folder on GitHubat commit 4c4d0ff
Godot Gdscript Mastery 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 Gdscript Mastery this skillthedivergentai/GD-Agentic-Skills | 821 | — | ~3.3k | Automated safety check: Pass | LGPL-3.0 | |
| Gdscript Patternsjame581/GodotPrompter | 805 | — | ~3.5k | Automated safety check: Pass | MIT | |
| Godot Best Practicesjwynia/agent-skills | 170 | — | ~3.2k | Automated safety check: Pass | MIT | |
| Issue Triagemicrosoft/XBOX-Godot-Sample | 237 | — | ~2.5k | Automated safety check: Pass | MIT | |
| GdtoolkitRandallLiuXin/GodotMaker | 550 | 1 repos | ~2.2k | Automated safety check: Pass | Custom licence | |
| Refactoring CodeJetBrains/skills | 366 | 1 repos | ~1.9k | Automated safety check: Pass | None |
jame581/GodotPrompter
A skill your agent uses when writing GDScript — static typing, await/coroutines, lambdas, match patterns, export annotations, inner classes, and common idioms
jwynia/agent-skills
Guide AI agents through Godot 4.x GDScript coding best practices including scene organization, signals, resources, state machines, and performance optimization.
microsoft/XBOX-Godot-Sample
First-pass evaluation of a GitHub issue against this repository's code: classify it, find the relevant code, reason about likely causes or fit, flag version differences and missing information, and…
RandallLiuXin/GodotMaker
Lint and format GDScript files using gdtoolkit (gdlint + gdformat).
JetBrains/skills
A skill your agent uses when semantic refactoring is needed in Rider-supported solutions and projects, including .NET/C, F, VB, C++, Unity, Unreal Engine, XAML, Razor, and other GameDev or…
rtk-ai/rtk
Describes seven Rust design patterns for the RTK CLI filter modules, with when to use each, RTK examples, and notes on when a pattern is overkill.
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 GDScript landmine guidance: static typing opcodes, signal-up/call-down, %UniqueName/@onready lifecycle, Callable bind/unbind, await sequences, typed collections, and safe Dictionary iteration. Godot Gdscript Mastery is an agent skill from thedivergentai/GD-Agentic-Skills. Expert GDScript landmine guidance: static typing opcodes, signal-up/call-down, %UniqueName/@onready lifecycle, Callable bind/unbind, await sequences, typed collections, and safe Dictionary iteration.
Godot Gdscript Mastery fits situations like: refactoring hot paths; project standards; keywords: statictyping; signalarchitecture.
Run `npx skills add thedivergentai/GD-Agentic-Skills --skill godot-gdscript-mastery -a claude-code`. Or copy the skill folder (skills/godot-gdscript-mastery in thedivergentai/GD-Agentic-Skills) into .claude/skills/godot-gdscript-mastery in your project. Claude Code loads it when a task matches its description.
Run `npx skills add thedivergentai/GD-Agentic-Skills --skill godot-gdscript-mastery -a codex`. Or copy the skill folder (skills/godot-gdscript-mastery in thedivergentai/GD-Agentic-Skills) into .agents/skills/godot-gdscript-mastery 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-gdscript-mastery -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-gdscript-mastery, .gemini/skills/godot-gdscript-mastery, .github/skills/godot-gdscript-mastery and .opencode/skills/godot-gdscript-mastery in your project.
SKILL.md names no scripts, command-line tools or credentials: Godot Gdscript Mastery 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 Gdscript Mastery 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.3k tokens (SKILL.md is roughly 13k 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 2.2k tokens, read only when the agent opens those files.
Skills that share tags, products or a category with Godot Gdscript Mastery: Gdscript Patterns (jame581/GodotPrompter, 805 stars), Godot Best Practices (jwynia/agent-skills, 170 stars), Issue Triage (microsoft/XBOX-Godot-Sample, 237 stars) and Gdtoolkit (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.