Godot Genre Open World logo

Godot Genre Open World

Community
thedivergentai
godot-genre-open-world

Expert blueprint for open world games including chunk-based streaming (load/unload regions dynamically), floating origin (prevent precision jitter beyond 5000 units), HLOD (hierarchical LOD for distant meshes), persistent state (track entity changes across unloaded chunks), POI discovery systems (compass, markers), and threaded loading (prevent stutters). Use for RPGs, sandboxes, or exploration games. Trigger keywords: open_world, chunk_streaming, floating_origin, HLOD, persistent_state, POI_discovery, threaded_loading.

Overview

Publisherthedivergentai
RepositoryGD-Agentic-Skills
Skill namegodot-genre-open-world
Stars
727
Forks
43
Bundled files
16
LicenseLGPL-3.0
Links
  • Markdown instructions

    A SKILL.md file the model loads on demand, so it only costs tokens when a request actually matches.

  • Works with any LLM

    AI skills are plain Markdown, not provider-specific code, so this works with GPT, Claude, Gemini, Grok, or a local model.

  • 16 bundled files

    Scripts, templates, and references the model can read while it works. Files are read-only and never executed.

  • Open source

    Published by thedivergentai on GitHub. Read the source before you install it.

Installation

Install the Godot Genre Open World AI skill in TypingMind to use it with any LLM, or drop it into another agent that reads SKILL.md.

1

Install in TypingMind

TypingMind installs a skill straight from its GitHub folder — it reads SKILL.md, bundles the resource files, and stores the result locally.

  1. Open the app and go to Plugins → Skills.
  2. Choose "Install from GitHub".
  3. Paste the skill folder URL below and confirm.
  4. Enable the skill in any chat where you want it available.
Plugins → Skills → Add skill → From GitHub URL, then paste the folder URL and press Continue.
2

Install in another agent

Any agent that reads the Agent Skills format can use this skill — copy the folder into that agent's skills directory.

Claude Code — .claude/skills
git clone --depth 1 https://github.com/thedivergentai/GD-Agentic-Skills.git /tmp/GD-Agentic-Skills
mkdir -p .claude/skills
cp -r /tmp/GD-Agentic-Skills/skills/godot-genre-open-world .claude/skills/godot-genre-open-world
Restart Claude Code after copying so it picks up the new skill.

Use it in TypingMind

Enable Godot Genre Open World in any TypingMind chat and the model takes it from there. Its name and description sit in the system prompt, and the moment a request matches, the model loads the full instructions itself — you never invoke it by hand, and it costs no tokens until it is actually used.

The model loads Godot Genre Open World on its own as soon as a request matches it.

Works with any AI model

AI skills are plain Markdown instructions rather than provider-specific code, so Godot Genre Open World is not tied to the model it was written for. Install it once in TypingMind and use it with GPT-5, Claude, Gemini, Grok, DeepSeek, Mistral, Llama, or a local model you run yourself — all on your own API keys.

  • Loaded only when it is needed

    The system prompt carries just the name and description. The instructions are fetched on the first matching request, so an idle skill costs nothing.

  • Switch models mid-chat

    Because the skill is instructions rather than code, changing model does not break it — the next model reads the same SKILL.md.

Skill instructions

This is the SKILL.md content the model loads. Read it before installing — a skill is instructions your model will follow.

NEVER Do (Expert Anti-Patterns)

World & Persistence

  • NEVER prioritize Map Size over Density; empty landscapes are poor design. Strictly focus on Points of Interest (POIs) within every 30 seconds of travel.
  • NEVER save the entire world state; strictly use Delta Persistence to record only unique changes (chopped trees, looted chests) to prevent massive save files.
  • NEVER load large chunks or scenes synchronously; strictly use ResourceLoader.load_threaded_request() to prevent "Loading Hitches" and frame freezes.
  • NEVER manipulate the active SceneTree directly from a background thread; strictly use call_deferred() to safely apply background thread chunk instantiations back to the main thread.
  • NEVER keep distant, unloaded chunks in memory; strictly queue_free() and nullify references to prevent Out-Of-Memory (OOM) crashes.
  • NEVER bake massive collision into one mesh; strictly break the world into chunks with local collision regions for efficient physics queries.
  • NEVER save high-volume entity states in text formats (.tscn/.json); strictly use Binary Serialization (store_var) for high-speed I/O.

Physics & Performance

  • NEVER ignore the "Floating Origin" jitter beyond 8,192 units; strictly implement a World-Shift system or enable Large World Coordinates (Double Precision) in project settings.
  • NEVER process physics or AI at extreme distances; strictly use Spatial Partitioning to disable logic for entities in far-away, inactive chunks.
  • NEVER calculate physics-sensitive state in _process(); strictly use _physics_process() for deterministic interaction at fluctuating framerates.
  • NEVER spawn individual MeshInstance3D nodes for massive foliage; strictly use MultiMeshInstance3D to batch hundreds of thousands of meshes into a single GPU draw call.
  • NEVER move OccluderInstance3D nodes at runtime; this forces a CPU BVH rebuild and causes severe micro-stuttering.
  • NEVER leave CSGShape3D nodes active in exported builds; strictly bake them into static ArrayMesh geometry before shipping.
  • NEVER compile complex shaders during gameplay; strictly perform "warm-up" during loading or enable project-wide caching.
  • NEVER rely solely on automatic mesh decimation; strictly use VisibilityRange (HLOD) to substitute complex materials with cheap imposters or completely hide objects at extreme distances.

Logic & Architecture

  • NEVER perform global A* searches across the entire massive world; strictly use NavigationPathQueryParameters3D to limit pathfinding to localized active regions.
  • NEVER use find_child() or deep tree iteration for global state (e.g., Time of Day); strictly use Scene Groups (call_group()) for optimized broadcasting.
  • NEVER synchronize complex Resource types over the network; strictly serialize world changes into primitive Dictionaries or PackedByteArrays.
  • NEVER spawn raw Thread.new() for chunk I/O when ResourceLoader.load_threaded_request() already covers scene streaming — prefer ResourceLoader; custom threads only for non-Resource work with deferred SceneTree apply.

🛠 Expert Components (scripts/)

MANDATORY by concern (read before implementing):

Original Expert Patterns

Modular Components


Core Loop

Traverse → Discover POIs → Quest/travel → Persist deltas → Weather/day cycle immersion.

Decision Tree: Streamer / Origin / HLOD

ConcernChooseScript
Chunk load/unload around playerResourceLoader threaded + deferred add_childMANDATORY world_streamer.gd, async_chunk_loader.gd
Origin: gameplay entities in a group, custom shift policyGroup "world_entities" shiftfloating_origin_shifter.gd
Origin: single world_root + player warp + physics interp + shader offsetRoot shifterworld_origin_shifter.gd
Origin: planetary / >~few×10k units, physics-heavyLarge World Coordinates (double-precision build)Project setting — may still use a shifter for shader/audio sync
Distant mesh swap / impostorVisibilityRange HLODMANDATORY hlod_visibility_config.gd
Disable far AI/physicsDistance/chunk gatelod_logic_enabler.gd
Persist only changesBinary deltabinary_save_manager.gd

Pick one origin strategy — do not dual-own floating_origin_shifter and world_origin_shifter on the same world root.


Architecture (no duplicated Elite dumps)

  1. Streamer — Active chunk set from player cell; unload with queue_free; load via threaded ResourceLoader; instantiate with call_deferred. Do not re-inline streamer pseudocode — read the MANDATORY scripts.
  2. Delta state — Dictionary keyed by chunk id for dead entities / looted chests; write with binary saver when chunks unload.
  3. HLOD — Proxy mesh visibility_range_begin; detail children use visibility_parent — configure via hlod_visibility_config.gd.
  4. POI / compass — Density > size; angle map UI from player forward to POI; no need for a second floating-origin code block.

Common Pitfalls

  1. Empty world — density over km² vanity
  2. Save bloat — delta-only persistence
  3. Far physics — lod_logic_enabler.gd
  4. Phantom hlod_configurator.gd — does not exist; use hlod_visibility_config.gd

MANDATORY for depth beyond decision trees and script catalog: open-world-elite-implementations.md. Do NOT Load on first-pass wiring — use bundled scripts/ first.

Godot-Specific Tips

  • VisibilityRange: Use visibility_range_begin / end on MeshInstance3D for HLOD without a dedicated LOD node.
  • Threading: Prefer ResourceLoader.load_threaded_request() for chunks; custom Thread only when not loading Resources.
  • OcclusionCulling: Bake occlusion for cities; open fields often need distance culling only.

Reference

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.

