seedlookout

OVERWORLD · UNDERGROUND

Ancient City

Page updated

An enormous ruined complex in the Deep Dark, where sculk sensors and shriekers punish careless exploring. Its chests hold echo shards, Swift Sneak books, disc fragments, and sought-after armor trim templates.

This guide follows vanilla Java 26.3. Historical changes retain their own edition and version. Bedrock generation and loot can differ. Screenshots and verified seeds below retain their own game versions.

Java 26.3 · Released · Reviewed

The reinforced-deepslate central frame and sculk-covered walkways of an ancient city
Ancient City at 1355, -35, 2032Seed 28462718234064871 · Java 26.3 · overworldReference capture · Naturally generated structure, photographed in Minecraft Java 26.3.

Game data and source research

Where it generates in Java 26.3

Deep Dark is the only eligible starting biome in Java 26.3. A Deep Dark biome does not guarantee a city; the placement grid and the structure start must also succeed. [2][5]

Candidate positions and rarity

Java 26.3 selects one potential starting chunk per 24×24-chunk region (384 blocks on each side). Candidate selection happens before successful structure generation; this is not a measured density or an average travel distance. [3][4]

The configured start height is Y=-27, and the start pool uses a named city_anchor jigsaw. The placement code offsets the selected template to that anchor, so -27 is not a floor level or the lowest block of the city. [1][3][4][5]

What the starting position means

The start pool is ancient_city/city_center. Jigsaw size 7 limits connection depth, while the configured horizontal distance limit is 116 blocks from the center; neither setting is a count of rooms. [1][4][5]

Finding your way through an ancient city

The central reinforced-deepslate frame is the strongest landmark. Paths, walls and smaller ruined buildings spread around it; the building pools include barracks, chambers, a sauna and ruined fragments. Optional pieces and empty pool entries mean two cities need not contain the same buildings. [6]

The three saved city-center alternatives are each 18 × 31 × 41 blocks. These are template bounds for the center, not the size of the city. Their lower levels contain redstone devices and a sculk sensor beneath the frame; the reinforced-deepslate outline is not a functioning portal. [6]

Finding your way through an ancient city
PartWhat to look for
Central frameA tall orientation landmark with redstone spaces below. [6]
Paths and wallsUse these to keep track of explored branches; broken terrain can interrupt a route. [6]
Outlying ruinsCheck separate buildings rather than assuming the central frame contains all the loot. [6]

Shriekers, not a resident warden

The city disables the ordinary natural-spawn lists inside its full structure bounds. It does not place a resident warden with the center templates. A summon-capable sculk shrieker can instead trigger the warden warning system. [6]

A shrieker response requires its summon-capable state, a non-Peaceful difficulty and the warden-spawning game rule. At warning level four or higher the code attempts to find a valid warden spawn position; an attempt is not a guaranteed spawn. The shrieker can also apply darkness. Treat sensors and shriekers as an active hazard even after the visible passages are empty. [7]

Loot and rewards in Java 26.3

The standard city chest and the ice-box chest have different loot tables. The rare trims, echo shards and disc fragments belong to the standard ancient-city table; the ice-box table instead selects food, suspicious stew, snowballs and packed ice. An ice-box chest is not another attempt at Silence trim. [8]

The standard chest makes 5–10 main-pool selections and one separate trim selection. Its main pool has total weight 84 in Java 26.3. Echo shards and fragments of disc 5 each have weight 4; the enchanted golden apple has weight 1. The trim pool weighs empty 75, Ward 4 and Silence 1, so the two trim outcomes exclude each other within that one draw. [8]

The Swift Sneak book entry explicitly restricts its enchantment to minecraft:swift_sneak. It is separate from a randomly enchanted book entry and from plain books. The loot table contains echo shards rather than a finished recovery compass, and disc fragments rather than the assembled music disc 5. [8]

Compared directly with Java 1.20.1, the Java 26.3 tables differ. The inspected ancient city table gains Leather and no longer lists Name tag, Saddle; its first pool changes from total weight 86 to 84. Use the current weights rather than carrying older chest percentages forward. [8][10]

