Custom

Customized is a world type that can change the generation of the Overworld, The Nether, and The End and add new Customized dimensions. It can be edited via JSON files.

Access
Custom world generation works using JSON files, which need to be imported before world creation.

In the world creation menu, go to more options and select the "Import World" option. Then, select a world generation JSON file. A screen will pop up, warning users that custom worlds are experimental. Click "Yes" to continue.

The only way to access added dimensions is through commands, such as, which will teleport the player to the specified dimension (see ).

JSON format
Custom generation files take the following format:


 * The root tag.
 * Can be true or false. Whether the world has a bonus chest or not (equivalent to bonus chest option).
 * : Can be true or false. Whether structures should be generated or not (equivalent to generate structures option).
 * : The numerical seed of the world.
 * The custom world preset that was used to generate the world when it was an old customized world. Only exists for old customized worlds.
 * A list of the dimensions in this world where the key is the namespace id of the dimension.
 * A dimension. The dimensions minecraft:overworld, minecraft:the_nether and minecraft:the_end are required for a well functioning world. Any other namespaced ID is allowed for custom dimensions.
 * This can be a list of options for the dimensions OR the namespace id of one of the default dimensions as a string, the dimensions will the use the settings of the specified dimension. Note: if the same namespace id of a default dimension is used in multiple dimensions, the game will crash upon generation.
 * Can be true or false. Whether the dimensions behaves like the nether (water evaporates and sponges dry) or not. Also causes lava to spread thinner.
 * : Can be true or false. When false, compasses will spin randomly. When true, nether portals can spawn zombified piglins.
 * : Can be true or false. Determines whether the dimension is treated as eight meters per block like in the Nether.
 * : Can be true or false. Whether the dimension has skylight access or not.
 * : Can be true or false. Whether the dimension has a bedrock ceiling or not. When true, causes lava to spread faster.
 * : How much light the dimension has, default is 0.5 in the demo file (for upper and lower bounds as well as precise effect).
 * : Can be false or any integer from 0 to 24000. If this is set to a number, the time of the day will always be the specified value. However, in at least some worlds, false is interpreted as 0, giving constant sunrise. To ensure a normal time cycle, leave the attribute undefined (i.e, do not include it)
 * : Generation settings used for that dimension.
 * The ID of the generator.
 * Other compounds (see below)

Required fields for each value of type. The root tag is the value of and the fields are the other tags of the  compound

example:
 * noise – Default generator settings. Used in minecraft:overworld, minecraft:the_nether,  and minecraft:the_end with the "World Type" option when creating a new world set to "Default".
 * The seed used to generate the dimension. In most cases, this is exactly the same as the world seed, but can be different and the dimension generated will be based upon this seed and not the world seed.
 * The shape of the terrain. Can be a string to use a preset, valid values are minecraft:overworld, minecraft:amplified, minecraft:nether, minecraft:end, mincraft:floating_islands or minecraft:caves (potentially incomplete list) or a compound with a list of options
 * The distance from y=255, for the top coordinate of the bedrock roof, if out of bounds (0-255) the roof will not appear. e.g. setting this to 32 will put the top of the roof at y=224. If the bedrock roof is low enough, natural terrain will still generate above it.
 * The y coordinate of the bedrock floor, similar to bedrock_roof_position - setting both floor and roof to 255 will generate a single layer of flat bedrock.
 * The sea level in this dimension between 0 and 255
 * Can be true or false.
 * Structure settings
 * List of structures to use in this dimension
 * The key for this field should be the namespaced id of a structure, a list is available here (page needs updating) (all possible values are not required, omitting one will cause it to not appear in this dimension. if a structure is not listed, then it will spawn at an extremely increased rate, in the biomes they naturally spawn in.)
 * unsure of purpose. when tested on end cities, anything 10 or lower generated 0 structures. (number)
 * Spacing between structures, unit? (probably chunks), min, max or average?  (number)
 * A number that assists in randomization, see.
 * Parameters for world generation
 * (integer)
 * (integer)
 * (integer)
 * (integer)
 * (integer)
 * (integer)
 * setting to 0 causes world to not load, 0.1 creates very flat world, few height increases over 100 blocks of x/z travel, 8 creates frequent sharp short hills of around 30 height. (double)
 * setting to 256 generates large, thin in height islands, around 8-10 blocks above the ground level terrain. more testing needed (double)
 * (double)
 * (double)
 * increases the average Y height of the landmass. values between 1 and 15 gradually increase the hill height, above 20 are all above the normal sea level of 63, and higher than 32 give normal land levels of 100+ (integer)
 * changes the X/Z Scale of the landmass, but not the biomes. for example, see the shape of the mooshroom biome being 1/2 the scale of the landmass above it here (integer) [note, a value of 8 removes all landmass, values below 1 crash the game entirely]
 * changes the max height of generated terrain by squashing the world. for example, with height=128, the ground is set to y32. this does not affect sea level (integer)
 * setting this value to 0.5 (default of 1) removed pretty much all terrain. needs more testing (double)
 * affects the average land level (not sea level). 1 gives blocks an average of y=245, 0 = y128. -0.46875 seems to be the normal level. values between -1 and 1 (double)
 * appears to tie in with the above 2 parameters, as the name suggests by removing some randomness applied to them. (boolean)
 * (boolean)
 * (boolean) Is not necessary for a functioning dimension.
 * toggle between amplified and normal terrain generation. can be used alongside large biomes, and in any dimension (nether/end, and custom) (boolean)
 * the block that appears below the top blocks of the world
 * Id of the block
 * Block states
 * A block state key and its value.
 * Id of the block
 * Block states
 * A block state key and its value.
 * Settings dictating which biomes and biome shapes.
 * The seed used for biome generation. In most cases, this is exactly the same as the dimension seed (and by extension the world seed), but can be different and the biome generation for this dimension will be based upon this seed and not the dimension seed.
 * Type specific tags (see  below).
 * The type of biome generation.
 * vanilla_layered: Default and large biome generation used in the overworld.
 * Whether the biomes are large. True for biomes generation in the "Large Biomes" world type.
 * Whether the world was default_1_1.
 * multi_noise: 3D biome generation used in the nether.
 * A preset of the set of biomes to be used.
 * A list of biomes, including their likelihood.
 * A biome and its likelihood
 * The biome
 * The parametrs that determine a position's likelihood being that biome
 * (This typo is necessary and is subject to change):
 * the_end: biome generation used in the end with biome minecraft:the_end in the center and other end biomes around.
 * fixed: a single biome.
 * The single biome to generate.
 * checkerboard: a biome generation where biomes are square (or close to square) and repeat along the diagonals.
 * A list of biomes that repeat along the diagonals (can be more than 3).
 * Determines the size if the squares on an exponential scale.
 * flat – Superflat world generation.
 * Superflat settings.
 * Layer settings.
 * A superflat layer. This list is interpreted from top to bottom.
 * The number of blocks in the layer.
 * The block the layer is made of.
 * the single biome of the world
 * Structure settings
 * List of structures to use in this dimension
 * The key for this field should be the namespaced id of a structure, a list is available here (page needs updating) (all possible values are not required, omitting one will cause it to not appear in this dimension)
 * Spacing between structures, unit? (probably chunks), min, max or average?
 * (number)
 * A number that assists in randomization, see.
 * debug - Debug world generation.
 * the single biome of the world
 * Structure settings
 * List of structures to use in this dimension
 * The key for this field should be the namespaced id of a structure, a list is available here (page needs updating) (all possible values are not required, omitting one will cause it to not appear in this dimension)
 * Spacing between structures, unit? (probably chunks), min, max or average?
 * (number)
 * A number that assists in randomization, see.
 * debug - Debug world generation.

