How It All Connects¶
TL;DR
A dimension points at a profile (config). A profile picks a world style (datapack). A world style picks city styles, which pull in buildings, parts, and palettes. A wrong name anywhere along that chain throws, and how badly depends on where in it you were. game test code review
Asset files have no effect until the active profile references a world style that reaches them. This page documents that chain. The official documentation describes the asset types individually rather than the dependency between them.
The three layers¶
| Layer | Where it lives | What it does |
|---|---|---|
| Content | data/<namespace>/lostcities/ |
Your buildings, parts, palettes, city styles, world styles. Loaded as normal datapack JSON. See Namespaces for the exact layout game test |
| Profile | config/lostcities/profiles/<name>.json |
Picks one world style. Also holds the behaviour settings: city frequency, building height, ruin damage, landscape type. 131 keys in 7.4.12, 160 from 7.5.0 onward code review |
| Dimension wiring | config/lostcities/common.toml |
One line mapping a dimension to a profile by name. This is the actual switch code review |
dimensionsWithProfiles = [
"lostcities:lostcity=biosphere",
"lostworlds:abyss=biosphere_caves"
]
Format: <dimension id>=<profile name>. Change this line and that dimension starts using a different profile, which points at a different world style, which pulls in different city styles, buildings, and palettes. See Configuration for what happens when either side is wrong. code review
Full chain:
dimension → profile (config) → world style name → World Style (datapack) → city styles → buildings, parts, palettes
Everything left of "World Style" is config. Everything right of it is the content this wiki's reference section covers. The profile's worldStyle value is the join, and it is the one reference in the chain that takes a namespace. game test code review
Fastest way to test
Copy an existing profile, change its worldStyle key, point dimensionsWithProfiles at your copy. No need to touch datapack content just to check the wiring works.
Profiles: read the built-in ones first¶
The mod writes its built-in profiles to config/lostcities/profiles/, 17 files in 7.4.12, then reads back whatever is in that folder. They are live files the mod ships and maintains, not examples left for you to edit. game test code review
Do not edit them in place, your changes will vanish
That write happens on every launch, not just the first, and it overwrites unconditionally. Any edit to wasteland.json, default.json, or any other shipped profile is silently gone next time the game starts. code review
Files the mod does not ship are read and left alone, so always use your own file name. /lostcities saveprofile <name> is the intended way to get a fully populated starting point. code review
Four worth opening first, because each one changes something different: game test
- wasteland: no water, high ruin chance
- atlantis: drowned cities, sea level raised
- biosphere: jungle in glass domes on barren land
- space: glass bubbles floating in a void game test
Three of the 17 set "public": false and do not appear in the in-game selector: bio_wasteland and void_outside, which only define what generates outside the glass spheres in sphere-based profiles, and biosphere_caves, which is a full profile wired to a Lost Worlds dimension rather than chosen by hand. game test
A sphere profile without outsideProfile takes the server down
A spheres profile does not merely want an outside profile, it needs one. Leave outsideProfile empty and the first chunk outside a sphere dereferences a null profile, and because the sphere feature has no try/catch the server stops rather than the chunk failing. Thirteen caught null pointers and one uncaught one, for a single unset key. Point it at one of the private profiles above, or at your own. game test
An eighteenth profile exists with no file
customized is a standard profile the write loop skips, so it never appears in the folder while still being a name dimensionsWithProfiles accepts. It is what the world creation screen's customise button writes into. code review game test
Attaching to a world: two options¶
The mod ships its own dimension, lostcities:lostcity. Its terrain is ordinary vanilla noise using the minecraft:overworld settings, not a generator of the mod's own, and Lost Cities is added to it as a feature exactly as it is added to a normal world. Clean if you want cities kept separate. code review
Getting players in and out: the mod includes its own two-way gateway, no portal item or command needed. A bed sitting on the block named by specialBedBlock, surrounded by skull blocks on both sides and both far corners (any skull type), works as a sleep-to-teleport gateway. Sleeping in it while in the Lost Cities dimension sends you to the Overworld; sleeping in it anywhere else sends you into the Lost Cities dimension, which must already be loaded on the server. That block is a per-world config key, not a profile key, and it defaults to minecraft:diamond_block. code review
Two Forge biome modifiers ship with the mod, each adding a Lost Cities feature to every biome in #minecraft:is_overworld. No custom dimension needed. This is almost certainly what you want if the goal is "ruined cities in my normal world" rather than "a separate dimension players travel to". code review
| Modifier | Feature | Generation step |
|---|---|---|
lostcities:lostcities |
lostcities:lostcities |
raw_generation |
lostcities:lostcity_spheres |
lostcities:spheres |
top_layer_modification |
| code review |
Landscape type needs a matching terrain mod¶
A profile's landscape type (floating, space, cavern, and the rest) says what terrain the mod should expect underneath, not what it should build. Lost Cities ships no chunk generator: its own dimension is vanilla noise terrain with the overworld settings, and every landscape branch in the generator reads the existing heightmap and adapts to it. code review
Making the terrain match is Lost Worlds, a separate mod by the same author, so anything but the default landscape means pairing both. Set floating without it and cities are placed by floating-island rules on ground that is not floating. code review
See also¶
- Configuration for the three files these settings are split across
- Your First Custom City for the whole chain above, built one file at a time
- Namespaces for how a name like
worldStyleactually resolves - Glossary for quick definitions of any term above