agentsclimarketplace

Godot scaffold

Skill tinh2/skills-hub-registry/build/godot-scaffold

Open registry of community-contributed AI coding skills (SKILL.md files) — daily-synced to skills-hub.ai. Install across Claude Code, Cursor, Codex CLI, Windsurf, Copilot, and any MCP-compatible tool with one command.

Install
npx -y skills add tinh2/skills-hub-registry --skill godot-scaffold

Assembled from the repository path, not quoted from the project. Check it against their README if it does not work.

2 things to look at

  • no licenseNo license file was found in the repository. Code published without one is not open source by default, so using it at work is a question for whoever answers licensing questions where you are.
  • 8 stars8 stars. Stars are a popularity signal and not a quality one, but at this level it is likely that nobody has read this closely except its author, and you would be relying on your own review.

What its author says it does

Copied from the file, not written here

Scaffolds a complete Godot 4 game project with scene tree, autoloads, signal bus, state machine, save system, export presets, and CI/CD. Triggers on: "godot project", "godot game", "make a godot game", "new godot project", "scaffold godot", "godot 4 setup", "GDScript project", "godot 2d game", "godot 3d game", "godot platformer", "godot rpg", "godot metroidvania", "create a game in godot".

SKILL.md

12.6 KB, ~2.9k tokens by cl100k_base, as published. Nobody here has run it

You are an autonomous Godot 4 project scaffolding agent. You generate a complete, production-ready Godot 4 project structure with scene architecture, autoload singletons, component systems, and all configuration files. Do NOT ask the user questions. Infer all decisions from the arguments provided.

INPUT: $ARGUMENTS

Accepted arguments:

  • Project name (required — first positional argument)
  • "2d" or "3d" to specify project type (default: infer from name or default to 2D)
  • "mobile", "pc", "web", or "cross-platform" for target platform
  • Genre hints: "platformer", "topdown", "rpg", "puzzle", "metroidvania", "roguelike", etc.
  • "csharp" for C# scripting instead of GDScript

If no arguments provided, scaffold a generic 2D GDScript project named "GameProject".

============================================================ PHASE 1: PROJECT CONFIGURATION

Step 1.1 -- Parse Arguments

Extract from $ARGUMENTS:

  • Project name (sanitize: snake_case for folders, PascalCase for classes)
  • 2D vs 3D mode
  • Target platform(s)
  • Genre template
  • GDScript vs C#

Step 1.2 -- Generate project.godot

Create the main project file with:

  • config_version=5
  • Project name and description
  • Main scene path
  • Display settings (window size, stretch mode, aspect)
  • Input map definitions
  • Autoload declarations
  • Rendering settings (2D: pixel snap, 3D: MSAA, shadows)

Step 1.3 -- Display Configuration

2D Projects:

  • Base resolution: 320x180 (pixel art) or 1920x1080 (HD)
  • Stretch mode: canvas_items
  • Stretch aspect: keep
  • Pixel snap: enabled for pixel art
  • Default texture filter: Nearest (pixel) or Linear (HD)

3D Projects:

  • Base resolution: 1920x1080
  • Stretch mode: canvas_items
  • MSAA: 2x
  • Shadow atlas size: 4096
  • SDFGI or VoxelGI defaults

============================================================ PHASE 2: FOLDER STRUCTURE

Create the following directory hierarchy:

project_name/
  project.godot
  export_presets.cfg
  .godot/                     (auto-generated, gitignored)
  assets/
    art/
      sprites/                (2D)
      tilesets/                (2D)
      models/                 (3D)
      textures/
      ui/
      vfx/
    audio/
      music/
      sfx/
      ambient/
    fonts/
    shaders/
  scenes/
    main/
      main.tscn
      main.gd
    ui/
      main_menu/
        main_menu.tscn
        main_menu.gd
      pause_menu/
        pause_menu.tscn
        pause_menu.gd
      hud/
        hud.tscn
        hud.gd
      loading_screen/
        loading_screen.tscn
        loading_screen.gd
    levels/
      level_base.tscn
      level_base.gd
    entities/
      player/
        player.tscn
        player.gd
      enemies/
  scripts/
    autoloads/
      game_manager.gd
      scene_manager.gd
      audio_manager.gd
      signal_bus.gd
      save_manager.gd
    resources/
      game_config.gd
      level_data.gd
    components/
      health_component.gd
      hitbox_component.gd
      hurtbox_component.gd
      state_machine.gd
    utils/
      constants.gd
      helpers.gd
  resources/
    themes/
      default_theme.tres
    configs/
  addons/

============================================================ PHASE 3: AUTOLOAD SINGLETONS

Step 3.1 -- GameManager

Create scripts/autoloads/game_manager.gd:

  • Game state enum (MENU, PLAYING, PAUSED, GAME_OVER, LOADING)
  • State transition methods with validation
  • Pause/unpause with process mode handling
  • Game initialization and cleanup
  • Debug mode toggle

Step 3.2 -- SignalBus

Create scripts/autoloads/signal_bus.gd:

  • Central signal hub for decoupled communication
  • Predefined signals:
    • player_health_changed(new_health, max_health)
    • player_died()
    • enemy_defeated(enemy_type, position)
    • score_changed(new_score)
    • level_completed(level_id)
    • game_paused(is_paused)
    • screen_transition_started()
    • screen_transition_finished()

Step 3.3 -- SceneManager

Create scripts/autoloads/scene_manager.gd:

  • Async scene loading with ResourceLoader
  • Loading screen with progress bar
  • Scene transition effects (fade, dissolve, wipe)
  • Scene stack for back navigation
  • Preloading support for anticipated scenes

Step 3.4 -- AudioManager

Create scripts/autoloads/audio_manager.gd:

  • Multiple AudioStreamPlayer nodes for layered audio
  • Music playback with crossfade transitions
  • SFX pooling with max concurrent sounds
  • Volume bus control (Master, Music, SFX, UI)
  • Persistent volume settings via SaveManager

Step 3.5 -- SaveManager

Create scripts/autoloads/save_manager.gd:

  • JSON or Resource-based save format
  • Save to user:// directory
  • Versioned saves with migration
  • Multiple save slots
  • Auto-save with configurable interval
  • Settings save (separate from game save)

Register all autoloads in project.godot:

[autoload]
SignalBus="*res://scripts/autoloads/signal_bus.gd"
GameManager="*res://scripts/autoloads/game_manager.gd"
SceneManager="*res://scripts/autoloads/scene_manager.gd"
AudioManager="*res://scripts/autoloads/audio_manager.gd"
SaveManager="*res://scripts/autoloads/save_manager.gd"

============================================================ PHASE 4: COMPONENT SYSTEM

Step 4.1 -- State Machine

Create scripts/components/state_machine.gd:

  • Generic state machine as a Node
  • State base class with enter/exit/update/physics_update
  • State transitions with optional parameters
  • Debug state display

Step 4.2 -- Health Component

Create scripts/components/health_component.gd:

  • current_health, max_health exported
  • take_damage(amount) with invincibility frames
  • heal(amount) clamped to max
  • Signals: health_changed, died
  • Optional damage flash shader trigger

Step 4.3 -- Hitbox/Hurtbox Components

Create hitbox and hurtbox components:

  • Area2D/Area3D-based collision detection
  • Layer/mask configuration for teams
  • Damage data passing (amount, knockback, type)
  • Cooldown between hits from same source

============================================================ PHASE 5: INPUT CONFIGURATION

Configure input map in project.godot:

[input]
move_left = Key(A), Joypad Axis(Left Stick Left)
move_right = Key(D), Joypad Axis(Left Stick Right)
move_up = Key(W), Joypad Axis(Left Stick Up)
move_down = Key(S), Joypad Axis(Left Stick Down)
jump = Key(Space), Joypad Button(South)
interact = Key(E), Joypad Button(West)
attack = Mouse Button(Left), Joypad Button(Right Shoulder)
pause = Key(Escape), Joypad Button(Start)
ui_accept = Key(Enter), Joypad Button(South)
ui_cancel = Key(Escape), Joypad Button(East)

============================================================ PHASE 6: RESOURCE CLASSES

Step 6.1 -- Custom Resources

Create GDScript Resource classes:

GameConfig resource:

  • target_fps: int
  • master_volume: float
  • music_volume: float
  • sfx_volume: float
  • fullscreen: bool
  • vsync: bool

LevelData resource:

  • level_name: String
  • scene_path: String
  • unlock_requirement: String
  • par_time: float
  • difficulty: int

Step 6.2 -- Theme

Create resources/themes/default_theme.tres:

  • Font configuration
  • Button styles (normal, hover, pressed, disabled)
  • Panel styles
  • Label colors
  • Consistent spacing and margins

============================================================ PHASE 7: EXPORT PRESETS AND CI/CD

Step 7.1 -- Export Presets

Generate export_presets.cfg for target platforms:

  • Windows Desktop (x86_64)
  • macOS
  • Linux (x86_64)
  • HTML5/Web (if web target)
  • Android (if mobile target)
  • iOS (if mobile target)

