{{about|the custom world type between Java Editions 1.16 and 1.19.3|controlling world generation using data packs|Custom world generation|the world type before Java Edition 1.13|Old Customized|the Easter egg dimensions in Java Edition 20w14∞|Java Edition 20w14∞#World generation}} {{outdated|edition=java|This feature has been removed in snapshot [[Java Edition 23w05a|23w05a]].{{more info|though removed in 23w05a, it does not work even in 1.18.x}}}} '''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 == 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 {{cmd|execute in <''dimension name''> run tp @s ~ ~ ~}}, which teleports the player to the specified dimension (see {{slink||JSON format}}). == JSON format == {{Main|Custom dimension|Custom world generation}} {{Expand section| explanations on each component of the JSON file. Useful sources: [https://gist.github.com/misode/b83bfe4964e6bf53b2dd31b22ee94157], [https://gist.github.com/RainWarrior/2c32848aad78910a3ca148b82c91f7c2]}} Custom generation files take the following format:
minecraft:noise
generator.
{| class="wikitable collapsible collapsed"
|+
! colspan="3" |Property
!minecraft:overworld
!minecraft:amplified
!minecraft:nether
!minecraft:caves
!minecraft:end
!minecraft:floating_islands
|-
| colspan="3" |bedrock_roof_position
| colspan="2" | -10
| colspan="2" |0
| colspan="2" | -10
|-
| colspan="3" |bedrock_floor_position
| colspan="2" |0
| colspan="2" |0
| colspan="2" | -10
|-
| colspan="3" |sea_level
| colspan="2" |63
| colspan="2" |32
| colspan="2" |0
|-
| colspan="3" |disable_mob_generation
| colspan="2" |false
| colspan="2" |false
|true
|false
|-
| colspan="3" |default_block
| colspan="2" |minecraft:stone
|minecraft:netherrack
|minecraft:stone
|minecraft:end_stone
|minecraft:stone
|-
| colspan="3" |default_fluid
| colspan="2" |minecraft:water
|minecraft:lava
|minecraft:water
|minecraft:air
|minecraft:water
|-
| rowspan="4" |structures
| rowspan="3" |stronghold
|distance
| colspan="2" |32
| colspan="2" rowspan="3" |Tag not included
| colspan="2" rowspan="3" |Tag not included
|-
|count
| colspan="2" |1
|-
|spread
| colspan="2" |3
|-
| colspan="2" |structures
| colspan="6" |See below
|-
| rowspan="19" |noise
| rowspan="3" |top_slide
|target
| colspan="2" | -10
| colspan="2" |120
| colspan="2" | -3000
|-
|size
| colspan="2" |3
| colspan="2" |3
| colspan="2" |64
|-
|offset
| colspan="2" |0
| colspan="2" |0
| colspan="2" | -46
|-
| rowspan="3" |bottom_slide
|target
| colspan="2" | -30
| colspan="2" |320
| colspan="2" | -30
|-
|size
| colspan="2" |0
| colspan="2" |4
| colspan="2" |7
|-
|offset
| colspan="2" |0
| colspan="2" | -1
| colspan="2" |1
|-
| rowspan="4" |sampling
|xz_scale
| colspan="2" |0.9999999814507745
| colspan="2" |1
| colspan="2" |2
|-
|xz_factor
| colspan="2" |80
| colspan="2" |80
| colspan="2" |80
|-
|y_scale
| colspan="2" |0.9999999814507745
| colspan="2" |3
| colspan="2" |1
|-
|y_factor
| colspan="2" |160
| colspan="2" |60
| colspan="2" |160
|-
| colspan="2" |size_vertical
| colspan="2" |2
| colspan="2" |2
| colspan="2" |1
|-
| colspan="2" |size_horizontal
| colspan="2" |1
| colspan="2" |1
| colspan="2" |2
|-
| colspan="2" |height
| colspan="2" |256
| colspan="2" |128
| colspan="2" |128
|-
| colspan="2" |density_factor
| colspan="2" |1
| colspan="2" |0
| colspan="2" |0
|-
| colspan="2" |density_offset
| colspan="2" | -0.46875
| colspan="2" |0.019921875
| colspan="2" |0
|-
| colspan="2" |random_density_offset
| colspan="2" |true
| colspan="2" |false
| colspan="2" |false
|-
| colspan="2" |simplex_surface_noise
| colspan="2" |true
| colspan="2" |false
| colspan="2" |true
|-
| colspan="2" |island_noise_override
| colspan="2" |false
| colspan="2" |false
|true
|false
|-
| colspan="2" |amplified
|false
|true
| colspan="2" |false
| colspan="2" |false
|}
==== Structure defaults ====
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
.
{| class="wikitable collapsible collapsed"
|+
! colspan="2" |Structure
!Spacing
!Separation
!Salt
|-
| colspan="2" |village
|32
|8
|10387312
|-
| colspan="2" |desert_pyramid
|32
|8
|14357617
|-
| colspan="2" |igloo
|32
|8
|14357618
|-
| colspan="2" |jungle_pyramid
|32
|8
|14357619
|-
| colspan="2" |swamp_hut
|32
|8
|14357620
|-
| colspan="2" |pillager_outpost
|32
|8
|165745296
|-
| colspan="2" |stronghold
*
|1
|0
|0
|-
| colspan="2" |monument
|32
|5
|10387313
|-
| colspan="2" |endcity
|20
|11
|10387313
|-
| colspan="2" |mansion
|80
|20
|10387319
|-
| colspan="2" |buried_treasure
**
|1
|0
|0
|-
| colspan="2" |mineshaft
**
|1
|0
|0
|-
| rowspan="2" |ruined_portal
|nether
and caves
|25
|10
|34222645
|-
|All other presets
|40
|15
|34222645
|-
| colspan="2" |shipwreck
|24
|4
|165745295
|-
| colspan="2" |ocean_ruin
|20
|8
|14357621
|-
| colspan="2" |bastion_remnant
|27
|4
|30084232
|-
| colspan="2" |fortress
|27
|4
|30084232
|-
| colspan="2" |nether_fossil
|2
|1
|14357921
|}
''*Placeholder values, have no effect''
''**Salt values aren't used for theses structures; changing them produces no effect''
=== Biome parameter defaults ===
{{Update|Altitude was removed since and Continentalness, Erosion and Depth were added. Values might also not be up to date.|section=1}}
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.
{| class="wikitable collapsible collapsed"
|+
!Biome
!Temperature
!Humidity
!Altitude
!Weirdness
!Offset
|-
|badlands
| -0.25
| -0.5
|0.5
|0.2
|1
|-
|badlands_plateau
| -0.25
| -0.5
|0.65
|0.2
|1
|-
|bamboo_jungle
|0.5
|0.5
|0
|0.2
|1
|-
|bamboo_jungle_hills
|0.5
|0.5
|0.25
|0.2
|1
|-
|basalt_deltas
| -0.5
|0
|0
|0
|0.175
|-
|beach
|0
|0
| -0.1
|0
|0.9935
|-
|birch_forest
| -0.1
|0.2
|0
|0
|1
|-
|birch_forest_hills
| -0.1
|0.2
|0.25
|0
|1
|-
|crimson_forest
|0.4
|0
|0
|0
|0
|-
|desert
|0.5
| -0.5
|0
|0
|1
|-
|jungle
|0.5
|0.5
|0
|0
|1
|-
|nether_wastes
|0
|0
|0
|0
|0
|-
|ocean
|0
|0
| -0.5
|0
|1
|-
|plains
|0
|0
|0
|0
|1
|-
|snowy_tundra
| -0.5
| -0.5
|0
|0
|1
|-
|soul_sand_valley
|0
| -0.5
|0
|0
|0
|-
|warm_ocean
|0
|0
| -0.25
|0
|1
|-
|warped_forest
|0
|0.5
|0
|0
|0.375
|}
=== Type defaults ===
{{/Default dimension types}}
== Examples ==
{{Expand section|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 ===
This one will change to 1.19.3-typed later.
The following is the settings for an exported default ''Minecraft'' world.
{{collapse|title=Collapsed JSON content|content=
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.{{collapse|title=Collapsed JSON content|content=