Toggle menu
Toggle preferences menu
Toggle personal menu
Not logged in
Your IP address will be publicly visible if you make any edits.

Minecraft:Dimension definition: Difference between revisions

From SAS Gaming Wiki
SyncBot (talk | contribs)
Fix template calls: add MC/ prefix
SyncBot (talk | contribs)
Sync: updated from Minecraft
 
(13 intermediate revisions by the same user not shown)
Line 1: Line 1:
{{about|data pack contents|other uses|Dimension}}
{{about|data pack and behavior pack contents|other uses|Dimension}}
{{MC/Exclusive|java}}
{{Split|Dimension definition (Java Edition)| Dimension definition (Bedrock Edition)|reason=There are few similarities between the versions.}}
[[File:Floating Islands custom dimension.png|thumb|300px|A custom dimension using a [[dimension type|custom type]], a fixed plains biome, and the <code>minecraft:floating_islands</code> noise settings.]]
 
{{MC/Relevant tutorial|Adding a new dimension}}
[[File:Floating Islands custom dimension.png|thumb|300px|A custom dimension using a [[dimension type|custom type]], a fixed [[Minecraft:plains]] biome, and the <code>minecraft:floating_islands</code> [[Minecraft:noise settings]]]]
'''Dimensions''' are [[Minecraft:JSON]] files located in data packs that define dimensions for the game. New dimensions added can be accessed by using commands, like {{MC/Cmd|/execute in <dimension> run teleport <coordinates>}}.
{{relevant tutorial|Adding a new dimension}}'''Dimensions''' are [[Minecraft:JSON]] files located in [[Minecraft:data pack]]s {{in|java}} and in [[Minecraft:behavior pack]]s {{in|bedrock}}. They define new dimensions for the game. New dimensions added can be accessed by using commands, like {{cmd|/execute in <dimension> run teleport <coordinates>}}.


== Usage ==
== Usage ==
Dimensions are stored as [[Minecraft:JSON]] files within a data pack, at the path <code>data/<namespace>/dimension/<name>.json</code>. Alternatively, a Custom world preset can be used to customize all dimensions in a world. Dimensions stored separately override the dimension set in the selected world preset. This allows datapacks to only override a single dimension while keeping the other dimensions untouched. However, the user-selected world preset then doesn't have an impact on the given dimension.
 
=== ''Java Edition'' ===
 
Dimensions are stored as [[Minecraft:JSON]] files within a data pack, at the path <code>data/<namespace>/dimension/<name>.json</code>. Alternatively, a [[Minecraft:World preset definition|world preset]] can be used to define all dimensions in a world. Dimensions stored separately override the dimension set in the selected world preset. This allows datapacks to only override a single dimension while keeping the other dimensions untouched. However, the user-selected world preset then doesn't have an impact on the given dimension.
 
The dimension definitions for the three default dimensions are not present in the dimensions file in vanilla data pack, they are present in the world preset.
 
=== ''Bedrock Edition'' ===
 
Dimensions are stored as [[Minecraft:JSON]] files within a behavior pack, at the path <code><root BP>/dimension/<name>.json</code>.
 
Dimensions can also be created by [[Minecraft:Script API|scripts]] using the {{Cd|StartupEvent.dimensionRegistry.registerCustomDimension(''<identifier>'')}} method, although this is not required. If the same dimension is created using both methods, it will be overridden by the behavior pack JSON definition, and a content warning will be logged.