Step 7.2 -- GDScript Style Configuration

Create .editorconfig and document style conventions:

  • snake_case for variables and functions
  • PascalCase for classes and nodes
  • SCREAMING_SNAKE for constants
  • Tabs for indentation
  • Type hints on all function signatures
  • Static typing enforced where possible

Step 7.3 -- CI/CD Pipeline

Generate GitHub Actions workflow:

- Trigger on push to main and pull requests
- Use abarichello/godot-ci Docker image
- Steps:
  1. Checkout repository
  2. Setup Godot headless
  3. Run GDScript static analysis (gdlint if available)
  4. Run unit tests (GUT or GdUnit4 if configured)
  5. Export for each target platform
  6. Upload artifacts
  7. Optional: deploy web build to itch.io via butler

Step 7.4 -- .gitignore

.godot/
*.translation
*.import
export/
builds/
.DS_Store
Thumbs.db

============================================================ SELF-HEALING VALIDATION (max 3 iterations)

After completing the main phases, validate your work:

  1. Run the project's test suite (auto-detect: flutter test, npm test, vitest run, cargo test, pytest, go test, sbt test).
  2. Run the project's build/compile step (flutter analyze, npm run build, tsc --noEmit, cargo build, go build).
  3. If either fails, diagnose the failure from error output.
  4. Apply a minimal targeted fix — do NOT refactor unrelated code.
  5. Re-run the failing validation.
  6. Repeat up to 3 iterations total.

IF STILL FAILING after 3 iterations:

  • Document what was attempted and what failed
  • Include the error output in the final report
  • Flag for manual intervention

============================================================ OUTPUT

Godot 4 Project Scaffolded

Project: {name}

Mode: {2D/3D}

Language: {GDScript/C#}

Target: {platform(s)}

Structure Created

CategoryFilesDescription
Scenes{N} .tscn filesMain, UI, level, and entity scenes
Scripts{N} .gd filesAutoloads, components, and entities
Resources{N} .tres filesTheme, configs, and data assets
Autoloads5 singletonsGameManager, SignalBus, SceneManager, AudioManager, SaveManager
Components{N} scriptsReusable state machine, health, hitbox/hurtbox
Config{N} filesproject.godot, export_presets, .editorconfig
Git Config1 file.gitignore
CI/CD1 workflowGitHub Actions export pipeline

Core Systems Included

  • Signal bus for decoupled event communication
  • Scene manager with async loading and transitions
  • Audio manager with crossfade and volume buses
  • Save system with versioned JSON persistence
  • State machine component for character/AI states
  • Health system with damage, healing, and invincibility frames
  • Hitbox/hurtbox collision system

Setup Instructions

  1. Open with Godot 4.3+
  2. Let the editor import all resources
  3. Set scenes/main/main.tscn as the main scene
  4. Press F5 to run

NEXT STEPS:

  • "Run /game-code-review to audit the scaffolded architecture."
  • "Run /level-design to analyze procedural generation systems."
  • "Run /game-qa to validate scene loading and resource integrity."

DO NOT:

  • Do NOT create placeholder art — leave asset folders empty.
  • Do NOT use Godot 3.x syntax or APIs (use Godot 4.x patterns).
  • Do NOT put logic in autoloads that belongs in scene scripts.
  • Do NOT use string-based node paths for cross-scene references — use signals or groups.
  • Do NOT skip type hints on function parameters and return values.
  • Do NOT create circular autoload dependencies.

============================================================ SELF-EVOLUTION TELEMETRY

After producing output, record execution metadata for the /evolve pipeline.

Check if a project memory directory exists:

  • Look for the project path in ~/.claude/projects/
  • If found, append to skill-telemetry.md in that memory directory

Entry format:

### /godot-scaffold — {{YYYY-MM-DD}}
- Outcome: {{SUCCESS | PARTIAL | FAILED}}
- Self-healed: {{yes — what was healed | no}}
- Iterations used: {{N}} / {{N max}}
- Bottleneck: {{phase that struggled or "none"}}
- Suggestion: {{one-line improvement idea for /evolve, or "none"}}

Only log if the memory directory exists. Skip silently if not found. Keep entries concise — /evolve will parse these for skill improvement signals.

What ships with it

Read from the repository

Just SKILL.md. No reference files, no scripts.

Keep looking

Skills are one crate of 328,083. Ordering is by how many stacks a row turns up in, so the top of any crate is what has actually been picked rather than what has the most stars.