godot-game-loop-collection

Implements collectible ID tracking, scavenger hunts, and compass-guided item collection in Godot.

Updated Aug 22, 2026
One-click install
npx skills add https://github.com/DecioLuvier/Shatterless --skill godot-game-loop-collection-decioluvier
Or copy as Structured Prompt for Agent▼
Please help me install this Agent Skill.
Skill: godot-game-loop-collection
Source: https://github.com/DecioLuvier/Shatterless/tree/main/.claude/skills/godot/references/godot-game-loop-collection
Command: npx skills add https://github.com/DecioLuvier/Shatterless --skill godot-game-loop-collection-decioluvier

SYSTEM DOCUMENTATION & REQUIREMENTS

💡 This Skill includes scripts (resource) and references (resource) components.

What problem does it solve? Building collectible and scavenger-hunt systems in Godot often leads to duplicate ID bugs, double-counted pickups, lost progress on scene reloads, and soft-locked final items. This Skill provides a proven architecture for stable collectible IDs, authoritative progress tracking, and persistent find-all-X hunts. ## Core Features & Use Cases - Stable Collectible IDs: One-shot Area3D pickups with unique item_id and collection_id exports that survive scene moves and reloads. - Authoritative Collection Manager: Central register of collected IDs with get_remaining_ids() queries, save/load of ID sets, and completion tracking. - Compass & Spawner Utilities: Nearest-item compass UI guidance and Marker3D-based hidden item spawners for randomized hunts. - Use Case: Build a 50-coin scavenger hunt where collected coins persist across sessions, an archive UI shows silhouettes of uncollected items, and a compass always points to the nearest remaining coin without soft-locking the last pickup. ## Quick Start Ask the AI to implement a collectible scavenger hunt in Godot with persistent progress, a completion archive UI, and a compass pointing to the nearest remaining item.

Frequently Asked Questions about godot-game-loop-collection

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

FAQPage Schema
How do I make collectibles persist after scene reload in Godot?▼

Store collected item IDs in a collection manager and serialize them with FileAccess under user://, never NodePaths which break on scene moves. On reload, the manager restores the ID set and collectibles self-disable if their item_id is already owned.

How to prevent Area3D body_entered from counting a pickup twice?▼

Gate the body_entered callback with an already-collected check or one-shot disable of monitoring, since the signal can re-fire on re-entry. Commit the item ID to the manager first, then play VFX, then queue_free the node.

Why does my collection compass break on the last remaining item?▼

Compass logic often assumes more than one remaining item, soft-locking the final pickup. Handle the case where get_remaining_ids().size() equals one explicitly and test that edge case.

Should I save NodePaths or IDs for collectible progress in Godot?▼

Always save stable IDs such as StringName or int, never NodePaths from get_path(), because paths break when scenes are moved or restructured. Serialize the manager's collected ID set as a PackedStringArray.

How do I load the next level after completing a hunt without freezing the game?▼

Use ResourceLoader.load_threaded_request with status polling instead of synchronous load() for large scenes. Apply SceneTree changes only on the main thread via call_deferred, never from worker threads.