Skill detail
godot-master
Consolidated expert library for Godot 4.7+ game and application development, orchestrating domain skills through architectural workflows, anti-pattern catalogs, performance budgets, and Server API patterns.
Why we recommend it: Godot game development includes 3D approaches and asset workflows, adjacent to 3D modeling but engine-focused.
Inspect before use
Read the source instructions and check the requirements before you install this skill.
SKILL.md
The saved excerpt is a snapshot from when this skill was listed. The external source remains the complete and most current version.
--- name: godot-master description: "Consolidated expert library for professional Godot 4.7+ game and application development. Orchestrates 92 Domain Skills through architectural workflows, anti-pattern catalogs, performance budgets, and Server API patterns. Use when: (1) starting a new Godot project, (2) designing game or app architecture, (3) building entity/component systems, (4) debugging performance or physics issues, (5) choosing between 2D/3D approaches, (6) implementing multiplayer, (7) optimizing draw calls or script time, (8) porting between platforms, (9) migrating from 4.6 to 4.7. Primary entry point for ALL Godot development tasks. Keywords: Godot 4.7, AreaLight3D, HDR, Asset Store, godot-master." --- # Godot Master: Lead Architect Knowledge Hub Every section earns its tokens by focusing on **Knowledge Delta** — the gap between what the base model already knows and what a senior Godot engineer knows from shipping real products. ## Library target — Godot 4.7+ All Domain Skill mirrors target **Godot 4.7+** (stable). For **any engine version upgrade** (1.x/2.x legacy → 3→4 → hop-by-hop 4.x), use **[godot-version-migration](https://github.com/thedivergentai/gd-agentic-skills/blob/main/skills/godot-version-migration/SKILL.md)** — do not treat this hub as a migration changelog. Cross-cutting 4.7 reminders while routing: **AreaLight3D** / HDR → [3D Lighting](references/3d-lighting.md); Asset Store vs Asset Library → export/platform modules; RichTextLabel ImageUnit, input device ID constants, Jolt behavior → migration hub module notes. --- ## 🧠 Part 1: Expert Thinking Frameworks ### "Who Owns What?" — The Architecture Sanity Check Before writing any system, answer these three questions for EVERY piece of state: - **Who owns the data?** (The `StatsComponent` owns health, NOT the `CombatSystem`) - **Who is allowed to change it?** (Only the owner via a public method like `apply_damage()`) - **Who needs to know it changed?** (Anyone listening to the `health_changed` signal) If you can't answer all three for every state variable, your architecture has a coupling problem. This is not OOP encapsulation — this is Godot-specific because the **signal system IS the enforcement mechanism**, not access modifiers. ### The Godot "Layer Cake" Organize every feature into four layers. Signals travel UP, never down: ``` ┌──────────────────────────────┐ │ PRESENTATION (UI / VFX) │ ← Listens to signals, never owns data ├──────────────────────────────┤ │ LOGIC (State Machines) │ ← Orchestrates transitions, queries data ├──────────────────────────────┤ │ DATA (Resources / .tres) │ ← Single source of truth, serializable ├──────────────────────────────┤ │ INFRASTRUCTURE (Autoloads) │ ← Signal Bus, SaveManager, AudioBus └──────────────────────────────┘ ``` **Critical rule**: Presentation MUST NOT modify Data directly. Infrastructure speaks exclusively through signals. If a `Label` node is calling `player.health -= 1`, the architecture is broken. ### The Signal Bus Tiered Architecture - **Global Bus (Autoload)**: ONLY for lifecycle events (`match_started`, `player_died`, `settings_changed`). Debugging sprawl is the cost — limit events to < 15. - **Scoped Feature Bus**: Each feature folder has its own bus (e.g., `CombatBus` only for combat nodes). This is the compromise that scales. - **Direct Signals**: Parent-child communication WITHIN a single scene. Never across scene boundaries. ### 🔗 The "Smart Interconnect" Mandate Expert systems are defined not by their isolation, but by their **Payload Synthesis**. - **Physics → Performance**: `PhysicsServer2D` and `RenderingServer` bypass `SceneTree` node overhead. Use for 1,000+ bullets or particles to achieve O(1) processing. - **Animation → Physics**: `AnimationTree.get_root_motion_position()` converts animation displacement into physics `velocity`, preventing "foot sliding" in complex movement. - **Data → Reactivity**: Serialized `Resource` objects (like `Stats`) emitRead the full source on GitHub (opens external page)