Skip to content
Workflows / Town Planner
Terrain-aware · City building

Town Planner

An interactive, terrain-aware town-planning tool. Describe the settlement you want, place it one piece at a time, pick each house's asset from a live thumbnail picker — then commit the whole layout to the level.

Live
When to use it
Blocking out villages, hamlets or districts on existing landscape — rapid greyboxing, level prototyping, or generating a believable settlement layout you then hand-tune. The tool reads terrain height and slope so buildings sit correctly instead of floating or clipping.

Natural-language example

Claude Terminal mcp connected
❯ Plan a 12-house village laid out along the main road, following the hillside.
↳ plan_town → session open · 12 houses fitted to the landscape height. Ready to place.

The workflow

1
plan_town

Plan against the real terrain

Give a centre, radius and seed. The tool queries the live Landscape for the height at every road and house point, works out the layout, and opens a placement session. Nothing is spawned yet.

2
place_next_road · place_next_house

Place it one piece at a time

Step through the plan: each call drops the next road as a real terrain-fitted road actor, then each house as a colour-coded placeholder carrying a built-in “House NNN” sign. Stop and look whenever you like — get_town_status reports how far along you are.

3
show_preview · get_preview_response

Hand the house choices to a human

The agent builds a thumbnail-card picker, opens it in the Claude Preview tab and waits for your submission. label_houses toggles the in-viewport “House NNN” signs so the picker's row numbers match what you see in the level.

4
set_house_asset

Swap in the assets you picked

Point any house at a different Blueprint or static mesh. Before commit it only edits the plan; after commit it swaps that house immediately, keeping its current live transform. Omitted measurements inherit the previous asset's.

5
adjust_house

Nudge anything that looks wrong

Move or rotate a single house, before or after commit. Overlapping a road corridor or another house raises a warning but never blocks — a manual override is a deliberate override.

Overlaps warn, never block
6
commit_town

Commit to real assets

Swaps every placeholder for its real profile asset, reading each house's current live transform so your adjustments carry over. Roads are untouched — they were real from the start. Prefer a different seed? wipe_town clears the lot.

Demo

Episode 19 — the agent plans a town, then hands the house choices to a human.

Documentation

Town Planner overview
/docs/workflows/town-planner
SOON
plan_town parameters
/docs/tools/plan-town
SOON
Terrain-fit reference
/docs/workflows/terrain-fit
SOON
← Back to all workflows