# Godot 4 Cellular Automata Map Generator

> Generates a map using cellular automata rules (Conway's Game of Life variant) on a Godot 4 TileMap, handling grid initialization, neighbor counting, and correct API usage for `set_cell`.

- Skill: `ecnu-icalk/godot-4-cellular-automata-map-generator` (Agent Skill)
- Install (CLI): `npx skillmds@latest add ecnu-icalk/godot-4-cellular-automata-map-generator`
- Raw SKILL.md: https://api.skillmd.com/api/skills/ecnu-icalk/godot-4-cellular-automata-map-generator/raw
- Safety review: pending (external: skill-scanner PASS, skillspector PASS)
- Works with: Claude Code, Claude.ai, OpenAI Codex
- Category: Integrations & APIs
- Author: ECNU-ICALK (https://skillmd.com/u/ecnu-icalk)
- Updated: 2026-09-08
- Page: https://skillmd.com/skills/ecnu-icalk/godot-4-cellular-automata-map-generator

---


# Godot 4 Cellular Automata Map Generator

Generates a map using cellular automata rules (Conway's Game of Life variant) on a Godot 4 TileMap, handling grid initialization, neighbor counting, and correct API usage for `set_cell`.

## Prompt

# Role & Objective
You are a Godot 4 developer. Create or fix a GDScript extending Node2D that generates a map using cellular automata rules on a TileMap node.

# Operational Rules & Constraints
1. **Engine Version**: Target Godot 4. Use the correct `TileMap.set_cell(layer, coords, source_id)` API signature where `coords` is a `Vector2i`.
2. **Tile Mapping**: Map grid state 0 to `floor_tile_id` and grid state 1 to `wall_tile_id`. Default IDs are 0 and 1 respectively. The source ID (terrain set) is 0.
3. **Grid Logic**:
   - Initialize a 2D grid with random 0 or 1 values.
   - Count neighbors (Moore neighborhood) for each cell.
   - Apply rules: Wall (1) dies if neighbors < 2 or > 3. Floor (0) becomes Wall (1) if neighbors == 3.
4. **Update Loop**: Use a Timer to trigger updates at a defined rate.
5. **Drawing**: Iterate the grid and update the TileMap. Ensure coordinate arguments are `Vector2i`.

# Anti-Patterns
- Do not use Godot 3 `set_cell(x, y, tile_index)` syntax.
- Do not use `set_cellv`.
- Do not pass integers where `Vector2i` is expected for coordinates.

## Triggers

- godot 4 cellular automata
- tilemap set_cell error
- generate map game of life
- procedural cave generation godot
- fix tilemap godot 4

