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)
Sync: updated from Minecraft
Tag: Manual revert
SyncBot (talk | contribs)
Sync: updated from Minecraft
 
(4 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}}
{{exclusive|java}}
[[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]].]]
[[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]].]]
{{relevant tutorial|Adding a new dimension}}
{{relevant tutorial|Adding a new dimension}}
'''Dimensions''' are [[Minecraft:JSON]] files located in [[Minecraft:data pack]]s that define dimensions for the game. New dimensions added can be accessed by using commands, like {{cmd|/execute in <dimension> run teleport <coordinates>}}.
'''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 ==
=== ''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: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.
Dimensions are stored as [[Minecraft:JSON]] files within a data pack, at the path <code>data/<namespace>/dimension/<name>.json</code>. Alternatively, a [[Minecraft: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.
=== ''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:
Line 16: Line 27:
*** {{nbt|string|type}}: The [[#Generator types|generator]] type as [[Minecraft: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: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 ===
{{exclusive|java|section=1}}
The generator type used when selecting [[Minecraft:debug mode]] in the world creation menu. This generator has no additional fields.
The generator type used when selecting [[Minecraft:debug mode]] in the world creation menu. This generator has no additional fields.


=== flat ===
=== flat ===
{{exclusive|java|section=1}}
The generator type used for [[Minecraft:superflat]] worlds.
The generator type used for [[Minecraft:superflat]] worlds.
<div class="treeview">
<div class="treeview">
Line 32: Line 67:


=== 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">
Line 42: Line 78:


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


=== checkerboard ===
=== checkerboard ===
Line 47: Line 84:
<div class="treeview">
<div class="treeview">
* Additional fields:
* Additional fields:
** {{nbt|string}}{{nbt|list|biomes}}: {{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}}).
** {{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>


Line 59: Line 96:


=== 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:
** {{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:
** {{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?}}
*** {{nbt|compound}}: A parameter point.
*** {{nbt|compound}}: A parameter point.
**** {{nbt|string|biome}}: {{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.
Line 71: Line 111:


=== 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.


Line 82: Line 146:


== History ==
== History ==
=== ''Java Edition'' ===
{{HistoryTable
{{HistoryTable
|{{HistoryLine|java}}
|{{HistoryLine|java}}
Line 90: Line 155:
|[[Minecraft:Dimension type]]s can no longer be inlined in the dimension, they have to be a reference to a separate dimension_type file.}}
|[[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=1.19.4-pre1|Added multi-noise biome source parameter list.}}
|{{HistoryLine||1.19.4|dev=1.19.4-pre1|Added multi-noise biome source parameter list.}}
}}
=== ''Bedrock Edition'' ===
{{HistoryTable
|{{HistoryLine|Bedrock}}
|{{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.}}
|{{HistoryLine||26.20|dev=Preview 26.20.26|exp=Beta APIs|Custom dimensions can now be created through a new scripting registry.}}
|{{HistoryLine||26.30|dev=Preview 26.30.29|Custom dimensions through scripting have moved to stable.}}
|{{HistoryLine|upcoming Bedrock}}
|{{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.}}
|{{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.}}
}}
}}



Latest revision as of 11:04, 4 September 2026

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 tutorial Dimensions 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 Minecraft: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.

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:维度定义格式