Minecraft:Dimension definition: Difference between revisions
More actions
Sync: updated from Minecraft Tag: Manual revert |
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}} | ||
[[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 | '''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×4×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}} — The biome used at this parameter point. | **** {{nbt|string|biome}}: {{json ref/biome}} — 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}} ≥ e ≥ −{{frac|1|16}} | |||
| {{BiomeLink| End Midlands}} | |||
|- | |||
| −{{frac|1|16}} > e ≥ −{{frac|7|32}} | |||
| {{BiomeLink| End Barrens }} | |||
|- | |||
| e < −{{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
|
For the {{{Description}}} of the same name, see [[{{{Destination}}}]]. |
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:
- Template:Nbt The root tag.
- Template:Nbt: Template:Json ref. Can be preset
overworld,the_nether,the_end,overworld_caves, or a custom dimension type - Template:Nbt: Generation settings used for that dimension.
- Template:Nbt: The generator type as Minecraft:resource location. One of
noise,flat, ordebug. - Additional fields of the generator, described below.
- Template:Nbt: The generator type as Minecraft:resource location. One of
- Template:Nbt: Template:Json ref. Can be preset
Bedrock Edition
- Template:Nbt: The root object.
- Template:Nbt: A dimension definition.
- Template:Nbt
- Template:Nbt: A Minecraft:namespaced identifier for the dimension. If this matches the identifier of a dimension registered by script, this definition will take priority.
- Template:Nbt: Components that define the properties of the dimension.
- Template:Nbt: Defines the default biome used in the dimension.
- Template:Nbt: The identifier of the biome to make default.
- Template:Nbt: Defines the height range of the dimension.
- Template:Nbt: The bottom y-value of the dimension. Must be a number between -512 and 512.
- Template:Nbt: 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 Template:Cd and this value must not be greater than 512.
- Template:Nbt: Required. Defines how the dimension generates.
- Template:Nbt: The generator type to use for this dimension. Currently only Template:Cd is supported.
- Template:Nbt: Defines the default biome used in the dimension.
- Template:Nbt
- Template:Nbt: A dimension definition.
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.
- Additional fields:
- Template:Nbt: Superflat settings.
noise
Template:Exclusive The generator used in all the default Minecraft:dimensions.
- Additional fields:
- Template:NbtTemplate:Nbt: Template:Json ref — Settings for the noise generator.
- Template:Nbt: Settings determining the biome layout.
- Template:Nbt: The biome source type as a Minecraft:resource location.
- Additional fields of the biome source, described below.
Biome sources
checkerboard
The checkerboard biome source places biomes in a checkerboard pattern.
- Additional fields:
- Template:NbtTemplate:Nbt: Template:Json ref/biome. The biomes to be selected. The n-th biome in the list is used for all cells where Template:Cd, where Template:Cd is the list size and Template:Cd and Template:Cd are the cell coordinates (chunk pos × 2^Template:Nbt).
- Template:Nbt: 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.
fixed
The fixed biome source, also called Minecraft:single biome, uses one specified biome everywhere.
- Additional fields:
- Template:Nbt: Template:Json ref/biome — The single biome to use.
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.
- Additional fields:
- Template:Nbt: A reference to a parameter list. The default parameter lists are
overworldandnether.
- Template:Nbt: A reference to a parameter list. The default parameter lists are
- Or:
- Template:Nbt: List of biome parameters points. Needs at least one entry. Biomes can appear in more than one parameter point.Template:More info
- Template:Nbt: A parameter point.
- Template:Nbt: Template:Json ref/biome — The biome used at this parameter point.
- Template:Nbt: The parameters of this entry
- Template:Nbt: A parameter point.
- Template:Nbt: List of biome parameters points. Needs at least one entry. Biomes can appear in more than one parameter point.Template:More info
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
overworldandnether.
- Template:Nbt: A reference to a hardcoded parameter list preset. The available presets are
History
Java Edition
Bedrock Edition
External links
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:维度定义格式