godot-composition

Structure Godot game entities as orchestrators and reusable components.

Updated Aug 8, 2026
One-click install
npx skills add https://github.com/kimgea/agent-kit --skill godot-composition-kimgea
Or copy as Structured Prompt for Agent
Please help me install this Agent Skill.
Skill: godot-composition
Source: https://github.com/kimgea/agent-kit/tree/main/skills/godot-composition
Command: npx skills add https://github.com/kimgea/agent-kit --skill godot-composition-kimgea

SYSTEM DOCUMENTATION & REQUIREMENTS

What problem does it solve?

In Godot, managing complex entities with inheritance leads to brittle architectures. godot-composition provides a composition-based approach to assemble entities from small, reusable components, reducing coupling and increasing reuse.

Core Features & Use Cases

  • Component-based architecture: Components encapsulate behavior for single responsibility.
  • Orchestrator pattern: An orchestrator binds components and delegates coordination.
  • Anti-pattern guidance: Clear rules to avoid inheritance pitfalls.
  • Use cases: Player controllers, NPCs, enemies, weapons, Level Design.

Quick Start

Create a new Godot entity using the composition pattern by wiring an Orchestrator to InputComponent, MovementComponent, and HealthComponent, then run a simple tick loop.

Frequently Asked Questions about godot-composition

High-intent search queries and answers about installing and using this skill.

FAQPage Schema
How do I structure Godot entities using composition over inheritance?

Structure Godot entities using composition by assembling small, reusable components that encapsulate single responsibilities, bound together by an orchestrator that delegates logic and coordinates interactions. This reduces coupling and increases reuse.

Why does inheritance lead to brittle architecture in Godot?

Inheritance leads to brittle architecture in Godot because deep hierarchies create tight coupling, making entity behavior changes error-prone. Using composition avoids these pitfalls by assembling small, reusable components instead of relying on rigid parent-child relationships.

What is the best way to decouple player controllers and NPCs in Godot?

The best way to decouple player controllers and NPCs is using an orchestrator pattern with explicit component interfaces. Typed dependency injection passes references, while signals handle upward communication, preventing direct dependencies between gameplay systems.

How do I set up a tick loop for a Godot entity with Movement and Health components?

Set up a tick loop for a Godot entity by wiring an orchestrator to Input, Movement, and Health components, then running a simple tick loop. The orchestrator delegates logic execution to each component every frame to process gameplay behavior.

When should I not use the orchestrator and component pattern in Godot?

You should not use the orchestrator and component pattern in Godot for very simple entities with minimal behavior, where the overhead of structuring entities as orchestrators and components outweighs the maintainability benefits of decoupled architecture.