Custom world generation

(Redirected from Custom world)
Jump to navigation Jump to search
This article is about controlling world generation using data packs. For the vanilla world generation, see World generation.
For the world type between Java Editions 1.16 and 1.19.3, see Custom.
For the world type before Java Edition 1.13, see Old Customized.
This feature is exclusive to Java Edition.
 

Custom world generation allows data packs to change how the world generates.

World preset and dimension[edit | edit source]

A world preset controls what dimensions a world has. Before 1.19 (22w11a), dimensions were defined in the dimension folder rather than in the world preset. Although in the current version the world preset is recommended, the dimension folder is still supported.

A world preset or dimension define what generator (noise, debug or superflat) is used in a dimension. If it is noise, they define what noise settings and biomes are used and how the biomes are placed.

Noise settings[edit | edit source]

Main article: Noise settings

Noise settings are for generating the shape of the terrain and noise caves, and what blocks the terrain is generated with. They are used by the minecraft:noise generator in a dimension.

Density function[edit | edit source]

Main article: Density function

A density function provides position-dependent values for the noise router.

Noise[edit | edit source]

Main article: Noise

A noise can be referenced by a density function and surface rule.

Biome[edit | edit source]

Main article: Biome definition

A biome is a region in a dimension with distinct features, carvers, climates, spawned mobs, ambient sound and music, and sky, water, grass and foliage colors.

Carver[edit | edit source]

Main article: Carver definition

Carvers are used to add carver caves and canyons. Note that noise caves are generated by noise settings.

Features[edit | edit source]

Features are small decorations that can at most write to a 3×3 chunk area centered on the placement chunk. They're locally placed per chunk and cannot be searched for using commands. Examples are trees, flowers, ore, etc.

Structure[edit | edit source]

Structures are large decorations that can at most write to a 256×256×256 block area centered on the structure start. They're placed globally and spaced out in a randomized grid (or in concentric rings for strongholds), and can be scanned for and found using /locate. Structures can affect terrain shaping by adding or removing terrain around structure pieces.

History[edit | edit source]

[hide]Java Edition
1.16.220w28aAdded support for custom world generation.
Added template for custom world generation on GitHub.
1.16.220w29aNoise settings can also be changed in worldgen.
1.18.222w06aAdded tag field to structure noise settings.
1.18.2 Pre-release 1Added noise_router to noise settings.
Moved structure generation settings to separate files from noise settings.
1.1922w11aAdded spawn_target field in noise settings, which is a list of climate target points.
Removed the terrain_shaper field in the noise field in noise settings. The terrain shaper splines have been moved to density functions.
22w12aRemoved the top_slide, bottom_slide and sampling fields in the noise field in noise settings. Instead, these configurations are moved to density functions.
1.19.322w42aWorld generation data now stored in data/minecraft/worldgen in client.jar.
Template for custom world generation on GitHub no longer updates.

Navigation[edit | edit source]