Skip to content

Surface Height Calculation

Jochen Jacobs edited this page Aug 26, 2023 · 1 revision

To allow the map to calculate the surface height, a special 2d density function that maps x,z to the desired y value is used. If you use the default noise settings name (minecraft:overworld) and the terrain is generated in a normal way from the minecraft:overworld/offset density function (spline), you don't need to do anything. Otherwise you might need to override this special density function. The name of this density function is determined as follows:

Given noise settings [namespace]:[path/to]/[noise_setting1] and dimension [test]:[dir]/[dimension1], the Map will look in the following places for a 2d density function with maps x,z to surface height:

  • [namespace]:[path/to]/[noise_settings1]/snowcapped_surface
  • [namespace]:[path/to]/[dimension1]_[noise_settings1]/snowcapped_surface
  • [namespace]:snowcapped_surface
  • minecraft:snowcapped_surface

(note the snowcapped_surface name comes from Snowcapped which uses the same files for its map)

There are build in density functions:

  • minecraft:overworld/snowcapped_surface (= minecraft:overworld/offset * 128 + 128)
  • minecraft:overworld_amplified/snowcapped_surface (= minecraft:overworld_amplified/offset * 128 + 128)
  • minecraft:overworld_large_biomes/snowcapped_surface (= minecraft:overworld_large_biomes/offset * 128 + 128)

You can find those here.


This is done as there is no easy way for the Map to determine the terrain height automatically:

  • depth=0 might break if you choose to use depth differently (i.e. only based on y level)
  • inital_density_without_jaggedness in vanilla also depends on the factor and requires "magic numbers" to get working correctly for vanilla. Datapacks might also mess with it for other effects.
  • final_density is too slow to calculate
Clone this wiki locally