I've been testing updating my server's world from version 1.17 to 1.18 pre-release 1 and have noticed that the dimensions do not load properly. This save is really two saves combined into one, meaning two overworlds, two nethers, and one end. The original world was created in version 1.14 and was updated throughout the years. Once updated, the default nether, along with second overworld, second nether, and default end were all inaccessible.
This was partially solved by defining a custom dimension in the minecraft namespace that overwrites the default dimension's configuration. To make the default nether load once again, a custom dimension was defined as:
{
"type": "minecraft:the_nether",
"generator": {
"biome_source": {
"type": "minecraft:multi_noise",
"preset": "minecraft:the_nether"
},
"seed": 3268689782729909057,
"settings": "minecraft:the_nether",
"type": "minecraft:noise"
}
}
In order to load the second overworld, the biome source "type" was changed from "minecraft:vanilla_layered" to "minecraft:multi_noise". The second save's dimensions were defined in a separate namespace.
I would think this is an issue with the world updating feature not checking custom dimensions when updating and as a result, the outdated info causes the world to not load said dimensions.
UPDATE:
Starting in pre-release 4, this solution no longer works, the custom dimensions are working however the nether and end aren't.
UPDATE pre-release 6:
As of the latest pre-release this issue still shows up the same way as before.
Attachments
Comments 7
I've updated the ticket with a newly generated world created in 1.17 with a datapack that defines two additional dimensions. When loaded into 1.17 or 1.17.1 singleplayer, commands are able to be executed in these two additional dimensions. However when updating to any of the 1.18 pre-releases, you will notice that commands will only be able to be executed in the minecraft:overworld dimension and the custom nether defined dimension, labelled connecticut:bridgeport.
Additionally I've loaded the same world with a slightly modified datapack, changing the use of minecraft:vanilla_layered to minecraft:multi_noise as part of the biome_source. When loaded into 1.18 pre-release 5 it appears to work. However when upgrading in a server setting, with or without this modified datapack both minecraft:the_nether and minecraft:the_end dimensions are inaccessible.
I have created two custom dimension datapacks and attached them to this comment. One of them is for 1.17 and one of them is for 1.18. They both contain the custom dimensions connecticut:hartford and connecticut:bridgeport, where connecticut:hartford is an overworld-like dimension and connecticut:bridgeport is a nether-like dimension.
I generated a new, vanilla world on a fresh 1.17 server with no datapacks installed, then upgraded the server.jar to 1.18-pre5. I then installed the customdimensions1.18 datapack and started the server up and all expected dimensions were present: the 3 vanilla dimensions and the 2 custom dimensions.
I then generated a new world on a 1.17 server, but this time with the customdimensions1.17 datapack installed. Once again, all five expected dimensions appear. But this time, when I upgrade the server.jar to 1.18-pre5 and swap the datapack for customdimensions1.18, the only dimensions that appear are minecraft:overworld, connecticut:hartford, and connecticut:bridgeport.
[media][media]This issue is still happening for me in 1.18-pre8. Steps to reproduce:
Upgrade datapack to 1.18 dimension format
Upgrade server.jar
When the server starts up for the first time, this error is printed to the console (keep in mind, this is with an updated datapack with no references to the vanilla_layered biome type):
[ServerMain/ERROR]: WorldGenSettings: Unknown registry key in ResourceKey[minecraft:root / minecraft:worldgen/biome_source]: minecraft:vanilla_layered missed input: {"connecticut:hartford":{generator:{biome_source:{large_biomes:0b,seed:-152246528000119912L,type:"minecraft:vanilla_layered"},seed:-152246528000119912L,settings:"minecraft:overworld",type:"minecraft:noise"},type:"minecraft:overworld"
}}
The only places where that data still exists are the world's level.dat and level.dat_old files. I found that deleting both files before upgrading the server actually made that error not appear, and I was able to load all 3 vanilla dimensions, but not my 2 custom dimensions. Then I stopped the server and launched it again and all 5 dimensions loaded!
I would also like to note that while loading the world in pre8 I am now getting this error while the world is "Preparing spawn area" (this could be an unrelated bug, though):
[Server thread/ERROR]: Invalid bounding box data, inverted bounds for: deh{minX=2147483647, minY=2147483647, minZ=2147483647, maxX=-2147483648, maxY=-2147483648, maxZ=-2147483648
}[12:39:51] [Server thread/ERROR]: Exception loading structure piece with id minecraft:jigsaw
java.lang.IllegalStateException: Invalid call to EmtyPoolElement.getBoundingBox, filter me!
at dbr.a(SourceFile:39) ~[server-1.18-pre8.jar:?]
at dew.<init>(SourceFile:57) ~[server-1.18-pre8.jar:?]
at dfo.a(SourceFile:74) ~[server-1.18-pre8.jar:?]
at cyi.a(SourceFile:141) ~[server-1.18-pre8.jar:?]
at cqv.a(SourceFile:459) ~[server-1.18-pre8.jar:?]
at cqv.a(SourceFile:197) ~[server-1.18-pre8.jar:?]
at acv.m(SourceFile:586) ~[server-1.18-pre8.jar:?]
at java.util.concurrent.CompletableFuture$AsyncSupply.run(CompletableFuture.java:1768) ~[?:?]
at auh.c(SourceFile:151) ~[server-1.18-pre8.jar:?]
at adg$b.c(SourceFile:552) ~[server-1.18-pre8.jar:?]
at auh.y(SourceFile:125) ~[server-1.18-pre8.jar:?]
at adg$b.y(SourceFile:561) ~[server-1.18-pre8.jar:?]
at adg.d(SourceFile:282) ~[server-1.18-pre8.jar:?]
at net.minecraft.server.MinecraftServer.bf(SourceFile:768) ~[server-1.18-pre8.jar:?]
at net.minecraft.server.MinecraftServer.y(SourceFile:756) ~[server-1.18-pre8.jar:?]
at auh.c(SourceFile:134) ~[server-1.18-pre8.jar:?]
at net.minecraft.server.MinecraftServer.x(SourceFile:741) ~[server-1.18-pre8.jar:?]
at net.minecraft.server.MinecraftServer.b(SourceFile:499) ~[server-1.18-pre8.jar:?]
at net.minecraft.server.MinecraftServer.f_(SourceFile:330) ~[server-1.18-pre8.jar:?]
at acj.e(SourceFile:182) ~[server-1.18-pre8.jar:?]
at net.minecraft.server.MinecraftServer.w(SourceFile:657) ~[server-1.18-pre8.jar:?]
at net.minecraft.server.MinecraftServer.a(SourceFile:270) ~[server-1.18-pre8.jar:?]
at java.lang.Thread.run(Thread.java:833) [?:?]
[12:39:51] [Server thread/ERROR]: Invalid bounding box data, inverted bounds for: deh{minX=2147483647, minY=2147483647, minZ=2147483647, maxX=-2147483648, maxY=-2147483648, maxZ=-2147483648
}[12:39:51] [Server thread/ERROR]: Exception loading structure piece with id minecraft:jigsaw
java.lang.IllegalStateException: Invalid call to EmtyPoolElement.getBoundingBox, filter me!
at dbr.a(SourceFile:39) ~[server-1.18-pre8.jar:?]
at dew.<init>(SourceFile:57) ~[server-1.18-pre8.jar:?]
at dfo.a(SourceFile:74) ~[server-1.18-pre8.jar:?]
at cyi.a(SourceFile:141) ~[server-1.18-pre8.jar:?]
at cqv.a(SourceFile:459) ~[server-1.18-pre8.jar:?]
at cqv.a(SourceFile:197) ~[server-1.18-pre8.jar:?]
at acv.m(SourceFile:586) ~[server-1.18-pre8.jar:?]
at java.util.concurrent.CompletableFuture$AsyncSupply.run(CompletableFuture.java:1768) ~[?:?]
at auh.c(SourceFile:151) ~[server-1.18-pre8.jar:?]
at adg$b.c(SourceFile:552) ~[server-1.18-pre8.jar:?]
at auh.y(SourceFile:125) ~[server-1.18-pre8.jar:?]
at adg$b.y(SourceFile:561) ~[server-1.18-pre8.jar:?]
at adg.d(SourceFile:282) ~[server-1.18-pre8.jar:?]
at net.minecraft.server.MinecraftServer.bf(SourceFile:768) ~[server-1.18-pre8.jar:?]
at net.minecraft.server.MinecraftServer.y(SourceFile:756) ~[server-1.18-pre8.jar:?]
at auh.c(SourceFile:134) ~[server-1.18-pre8.jar:?]
at net.minecraft.server.MinecraftServer.x(SourceFile:741) ~[server-1.18-pre8.jar:?]
at net.minecraft.server.MinecraftServer.b(SourceFile:499) ~[server-1.18-pre8.jar:?]
at net.minecraft.server.MinecraftServer.f_(SourceFile:330) ~[server-1.18-pre8.jar:?]
at acj.e(SourceFile:182) ~[server-1.18-pre8.jar:?]
at net.minecraft.server.MinecraftServer.w(SourceFile:657) ~[server-1.18-pre8.jar:?]
at net.minecraft.server.MinecraftServer.a(SourceFile:270) ~[server-1.18-pre8.jar:?]
at java.lang.Thread.run(Thread.java:833) [?:?]
[12:39:51] [Server thread/ERROR]: Invalid bounding box data, inverted bounds for: deh{minX=2147483647, minY=2147483647, minZ=2147483647, maxX=-2147483648, maxY=-2147483648, maxZ=-2147483648
}[12:39:51] [Server thread/ERROR]: Exception loading structure piece with id minecraft:jigsaw
java.lang.IllegalStateException: Invalid call to EmtyPoolElement.getBoundingBox, filter me!
at dbr.a(SourceFile:39) ~[server-1.18-pre8.jar:?]
at dew.<init>(SourceFile:57) ~[server-1.18-pre8.jar:?]
at dfo.a(SourceFile:74) ~[server-1.18-pre8.jar:?]
at cyi.a(SourceFile:141) ~[server-1.18-pre8.jar:?]
at cqv.a(SourceFile:459) ~[server-1.18-pre8.jar:?]
at cqv.a(SourceFile:197) ~[server-1.18-pre8.jar:?]
at acv.m(SourceFile:586) ~[server-1.18-pre8.jar:?]
at java.util.concurrent.CompletableFuture$AsyncSupply.run(CompletableFuture.java:1768) ~[?:?]
at auh.c(SourceFile:151) ~[server-1.18-pre8.jar:?]
at adg$b.c(SourceFile:552) ~[server-1.18-pre8.jar:?]
at auh.y(SourceFile:125) ~[server-1.18-pre8.jar:?]
at adg$b.y(SourceFile:561) ~[server-1.18-pre8.jar:?]
at adg.d(SourceFile:282) ~[server-1.18-pre8.jar:?]
at net.minecraft.server.MinecraftServer.bf(SourceFile:768) ~[server-1.18-pre8.jar:?]
at net.minecraft.server.MinecraftServer.y(SourceFile:756) ~[server-1.18-pre8.jar:?]
at auh.c(SourceFile:134) ~[server-1.18-pre8.jar:?]
at net.minecraft.server.MinecraftServer.x(SourceFile:741) ~[server-1.18-pre8.jar:?]
at net.minecraft.server.MinecraftServer.b(SourceFile:499) ~[server-1.18-pre8.jar:?]
at net.minecraft.server.MinecraftServer.f_(SourceFile:330) ~[server-1.18-pre8.jar:?]
at acj.e(SourceFile:182) ~[server-1.18-pre8.jar:?]
at net.minecraft.server.MinecraftServer.w(SourceFile:657) ~[server-1.18-pre8.jar:?]
at net.minecraft.server.MinecraftServer.a(SourceFile:270) ~[server-1.18-pre8.jar:?]
at java.lang.Thread.run(Thread.java:833) [?:?]
[12:39:51] [Server thread/ERROR]: Invalid bounding box data, inverted bounds for: deh{minX=2147483647, minY=2147483647, minZ=2147483647, maxX=-2147483648, maxY=-2147483648, maxZ=-2147483648
}[12:39:51] [Server thread/ERROR]: Exception loading structure piece with id minecraft:jigsaw
java.lang.IllegalStateException: Invalid call to EmtyPoolElement.getBoundingBox, filter me!
at dbr.a(SourceFile:39) ~[server-1.18-pre8.jar:?]
at dew.<init>(SourceFile:57) ~[server-1.18-pre8.jar:?]
at dfo.a(SourceFile:74) ~[server-1.18-pre8.jar:?]
at cyi.a(SourceFile:141) ~[server-1.18-pre8.jar:?]
at cqv.a(SourceFile:459) ~[server-1.18-pre8.jar:?]
at cqv.a(SourceFile:197) ~[server-1.18-pre8.jar:?]
at acv.m(SourceFile:586) ~[server-1.18-pre8.jar:?]
at java.util.concurrent.CompletableFuture$AsyncSupply.run(CompletableFuture.java:1768) ~[?:?]
at auh.c(SourceFile:151) ~[server-1.18-pre8.jar:?]
at adg$b.c(SourceFile:552) ~[server-1.18-pre8.jar:?]
at auh.y(SourceFile:125) ~[server-1.18-pre8.jar:?]
at adg$b.y(SourceFile:561) ~[server-1.18-pre8.jar:?]
at adg.d(SourceFile:282) ~[server-1.18-pre8.jar:?]
at net.minecraft.server.MinecraftServer.bf(SourceFile:768) ~[server-1.18-pre8.jar:?]
at net.minecraft.server.MinecraftServer.y(SourceFile:756) ~[server-1.18-pre8.jar:?]
at auh.c(SourceFile:134) ~[server-1.18-pre8.jar:?]
at net.minecraft.server.MinecraftServer.x(SourceFile:741) ~[server-1.18-pre8.jar:?]
at net.minecraft.server.MinecraftServer.b(SourceFile:499) ~[server-1.18-pre8.jar:?]
at net.minecraft.server.MinecraftServer.f_(SourceFile:330) ~[server-1.18-pre8.jar:?]
at acj.e(SourceFile:182) ~[server-1.18-pre8.jar:?]
at net.minecraft.server.MinecraftServer.w(SourceFile:657) ~[server-1.18-pre8.jar:?]
at net.minecraft.server.MinecraftServer.a(SourceFile:270) ~[server-1.18-pre8.jar:?]
at java.lang.Thread.run(Thread.java:833) [?:?]
This bug is still happening in RC2, and the workaround of deleting the level.dat and level.dat_bak files still works, too. Something else I've noticed is that new caves do not generate below y=0 in existing chunks in custom dimensions, but they do generate in newly generated chunks.
Can confirm