All skills
thedivergentai avatar

/godot-project-templates

@9d6e91e

Navigation skill for genre project scaffolds: pick platformer/RPG/FPS (or other genre) then load matching template scripts and route gameplay fill to godot-genre-* skills. Use when bootstrapping architecture, bootstrap order, pause modes, PCK DLC, or feature tags — not for pasting FPS/inventory recipes. Keywords: project templates, bootstrap, Subsystem Locator, PCK, feature tags, PROCESS_MODE_ALWAYS, genre scaffold.

Use this Skill: https://skilld.dev/gh/thedivergentai/gd-agentic-skills/godot-project-templates

This session only. Nothing lands on disk.

referencesgenre-template-scaffolds.md

≈854 tokens on demand. Your agent reads this file only when SKILL.md points to it.

Genre Template Scaffolds (load on demand)

MANDATORY when copying platformer/RPG/FPS folder trees or wiring stock Autoload snippets. Adapt via genre consumer skills — do not paste FPS controllers or inventory managers verbatim.

2D platformer directory

my_platformer/
├── autoloads/          # game_manager, audio, scene_transitioner
├── scenes/             # main_menu, game, pause_menu
├── entities/player/
├── levels/
├── ui/
├── audio/
└── resources/data/

game_manager.gd skeleton — use base_game_manager.gd:

extends Node
signal game_started
signal game_paused(paused: bool)

func start_game() -> void:
    SceneTransitioner.change_scene("res://levels/level_1.tscn")
    game_started.emit()

func pause_game(paused: bool) -> void:
    get_tree().paused = paused
    game_paused.emit(paused)

Top-down RPG directory

my_rpg/
├── autoloads/          # game_data, dialogue, inventory
├── entities/player|npcs|interactables/
├── maps/overworld|dungeons|interiors/
├── systems/combat|dialogue|quests|inventory/
├── ui/
└── resources/items|quests|dialogues/

Inventory stub → godot-inventory-system; template bases only provide folder shape.

3D FPS directory

my_fps/
├── player/             # player.tscn, camera, weapons/
├── enemies/
├── levels/
└── ui/hud.tscn

FPS movement belongs in godot-genre-shooter-fps — set Input.MOUSE_MODE_CAPTURED in player _ready().

Input map template

[input]
move_left=Keys: A, Left, Gamepad Left
move_right=Keys: D, Right, Gamepad Right
jump=Keys: Space, Gamepad A
interact=Keys: E, Gamepad X
pause=Keys: Escape, Gamepad Start

Use multi_platform_input.gd for device profiles.

Expert: folder-by-feature

Keep scripts, scenes, textures, and local .tres for one entity under res://entities/<name>/. Simplifies refactor and asset migration vs monolithic /scripts.

Expert: export presets

  • VRAM compression: import_etc2_astc for Android; S3TC/BPTC for desktop web/desktop.
  • Commit .import metadata to VCS.
  • Feature tags (mobile, low_end) via platform_feature_config.gd.

Expert: CI headless export

# .github/workflows/export.yml
- run: godot --headless --export-release "Windows Desktop" build/game.exe

See godot-export-builds.

Expert: PCK / DLC mount

func load_dlc(path: String) -> void:
    if ProjectSettings.load_resource_pack(path):
        var new_scene = load("res://dlc_level.tscn")

MANDATORY modular_dlc_loader.gd.

Expert: bootstrap priority

Replace linear Autoload list with prioritized boot — bootstrap_config.gd: config/network before audio/UI.

Godot 4.7 defaults

Stretch mode canvas_items, aspect expand — document overrides in project.godot if legacy disabled/keep behavior is required.

Source: SKILL.md on GitHub

No alerts17d4 checks · Risk SAFE
  • Gen Agent Trust Hub17d

    The skill is safe. It provides architectural templates for Godot Engine development, including scripts for state management, UI, and resource loading, without any security risks or malicious behavior.

  • Socket17d

    No alerts

  • Snyk17d

    Risk: LOW · No issues

  • Runlayer7mo

    2 files scanned · No issues

Signed by skilld at 9d6e91e. This ties the file your Agent reads to that commit on GitHub. It does not review the instructions.

Last checked against GitHub 3 weeks ago.

Activeupdated 2 months ago

README badge

README badge for thedivergentai/gd-agentic-skills/godot-project-templates