Loot and rewards in Java 26.3
ItemWhere the rule appliesWhat the data establishes
Enchanted golden appleOne standard-table city chest8.6% chance of at least one apple selection; each selection supplies 1–2 apples. [8][9]
Echo shardOne standard-table city chest30.4% chance of at least one shard selection; each supplies 1–3. [8][9]
Disc fragment 5One standard-table city chest30.4% chance of at least one fragment selection; each supplies 1–3. [8][9]
Enchanted bookSwift Sneak entry in one standard chest23.7% chance of the dedicated Swift Sneak book entry at least once. [8][9]
Ward armor trim templateOne standard-table city chest5.0% chance; one template. [8][9]
Silence armor trim templateOne standard-table city chest1.2% chance; one template. [8][9]

Version history and release dates

These milestones retain their edition and exact build labels. Snapshot, beta and preview dates belong to those development builds; full releases and staggered Pocket platform releases are dated separately. Historical introduction claims come from the cited Wiki history. [11]

Version history and release dates
VersionReleasedWhat changed
Java Deep Dark Experimental Snapshot 1February 17, 2022Introduced experimental ancient cities. [11][13]
Java 22w13aMarch 31, 2022Added redesigned cities to the regular snapshot series. [11][14]
Java 22w14aApril 6, 2022Added echo shards to city loot and removed duplicate building pieces. [11][15]
Java 1.19June 7, 2022Released ancient cities as standard world generation. [11][16]
Bedrock 1.19.0June 7, 2022Released ancient cities without experimental gameplay. [11][17]
Java 1.20June 7, 2023Added Silence armor trim templates to city chests. [11][18]
Java 1.21.6June 17, 2025Replaced saddle loot with stacks of 1–5 leather. [11][19]
Java 26.1March 24, 2026Removed name tags from ancient-city chest loot. [11][20]
Java 26.3September 15, 2026Added abandoned-camp explorer maps leading to ancient cities. [11][21]

Checked in game by SeedLookout

Screenshots

Reinforced deepslate frame and sculk in an ancient city
Ancient City at 1335, -35, 2017Seed 28462718234064871 · Java 26.3 · overworldReference capture · Naturally generated structure, photographed in Minecraft Java 26.3.
Sculk-covered ruins and platforms beneath the ancient city cavern
Ancient City at 1338, -35, 2048Seed 28462718234064871 · Java 26.3 · overworldReference capture · Naturally generated structure, photographed in Minecraft Java 26.3.
Deepslate arches and smaller ruined buildings in an ancient city
Ancient City at 1310, -35, 2052Seed 28462718234064871 · Java 26.3 · overworldReference capture · Naturally generated structure, photographed in Minecraft Java 26.3.
Deepslate brick room seen through glass panes, with sculk in the walls and a moss floor
Ancient city at 48, -51, 160Seed 12784623149172763 · Java 26.3
Deepslate brick room seen through glass panes, with a moss floor inside
Ancient city at 240, -51, 0Seed 613114469485949 · Java 26.3

Our screenshots of naturally generated structures in Minecraft. Each caption gives the seed, coordinates and version. Select one to open it at full size.

Seeds with this ancient city

We found each ancient city at these coordinates in the seed's Java version. Other versions and Bedrock may generate a different world.

SeedVersionVariantX, Y, Z
Pale garden on a high ridge, with a camp, an ancient city and a ruined portal in a birch forest12784623149172763Java 26.3Ancient city48, -51, 160
Snowy village with a ruined portal in its streets, trail ruins and an ancient city613114469485949Java 26.3Ancient city240, -51, 0
Dappled forest valley camp below snowy peaks, over an ancient city6378256306624431Java 26.3Ancient city16, -51, 16
Plains village climbing a snowy mountain, with an ancient city to the north3233241926201645Java 26.3Ancient city64, -51, -256
Dappled forest and cherry grove between snowy peaks, over an ancient city-1844727049180781334Java 26.3Ancient city16, -51, 160
Abandoned camp in a pale garden with an ancient city nearby1919394327020867Java 26.3Ancient city240, -51, 240
Woodland mansion and village in a mountain ring5811050894855099212Java 1.20.1Ancient city45, -34, 0
Pale garden below snowy hills with a hidden forest camp8562851341419051Java 26.3Ancient city176, -51, 0

