Expert blueprint for scene loading, transitions, async (background) loading, instance management, and caching. Covers fade transitions, loading screens, dynamic spawning, and scene persistence. Use when implementing level changes OR dynamic content loading. Keywords scene, loading, transition, async, ResourceLoader, change_scene, preload, PackedScene, fade.
npx skills add https://github.com/thedivergentai/GD-Agentic-Skills --skill godot-scene-management
Async loading, transitions, instance pooling, and caching define smooth scene workflows.
> MANDATORY triggers below — read the matching script; do not paste incomplete Autoload loaders.
THREAD_LOAD_FAILED included).SubViewport input plan required).%UniqueName / guarded @onready.load("res://large_scene.tscn") on the Main Thread causes "hiccups" or full freezes during level transitions. Use ResourceLoader.load_threaded_request() for async loading with a progress bar.get_tree().change_scene_to_file() for transient state — This method purges the current scene and all its local variables. Use an Autoload (Singleton) or a persistent 'Game' node to store state across levels.instantiate() and queue_free() calls spike CPU and trigger the Garbage Collector too often.get_node("../../Path/To/Node") — These paths break as soon as you move a node in the editor. Use Scene Unique Names (%NodeName) or @export var target_node: Node for robust references.global_transform and re-apply it after the add_child() call.PhysicsServer and RenderingServer directly for raw performance.NOTIFICATION_WM_CLOSE_REQUEST — On desktop, if you don't handle the close request in a persistent node, the game may close during a critical save operation.queue_free() is natively recursive in Godot 4. Freeing the root node automatically cleans up all children. Manual loops are redundant and inefficient.SubViewport and main world inputs without a plan — By default, input events bubble up. Use set_input_as_handled() to prevent UI clicks in a subviewport from triggering gameplay in the main world.change_scene to "Reset" a level — It reloads everything from disk. For a quick respawn, just reset the variables and move the player to the start position.| Goal | Prefer | MANDATORY script |
|------|--------|------------------|
| Full level swap with progress UI | Threaded load → swap when THREAD_LOAD_LOADED | async_scene_manager.gd |
| Hide hitch before a door/trigger | Start threaded request early during play | background_resource_loader.gd |
| Fade / wipe around a swap | Transition Autoload wraps the manager | scene_transition_manager.gd |
| Keep world; show pause/map/inventory | Additive UI layer (do not change_scene) | additive_ui_layering.gd |
| Manual root swap / deferred free | Own current_scene lifecycle | Peer docs + safe patterns in godot-autoload-architecture |
| Spawn many identical actors | Pool, never raw instantiate/free storms | scene_pool.gd / scene_instancing_pooling.gd |
| Minimap / split render | SubViewport + update mode + input isolation | subviewport_scene_layering.gd |
| Survive scene purge | Autoload / persist group — not locals | persistent_data_preservation.gd / scene_state_manager.gd |
| Quick respawn | Reset state + teleport — not change_scene | — |
| DLC / hot patch scenes | ProjectSettings.load_resource_pack then load path | (PCK) see Official Docs |
PROCESS_MODE_DISABLED + hide) — absorb instantiate cost up front via scene_pool.gd.load_threaded_request mid-gameplay; transition only when loaded (background_resource_loader.gd).change_scene/load the same res:// path for patched content.Performance.OBJECT_ORPHAN_NODE_COUNT > 0 means leaked refs still hold freed nodes.queue_free() on a root is recursive in Godot 4; no manual child loops.change_scene just to restart a level.Fade Autoloads, loading screens, spawn tracking, persistence holders, PCK patch — references/scene-patterns-deep.md.
> Progressive disclosure: open Official Documentation links only when researching a specific API; load Related Skills when routing to a peer domain — do not preload the whole lattice.
ResourceLoader.load_threaded_request / status polling for hitch-free level loads and progress bars.change_scene_to_file for staged transitions).current_scene, pause, groups, and how the tree relates to Autoload root children across swaps.PackedScene.instantiate(), ownership, and when to preload vs load at runtime.%Name references that survive hierarchy edits better than brittle get_node("../../…") paths.SubViewport worlds for minimaps, split-screen, and layered rendering without swapping the main scene.ProjectSettings.load_resource_pack for DLC/mod scene overrides on res:// paths.load_threaded_*, exists) used by async managers.change_scene_to_packed, and instance caches.await, and process-frame polling required by threaded load loops and transition staging.change_scene without becoming God Objects..tscn paths instead of hardcoded strings.ResourceLoader queues from this skill.A set of resources to help me write all kinds of internal communications, using the formats that my company likes to use. Claude should use this skill whenever asked to write some sort of internal communications (status reports, leadership updates, 3P updates, company newsletters, FAQs, incident reports, project updates, etc.).
Extracts and analyzes competitors' ads from ad libraries (Facebook, LinkedIn, etc.) to understand what messaging, problems, and creative approaches are working. Helps inspire and improve your own ad campaigns.
Identifies high-quality leads for your product or service by analyzing your business, searching for target companies, and providing actionable contact strategies. Perfect for sales, business development, and marketing professionals.
Analyzes your recent Claude Code chat history to identify coding patterns, development gaps, and areas for improvement, curates relevant learning resources from HackerNews, and automatically sends a personalized growth report to your Slack DMs.
Complete App Store Optimization (ASO) toolkit for researching, optimizing, and tracking mobile app performance on Apple App Store and Google Play Store
NGS analysis toolkit. BAM to bigWig conversion, QC (correlation, PCA, fingerprints), heatmaps/profiles (TSS, peaks), for ChIP-seq, RNA-seq, ATAC-seq visualization.
Materials science toolkit. Crystal structures (CIF, POSCAR), phase diagrams, band structure, DOS, Materials Project integration, format conversion, for computational materials science.
Transforms vague UI ideas into polished, Stitch-optimized prompts. Enhances specificity, adds UI/UX keywords, injects design system context, and structures output for better generation results.
Take thedivergentai/godot-scene-management from the repository into ~/.claude/skills for personal
use, or into .claude/skills inside a project.
The agent identifies a skill by the name field in its header. Two skills with the
same name cannot sit side by side — one of them will be ignored.