Ancient City Underground
No reviews yet
Makes Ancient Cities generate densely underground in all Overworld biomes. Every chunk is covered by city structures with moderate overlap. Players spawn safely inside the city.
Includes a large focus on traversing worlds with enhanced world generation, structures, dungeons, and more for players to find unique loot.
General improvements to world generation, such as bug fixes, aesthetic overhauls, or misc additions.
Fabric is a mod loader for versions 1.14+ of Minecraft, particularly popular for client side and optimization mods.
Community voices
Reviews
Click once to include, again to exclude, again to clear
No reviews yet. Be the first to review this project!
Get it on
Available Platforms
Compatibility
Supported Environments
About
Project Details
For authors
Embed Badge
If you're the author of this project, you can embed a live badge anywhere that supports HTML or Markdown. It updates automatically whenever ratings change.
Use HTML for any page that supports it, or Markdown for README files and Markdown-based descriptions.
Identifiers
Platform IDs
About
Description
Ancient City Underground 🏛️
Let Ancient Cities Fill the Underground
Introduction
Ancient City Underground is a Fabric mod that completely reworks Ancient City generation:
- All Biomes — Ancient Cities are no longer restricted to the Deep Dark. They generate in all Overworld biomes underground.
- High Density — Generation spacing of 10 chunks. With a 128-block city radius, every chunk is covered by city structures.
- Moderate Overlap — Cities overlap just enough for full coverage without excessive clustering.
- Safe Spawning — On first join, players spawn at a random safe spot inside the nearest city — a walkway, courtyard, or other open area.
- Bedrock Roof — A bedrock layer at Y=60 seals the underground world. No blocks or mobs generate above it.
- Fully Compatible — Does not affect End Portals, Strongholds, or any other vanilla structures.
Features
| Feature | Description |
|---|---|
| 🗺️ All Biomes | Generate under plains, deserts, forests, oceans, mountains — every Overworld biome |
| 📐 Optimized Density | spacing=10, separation=2, ~160 block average spacing, 128-block coverage radius |
| 🎲 Random Spawn | Each new world spawns you at a different spot — courtyard, walkway, or city gate |
| 🛡️ Safety Check | Automatically verifies ground is solid, body and head are in open air |
| 🧱 Bedrock Roof | Bedrock layer at Y=60 with no blocks or mobs above — a sealed underground world |
| ⚡ Lightweight | Pure datapack overrides + Mixin, no vanilla structure definitions modified |
Versions
Two versions are available:
| Version | Features | JAR |
|---|---|---|
| Full | Ancient cities + spawn + bedrock roof Y=60 + no mobs | ancient-city-underground-full-1.0.0.jar |
| Classic | Ancient cities + spawn only | ancient-city-underground-classic-1.0.0.jar |
Requirements
- Minecraft: 1.21.11
- Loader: Fabric Loader ≥ 0.19.3
- Dependency: Fabric API ≥ 0.141.4+1.21.11
- Java: ≥ 21
This is a SERVER-SIDE mod. It works on dedicated servers, and clients do not need to install it. For single-player, it works as normal.
Installation
- Install Fabric Loader
- Download Fabric API
- Download the mod JAR
- Place the JAR into
.minecraft/mods/ - Launch the game and create a new world
Technical Details
How it works
| Mechanism | Method |
|---|---|
| All-biome generation | Datapack override: has_structure/ancient_city.json → #minecraft:is_overworld |
| Generation density | Datapack override: structure_set/ancient_city.json → spacing=10, separation=2 |
| Player spawn | Mixin into PlayerList#placeNewPlayer — finds nearest city, picks random safe position |
| Bedrock roof | Mixin into LevelChunk constructor — clears blocks above Y=60, places bedrock at Y=60 |
| Mob restriction | Mixin into NaturalSpawner — cancels spawns above Y=60 |
Structure Set Parameters
{
"placement": {
"type": "minecraft:random_spread",
"spacing": 10,
"separation": 2,
"salt": 191119
}
}
| Parameter | Value | Description |
|---|---|---|
spacing |
10 | Grid size in chunks. One city per 10×10 chunk cell |
separation |
2 | Minimum distance from cell boundary |
| Min center distance | 64 blocks | Closest two cities can be |
| Max center distance | 256 blocks | Farthest two cities can be (edges just touch) |
| Coverage radius | 128 blocks | Vanilla max_distance_from_center, unchanged |
Screenshots

Compatibility
- ✅ Ancient Cities in all Overworld biomes
- ✅ No vanilla structure definitions modified
- ✅ End Portals unaffected
- ✅ Strongholds unaffected
- ✅ Other structures unaffected
- ℹ️ Only affects newly generated chunks (requires new world)
License
This project is available under the CC0 1.0 Universal license. Feel free to use, modify, and share.
Made with ❤️ by xiaomaiya
Versions
Files
Relations
Project Relations
More like this
Similar Mods
Suggestions use data such as tags, dependencies, dependents, descriptions, titles, and more to rank how much they overlap with this mod.
On ModDex
Community snapshot
By the numbers
Statistics
Want to reach Minecraft players?
We're looking for a server hosting partner to feature here and other parts of the site. Interested? Send us a message!
Get in touchGet it on
Available Platforms
On ModDex
Community snapshot
By the numbers