Explanation
The base tags in the .json file are. Both are Boolean values and are, by default, set to  respectively. The key corresponds to the world seed and is found throughout many compounds.

Dimensions
The compound houses all dimensions available in a given world. Each item in the compound must have a unique namespaced ID. This name corresponds to the dimension ID used in-game. By default, it has three items, corresponding to the three dimensions in-game:. If any of these default dimensions are missing from the compound they will be with default settings.

Generator
The compound houses all of the options for the customizable generation of a dimension.

Biome source
The compound stores information about how biomes generate in that world. The contents of this compound always contains the and  keys, while the other keys inside this compound depend on the value of.

When is set to, the world contains the default biome generation for the Overworld. When is set to, the  key can also be set. Setting the preset to will load Nether biomes. If the preset is not set, a lot of various different settings can be changed. See here for an explanation. End generation occurs using. By default, the Overworld has its key set to  and  set to, the Nether has its  key set to  with the  key set to  (to load Nether biomes), and the End has its  key set to  with no additional keys.

The key can be set to  to set the world type to "Large Biomes".

Biomes
The key is an array found inside the  compound which contains the custom biome information of the world. It must exist only if the biome source type is set to minecraft:multi_noise. Each item in this array is a compound with two keys,. The key corresponds to the biome name these settings are being applied to, while the  key is itself a compound that contains different options about the specified biome. These options are and all have floating-point numerical values.

Settings
Many world settings can be changed in the compound of. Some settings are as follows:
 * bedrock_roof_position
 * bedrock_floor_position
 * sea_level
 * disable_mob_generation
 * structures

Structures
In the compound many parameters of structures can be edited.

Defaults
These are the settings used by the 3 dimensions present in Vanilla.

Overworld

 * fixed_time: N/A
 * skylight: True
 * ceiling: False
 * ultra_warm: False
 * natural: True
 * shrunk: False
 * ender_dragon: False
 * biome_zoomer: FuzzyOffsetConstantColumnBiomeZoomer
 * ambient_light: 0.0

Nether

 * fixed_time: 18000
 * skylight: False
 * ceiling: True
 * ultra_warm: True
 * natural: False
 * shrunk: True
 * ender_dragon: False
 * biome_zoomer: FuzzyOffsetBiomeZoomer
 * ambient_light: 0.1

End

 * fixed_time: 6000
 * skylight: False
 * ceiling: False
 * ultra_warm: False
 * natural: False
 * shrunk: False
 * ender_dragon: True
 * biome_zoomer: FuzzyOffsetBiomeZoomer
 * ambient_light: 0.0