mojira.dev
MC-187716

Nether biome surface builder types incorrectly assume the world height is 128 blocks

This bug happens because the surface builder types for Nether biomes assume the world is 128 blocks tall.
Other surface builder types - which do not make this assumption - do not have this issue.
This applies to these surface builder types:
minecraft:nether_forest
minecraft:soul_sand_valley
minecraft:basalt_deltas
Likely it also applies to minecraft:nether, but I have not verified this personally.

Linked issues

Attachments

Comments 28

I experienced the same bug, it's way more clear if you set default_block to something else like stone. You get a very obvious hard line at y=128 where the actual nether biomes no longer generate most of their features and instead it's just a stone noise map. In this screenshot you can see I'm in a soul sand valley, but above y=128 there's no soul sand at all. Features like warped/crimson fungus trees and nether fossils sometimes generate slightly above y=128. Also, almost all of the Basalt Deltas generate above y=128; however, they generate without blackstone.

[media]

Partially valid.

Features like ores, fire patches, lava springs, flowstone clusters and mushrooms are configured on a feature level, having an altitude cap of 128. You can manually overwrite these and raise the cap to 256, also manually doubling the spawn rates to keep the feature density of original terrain. Ores and other features will normally generate above regular height by doing so. It's logical for these to be configured that way by default, considering the ore spawns above bedrock ceiling would always fail.

The only problem are surface builders used by nether biomes, which unlike the overworld surface builders don't extend beyond level 127. You can see that by changing surface builder of say warped forest to the one used by mushroom island - mycelium has no issues spawning above level 127. There seems to be a hard cap coded into the surface builders of wart forests, soul sand valleys and basalt deltas, added before devs considered they would be used for custom terrain generation exceeding that height. Unless raising or removing the cap costs a significant loss in performance, it would be great to have that altered.

 

I think it wouldn't decrease game performence, since surface builder only checks if blocks can be repleaced by its values, so it wouldn't even try to do so above the bedrock layer, where everythig is air. I can support this thesis by my observations on how this works. If we try to increse the nether height, surface builder will always replace 128 level where it is possible, even if there is a netherrack one block above.

It'd be modifiable if we get surface types (minecraft:nether_forest, minecraft:basalt_deltas, minecraft:soul_sand_valley and minecraft:nether) in our hand. It seems like those types have hard-coded height limit, because after changing type to, for example, minecraft:default from nether_forest, crimson and warped forests will have nylium on ground above 128 level, however, since we changed it from minecraft:nether_forest, wart blocks won't generate both on surface and on ceilling. Same with deltas and valley. Their features won't generate, unless they're specified somewhere

Giving us surface types wouldn't hurt game performance at all actually and would fix all the issues of this kind.

@BillyGalbreath you showed the exact thing, this issue is about. You didn't "fix" this

The 3 classes used for nether surface builders are hardcoded to 127 rather than the configured 'k' value

https://github.com/pl3xgaming/Purpur/blob/ver/1.16.2/patches/server/0127-Use-configured-height-for-nether-surface-builders.patch

Using 'k' instead of 127 fixes this issue as seen here https://www.youtube.com/watch?v=7m6Fc-aVQoA

18 more comments

Haven't checked last snapshot but in 21w44a this appears to have been fixed!! 

[media]

I can confirm that 21w44a has fixed 256 tall nether generation with an updated version of my data pack. Soul sand/soil, basalt deltas, crimson nylium, and warped nylium all generate up to the custom height limit,

seems to be fixed, but biomes seem to generate 2D and not 3D

3D noise was never added in the nether.

CalXee nether uses 3d noise since 1.16, but it's on a small scale. Like blending on Y level can extend to 3-4 blocks

verified_gamer

(Unassigned)

Confirmed

Low

Custom Worlds

Surface_builders, custom-worldgen

1.16 Pre-release 2, 1.16 Release Candidate 1, 1.16, 1.16.1, 20w27a, ..., 21w20a, 1.17 Pre-release 2, 1.17 Release Candidate 1, 21w42a, 21w43a

21w44a

Retrieved