Skip to content

Latest commit

 

History

82 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

CityGen - Minecraft City Generator

Build a TheoTown style Minecraft city from your own roads and buildings in minutes.

This project turns a small handcrafted asset set into a complete city layout, preview, and paste-ready in-game result. It is designed for creators who want large-scale city generation without giving up the look and feel of their own Minecraft builds.

Rendering Result

Isometric city render 1

Isometric city render 2

In-Game Result

The generated city can be brought back into Minecraft as a real build result:

In-game city result 1

In-game city result 2

In-game city result 3

In-game city result 4

Built-in Assets

These buildings come with the app by default:

Built-in Assets

Desktop Workflow

The app includes extraction tools, previews, and a generation UI built for iteration:

Desktop UI 1

Desktop UI 2

Desktop UI 3

Tutorial - Marking Your Own Assets

CityGen builds cities from structures you mark up inside your own Minecraft world, using a handful of marker blocks. Roads, buildings, and fillers all follow the same convention:

  • Wool — outline each asset with a wool rectangle. One connected wool shape is one asset.
  • Gold + Diamond — place a gold block and a diamond block at two opposite corners of the region you want captured.
  • Emerald — place exactly one emerald block at ground level so the tool knows where the ground is.
  • Sign — put a sign inside the asset to name it (and, for buildings, to set options).

Marker blocks and signs are stripped from the exported result automatically — they never show up in your finished city.

Two Building Types

Type 1 — a single building. One gold/diamond pair marks the whole build. Best for smaller, street-front buildings.

Type 1 convention

Type 2 — a stackable building. Three gold/diamond pairs mark a bottom, a middle, and a top. CityGen stacks copies of the middle to vary the height, so one build becomes many. Best for towers and landmarks.

Type 2 convention

You can tune a type-2 building with sign directives placed inside its boundary:

  • stack: 3-7 — how many middle sections it may grow (min–max)
  • appearance: 2-4 — how many times it should appear across a city (min–max)

For Technical Details

See the source architecture overview and its per-package guides (config, engine, gui, pipeline).

Developer Quick Start

python -m pip install -e .
pytest -q
pythonw application.pyw

The source tree is organized as four packages under src/: config, engine, gui, and pipeline. Generated previews, schematics, renders, exported worlds, test caches, and packaging outputs live in git-ignored directories such as artifacts/, build/, and dist/. To clear regenerated local outputs:

python tools/clear_cache.py

Pipeline stages can be run from their script paths in a checkout, for example:

python src/pipeline/04_city/construct.py --seed 5

Use MC_CITY_* environment overrides through pipeline.services for in-process runs; the pipeline runtime applies them under a lock and reloads import-time configuration safely for one run at a time.

Supported Minecraft Versions

26.1 26.1.1 26.1.2 26.2

1.21 1.21.1 1.21.2 1.21.3 1.21.4 1.21.5 1.21.6 1.21.7 1.21.8 1.21.9 1.21.10 1.21.11

1.20 1.20.1 1.20.2 1.20.3 1.20.4 1.20.5 1.20.6

About

Turn a handful of your own Minecraft builds into an entire city. Outline roads and buildings with marker blocks, and CityGen generates a seeded street network, parcels the lots, stacks towers to vary the skyline, and gives you a paste-ready result. Windows installer included.

Topics

Resources

Stars

4 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages