Data Packs World Generation

Underworld Labyrinth

  • Structures
  • 5,917 views • 1 today
  • 513 downloads • 0 today
  • 25
  • 26
  • 12
Baroque Obama
Level 67 : High Grandmaster Architect
175
This pack adds an additional new structure to your Minecraft worlds - underworld labyrinths!

These sprawling maze structures are constructed from Blackstone variants, and they generate deep underneath the mountains in normal Mountains biomes. They're filled with mobs and treasure, some of which one would typically need to build a Nether Portal to find...

Each labyrinth structure is constructed from 13 smaller maze pieces, arranged in a diamond, like so:
X
|
X-X-X
| | |
X-X-X-X-X
| | |
X-X-X
|
X

There are 64 different maze pieces that the 13 can be chosen from when the labyrinth generates. This provides for treasure and mob variance, and ensures that no two labyrinths are the same.

Each maze piece contains exactly one chest, which holds exactly one item. There is:
•a 1 in 64 chance of a Block of Netherite
•a 1 in 32 chance of a Block of Diamond
•a 1 in 16 chance of a Block of Emerald
•a 1 in 8 chance of a Block of Gold
•a 1 in 4 chance of a Block of Iron
•a slightly better than 50/50 chance of a lump of Coal



There are, of course, more mobs than treasures. The labyrinth can be a grueling and hellish place, lit only by the impossible ambient light of Minecraft's depths...

Happy hunting!



Hint: Underworld Labyrinths use the structure type "minecraft:bastion_remnant", which otherwise can't be found in Overworld; hence, /locate minecraft:bastion_remnant while in Overworld will always find you an Underworld Labyrinth.
CompatibilityMinecraft 1.16
toMinecraft 1.17
Tags

  Have something to say?

Jasdan
10/15/2022 10:58 am
Level 4 : Apprentice Miner
Is this compatible with Minecraft 1.19.2?
World Generation isn't That different, but I don't want anything funny happening.
1
Baroque Obama
10/15/2022 7:34 pm
Level 67 : High Grandmaster Architect
I haven't tested it, but it might be. If it turns out to work, feel free to let me know :)
1
Spuduking
11/02/2021 5:41 pm
Level 34 : Artisan Procrastinator
Question: how did you get the maze to have air pockets? I'm working on a custom bastion, and no matter what I do, air gets filled in with stone. Idk if you'll see this, but thanks if you do!
1
Baroque Obama
11/02/2021 6:29 pm
Level 67 : High Grandmaster Architect
Before you save your structure file, you'll want to replace all minecraft:air with mincraft:cave_air. The default air functions like structure void rather than like air when structures are generated at generation time, which I suspect is a feature rather than a bug (because otherwise having multiple air versions would serve no purpose).
2
Spuduking
11/02/2021 6:32 pm
Level 34 : Artisan Procrastinator
I confused cave air with structure air, which only exists in bedrock! Thank you so much!
2
Baroque Obama
11/02/2021 7:06 pm
Level 67 : High Grandmaster Architect
Anytime! Feel free to DM me too if any other weird issues come up
1
Grenade_Man
05/30/2021 8:19 pm
Level 1 : New Miner
history
Error I received. Crash to Desktop heres the report. Looks to be a simple syntax issue with minecraft block ids.

I belive it may be in the nbt files somewhere. I verified it wasnt conflicting with any other datapacks I had since With my combined datapack it wasnt even generating at all. Thats on my end. But after seperating the too and using locate basiton_remnant, This error only occured when i loaded bastion remanants with this datapack enabled and all other modifciations to the mountain.json turned off in my other datapacks. So I think its a placement issue BUT it does generate the structure. I revisted the coords after disabling your datapack and my datapack did not cause a crash but the rest of the structure was in fact generated. So it must be a nbt file thats corrupted or something.
Report
---- Minecraft Crash Report ----
// You're mean.

Time: 5/30/21 5:15 PM
Description: Feature placement

java.lang.RuntimeException: com.mojang.brigadier.exceptions.CommandSyntaxException: Unknown block type 'minecraft:airminecraft:blackstone' at position 0: <--[​HERE]
at csj.a(SourceFile:37)
at ctb.a(SourceFile:391)
at ctb.a(SourceFile:234)
at coh.a(SourceFile:125)
at cro.a(SourceFile:83)
at cro.a(SourceFile:79)
at crv.a(SourceFile:76)
at bsv.a(SourceFile:356)
at bsv$$Lambda$4268/1016301699.accept(Unknown Source)
at java.util.stream.ForEachOps$ForEachOp$OfRef.accept(ForEachOps.java:184)
at java.util.stream.ReferencePipeline$2$1.accept(ReferencePipeline.java:175)
at java.util.stream.ReferencePipeline$3$1.accept(ReferencePipeline.java:193)
at java.util.stream.ReferencePipeline$3$1.accept(ReferencePipeline.java:193)
at it.unimi.dsi.fastutil.longs.LongIterator$$Lambda$4259/776418861.accept(Unknown Source)
at java.util.PrimitiveIterator$OfLong.forEachRemaining(PrimitiveIterator.java:189)
at it.unimi.dsi.fastutil.longs.LongIterator.forEachRemaining(LongIterator.java:53)
at java.util.Spliterators$IteratorSpliterator.forEachRemaining(Spliterators.java:1801)
at java.util.stream.AbstractPipeline.copyInto(AbstractPipeline.java:512)
at java.util.stream.AbstractPipeline.wrapAndCopyInto(AbstractPipeline.java:502)
at java.util.stream.ForEachOps$ForEachOp.evaluateSequential(ForEachOps.java:151)
at java.util.stream.ForEachOps$ForEachOp$OfRef.evaluateSequential(ForEachOps.java:174)
at java.util.stream.AbstractPipeline.evaluate(AbstractPipeline.java:234)
at java.util.stream.ReferencePipeline.forEach(ReferencePipeline.java:418)
at bsv.a(SourceFile:355)
at cfy.a(SourceFile:220)
at cga.c(SourceFile:89)
at cga$$Lambda$1742/585624671.doWork(Unknown Source)
at cga.a(SourceFile:219)
at zs.lambda$null$18(ChunkManager.java:675)
at zs$$Lambda$4245/394231066.apply(Unknown Source)
at com.mojang.datafixers.util.Either$Left.map(Either.java:38)
at zs.lambda$chunkGenerate$20(ChunkManager.java:673)
at zs$$Lambda$4230/1433493427.apply(Unknown Source)
at java.util.concurrent.CompletableFuture.uniCompose(CompletableFuture.java:952)
at java.util.concurrent.CompletableFuture$UniCompose.tryFire(CompletableFuture.java:926)
at java.util.concurrent.CompletableFuture$Completion.run(CompletableFuture.java:442)
at zu.b(SourceFile:58)
at zu$$Lambda$4243/1265112574.run(Unknown Source)
at aoe.e(SourceFile:94)
at aoe.a(SourceFile:137)
at aoe.run(SourceFile:105)
at java.util.concurrent.ForkJoinTask$RunnableExecuteAction.exec(ForkJoinTask.java:1402)
at java.util.concurrent.ForkJoinTask.doExec(ForkJoinTask.java:289)
at java.util.concurrent.ForkJoinPool$WorkQueue.runTask(ForkJoinPool.java:1056)
at java.util.concurrent.ForkJoinPool.runWorker(ForkJoinPool.java:1689)
at java.util.concurrent.ForkJoinWorkerThread.run(ForkJoinWorkerThread.java:157)
Caused by: com.mojang.brigadier.exceptions.CommandSyntaxException: Unknown block type 'minecraft:airminecraft:blackstone' at position 0: <--[​HERE]


A detailed walkthrough of the error, its code path and all known details is as follows:
---------------------------------------------------------------------------------------

-- Head --
Thread: Server thread
Stacktrace:
at csj.a(SourceFile:37)
at ctb.a(SourceFile:391)
at ctb.a(SourceFile:234)
at coh.a(SourceFile:125)
at cro.a(SourceFile:83)
at cro.a(SourceFile:79)
at crv.a(SourceFile:76)
at bsv.a(SourceFile:356)
at bsv$$Lambda$4268/1016301699.accept(Unknown Source)
at java.util.stream.ForEachOps$ForEachOp$OfRef.accept(ForEachOps.java:184)
at java.util.stream.ReferencePipeline$2$1.accept(ReferencePipeline.java:175)
at java.util.stream.ReferencePipeline$3$1.accept(ReferencePipeline.java:193)
at java.util.stream.ReferencePipeline$3$1.accept(ReferencePipeline.java:193)
at it.unimi.dsi.fastutil.longs.LongIterator$$Lambda$4259/776418861.accept(Unknown Source)
at java.util.PrimitiveIterator$OfLong.forEachRemaining(PrimitiveIterator.java:189)
at it.unimi.dsi.fastutil.longs.LongIterator.forEachRemaining(LongIterator.java:53)
at java.util.Spliterators$IteratorSpliterator.forEachRemaining(Spliterators.java:1801)
at java.util.stream.AbstractPipeline.copyInto(AbstractPipeline.java:512)
at java.util.stream.AbstractPipeline.wrapAndCopyInto(AbstractPipeline.java:502)
at java.util.stream.ForEachOps$ForEachOp.evaluateSequential(ForEachOps.java:151)
at java.util.stream.ForEachOps$ForEachOp$OfRef.evaluateSequential(ForEachOps.java:174)
at java.util.stream.AbstractPipeline.evaluate(AbstractPipeline.java:234)
at java.util.stream.ReferencePipeline.forEach(ReferencePipeline.java:418)

-- Feature --
Details:
Id: minecraft:bastion_remnant
Description: cio@67857a20
Stacktrace:
at bsv.a(SourceFile:355)

-- Generation --
Details:
CenterX: 626
CenterZ: -21
Seed: 8380398998956926584
Biome: bsv@47211e93
Stacktrace:
at cfy.a(SourceFile:220)
at cga.c(SourceFile:89)
at cga$$Lambda$1742/585624671.doWork(Unknown Source)
at cga.a(SourceFile:219)

-- Chunk to be generated --
Details:
Location: 626,-21
Position hash: -90194312590
Generator: cho@3a8f7a5b
Stacktrace:
at zs.lambda$null$18(ChunkManager.java:675)
at zs$$Lambda$4245/394231066.apply(Unknown Source)
at com.mojang.datafixers.util.Either$Left.map(Either.java:38)
at zs.lambda$chunkGenerate$20(ChunkManager.java:673)
at zs$$Lambda$4230/1433493427.apply(Unknown Source)
at java.util.concurrent.CompletableFuture.uniCompose(CompletableFuture.java:952)
at java.util.concurrent.CompletableFuture$UniCompose.tryFire(CompletableFuture.java:926)
at java.util.concurrent.CompletableFuture$Completion.run(CompletableFuture.java:442)
at zu.b(SourceFile:58)
at zu$$Lambda$4243/1265112574.run(Unknown Source)
at aoe.e(SourceFile:94)

-- Affected level --
Details:
All players: 1 total; [​aah['DAChubon'/2247, l='ServerLevel[labyrtinth test]', x=10032.50, y=110.13, z=-271.50]]
Chunk stats: ServerChunkCache: 3468
Level dimension: minecraft:overworld
Level spawn location: World: (0,82,0), Chunk: (at 0,5,0 in 0,0; contains blocks 0,0,0 to 15,255,15), Region: (0,0; contains chunks 0,0 to 31,31, blocks 0,0,0 to 511,255,511)
Level time: 2995 game time, 2995 day time
Level name: labyrtinth test
Level game mode: Game mode: creative (ID 1). Hardcore: false. Cheats: true
Level weather: Rain time: 19383 (now: false), thunder time: 43021 (now: false)
Known server brands: vanilla
Level was modded: true
Level storage version: 0x04ABD - Anvil
Stacktrace:
at net.minecraft.server.MinecraftServer.b(SourceFile:874)
at net.minecraft.server.MinecraftServer.a(SourceFile:811)
at eng.a(IntegratedServer.java:118)
at net.minecraft.server.MinecraftServer.w(SourceFile:670)
at net.minecraft.server.MinecraftServer.a(SourceFile:257)
at net.minecraft.server.MinecraftServer$$Lambda$4149/570766259.run(Unknown Source)
at java.lang.Thread.run(Thread.java:745)


2
Baroque Obama
05/30/2021 8:50 pm
Level 67 : High Grandmaster Architect
Hey, thanks very much for catching this, and especially for the log! I was able to locate the error and iron it out; I've uploaded a fixed version of the pack, if you'd like to download again.

Thanks again :)
1
Grenade_Man
05/31/2021 6:18 pm
Level 1 : New Miner
Of course! Its a really intresting datapack and I want to use it. I feel though that not enough people who find these sort of bugs take the time to look thru the crash logs to figure it out and report it. Im just glad the report made it easy for you to update it!
1
Baroque Obama
05/31/2021 6:58 pm
Level 67 : High Grandmaster Architect
history
Lol true. The log was helpful for sure - it helped me identify that at least one of the 64 maze pieces had a faulty jigsaw.

While I found it pretty early (in piece #5), I still had to check all 64 pieces in case I'd done it twice lol... but thats okay. I totally agree that more people should post logs like you did, but in all fairness, this community is much better than most :).
1

Welcome