When creating worldgen json (such as file attached), the seed in custom dimensions does not seem to be used when creating that dimension, instead using world seed.
When using attached worldgen settings json file, teleporting between minecraft:overworld and minecraft:second_overworld dimensions shows they are both generated from the same seed, instead of having different seeds as defined.
Linked issues
testing discovered 1
Attachments
Comments 5
This bug blocks all usage of the custom worlds feature with existing worlds, unless you either use the same seed, or use the above workaround
(your overworld or custom dimension seed must match with this bug; this bug will cause unsuspecting users to have corruptly-generated chunks in new explorations of their world).
CAUSE and WORKAROUND:
However I believe I have discovered the root of the problem. The level.dat is merely not generated properly from the imported worldgen .json.
To see, create a dimension with a desired biome_source seed and a terrain seed that is different from the world seed, import the .json, and click Create World. Now, open the level.dat with an NBT editor such as https://irath96.github.io/webNBT/ . You will notice that the sub-seeds you specified for that dimension were clobbered and replaced by the root server seed! As a workaround, merely edit the NBT to fill in the two dimension-specific seeds with the desired ones, and replace the improperly-generated level.dat with the fixed one. Bugfix should hopefully be just as simple.
HOWEVER, this has highlighted a different issue. While dimension terrain generation and and biome_source successfully use any dimension-specific sub-seeds specific in the level.dat, structure generation DOES NOT use the dimension-specific seed. This appears to be a separate bug that I'm reporting now as MC-193147
I'm not sure why MC-193147 was closed despite me explicitly mentioning these details in comments in both bug reports. It is a separate bug (alternatively, if you wish to fold MC-193147 into this bug, you'd need to explicitly create a structures:{seed:...} in the spec). If a fixed level.dat fixes this issue and doesn't fix MC-193147, as I mentioned in both my comments, then logically it's probably a separate bug as I mentioned, or a design flaw, and not inherently a duplicate (except maybe in spirit), unless something extremely, extremely strange is going on.
However in imported dimensions (using datapacks) for minecraft 1.16 pre-release 3, the seed for biomes and terrain is fixed to what the file sets as the seed, and you can't leave the seed field out of the .json without it throwing an error. I feel that the world file seed should specify what generates in the imported dimension, otherwise all imported dimensions will be exactly the same and have no variety, ruining the exploration factor of imported extra dimensions.