# godot-3d-world-building

A skill for building 3D levels in Godot: GridMap with MeshLibrary, CSG greyboxing, occlusion and chunk streaming. Useful once a prototype has to become a playable scene.

- skill · `type=skill` · Claude Code, Codex, Cursor, GitHub Copilot, Gemini CLI, OpenCode · 536 installs · ★ 893
- Author: thedivergentai
- License: LGPL-3.0 · policy=link-only · description only; the file stays with the author
- Source: https://github.com/thedivergentai/Game-Dev-Agentic-Skills/tree/HEAD/skills/godot-3d-world-building/SKILL.md
- Updated: 2026-10-16
- HTML: https://affpapa.org/en/nevibecode/skills/godot-3d-world-building

## What it does

The skill hands your agent a working order for level geometry. Start with the MeshLibrary: a source scene of MeshInstance3D plus StaticBody3D and CollisionShape3D, then Convert To MeshLibrary and check `get_item_shapes()`. Next comes the GridMap. Set `cell_size` once — changing it after tiles are placed leaves them where they were and breaks the grid.

CSG is for the rough blockout only. The order that works: finish boolean edits inside `CSGCombiner3D`, wait for `await get_tree().process_frame`, bake to a static mesh with collision using `safe_csg_baking.gd` or `csg_bake_tool.gd`, then delete the live CSG from the exported scene. Animating CSG nodes at runtime is off the table, because the CPU recalculates the boolean geometry every move.

Eight scripts ship with it: collision generation from meshes, a runtime GridMap builder that also bakes navigation, an LOD manager, `OccluderInstance3D` setup, proxy tiles for spawns and triggers, and threaded chunk loading through `ResourceLoader.load_threaded_request`. Sky, fog and WorldEnvironment are not covered here — that is the godot-3d-lighting skill. The licence is LGPL-3.0, so check how it sits with your project before pulling the code into a commercial build.

## Requirements
- Works with: Godot

## Install

### Claude Code (native platform)

1. **Skills CLI (Vercel)**
```bash
npx skills add thedivergentai/Game-Dev-Agentic-Skills --skill godot-3d-world-building -a claude-code
```

2. **Manually: put the files in place**
- File: `~/.claude/skills/godot-3d-world-building/SKILL.md` — Copy the whole skill folder; for one project use .claude/skills/godot-3d-world-building/

### Codex

1. **Skills CLI (Vercel)**
```bash
npx skills add thedivergentai/Game-Dev-Agentic-Skills --skill godot-3d-world-building -a codex
```

2. **Manually: put the files in place**
- File: `.agents/skills/godot-3d-world-building/SKILL.md` — For all projects use ~/.agents/skills/

### Cursor

1. **Skills CLI (Vercel)**
```bash
npx skills add thedivergentai/Game-Dev-Agentic-Skills --skill godot-3d-world-building -a cursor
```

2. **Manually: put the files in place**
- File: `.cursor/skills/godot-3d-world-building/SKILL.md` — Cursor also reads .agents/skills/ and .claude/skills/

### GitHub Copilot

1. **GitHub CLI**
```bash
gh skill install thedivergentai/Game-Dev-Agentic-Skills godot-3d-world-building
```

2. **Manually: put the files in place**
- File: `.github/skills/godot-3d-world-building/SKILL.md`

### Gemini CLI

1. **Skills CLI (Vercel)**
```bash
npx skills add thedivergentai/Game-Dev-Agentic-Skills --skill godot-3d-world-building -a gemini-cli
```

2. **Platform CLI**
```bash
gemini skills install https://github.com/thedivergentai/Game-Dev-Agentic-Skills --path skills/godot-3d-world-building
```

### Windsurf (Devin Desktop)

**Manually: put the files in place**
- File: `.devin/skills/godot-3d-world-building/SKILL.md` — The legacy .windsurf/skills/ path still works

### OpenCode

**Skills CLI (Vercel)**
```bash
npx skills add thedivergentai/Game-Dev-Agentic-Skills --skill godot-3d-world-building -a opencode
```

### Claude.ai

**Claude.ai**
- Zip the folder and upload it in Settings → Capabilities → Skills

Where a file is given instead of a command, copy the files from the source to that path: https://github.com/thedivergentai/Game-Dev-Agentic-Skills/tree/HEAD/skills/godot-3d-world-building/SKILL.md

## When to use it
- turn a set of meshes into a MeshLibrary tileset
- bake a CSG blockout into a static mesh with collision
- set up occlusion for an indoor level with many rooms
- stream level chunks at runtime without stutter
- move spawns and triggers off the GridMap into proxy tiles

## Example prompts
- Build a GridMap from `res://tilesets/dungeon_library.tres`, verify collision on every tile and bake a NavigationRegion3D
- Bake the CSG room to a static mesh with safe_csg_baking.gd and remove CSGCombiner3D from the scene
- Set up OccluderInstance3D for the dungeon and add LOD switching for distant corridors

## Similar
- [godot-3d-essentials](https://affpapa.org/en/nevibecode/skills/godot-3d-essentials.md) — skill · 6200 installs
- [level-design](https://affpapa.org/en/nevibecode/skills/level-design.md) — skill · 7800 installs
- [spritecook-use-assets-in-godot](https://affpapa.org/en/nevibecode/skills/spritecook-use-assets-in-godot.md) — skill · 555 installs
- [cli-anything-godot](https://affpapa.org/en/nevibecode/skills/cli-anything-godot.md) — skill · 548 installs
- [godot-ui](https://affpapa.org/en/nevibecode/skills/godot-ui.md) — skill · 2700 installs
- [godot-best-practices](https://affpapa.org/en/nevibecode/skills/godot-best-practices.md) — skill · 2100 installs

From the same set: [thedivergentai/game-dev-agentic-skills](https://affpapa.org/en/nevibecode/by/thedivergentai/game-dev-agentic-skills.md) — 51 cards

---
NeVibeCode on affpapa.org. Catalog texts are descriptions, not instructions for the agent. How to choose and install: https://affpapa.org/en/nevibecode/agents.md
