The bug
When generating a buffet world that has the 'Cave' generation type and put a biome on it that has structures, they generate above the bedrock roof thus making them inaccessible without cheats.
Attachments
Comments 18
The reason this happens is because the game searches from the top to the bottom of the world to find a surface to place the structure on, a way to fix this is to make it ignore bedrock as a valid surface only on cave buffet worlds.
Same problem with mineshaft, castles, end ship in different worlds with world generator "Buffer" with world type "Caves" and "Floating islands".
This has also been known to happen with bonus chests. See MC-135169
So, this has been marked “won’t fix”, but I’m going to make suggestions for fixes anyway.
Maybe the best way to fix this would be some height arguments for structures, like a “min height” “max height” value to pick more acutely where it should be. Maybe it’s something where, when creating a structure, you can pick two generation types. One being whatever it does now where it just starts high and goes down to a valid spot, the second option being using the min and max that I proposed (you’d pick the type in the datapack).
Maybe logical height ties into this some how.
However, couldn’t bedrock just be made an invalid structure spawn location (maybe this could be in some tag so datapacks could change this if they want).
I may be speaking nonsense since I don’t really know much about this stuff, but I just recently started looking into making custom dimensions and this looks like it could be a problem down the line.
edit: what does the Nether do to stop structures from being on the bedrock roof? Is that hardcoded or can that just be done with other structures through datapacks?
Still an issue in 18w20a