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.
 * : Can be true or false.
 * : 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.
 * : 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, or minecraft:end (potentially incomplete list) or a compound with a list of options
 * The y coordinate of the bedrock roof, if out of bounds (0-255) the roof will not appear
 * The y coordinate of the bedrock floor, similar to bedrock_roof_position
 * 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 [e.g. dozens of end cities inside eachother, desert temples and portals galore])
 * 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)
 * (number)
 * Parameters for world generation
 * (integer)
 * (integer)
 * (integer)
 * (integer)
 * (integer)
 * (integer)
 * (double)
 * (double)
 * (double)
 * (double)
 * (integer)
 * (integer)
 * (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)
 * (number)
 * 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)
 * (number)
 * 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.

A debug world
All 3 dimensions use the "debug" generator type.

A superflat world
The nether and end are superflats as well.