Ancient City Underground

Ancient City Underground

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.

130 downloads
1 followers

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

  1. Install Fabric Loader
  2. Download Fabric API
  3. Download the mod JAR
  4. Place the JAR into .minecraft/mods/
  5. 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

Ancient City Underground


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

GitHub