== JSON format ==
== JSON format ==
=== ''Java Edition'' ===
<div class="treeview">
<div class="treeview">
When stored as separate dimensions, they follow the following syntax:
When stored as separate dimensions, they follow the following syntax:
* {{MC/Nbt|compound}} The root tag.
* {{nbt|compound}} The root tag.
** {{MC/Nbt|string|type}}: {{MC/Json ref|dimension type}}. Can be preset <code>overworld</code>, <code>the_nether</code>, <code>the_end</code>, <code>overworld_caves</code>, or a custom dimension type
** {{nbt|string|type}}: {{json ref|dimension type}}. Can be preset <code>overworld</code>, <code>the_nether</code>, <code>the_end</code>, <code>overworld_caves</code>, or a custom dimension type
** {{MC/Nbt|compound|generator}}: Generation settings used for that dimension.
** {{nbt|compound|generator}}: Generation settings used for that dimension.
*** {{MC/Nbt|string|type}}: The [[#Generator types|generator]] type as resource location. One of <code>noise</code>, <code>flat</code>, or <code>debug</code>.
*** {{nbt|string|type}}: The [[#Generator types|generator]] type as [[Minecraft:resource location]]. One of <code>noise</code>, <code>flat</code>, or <code>debug</code>.
*** Additional fields of the generator, described below.
*** Additional fields of the generator, described below.
</div>
=== ''Bedrock Edition'' ===
<div class="treeview">
* {{nbt|compound}}: The root object.
<!--** {{nbt|string|format_version}}: The format version of the file, requires <code>"1.26.50"</code> for all current features.-->
** {{nbt|compound|minecraft:dimension}}: A dimension definition.
*** {{nbt|compound|description}}
**** {{nbt|string|identifier}}: A [[Minecraft:namespaced identifier]] for the dimension. If this matches the identifier of a dimension registered by script, this definition will take priority.
*** {{nbt|compound|components}}: Components that define the properties of the dimension.
**** {{nbt|compound|minecraft:clouds}}:{{upcoming|26.60}} Defines if and where [[Minecraft:cloud]]s will be in the dimension. Omitting this component will result in the dimension not having clouds.
***** {{nbt|int|height}}: Determines the height at which clouds will appear in the dimension. Must be a number between -512 and 512.
**** {{nbt|compound|minecraft:default_biome}}: Defines the default biome used in the dimension.
***** {{nbt|string|biome}}: The identifier of the biome to make default.
**** {{nbt|compound|minecraft:dimension_height}}: Defines the height range of the dimension.
***** {{nbt|int|min_y}}: The bottom y-value of the dimension. Must be a number between -512 and 512.
***** {{nbt|int|height_range}}: The height range (distance between the bottom and top of the dimension). Must be a number between 16 and 1024. Must be a multiple of 16. The sum of {{cd|min_y}} and this value must not be greater than 512.
**** {{nbt|compound|minecraft:generation}}: ''Required.'' Defines how the dimension generates.
***** {{nbt|string|generator_type}}: The generator type to use for this dimension. Currently only {{cd|void}} is supported.
</div>
</div>


== Generator types ==
== Generator types ==
=== void ===
{{exclusive|bedrock|section=1}}
Has no terrain generation. This generator has no additional fields.


=== debug ===
=== debug ===
The generator type used when selecting debug mode in the world creation menu. This generator has no additional fields.
{{exclusive|java|section=1}}
The generator type used when selecting [[Minecraft:debug mode]] in the world creation menu. This generator has no additional fields.


=== flat ===
=== flat ===
The generator type used for superflat worlds.
{{exclusive|java|section=1}}
The generator type used for [[Minecraft:superflat]] worlds.
<div class="treeview">
<div class="treeview">
* Additional fields:
* Additional fields:
** {{MC/Nbt|compound|settings}}: Superflat settings.
** {{Nbt|compound|settings}}: Superflat settings.
*** {{MC/Nbt inherit/flat generator settings}}
*** {{nbt inherit/flat generator settings}}
</div>
</div>


=== noise ===
=== noise ===
{{exclusive|java|section=1}}
The generator used in all the default [[Minecraft:dimension]]s.
The generator used in all the default [[Minecraft:dimension]]s.
<div class="treeview">
<div class="treeview">
* Additional fields:
* Additional fields:
** {{MC/Nbt|string}}{{MC/Nbt|compound|settings}}: {{MC/Json ref|noise settings|inline=1}} &mdash; Settings for the noise generator.
** {{Nbt|string}}{{Nbt|compound|settings}}: {{json ref|noise settings|inline=1}} &mdash; Settings for the noise generator.
** {{MC/Nbt|compound|biome_source}}: Settings determining the biome layout.
** {{nbt|compound|biome_source}}: Settings determining the biome layout.
*** {{MC/Nbt|string|type}}: The [[#Biome sources|biome source]] type as a resource location.
*** {{nbt|string|type}}: The [[#Biome sources|biome source]] type as a [[Minecraft:resource location]].
*** Additional fields of the biome source, described below.
*** Additional fields of the biome source, described below.
</div>
</div>


== Biome sources ==
== Biome sources ==
{{exclusive|java|section=1}}


=== checkerboard ===
=== checkerboard ===
Line 47: Line 89:
<div class="treeview">
<div class="treeview">
* Additional fields:
* Additional fields:
** {{MC/Nbt|string}}{{MC/Nbt|list|biomes}}: {{MC/Json ref/biome|tag=1}}
** {{nbt|string}}{{nbt|list|biomes}}: {{json ref/biome|tag=1}}. The biomes to be selected. The n-th biome in the list is used for all cells where {{cd|[[Minecraft:w:modulo|mod]](x+z,size){{=}}n}}, where {{cd|size}} is the list size and {{cd|x}} and {{cd|z}} are the cell coordinates (chunk pos × 2^{{nbt|int|scale}}).
** {{MC/Nbt|int|scale}}: Optional. Value between 0 and 62 that defaults to 2. Determines the size of the checkerboard grid. A scale of 0 means each cell of the grid is one chunk wide. Doubles each time the scale increases.
** {{nbt|int|scale}}: Optional. Value between 0 and 62 that defaults to 2. Determines the size of the checkerboard grid. A scale of 0 means each cell of the grid is one [[Minecraft:chunk]] wide. Doubles each time the scale increases.
</div>
</div>


=== fixed ===
=== fixed ===
The fixed biome source, also called single biome, uses one specified biome everywhere.
The fixed biome source, also called [[Minecraft:single biome]], uses one specified biome everywhere.
<div class="treeview">
<div class="treeview">
* Additional fields:
* Additional fields:
** {{MC/Nbt|string|biome}}: {{MC/Json ref/biome}} &mdash; The single biome to use.
** {{nbt|string|biome}}: {{json ref/biome}} &mdash; The single biome to use.
</div>
</div>


=== multi_noise ===
=== multi_noise ===
A biome source that depends on multiple parameters defined in the [[Minecraft:noise router]]. Each biome is defined within a 4&times;4&times;4 cube based on the noise values at its edges.
<div class="treeview">
<div class="treeview">
* Additional fields:
* Additional fields:
** {{MC/Nbt|string|preset}}: A reference to a [[#Multi noise parameter list|parameter list]]. The default parameter lists are <code>overworld</code> and <code>nether</code>.
** {{nbt|string|preset}}: A reference to a [[#Multi noise parameter list|parameter list]]. The default parameter lists are <code>overworld</code> and <code>nether</code>.
* Or:
* Or:
** {{MC/Nbt|list|biomes}}: List of biome parameters points. Needs at least one entry. Biomes can appear in more than one parameter point.
** {{nbt|list|biomes}}: List of biome parameters points. Needs at least one entry. Biomes can appear in more than one parameter point.{{More info|How does this list define the biomes?}}
*** {{MC/Nbt|compound}}: A parameter point.
*** {{nbt|compound}}: A parameter point.
**** {{MC/Nbt|string|biome}}: {{MC/Json ref/biome}} &mdash; The biome used at this parameter point.
**** {{nbt|string|biome}}: {{json ref/biome}} &mdash; The biome used at this parameter point.
**** {{MC/Nbt|compound|parameters}}: The parameters of this entry
**** {{nbt|compound|parameters}}: The parameters of this entry
***** {{MC/Nbt inherit/parameter point}}
***** {{Nbt inherit/parameter point}}
</div>
</div>


=== the_end ===
=== the_end ===
The biome source used for [[Minecraft:the End]] dimension. This biome source has no additional fields.
The biome source used for [[Minecraft:the End]] dimension. This biome source has no additional fields.  
 
Biomes are calculated based on each [[Minecraft:chunk]] for the x and z axes, and every 4 blocks for the y-axis.
* If the distance from the chunk edges to the origin is 1024 or less, the end biome is assigned.
* Otherwise, the biome is determined based on the erosion value (defined in [[Minecraft:noise router]]) calculated at the center of the chunk and the y-coordinate.
{| class="wikitable"
! Erosion (e)
! Biome
|-
| N/A
| {{BiomeLink|The End|link=The End (biome)}}
|-
| e > {{frac|1|4}}
| {{BiomeLink| End Highlands }}
|-
| {{frac|1|4}} &ge; e &ge; &minus;{{frac|1|16}}
| {{BiomeLink| End Midlands}}
|-
| &minus;{{frac|1|16}} > e &ge; &minus;{{frac|7|32}}
| {{BiomeLink| End Barrens }}
|-
| e < &minus;{{frac|7|32}}
| {{BiomeLink| Small End Islands}}
|}


== Multi noise parameter list ==
== Multi noise parameter list ==
{{exclusive|java|section=1}}
A multi-noise biome source parameter list is stored as [[Minecraft:JSON]] files within a data pack, at the path <code>data/<namespace>/worldgen/multi_noise_biome_source_parameter_list/<name>.json</code>. It is used to avoid changing world preset files when adding new biomes to experimental data packs.
A multi-noise biome source parameter list is stored as [[Minecraft:JSON]] files within a data pack, at the path <code>data/<namespace>/worldgen/multi_noise_biome_source_parameter_list/<name>.json</code>. It is used to avoid changing world preset files when adding new biomes to experimental data packs.


The syntax is as follows:
The syntax is as follows:
<div class="treeview">
<div class="treeview">
** {{MC/Nbt|string|preset}}: A reference to a hardcoded parameter list preset. The available presets are <code>overworld</code> and <code>nether</code>.
** {{nbt|string|preset}}: A reference to a hardcoded parameter list preset. The available presets are <code>overworld</code> and <code>nether</code>.
</div>
</div>


== History ==
== History ==
=== ''Java Edition'' ===
{{HistoryTable
|{{HistoryLine|java}}
|{{HistoryLine||1.16|dev=Pre-release 1|Added dimensions to [[Minecraft:data pack]]s.}}
|{{HistoryLine||1.16.2|dev=20w29a|The [[Minecraft:Custom noise settings|noise settings]] for custom dimensions can now also be stored in separate files.}}
|{{HistoryLine|||dev=pre1|Custom dimensions now use the same folder pattern in data packs as other resources: <samp>namespace/<''type''>/resource.json</samp>.}}
|{{HistoryLine||1.19|dev=22w11a|Removed the <code>seed</code> field in <code>noise</code> generator and <code>the_end</code> biome source, and the world seed is now always used for all dimensions.
|[[Minecraft:Dimension type]]s can no longer be inlined in the dimension, they have to be a reference to a separate dimension_type file.}}
|{{HistoryLine||1.19.4|dev=pre1|Added multi-noise biome source parameter list.}}
|{{HistoryLine||?|The Overworld's original fractal based biome source can no longer be picked.}}
}}
=== ''Bedrock Edition'' ===
{{HistoryTable
{{HistoryTable
|{{MC/HistoryLine|java}}
|{{HistoryLine|Bedrock}}
|{{MC/HistoryLine||1.16|dev=Pre-release 1|Added dimensions to data packs.}}
|{{HistoryLine||?|The Overworld's build limit can now be modified through {{cd|minecraft:dimension}} entries in [[Minecraft:add-on]]s. Custom dimensions cannot be added through this method.}}
|{{MC/HistoryLine||1.16.2|dev=20w29a|The noise settings for custom dimensions can now also be stored in separate files.}}
|{{HistoryLine||26.20|dev=Preview 26.20.26|exp=Beta APIs|Custom dimensions can now be created through a new scripting registry.}}
|{{MC/HistoryLine|||dev=pre1|Custom dimensions now use the same folder pattern in data packs as other resources: <samp>namespace/<''type''>/resource.json</samp>.}}
|{{HistoryLine||26.30|dev=Preview 26.30.29|Custom dimensions through scripting have moved to stable.}}
|{{MC/HistoryLine||1.19|dev=22w11a|Removed the <code>seed</code> field in <code>noise</code> generator and <code>the_end</code> biome source, and the world seed is now always used for all dimensions.
|{{HistoryLine||26.50|dev=Preview 26.50.25|Custom dimensions can now be modified through {{cd|minecraft:dimension}}, however vanilla dimensions can no longer be modified.|Added the {{cd|minecraft:default_biome}} component to custom dimension JSON, allowing creators to configure the biome a custom dimension generates with, custom dimension heights can now be defined via JSON, with a limit of 384.}}
|Dimension types can no longer be inlined in the dimension, they have to be a reference to a separate dimension_type file.}}
|{{HistoryLine|||dev=Preview 26.50.26|Custom dimension heights defined in a dimension JSON file can once again span the full -512 to 512 block range instead of being capped to the default Overworld heights of -64 to 320.}}
|{{MC/HistoryLine||1.19.4|dev=1.19.4-pre1|Added multi-noise biome source parameter list.}}
|{{HistoryLine|upcoming Bedrock}}
|{{HistoryLine||26.60|dev=Preview 26.60.21|Added the {{cd|minecraft:clouds}} component, letting custom dimensions configure the height at which clouds render. No component means clouds do not render.}}
|{{HistoryLine|||dev=Preview 26.60.28|Clouds can now be set between -512 and 512 instead of -64 and 320.}}
}}
}}


Line 96: Line 180:


== Navigation ==
== Navigation ==
{{MC/Navbox Java Edition technical|datapack}}
{{Navbox Java Edition technical|datapack}}


[[Category:Dimensions]]
[[Category:Dimensions]]


de:Dimensionsdefinition
[[Minecraft:de:Dimensionsdefinition]]
fr:Définition de dimension
[[Minecraft:fr:Définition de dimension]]
ja:カスタムディメンション
[[Minecraft:ja:カスタムディメンション]]
pt:Definição de dimensão
[[Minecraft:pt:Definição de dimensão]]
zh:维度定义格式
[[Minecraft:zh:维度定义格式]]

Latest revision as of 11:10, 18 October 2026

Template:Split

File:Floating Islands custom dimension.png
A custom dimension using a custom type, a fixed Minecraft:plains biome, and the minecraft:floating_islands Minecraft:noise settings

Template:Relevant tutorialDimensions are Minecraft:JSON files located in Minecraft:data packs Template:In and in Minecraft:behavior packs Template:In. They define new dimensions for the game. New dimensions added can be accessed by using commands, like Template:Cmd.

Usage

Java Edition

Dimensions are stored as Minecraft:JSON files within a data pack, at the path data/<namespace>/dimension/<name>.json. Alternatively, a world preset can be used to define all dimensions in a world. Dimensions stored separately override the dimension set in the selected world preset. This allows datapacks to only override a single dimension while keeping the other dimensions untouched. However, the user-selected world preset then doesn't have an impact on the given dimension.

The dimension definitions for the three default dimensions are not present in the dimensions file in vanilla data pack, they are present in the world preset.

Bedrock Edition

Dimensions are stored as Minecraft:JSON files within a behavior pack, at the path <root BP>/dimension/<name>.json.

Dimensions can also be created by scripts using the Template:Cd method, although this is not required. If the same dimension is created using both methods, it will be overridden by the behavior pack JSON definition, and a content warning will be logged.

JSON format

Java Edition

When stored as separate dimensions, they follow the following syntax:

Bedrock Edition

Generator types

void

Template:Exclusive Has no terrain generation. This generator has no additional fields.

debug

Template:Exclusive The generator type used when selecting Minecraft:debug mode in the world creation menu. This generator has no additional fields.

flat

Template:Exclusive The generator type used for Minecraft:superflat worlds.

noise

Template:Exclusive The generator used in all the default Minecraft:dimensions.

Biome sources

Template:Exclusive

checkerboard

The checkerboard biome source places biomes in a checkerboard pattern.

fixed

The fixed biome source, also called Minecraft:single biome, uses one specified biome everywhere.

multi_noise

A biome source that depends on multiple parameters defined in the Minecraft:noise router. Each biome is defined within a 4×4×4 cube based on the noise values at its edges.

the_end

The biome source used for Minecraft:the End dimension. This biome source has no additional fields.

Biomes are calculated based on each Minecraft:chunk for the x and z axes, and every 4 blocks for the y-axis.

  • If the distance from the chunk edges to the origin is 1024 or less, the end biome is assigned.
  • Otherwise, the biome is determined based on the erosion value (defined in Minecraft:noise router) calculated at the center of the chunk and the y-coordinate.
Erosion (e) Biome
N/A Template:BiomeLink
e > Template:Frac Template:BiomeLink
Template:Frac ≥ e ≥ −Template:Frac Template:BiomeLink
−Template:Frac > e ≥ −Template:Frac Template:BiomeLink
e < −Template:Frac Template:BiomeLink

Multi noise parameter list

Template:Exclusive A multi-noise biome source parameter list is stored as Minecraft:JSON files within a data pack, at the path data/<namespace>/worldgen/multi_noise_biome_source_parameter_list/<name>.json. It is used to avoid changing world preset files when adding new biomes to experimental data packs.

The syntax is as follows:

    • Template:Nbt: A reference to a hardcoded parameter list preset. The available presets are overworld and nether.

History

Java Edition

Template:HistoryTable

Bedrock Edition

Template:HistoryTable

External links

Navigation

Template:Navbox Java Edition technical

Minecraft:de:Dimensionsdefinition Minecraft:fr:Définition de dimension Minecraft:ja:カスタムディメンション Minecraft:pt:Definição de dimensão Minecraft:zh:维度定义格式