Custom Dimension Generator
BetaPick flat layers, an empty void or real terrain, then set the rules: sky, frozen time, height, coordinate scale, whether beds explode and water evaporates. The preview shows a side view of your world, and you get both files plus the command to visit it.
Describe it — AI writes the command
Type what you want in plain words. The AI fills the form below, so you can see it and change anything. It follows the edition and version you picked.
Checking the AI…
Your command · Java 26.3
47 characters/execute in my_pack:sky_islands run tp @s 0 7 0
data/my_pack/dimension/sky_islands.json{
"type": "my_pack:sky_islands",
"generator": {
"type": "minecraft:flat",
"settings": {
"layers": [
{
"block": "minecraft:bedrock",
"height": 1
},
{
"block": "minecraft:stone",
"height": 3
},
{
"block": "minecraft:dirt",
"height": 2
},
{
"block": "minecraft:grass_block",
"height": 1
}
],
"biome": "minecraft:plains",
"features": false,
"lakes": false,
"structure_overrides": []
}
}
}
data/my_pack/dimension_type/sky_islands.json{
"ambient_light": 0,
"attributes": {
"minecraft:audio/ambient_sounds": {
"mood": {
"block_search_extent": 8,
"offset": 2,
"sound": "minecraft:ambient.cave",
"tick_delay": 6000
}
},
"minecraft:audio/background_music": {
"creative": {
"max_delay": 24000,
"min_delay": 12000,
"sound": "minecraft:music.creative"
},
"default": {
"max_delay": 24000,
"min_delay": 12000,
"sound": "minecraft:music.game"
}
},
"minecraft:gameplay/bed_rule": {
"can_set_spawn": "always",
"can_sleep": "when_dark",
"error_message": {
"translate": "block.minecraft.bed.no_sleep"
}
},
"minecraft:gameplay/nether_portal_spawns_piglin": true,
"minecraft:gameplay/respawn_anchor_works": false,
"minecraft:gameplay/straw_bed_rule": {
"can_set_spawn": "never",
"can_sleep": "when_dark",
"destroy_on_leave": true,
"error_message": {
"translate": "block.minecraft.bed.no_sleep"
}
},
"minecraft:visual/ambient_light_color": "#0a0a0a",
"minecraft:visual/cloud_color": "#ccffffff",
"minecraft:visual/cloud_height": 192,
"minecraft:visual/fog_color": "#c0d8ff",
"minecraft:visual/sky_color": "#78a7ff"
},
"coordinate_scale": 1,
"default_clock": "minecraft:overworld",
"has_ceiling": false,
"has_ender_dragon_fight": false,
"has_skylight": true,
"height": 256,
"infiniburn": "#minecraft:infiniburn_overworld",
"logical_height": 256,
"min_y": 0,
"monster_spawn_block_light_limit": 0,
"monster_spawn_light_level": {
"type": "minecraft:uniform",
"max_inclusive": 7,
"min_inclusive": 0
},
"timelines": "#minecraft:in_overworld"
}
- Teleport with the line above (run it as a player). To come back: execute in minecraft:overworld run tp @s ~ ~ ~
- Dimensions load when a world opens: after adding or changing one, leave the world and open it again (/reload isn't enough). The game may warn that the world uses experimental settings; that's expected.
- Put the file in your data pack (or press Download data pack), drop the pack in your world's datapacks folder, then run /reload.
Raw editor
How it works
A custom dimension is two files: the dimension in data/<namespace>/dimension/ says how the world generates, and the dimension type in data/<namespace>/dimension_type/ holds its rules. The generator writes both with the same name.
{"type": "my_pack:sky_islands",
"generator": {"type": "minecraft:flat",
"settings": {"layers": [{"block": "minecraft:bedrock", "height": 1},
{"block": "minecraft:grass_block", "height": 1}],
"biome": "minecraft:plains", "features": false, "lakes": false,
"structure_overrides": []}}}Java 1.16.2 to 1.18.2
Terrain generators carry their own "seed", so every world gets the same terrain there. Before 1.18 the Overworld biomes use vanilla_layered; from 1.18 they use multi_noise with "preset": "minecraft:overworld". The dimension type gets min_y and height in 1.17, and infiniburn needs a # from 1.18.2. Before 1.18.2, flat worlds have a structures block instead of structure_overrides. Java 1.16 and 1.16.1 used an older layout that this generator doesn’t write.
Java 1.19 to 1.21.10
The seed is gone (dimensions follow the world seed) and the type adds monster spawn light rules. From 1.21.6 clouds need cloud_height:
{"ambient_light": 0.0, "bed_works": true, "cloud_height": 192, "coordinate_scale": 1.0,
"effects": "minecraft:overworld", "has_ceiling": false, "has_raids": true,
"has_skylight": true, "height": 384, "infiniburn": "#minecraft:infiniburn_overworld",
"logical_height": 384, "min_y": -64, "monster_spawn_block_light_limit": 0,
"monster_spawn_light_level": {"type": "minecraft:uniform", "min_inclusive": 0, "max_inclusive": 7},
"natural": true, "piglin_safe": false, "respawn_anchor_works": false, "ultrawarm": false}Java 1.21.11 and 26.x
Most rules moved into attributes: bed_works became minecraft:gameplay/bed_rule, ultrawarm became water_evaporates and fast_lava, effects became skybox, cardinal_light and timelines, and fixed_time became has_fixed_time (the exact time can no longer be set). 26.1 adds default_clock and has_ender_dragon_fight; in 26.3 the bed rule’s explodes became destroy_on_use and a straw_bed_rule joined it. The generator copies the sky, fog and music attributes from the vanilla dimension whose sky you pick.
Going there
execute in my_pack:sky_islands run tp @s 0 7 0 execute in minecraft:overworld run tp @s ~ ~ ~
Dimensions load when the world opens, so after adding the pack leave the world and open it again; /reload is not enough. Bedrock has no custom dimensions.
FAQ
How do I make a void dimension?
Pick Void. It writes a flat generator with a single layer of air in The Void biome, like the game's own “The Void” preset. Go in creative or spectator mode, or place a block first, or you fall out of the world.
Why doesn't my dimension exist after /reload?
Dimensions are only read when a world opens. Leave the world and open it again (or restart the server), then use execute in <namespace>:<name> run tp @s 0 100 0.
How do I make a dimension like the Nether?
Press Nether under “Start from” for the Nether's rules (coordinate scale 8, beds explode, water evaporates, ceiling) and pick the Nether terrain shape. Keep the height at 0 to 256 so the terrain fits.
Can I freeze the time of day?
Yes, up to 1.21.10 pick a time and the file gets fixed_time. From 1.21.11 the file only says has_fixed_time: the clock stops, and the sky comes from the timelines of the sky style you chose.
Why does the game say the terrain doesn't fit?
Terrain presets fill a fixed height: Overworld terrain needs Y -64 to 319 from 1.18, Nether and End terrain Y 0 to 127. The dimension type's min Y and height must cover that range; the generator warns you when they don't.