This article is about the custom world type between Java Editions 1.16 and 1.19.3. For controlling world generation using data packs, see Custom world generation. For the world type before Java Edition 1.13, see Old Customized. For the Easter egg dimensions in Java Edition 20w14∞, see Java Edition 20w14∞ § World generation.
This page describes content that exists only in outdated versions of Java Edition.
 
This feature has been removed in snapshot 23w05a.​[more information needed]

Custom is a world type that allows users to change the generation of the Overworld, Nether, and End dimensions as well as the ability to create custom dimensions. It is edited using a JSON file that is imported on the world creation screen.

Access Edit

To customize a world by using a JSON file, it needs to be imported before world creation:

  • in the world creation menu, go to "More World Options..." and select the "Import Settings" option. Then, select a world generation JSON file. A warning appears saying that custom worlds are experimental. Click "Yes" to continue.
  • then, in the world creation menu, the "World Type" button becomes gray and displays text: "World Type: Custom", so that the user is not able to change the world type anymore for the world being created.

The only way to access added dimensions is through commands, such as /execute in <dimension name> run tp @s ~ ~ ~, which teleports the player to the specified dimension (see § JSON format).

JSON format Edit

This section needs expansion.
 
You can help by expanding it.
Instructions: explanations on each component of the JSON file. Useful sources: [1], [2]

Custom generation files take the following format:

  • [NBT Compound / JSON Object] The root tag.
    • [Boolean] bonus_chest: Whether the world has a bonus chest or not (equivalent to the "Bonus chest" option).
    • [Boolean] generate_features: Whether structures should be generated or not (equivalent to the "Generate structures" option).
    • [Int] seed: The numerical seed of the world.
    • [String] legacy_custom_options: The custom world preset that was used to generate the world when it was an old customized world. Exists only for old customized worlds.
    • [NBT Compound / JSON Object] dimensions: A list of the dimensions in this world where the key is the resource location of the dimension.
      • [NBT Compound / JSON Object] A dimension. The dimensions minecraft:overworld, minecraft:the_nether and minecraft:the_end are required for a well functioning world. Any other resource location is allowed for custom dimensions.
        • [NBT Compound / JSON Object] generator: Generation settings used for that dimension.
          • [String] type: The ID of the generator. Can be minecraft:flat for a superflat dimension, minecraft:noise for noise generation, or minecraft:debug for a debug dimension.
          • Other compounds (see below)
        • [String][NBT Compound / JSON Object] type: The resource location of a dimension type file in a data pack, or one of the four default dimension types (minecraft:overworld, minecraft:the_nether, minecraft:the_end, minecraft:overworld_caves).