Sources

References identify the edition, version and evidence behind the guide. Game code and data describe generation rules; the seed table records locations checked in game. Research reviewed 2026-10-02.

  1. Mojang Java 26.3: structure configuration ↗Official game data · Java 26.3

    Inner archive META-INF/versions/26.3/server-26.3.jar: data/minecraft/worldgen/structure/ancient_city.json

    Evidence details

    Official server SHA-1 33680f5f2ac32864d6d7cf5e56a705fdb3e05f4c. SHA-256 by archive member: data/minecraft/worldgen/structure/ancient_city.json = a32f8919571fecd93eedd3fa45f1c8df4adf1650b1391d176b13e942752cdbbe

  2. Mojang Java 26.3: resolved starting-biome tags ↗Official game data · Java 26.3

    Inner archive META-INF/versions/26.3/server-26.3.jar: data/minecraft/tags/worldgen/biome/has_structure/ancient_city.json

    Evidence details

    Official server SHA-1 33680f5f2ac32864d6d7cf5e56a705fdb3e05f4c. SHA-256 by archive member: data/minecraft/tags/worldgen/biome/has_structure/ancient_city.json = 044e853b7d18d111a1e7177f5d8e71210bbfad0ff8f9648cbaf8838a4359a535

  3. Mojang Java 26.3: candidate placement settings ↗Official game data · Java 26.3

    Inner archive META-INF/versions/26.3/server-26.3.jar: data/minecraft/worldgen/structure_set/ancient_cities.json

    Evidence details

    Official server SHA-1 33680f5f2ac32864d6d7cf5e56a705fdb3e05f4c. SHA-256 by archive member: data/minecraft/worldgen/structure_set/ancient_cities.json = 711795eca8b83b29aa487dd5abc0cd4bd842bae4ae5c01d6e9b224fd2cdb6c9b

  4. Mojang Java 26.3: candidate filtering and weighted retries ↗Decompiled game implementation · Java 26.3

    Inner archive META-INF/versions/26.3/server-26.3.jar: net/minecraft/world/level/chunk/ChunkGenerator.class; net/minecraft/world/level/levelgen/structure/placement/AbstractSpreadingStructurePlacement$ExclusionZone.class; net/minecraft/world/level/levelgen/structure/placement/AbstractSpreadingStructurePlacement$FrequencyReducer.class; net/minecraft/world/level/levelgen/structure/placement/AbstractSpreadingStructurePlacement$FrequencyReductionMethod.class; net/minecraft/world/level/levelgen/structure/placement/AbstractSpreadingStructurePlacement.class; net/minecraft/world/level/levelgen/structure/placement/RandomSpreadStructurePlacement.class. Methods: RandomSpreadStructurePlacement.getPotentialStructureChunk; AbstractSpreadingStructurePlacement.isStructureChunk; ChunkGenerator.createStructures / tryGenerateStructure

    Evidence details

    Official server SHA-1 33680f5f2ac32864d6d7cf5e56a705fdb3e05f4c. Implementation inspected using CFR 0.152; reconstructed Java is not an original Mojang source publication. SHA-256 by archive member: net/minecraft/world/level/chunk/ChunkGenerator.class = 7e5145ec6e36cbc7af979e869d4947c85e4715b8d13105f1369f0a385c40851d; net/minecraft/world/level/levelgen/structure/placement/AbstractSpreadingStructurePlacement$ExclusionZone.class = eb0d49eb1ffb0714fbdb04abde954fbdbd50cfeafd411f593de8159a06488300; net/minecraft/world/level/levelgen/structure/placement/AbstractSpreadingStructurePlacement$FrequencyReducer.class = e2887ebf5f8937ca3b038d6e1c40bc1c77f983a97b5b7ed9bdcd78b59d103e82; net/minecraft/world/level/levelgen/structure/placement/AbstractSpreadingStructurePlacement$FrequencyReductionMethod.class = 3664480026b9e91c8235bdbf6d98fdbbb78586f8d0decee70f9ea788d3291a71; net/minecraft/world/level/levelgen/structure/placement/AbstractSpreadingStructurePlacement.class = 0775a5cd47242fafd7f9977a9cfb821a6fffe5d1defcbc3bf8cded7e2427a4a8; net/minecraft/world/level/levelgen/structure/placement/RandomSpreadStructurePlacement.class = 8fbeed7711f96285b9b39b2e8363ffaa6ea80dd03baea4c1e6fa98e90b7f8eb9

  5. Mojang Java 26.3: generation entry points ↗Decompiled game implementation · Java 26.3

    Inner archive META-INF/versions/26.3/server-26.3.jar: net/minecraft/world/level/levelgen/structure/Structure$GenerationContext.class; net/minecraft/world/level/levelgen/structure/Structure$GenerationStub.class; net/minecraft/world/level/levelgen/structure/Structure$StructureSettings$Builder.class; net/minecraft/world/level/levelgen/structure/Structure$StructureSettings.class; net/minecraft/world/level/levelgen/structure/Structure.class; net/minecraft/world/level/levelgen/structure/pools/JigsawPlacement$PieceState.class; net/minecraft/world/level/levelgen/structure/pools/JigsawPlacement$Placer.class; net/minecraft/world/level/levelgen/structure/pools/JigsawPlacement.class; net/minecraft/world/level/levelgen/structure/structures/JigsawStructure$1.class; net/minecraft/world/level/levelgen/structure/structures/JigsawStructure$MaxDistance.class; net/minecraft/world/level/levelgen/structure/structures/JigsawStructure.class. Methods: JigsawStructure.findGenerationPoint; Structure.findValidGenerationPoint; Structure.GenerationContext.isValidBiome; JigsawPlacement.addPieces

    Evidence details

    Official server SHA-1 33680f5f2ac32864d6d7cf5e56a705fdb3e05f4c. Implementation inspected using CFR 0.152; reconstructed Java is not an original Mojang source publication. SHA-256 by archive member: net/minecraft/world/level/levelgen/structure/Structure$GenerationContext.class = 0c4335baa022b0482299b5cc0a3d0492fd3160542640b2538a5b8934822cc12b; net/minecraft/world/level/levelgen/structure/Structure$GenerationStub.class = e7a25f7418cfbfafaa6ecc1558a4bacde160ab247be6997df4aef3288da76a52; net/minecraft/world/level/levelgen/structure/Structure$StructureSettings$Builder.class = e9b9a37f14f156749ceb686ab31f34954c3b65c0e9f1ff43cdebb508a72b1261; net/minecraft/world/level/levelgen/structure/Structure$StructureSettings.class = 5796d330ef7ea491ee64b34ccdfe6c08a62b71886441bd87cd327a2fc6188f80; net/minecraft/world/level/levelgen/structure/Structure.class = fa023ce735376b7042242948275a0869a7e22d30e5e4c5c6502b521578577188; net/minecraft/world/level/levelgen/structure/pools/JigsawPlacement$PieceState.class = 3566ead77b6d528b2c451409a51fea25598ea9c27c02e6832348d5df446b329c; net/minecraft/world/level/levelgen/structure/pools/JigsawPlacement$Placer.class = 29c8637ca117a33199db02f06b206c60b1b3947adf029654b3d1bd524eba4400; net/minecraft/world/level/levelgen/structure/pools/JigsawPlacement.class = 18b1d2ca2de608f60a30c8547315e0c5845047e5a1789d711d815ad6bbdc7da4; net/minecraft/world/level/levelgen/structure/structures/JigsawStructure$1.class = 8e8bc7f3527f38fcf408bb69496ff63f69f71c558c41c80a3d419d135327f96e; net/minecraft/world/level/levelgen/structure/structures/JigsawStructure$MaxDistance.class = ed76252263c711231b316b1cff170bfe048e008bf46af2cb75985d30ba7e9fc5; net/minecraft/world/level/levelgen/structure/structures/JigsawStructure.class = a8576ddbc0cf99b1e220ead439ce3f9aa373cd38400b77aa86273a5c3740598b

  6. Mojang Java 26.3: ancient city templates and data ↗Official game data · Java 26.3

    data/minecraft/worldgen/feature/sculk_patch_ancient_city.json; data/minecraft/worldgen/structure/ancient_city.json; data/minecraft/structure/ancient_city/**/*.nbt; data/minecraft/worldgen/template_pool/ancient_city/**/*.json; data/minecraft/worldgen/processor_list/ancient_city_generic_degradation.json; data/minecraft/worldgen/processor_list/ancient_city_start_degradation.json; data/minecraft/worldgen/processor_list/ancient_city_walls_degradation.json

    Evidence details

    Official server SHA-1 33680f5f2ac32864d6d7cf5e56a705fdb3e05f4c; inner META-INF/versions/26.3/server-26.3.jar SHA-256 a362163eec5d1612d520772bc16e5b39c09e3b234fdc045f56bf544284ee8ae6. NBT dimensions are unrotated saved template bounds (X × Y × Z), including air and connectors, not usable interior dimensions.

  7. Mojang Java 26.3: ancient city layout and encounter implementation ↗Decompiled game implementation · Java 26.3

    net.minecraft.world.level.block.entity.SculkShriekerBlockEntity; net.minecraft.world.level.block.SculkShriekerBlock; Ancient-city center pool and structures/sculk template pools; SculkShriekerBlockEntity.tryShriek, canRespond, tryRespond, trySummonWarden; SculkShriekerBlock default CAN_SUMMON state.

    Evidence details

    Official server SHA-1 33680f5f2ac32864d6d7cf5e56a705fdb3e05f4c; inner META-INF/versions/26.3/server-26.3.jar SHA-256 a362163eec5d1612d520772bc16e5b39c09e3b234fdc045f56bf544284ee8ae6. Official bytecode inspected through CFR 0.152; reconstructed implementation, not an original source checkout.

  8. Mojang Java 26.3: ancient city loot data ↗Official game data · Java 26.3

    Inner META-INF/versions/26.3/server-26.3.jar: data/minecraft/loot_table/chests/ancient_city.json; data/minecraft/loot_table/chests/ancient_city_ice_box.json

    Evidence details

    Verified official server SHA-1 33680f5f2ac32864d6d7cf5e56a705fdb3e05f4c. File SHA-256s: ancient_city.json: 5237c8e16fa99d10abd1f78819dda2a49a14777d375b7e456138dc68fe03af19; ancient_city_ice_box.json: 2ccadbb43e17003fa21a2c025d3f9b2d3c1443a64f046ae9aa648e46b42a3930. Table identity and conditional item rules are distinct from any particular generated container.

  9. Java 26.3 ancient city: calculated selection odds ↗Calculated from game data · Java 26.3

    Relevant /pools indices in the data reference; LootPool.addRandomItem/addRandomItems; UniformContainerBase.uniformFields; UniformGenerator.getIntUnsafe.

    Evidence details

    For direct unconditional weighted pools, chance of at least one selection is 1 minus the average of (1−weight/totalWeight)^n over inclusive uniform integer rolls. Values are theoretical table-invocation probabilities, not seed frequencies. Exact inputs: [{"itemId":"minecraft:enchanted_golden_apple","table":"data/minecraft/loot_table/chests/ancient_city.json","pool":0,"chance":0.08571439167709431,"fraction":"8994931456351417835/104940737259588550656","weight":1,"total":84,"rolls":[5,6,7,8,9,10]},{"itemId":"minecraft:echo_shard","table":"data/minecraft/loot_table/chests/ancient_city.json","pool":0,"chance":0.30403592916292466,"fraction":"15213849334603/50039642934603","weight":4,"total":84,"rolls":[5,6,7,8,9,10]},{"itemId":"minecraft:disc_fragment_5","table":"data/minecraft/loot_table/chests/ancient_city.json","pool":0,"chance":0.30403592916292466,"fraction":"15213849334603/50039642934603","weight":4,"total":84,"rolls":[5,6,7,8,9,10]},{"itemId":"minecraft:enchanted_book","table":"data/minecraft/loot_table/chests/ancient_city.json","pool":0,"chance":0.23725332720231268,"fraction":"140547336810113/592393533390848","weight":3,"total":84,"rolls":[5,6,7,8,9,10]},{"itemId":"minecraft:ward_armor_trim_smithing_template","table":"data/minecraft/loot_table/chests/ancient_city.json","pool":1,"chance":0.05,"fraction":"1/20","weight":4,"total":80,"rolls":[1]},{"itemId":"minecraft:silence_armor_trim_smithing_template","table":"data/minecraft/loot_table/chests/ancient_city.json","pool":1,"chance":0.0125,"fraction":"1/80","weight":1,"total":80,"rolls":[1]}]

  10. Mojang Java 1.20.1: inspected historical ancient city loot ↗Official game data · Java 1.20.1

    data/minecraft/loot_tables/chests/ancient_city.json

    Evidence details

    Limited comparison of the listed data files; no claim that all intermediate releases share either table. SHA-256s: ancient_city.json: 3b2904afe44adc8a304c12641900e4a831453d193a92a92ee13a2a65c9348c96

  11. Minecraft Wiki: Ancient City — pinned history ↗Minecraft Wiki · Java and Bedrock Revision 3805843

    History section, retaining edition, release grouping, development-version and experimental-toggle qualifiers.

    Evidence details

    Pinned article revision 3805843 from 2026-09-30T10:11:07Z. Historical claims only; not an audited game build or release-date source.

  12. Minecraft Wiki: Ancient City description ↗Minecraft Wiki · Java and Bedrock revision 3805843

    Opening description and History

    Evidence details

    Pinned article revision 3805843; retrieved October 1, 2026. Article history supports historical introductions; current generation and loot are audited separately from game data.

  13. Java Deep Dark Experimental Snapshot 1: release date ↗Minecraft Wiki · Java Deep Dark Experimental Snapshot 1

    Version infobox release date

    Evidence details

    Pinned community version article date; snapshots, betas and previews have their own release dates, separately from the full version.

  14. Java 22w13a: release date ↗Official game data · Java 22w13a

    /id; /releaseTime

    Evidence details

    Date belongs to the exact 22w13a build. Snapshot and prerelease dates are separate from the later full release; metadata does not prove the feature introduction.

  15. Java 22w14a: release date ↗Official game data · Java 22w14a

    /id; /releaseTime

    Evidence details

    Date belongs to the exact 22w14a build. Snapshot and prerelease dates are separate from the later full release; metadata does not prove the feature introduction.

  16. Java 1.19: release date ↗Official game data · Java 1.19

    /id; /releaseTime

    Evidence details

    Release metadata establishes its date, not feature introduction. Original Wiki history must support introduction separately.

  17. Bedrock 1.19.0: release date ↗Minecraft Wiki · Bedrock 1.19.0

    Version infobox release date

    Evidence details

    Historical date from the pinned Minecraft Wiki version article; introduction is separately attributed to each structure article history.

  18. Java 1.20: release date ↗Official documentation · Java 1.20

    Opening announcement: Trails & Tales Update will be coming to a device near you on June 7

    Evidence details

    Public release June 7, 2023. Mojang metadata retains releaseTime 2023-06-02T08:36:17+00:00; this earlier build timestamp must not be displayed as the public launch date.

  19. Java 1.21.6: release date ↗Official game data · Java 1.21.6

    /id; /releaseTime

    Evidence details

    Date belongs to the exact 1.21.6 build. Snapshot and prerelease dates are separate from the later full release; metadata does not prove the feature introduction.

  20. Java 26.1: release date ↗Official documentation · Java 26.1

    Published 3/24/26; Changes > Name Tags

    Evidence details

    Release metadata establishes its date, not feature introduction. Original Wiki history must support introduction separately.

  21. Java 26.3: release date ↗Official documentation · Java 26.3

    Published 9/15/26; Minecraft Java 26.3 Released

    Evidence details

    Release metadata establishes its date, not feature introduction. Original Wiki history must support introduction separately.

Item art uses vanilla Java 26.3 assets from the official client release. Icons retain their game version alongside the guide.

Descriptions adapted from the Minecraft Wiki retain its attribution under CC BY-NC-SA 3.0. Calculations and code analysis are SeedLookout research. Screenshot captions identify each capture. The seed table contains our published verified seeds; checking a location does not establish particular room contents or chest loot.