
Ancient City Underground
Java mod listed for Minecraft 1.21. Downloads from the MC Java Mods app on Android.
Makes Ancient Cities generate densely underground in all Overworld biomes. Every chunk is covered by city structures with moderate overlap. Players spawn…
⬇ Download on Modrinth
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
- Edition: Minecraft Java
- File type: .jar
- Minecraft version listed: 1.21.11
- How to install: Install the matching mod loader (Forge, Fabric or NeoForge) for your Minecraft version. → Download the .jar. → Put it in the .minecraft/mods folder and launch that loader profile.
- Where to get it: Opens on Modrinth — not every file is mirrored on our own servers.
Install steps are the general flow for this file type — How to install Minecraft Java mods & modpacks walks through it step by step.
- Ships as ancient-city-underground-1.0.0.jar — drop this file into the mods folder
- Download size: 1.9 MB
- Download link checked 11 Oct 2026 — working
These come from our own check of the pack file, not from the source page.