Generator types Edit

    • [String] type: The ID of the genarator. One of noise, flat, or debug.
      If [String] type is minecraft:noise, additional fields are as follows:
    • [String][NBT Compound / JSON Object] settings: One noise settings (an [String] ID, or a new [NBT Compound / JSON Object] noise settings definition) — Settings for the noise generator.
    • [NBT Compound / JSON Object] biome_source: Settings dictating which biomes and biome shapes.
      • [String] type: The type of biome generation. One of multi_noise, fixed, checkerboard, or the_end.
        If type is multi_noise(3D biome generation used in the nether, and in the overworld in snapshot 21w37a and after.) , additional fields are as follows:
      • [String][NBT Compound / JSON Object] preset: (mutually exclusive with [NBT List / JSON Array] biomes) An ID or an object of a multi-noise biome source parameter list.
      • [NBT List / JSON Array] biomes: (mutually exclusive with [String] preset) (Cannot be empty) A parameter list of biomes, including their IDs and target noise parameters.
        • [NBT Compound / JSON Object]: A biome and its properties.
          • [String] biome: One biome (an [String] ID) — The biome to place at the given parameters. A single id may be repeated several times with different parameters.
          • [NBT Compound / JSON Object] parameters: Represent optimal intervals for where the biome should be placed. These values do not affect the generation of terrain within biomes, instead, they only affect where the game chooses to place biomes. Thinking of a six-dimensional space, in the space these intervals are defined for biomes. If the six parameters at a location based on the noise router in noise settings fall into an interval, the corresponding biome is generated here. If the six parameters at a location do not fall into a defined biome interval in this list, it uses the closest biome interval to the 6D parameter point, in order to form a transition between biomes. Parameter combinations should be unique in the biomes list.
            • [NBT Compound / JSON Object] temperature: Not to be confused with the temperature value listed on Biome.
              • [Float] min: Value between -2.0 and 2.0 (both inclusive). The min value.
              • [Float] max: Value between -2.0 and 2.0 (both inclusive). The max value. Must be not less than min
            • [NBT List / JSON Array] temperature: Shorthand of [NBT Compound / JSON Object] temperature.
              • [Float]: Value between -2.0 and 2.0 (both inclusive). The min value.
              • [Float]: Value between -2.0 and 2.0 (both inclusive). The max value. Must be not less than min
            • [Float] temperature: Value between -2.0 and 2.0 (both inclusive). Shorthand of [NBT List / JSON Array] temperature when the min equals to the max.
            • [NBT Compound / JSON Object][NBT List / JSON Array][Float] humidity: The format is the same as temperature.
            • [NBT Compound / JSON Object][NBT List / JSON Array][Float] continentalness: The format is the same as temperature.
            • [NBT Compound / JSON Object][NBT List / JSON Array][Float] erosion: The format is the same as temperature.
            • [NBT Compound / JSON Object][NBT List / JSON Array][Float] weirdness: The format is the same as temperature.
            • [NBT Compound / JSON Object][NBT List / JSON Array][Float] depth: The format is the same as temperature.
            • [Float] offset: Value between 0.0 and 1.0 (both inclusive). Similar to the other parameters but is 0 everywhere. thus setting this parameter nearer to 0 leads to a greater edge over others, all else being equal.
        If type is the_end(Biome generation used in the end with biome minecraft:the_end in the center and other end biomes around) , no additional field.
        If type is fixed(single biome) , additional fields are as follows:
      • [String] biome: The ID of the single biome to generate.
        If type is checkerboard(A biome generation in which biomes are square (or close to square) and repeat along the diagonals) , additional fields are as follows:
      • [String][NBT List / JSON Array] biomes: Any number of biome(s) (an [String] ID, or a [String] tag with #, or an [NBT List / JSON Array] array containing [String] IDs) Biomes that repeat along the diagonals.
      • [Int] scale: (optional, defaults to 2) Value between 0 and 62 (both inclusive). Determines the size of the squares on an exponential scale.
      If [String] type is minecraft:debug(used for Debug world generation) , no additional fields.
      If [String] type is minecraft:flat(used for Superflat world generation) , additional fields are as follows:
    • [NBT Compound / JSON Object] settings: Superflat settings.
      • [NBT List / JSON Array] layers: (Required, but can be empty) Layer settings. This list is interpreted from top to bottom, starting at world bottom.
        • [NBT Compound / JSON Object]: A superflat layer.
          • [Int] height: The height of this layer. Value between 0 and 4064 (both inclusive) .
          • [String] block: (optional, defaults to minecraft:air) The block ID.
      • [String] biome: (optional, defaults to plains) The ID of the single biome of the world.
      • [Boolean] lakes: (optional, defaults to false) Whether or not to generate lava lakes. If set to true, then lava lakes (lake_lava_underground and lake_lava_surface) generate often even in biomes where lakes don't normally generate.
      • [Boolean] features: (optional, defaults to false) Whether or not to generate biome-specific placed features. Note that the placed features in the step UNDERGROUND_STRUCTURES and SURFACE_STRUCTURES never generates. If the biome is not minecraft:void, but [NBT List / JSON Array] layers is empty or has only air, no placed feature generates.
      • [String][NBT List / JSON Array] structure_overrides: (optional, defaults to all the structure sets) List of structure sets to use. Can be a ID of structure set or a structure set tag, or a list of structure set IDs.


Defaults Edit

Moved to Custom world generation#Noise settings

Noise generator preset defaults Edit

These are the settings used by the 6 presets available for the minecraft:noise generator.

Structure defaults Edit

These are the default values for all namespaced structures. Every preset uses the same values for all of these structures, with the exception of minecraft:ruined_portal.

*Placeholder values, have no effect

**Salt values aren't used for theses structures; changing them produces no effect

Biome parameter defaults Edit

This section needs to be updated.
 
Please update this section to reflect recent updates or newly available information.
Reason: Altitude was removed since and Continentalness, Erosion and Depth were added. Values might also not be up to date.

These are the default values used for each biome in the multi_noise biome_source. Interestingly, although only the values for nether biomes are accessible through a preset, several overworld biomes have default values as well.

Type defaults Edit

These are the settings used by the 3 dimensions present in Vanilla and the additional Overworld Caves settings provided by Minecraft.

Examples Edit

This section needs expansion.
 
You can help by expanding it.
Instructions: more examples and the actual info for what the default generator uses. Check that the Expanded default settings listed below still works in 1.19.3.

Default settings Edit

This one will change to 1.19.3-typed later.

The following is the settings for an exported default Minecraft world.

Expanded default settings Edit

This file contains the same settings used to produce a default world, but with all of the presets expanded to their default values. Note that there is a bug that makes it impossible to create the ender dragon fight without using the dimension type preset minecraft:the_end, as the flag that creates the fight is hardcoded and not accessible through JSON. However, it is otherwise identical to the default world.

Custom superflat dimension Edit

An overview of a world made with the adjacent settings.

This dimension is a Superflat world with a layer of grass on four layers of coarse dirt on top of five layers of basalt. The entire world is full of village houses as spacing is set to 3 (default: 32) and separation is set to 1 (default: 8). The world starts by default at time 1000.

History Edit

[hide]Java Edition
May 15, 2018The return of customized worlds was mentioned.[1][2][3]
1.1620w21aAdded custom worlds.
Custom worlds are JSON-driven.
Custom dimensions can be added and vanilla dimensions can be modified.
There is currently no in-game menu to modify worlds; custom worlds can be generated only by importing a JSON file.
pre1The "temparature" biome parameter is now spelled "temperature".
Dimensions and dimension settings can be created through data packs.
1.16.220w28aExperimental custom biome support is now included in custom worlds.
1.1720w49aMax build heights and bedrock ceiling heights are now customizable over 256 blocks via custom json files.
21w05aMinimum and maximum y values changed from -2047 and 2047 to -2032 and 2032.
1.19.423w05aRemoved the "Import Settings" and "Export Settings" buttons in the "Edit World" screen, making it impossible to access custom worlds through JSON files.

Issues Edit

Issues relating to "Custom" are maintained on the bug tracker. Issues should be reported and viewed there.

Gallery Edit

Screenshots Edit

External links Edit

See also Edit

References Edit

  1. "Customized worlds will be returning. I can't speak for the extra options you mentioned though." – u/AlmightyZing
    "But after 1.13"u/_Grum on Reddit, May 15, 2018
  2. "Would you really not consider holding off 1.13 until customised worlds are finished? Seems pretty crazy to set a precedent for the chance of losing features for several updates.
    We came so close to having access to customising structures in world gen this update too, a shame that hasn't made the cut" – u/DaUltraMarine
    "No, they will come back but completely different from before."u/_Grum on Reddit, May 15, 2018
  3. "No customization until after 1.13, or the other things?" – u/Kobbett
    "No more screens with 50 vague sliders indeed."u/_Grum on Reddit, May 15, 2018

Navigation Edit

Redirected from "Customized"