Official Documentation

  • Background loading — ResourceLoader threaded chunk requests so streaming never hitch-stalls the main thread.
  • Large world coordinates — when floating-origin shifts vs double-precision builds for maps beyond ~8k units.
  • Visibility ranges — GeometryInstance3D begin/end + hysteresis for HLOD impostor swaps.
  • Mesh level of detail (LOD) — importer auto-LOD and Viewport mesh_lod_threshold for adaptive outdoor quality.
  • Using MultiMesh — batching foliage/props into one draw call with spatial partitions for culling.
  • Occlusion culling — baked OccluderInstance3D for cities; why not to move occluders at runtime.
  • Saving games — delta persistence patterns for entity changes across unloaded chunks.
  • Binary serialization API — FileAccess.store_var/get_var for compact high-volume world state.
  • Using multiple threads — Thread/Mutex/Semaphore worker patterns used by custom streamers.
  • Thread-safe APIs — what may run off-thread vs what must be call_deferred onto the SceneTree.
  • Using NavigationPathQueryObjects — region-limited NavigationServer3D queries for chunk-scoped AI.
  • Ray-casting — PhysicsDirectSpaceState3D height/placement queries without per-tile nodes.

Related Skills

Prerequisites
  • godot-project-foundations — scene tree, resources, and project settings before streaming PackedScenes and groups.
  • godot-3d-world-building — GridMap/CSG/occlusion/LOD primitives that open-world chunks and HLOD build on.
  • godot-physics-3d — collision layers, space queries, and origin-shift-safe physics for large maps.
  • godot-gdscript-mastery — typed Resources, signals, and deferred/thread handoffs used by streamers and saves.
Complements
Downstream / consumers
  • godot-quest-system — quests that reference chunk-scoped entities and discovery markers.
  • godot-genre-sandbox — player-built worlds that reuse streaming, MultiMesh, and persistence patterns.
  • godot-genre-survival — exploration/survival loops that inherit open-world streaming and delta state.
Master
  • godot-master — library router and mirrored module entry for cross-skill discovery.

Bundled files

The model reads these on demand while the skill is loaded. They are exposed as readable files and are never executed.

Frequently asked questions

What does the Godot Genre Open World AI skill do?

Expert blueprint for open world games including chunk-based streaming (load/unload regions dynamically), floating origin (prevent precision jitter beyond 5000 units), HLOD (hierarchical LOD for distant meshes), persistent state (track entity changes across unloaded chunks), POI discovery systems (compass, markers), and threaded loading (prevent stutters). Use for RPGs, sandboxes, or exploration games. Trigger keywords: open_world, chunk_streaming, floating_origin, HLOD, persistent_state, POI_discovery, threaded_loading.

Why use Godot Genre Open World on TypingMind?

Because you install it once and use it with any model. Godot Genre Open World is plain Markdown rather than provider-specific code, so the same skill runs on GPT-5, Claude, Gemini, Grok, or a local model — and you can switch model mid-chat without it breaking. TypingMind runs on your own API keys, so you pay providers directly instead of a per-seat subscription, and your skills and chats stay in your own storage.

How do I install Godot Genre Open World in TypingMind?

Open Plugins → Skills → Install from GitHub in TypingMind and paste https://github.com/thedivergentai/GD-Agentic-Skills/tree/main/skills/godot-genre-open-world. TypingMind reads its SKILL.md and bundles its files and installs it as a skill you can enable per chat.

Which AI models can use Godot Genre Open World?

Any model you connect in TypingMind. AI skills are plain Markdown instructions rather than provider-specific code, so GPT, Claude, Gemini, Grok, and local models can all load this skill when a request matches it.

How many AI models can I use with Godot Genre Open World?

As many as you like. As long as a model supports skills, you can use Godot Genre Open World with it — GPT, Claude, Gemini, Grok, DeepSeek, Mistral, Llama and more — all on TypingMind with your own API keys.

Is the Godot Genre Open World AI skill free?

Yes. It is published on GitHub by thedivergentai under the LGPL-3.0 license. You only pay your own AI provider for the tokens you use.

What are AI skills?

An AI skill is a reusable instruction bundle that teaches an AI model how to do one specific task. It follows the open Agent Skills format: a SKILL.md file with a name and description, plus any scripts, templates or reference files the model may need. The model reads the instructions only when your request matches the skill, so an installed skill costs nothing until it is used.

How are AI skills different from plugins or MCP servers?

A plugin or MCP server gives a model new tools to call — code that runs somewhere and returns a result. An AI skill gives the model knowledge and process instead: how to approach a task, which steps to follow, what good output looks like. Skills are plain Markdown, so they need no server, no API key and no runtime, and they work with any model.

View all

Set up your own AI workspace now

Get notified about new features and future giveaways by subscribing to our newsletter 👇