From 5d275e4e14016303a7651df96ef0be2af2ac620a Mon Sep 17 00:00:00 2001 From: claude Date: Fri, 30 Oct 2026 02:30:34 +0100 Subject: [PATCH] Phase 4: regenerating ore veins, each tier in one zone Regenerating Ore Veins 1.4.0 (CurseForge only, MIT). tools/zone_ores.py writes its config from world/zones.json: surface zones as boxes from the zone grid, cave tiers by cave biome, 21 tiers including Cobblemon's evolution stones (their natural ores are off). The world report now allows ore only in tracked veins inside their tier's zone. Self-tests: a mined vein regrows after its chunk unloads and after a restart (new after_restart pass in selftest.py and quick_check.py). make_world places showcase veins. Co-Authored-By: Claude Opus 5.5 --- docs/addon-status.md | 4 +- docs/licenses.md | 1 + .../dev/cobblesurvival/selftest/SelfTest.kt | 29 +- .../dev/cobblesurvival/selftest/VeinTests.kt | 122 + pack/config/regenerating_ore_veins/areas.json | 6800 +++++++++++++++++ .../config/regenerating_ore_veins/global.json | 12 + .../regenerating_ore_veins/vein_locator.json | 13 + pack/config/regenerating_ore_veins/veins.json | 3445 +++++++++ pack/index.toml | 21 + pack/mods/regenerating-ore-veins.pw.toml | 13 + pack/pack.toml | 2 +- tools/make_world.py | 33 +- tools/mcserver.py | 9 +- tools/quick_check.py | 26 +- tools/selftest.py | 12 +- tools/world_report.py | 108 +- tools/zone_grid.py | 33 + tools/zone_ores.py | 171 + world/zones.json | 26 +- 19 files changed, 10843 insertions(+), 37 deletions(-) create mode 100644 mod/src/main/kotlin/dev/cobblesurvival/selftest/VeinTests.kt create mode 100644 pack/config/regenerating_ore_veins/areas.json create mode 100644 pack/config/regenerating_ore_veins/global.json create mode 100644 pack/config/regenerating_ore_veins/vein_locator.json create mode 100644 pack/config/regenerating_ore_veins/veins.json create mode 100644 pack/mods/regenerating-ore-veins.pw.toml create mode 100644 tools/zone_grid.py create mode 100755 tools/zone_ores.py diff --git a/docs/addon-status.md b/docs/addon-status.md index ed8cb92..2e61fca 100644 --- a/docs/addon-status.md +++ b/docs/addon-status.md @@ -51,7 +51,7 @@ JEI declares Minecraft `[1.21, 1.21.1)` in every 1.21.1 build, which a strict re | Ore Generation Configuration | 1 (not needed) | 1.3.0 (CF `8153928`) | CF only | n/a. Natural ore is removed with data instead (see `world/README.md`) | | Chunky | 1 (build tool only, not in the pack) | 1.4.23 (MR `LuFhm4eU`, CF project `485681`) | MR + CF | n/a. `tools/make_world.py` adds it to the test server only while pregenerating | | Cold Sweat | 3 | 2.4.4 (MR `UGoodVYD`, CF `9215368`) | MR + CF | **In the pack** (2026-10-29); same jar on both platforms | -| Regenerating Ore Veins | 4 | 1.4.0 (CF `8066055`) | CF only | n/a | +| Regenerating Ore Veins | 4 | 1.4.0 (CF `8066055`) | **CF only** | **In the pack** (2026-10-30); n/a (no Cobblemon dependency). Left out of the Modrinth export | | Cobblebase | 4 | 2.0.1+1.8.0 (MR `pFYNQ6W2`) | MR has the 1.8 build; **CF only has 2.0.0+1.7.0** | ✅ 2.0.1 requires ≥ 1.8.0 and fixes a startup crash on 1.8. Modrinth lists Xaero's Minimap, Cobbreeding and Cloth Config as required, but the jar declares only Cobblemon and Kotlin for Forge; verify when adding | | Cobblemon Poke Power | 4 (or own generator, Phase 6) | 1.3.1 (MR `vGpaTxmN`) | **MR only** | ✅ Declares `[1.8.0,)`. Needs Matthiesen Core | | Cobblemon Quests (FTB Quests integration) | 8 | 1.2.0 (MR `8KeptEg2`; CF project `922979`) | MR + CF | ❌ Targets 1.7. Its own changelog says it does not work with FTB Quests ≥ 2101.1.19; the pack has 2101.1.37. Blocked until updated | @@ -76,4 +76,4 @@ No single platform hosts everything the roadmap names: - **CurseForge only:** FTB Quests, FTB Library, FTB Teams, Ore Generation Configuration, Regenerating Ore Veins (and the 1.8 build of Cobblebase is Modrinth only). - **Modrinth only:** CobbleHardcoreMon, Matthiesen Core, Cobblemon Poke Power, Cobblebase 2.0.1. -`tools/build.py` leaves each mod out of the export for the platform that doesn't host it and lists what it left out. Today the `.mrpack` lacks the three FTB mods. Once Phases 1–4 land, the CurseForge zip will lack permadeath, and the Modrinth pack will lack quests and ore veins. This needs a decision (see `docs/design.md`, open decisions). +`tools/build.py` leaves each mod out of the export for the platform that doesn't host it and lists what it left out. Today the `.mrpack` lacks the three FTB mods and Regenerating Ore Veins. Once Phases 1–4 land, the CurseForge zip will lack permadeath, and the Modrinth pack will lack quests and ore veins. This needs a decision (see `docs/design.md`, open decisions). diff --git a/docs/licenses.md b/docs/licenses.md index 50a11e5..f26dfee 100644 --- a/docs/licenses.md +++ b/docs/licenses.md @@ -40,6 +40,7 @@ Read each license before adding a mod, and add a row here in the same change. | Cobblemon TP-Pastures | see Modrinth page | All Rights Reserved | [Modrinth](https://modrinth.com/mod/cobblemon_tp_pastures) | Phase 2 | | Lootr | noobanidus | MIT | [Modrinth](https://modrinth.com/mod/lootr) | Phase 2 | | Cold Sweat | Momo Softworks (Mikul) | GPL-3.0-or-later | [Modrinth](https://modrinth.com/mod/cold-sweat) / [CurseForge](https://www.curseforge.com/minecraft/mc-mods/cold-sweat) | Phase 3: heat and cold as zone hazards (both) | +| Regenerating Ore Veins | Stargazer | MIT (jar metadata) | [CurseForge](https://www.curseforge.com/minecraft/mc-mods/regenerating-ore-veins) | Phase 4: the only ore source besides chest loot (both). Not on Modrinth | | WorldGen Editor | waterflane | CC BY-NC-SA 4.0 | [Modrinth](https://modrinth.com/mod/worldgen-editor) / [CurseForge](https://www.curseforge.com/minecraft/mc-mods/worldgen-editor), [source](https://github.com/waterflane/WorldGen-Editor) | Non-commercial, share-alike. See the derived files below | Licenses of mods planned for later phases are in `docs/addon-status.md` and move here when the mod is added. **Cobblemon TP-Pastures**, **CobbleStrike** and the **FTB** mods are All Rights Reserved: reference only, never redistribute or modify. diff --git a/mod/src/main/kotlin/dev/cobblesurvival/selftest/SelfTest.kt b/mod/src/main/kotlin/dev/cobblesurvival/selftest/SelfTest.kt index 4dcb995..6071019 100644 --- a/mod/src/main/kotlin/dev/cobblesurvival/selftest/SelfTest.kt +++ b/mod/src/main/kotlin/dev/cobblesurvival/selftest/SelfTest.kt @@ -23,7 +23,8 @@ import net.neoforged.neoforge.event.tick.ServerTickEvent * One in-game test: [body] sets it up through its [Scenario] and must end in a pass or a failure within [maxTicks]. * [islandOnly] tests need the island world and are skipped elsewhere (tools/selftest.py uses a flat world). * Tests of one [batch] run side by side; batches run one after another (a test that changes the world around it, - * like the biome or the time of day, gets a batch of its own). + * like the biome or the time of day, gets a batch of its own). [afterRestart] tests are the second half of a case + * that spans a server restart: they only run with `/cobblesurvival selftest run after_restart`. */ class SelfTestCase( val name: String, @@ -31,24 +32,26 @@ class SelfTestCase( val body: (Scenario) -> Unit, val islandOnly: Boolean = false, val batch: String = CobbleSurvival.MOD_ID, + val afterRestart: Boolean = false, ) /** * In-game tests on a real server with all of the pack's mods and configs: `/cobblesurvival selftest run` starts them * on a platform high above spawn, `/cobblesurvival selftest status` reports. They use the vanilla GameTest * framework, which NeoForge only switches on in a development environment, so this object creates and ticks the - * tests itself. Only there when the server runs with `-Dcobblesurvival.selftest=true` (tools/quick_check.py); + * tests itself. `/cobblesurvival selftest run after_restart` runs the tests that check what survived a restart. Only there when the server runs with `-Dcobblesurvival.selftest=true` (tools/quick_check.py); * players never see the command. */ object SelfTest { val enabled: Boolean = java.lang.Boolean.getBoolean("cobblesurvival.selftest") private const val TEMPLATE = "cobblesurvival:selftest/empty" - private const val PLATFORM_Y = 200 + const val PLATFORM_Y = 200 private const val TESTS_PER_ROW = 4 private const val FORCED_CHUNKS = 9 private val cases: List get() = - PermadeathTests.all() + SurvivalRulesTests.all() + ZoneTests.all() + HazardTests.all() + GuardianTests.all() + PermadeathTests.all() + SurvivalRulesTests.all() + ZoneTests.all() + HazardTests.all() + GuardianTests.all() + + VeinTests.all() private var running: List = emptyList() private var forced: List = emptyList() @@ -61,11 +64,15 @@ object SelfTest { fun command(): LiteralArgumentBuilder = Commands.literal("selftest") .requires { it.hasPermission(4) } - .then(Commands.literal("run").executes { context -> - val reply = start(context.source.server) - context.source.sendSuccess({ Component.literal(reply) }, false) - 1 - }) + .then(Commands.literal("run") + .executes { context -> + context.source.sendSuccess({ Component.literal(start(context.source.server, afterRestart = false)) }, false) + 1 + } + .then(Commands.literal("after_restart").executes { context -> + context.source.sendSuccess({ Component.literal(start(context.source.server, afterRestart = true)) }, false) + 1 + })) .then(Commands.literal("status").executes { context -> val done = running.count { it.result != null } val reply = if (running.isNotEmpty()) "selftest running: $done/${running.size} done" else summary @@ -73,7 +80,7 @@ object SelfTest { 1 }) - private fun start(server: MinecraftServer): String { + private fun start(server: MinecraftServer, afterRestart: Boolean): String { if (running.isNotEmpty()) return "selftest already running" val level = server.overworld() val spawn = level.sharedSpawnPos @@ -84,7 +91,7 @@ object SelfTest { // Only the island world type puts basalt deltas into the overworld. val island = level.chunkSource.generator.biomeSource.possibleBiomes().any { it.`is`(Biomes.BASALT_DELTAS) } - val (runnable, skipped) = cases.partition { island || !it.islandOnly } + val (runnable, skipped) = cases.filter { it.afterRestart == afterRestart }.partition { island || !it.islandOnly } val scenarios = runnable.mapIndexed { index, case -> Scenario(case, index) } val infos = scenarios.map { scenario -> val function = TestFunction(scenario.case.batch, "${CobbleSurvival.MOD_ID}.${scenario.case.name}", TEMPLATE, diff --git a/mod/src/main/kotlin/dev/cobblesurvival/selftest/VeinTests.kt b/mod/src/main/kotlin/dev/cobblesurvival/selftest/VeinTests.kt new file mode 100644 index 0000000..1ed9f3d --- /dev/null +++ b/mod/src/main/kotlin/dev/cobblesurvival/selftest/VeinTests.kt @@ -0,0 +1,122 @@ +package dev.cobblesurvival.selftest + +import net.minecraft.core.BlockPos +import net.minecraft.core.registries.BuiltInRegistries +import net.minecraft.resources.ResourceLocation +import net.minecraft.server.level.ServerLevel +import net.minecraft.server.level.ServerPlayer +import net.minecraft.world.level.ChunkPos +import net.minecraft.world.level.GameType +import net.minecraft.world.level.block.Blocks +import net.minecraft.world.phys.Vec3 + +/** + * Roadmap Phase 4: ore veins regrow after their chunk was unloaded and after a server restart (Regenerating Ore + * Veins). The tests place the pack's "selftest" vein (one coal block that takes an hour to regrow and never generates + * by itself) in the air away from the test platform, mine it, and wind its clock back in the mod's saved data + * instead of waiting the hour. The restart case has two halves: the first runs with the other tests, then + * tools/quick_check.py restarts the server and runs the second with `/cobblesurvival selftest run after_restart`. + */ +object VeinTests { + private const val VEIN = "selftest" + /** Blocks east (unload) and west (restart) of spawn: far beyond view distance from the platform. */ + private const val UNLOAD_OFFSET = 320 + private const val RESTART_OFFSET = -320 + private val REGENERATOR = ResourceLocation.fromNamespaceAndPath("regenerating_ore_veins", "regenerator_block") + + fun all() = listOf( + SelfTestCase("vein_regrows_after_unload", 1200, ::afterUnload), + SelfTestCase("vein_mined_before_restart", 400, ::beforeRestart), + SelfTestCase("vein_regrows_after_restart", 400, ::afterRestart, afterRestart = true), + ) + + private fun afterUnload(s: Scenario) { + val level = s.level + val pos = spot(level, UNLOAD_OFFSET) + val chunk = ChunkPos(pos) + val player = s.player() + s.afterTest { level.setChunkForced(chunk.x, chunk.z, false) } + s.helper.startSequence() + .thenExecute { + level.setChunkForced(chunk.x, chunk.z, true) + placeAndMine(s, player, pos) + } + .thenWaitUntil { s.check(isRegenerator(level, pos)) { "the mined vein block is ${level.getBlockState(pos)}, not a regenerator" } } + .thenExecute { level.setChunkForced(chunk.x, chunk.z, false) } + .thenWaitUntil { s.check(!level.hasChunk(chunk.x, chunk.z)) { "the vein's chunk is still loaded" } } + .thenExecute { + rewind(level, pos) + level.setChunkForced(chunk.x, chunk.z, true) + } + .thenWaitUntil { + s.check(level.getBlockState(pos).`is`(Blocks.COAL_ORE)) { "the vein didn't regrow once its chunk was back: ${level.getBlockState(pos)}" } + } + .thenExecute { remove(player, pos) } + .thenWaitUntil { s.check(level.getBlockState(pos).isAir) { "the vein block wasn't removed: ${level.getBlockState(pos)}" } } + .thenSucceed() + } + + private fun beforeRestart(s: Scenario) { + val level = s.level + val pos = spot(level, RESTART_OFFSET) + val chunk = ChunkPos(pos) + val player = s.player() + s.afterTest { level.setChunkForced(chunk.x, chunk.z, false) } + s.helper.startSequence() + .thenExecute { + level.setChunkForced(chunk.x, chunk.z, true) + placeAndMine(s, player, pos) + } + .thenWaitUntil { s.check(isRegenerator(level, pos)) { "the mined vein block is ${level.getBlockState(pos)}, not a regenerator" } } + .thenSucceed() + } + + private fun afterRestart(s: Scenario) { + val level = s.level + val pos = spot(level, RESTART_OFFSET) + val chunk = ChunkPos(pos) + val player = s.player() + s.afterTest { level.setChunkForced(chunk.x, chunk.z, false) } + s.helper.startSequence() + .thenExecute { level.setChunkForced(chunk.x, chunk.z, true) } + .thenWaitUntil { + s.check(isRegenerator(level, pos)) { "no regenerator where the vein was mined before the restart: ${level.getBlockState(pos)}" } + } + .thenExecute { rewind(level, pos) } + .thenWaitUntil { + s.check(level.getBlockState(pos).`is`(Blocks.COAL_ORE)) { "the vein didn't regrow after the restart: ${level.getBlockState(pos)}" } + } + .thenExecute { remove(player, pos) } + .thenWaitUntil { s.check(level.getBlockState(pos).isAir) { "the vein block wasn't removed: ${level.getBlockState(pos)}" } } + .thenSucceed() + } + + private fun spot(level: ServerLevel, offset: Int): BlockPos = + level.sharedSpawnPos.let { BlockPos(it.x + offset, SelfTest.PLATFORM_Y, it.z) } + + /** Places the vein with the mod's own command and mines its block as a survival player. */ + private fun placeAndMine(s: Scenario, player: ServerPlayer, pos: BlockPos) { + val level = s.level + val server = level.server + val source = server.createCommandSourceStack().withLevel(level).withPosition(Vec3.atCenterOf(pos)).withSuppressedOutput() + server.commands.performPrefixedCommand(source, "regenerating_ore_veins place $VEIN") + s.check(level.getBlockState(pos).`is`(Blocks.COAL_ORE)) { "the vein was not placed: ${level.getBlockState(pos)}" } + s.check(player.gameMode.destroyBlock(pos)) { "the vein block could not be mined" } + } + + /** Breaking a regenerator in creative mode removes the vein for good, so the test world keeps no stray ore. */ + private fun remove(player: ServerPlayer, pos: BlockPos) { + player.setGameMode(GameType.CREATIVE) + player.gameMode.destroyBlock(pos) + } + + private fun isRegenerator(level: ServerLevel, pos: BlockPos) = + BuiltInRegistries.BLOCK.getKey(level.getBlockState(pos).block) == REGENERATOR + + /** Moves the vein block's "last mined" time far into the past; the mod keeps it in its saved data. */ + private fun rewind(level: ServerLevel, pos: BlockPos) { + val data = Class.forName("net.stargazer.regenerating_ore_veins.VeinSavedData") + val saved = data.getMethod("get", ServerLevel::class.java).invoke(null, level) + data.getMethod("markMined", BlockPos::class.java, Long::class.javaPrimitiveType).invoke(saved, pos, 1L) + } +} diff --git a/pack/config/regenerating_ore_veins/areas.json b/pack/config/regenerating_ore_veins/areas.json new file mode 100644 index 0000000..fd75d20 --- /dev/null +++ b/pack/config/regenerating_ore_veins/areas.json @@ -0,0 +1,6800 @@ +[ + { + "dimension": "minecraft:overworld", + "name": "button_isle_0", + "type": "box", + "x": -21, + "y": 128, + "z": -285, + "dimx": 11, + "dimy": 192, + "dimz": 11 + }, + { + "dimension": "minecraft:overworld", + "name": "button_isle_1", + "type": "box", + "x": 3, + "y": 128, + "z": -261, + "dimx": 107, + "dimy": 192, + "dimz": 11 + }, + { + "dimension": "minecraft:overworld", + "name": "button_isle_2", + "type": "box", + "x": 3, + "y": 128, + "z": -237, + "dimx": 155, + "dimy": 192, + "dimz": 11 + }, + { + "dimension": "minecraft:overworld", + "name": "button_isle_3", + "type": "box", + "x": 3, + "y": 128, + "z": -213, + "dimx": 179, + "dimy": 192, + "dimz": 11 + }, + { + "dimension": "minecraft:overworld", + "name": "button_isle_4", + "type": "box", + "x": 3, + "y": 128, + "z": -189, + "dimx": 203, + "dimy": 192, + "dimz": 11 + }, + { + "dimension": "minecraft:overworld", + "name": "button_isle_5", + "type": "box", + "x": 3, + "y": 128, + "z": -165, + "dimx": 227, + "dimy": 192, + "dimz": 11 + }, + { + "dimension": "minecraft:overworld", + "name": "button_isle_6", + "type": "box", + "x": -9, + "y": 128, + "z": -141, + "dimx": 239, + "dimy": 192, + "dimz": 11 + }, + { + "dimension": "minecraft:overworld", + "name": "button_isle_7", + "type": "box", + "x": 3, + "y": 128, + "z": -117, + "dimx": 251, + "dimy": 192, + "dimz": 11 + }, + { + "dimension": "minecraft:overworld", + "name": "button_isle_8", + "type": "box", + "x": -9, + "y": 128, + "z": -93, + "dimx": 263, + "dimy": 192, + "dimz": 11 + }, + { + "dimension": "minecraft:overworld", + "name": "button_isle_9", + "type": "box", + "x": 3, + "y": 128, + "z": -57, + "dimx": 275, + "dimy": 192, + "dimz": 23 + }, + { + "dimension": "minecraft:overworld", + "name": "button_isle_10", + "type": "box", + "x": -9, + "y": 128, + "z": -21, + "dimx": 287, + "dimy": 192, + "dimz": 11 + }, + { + "dimension": "minecraft:overworld", + "name": "button_isle_11", + "type": "box", + "x": 3, + "y": 128, + "z": 39, + "dimx": 275, + "dimy": 192, + "dimz": 47 + }, + { + "dimension": "minecraft:overworld", + "name": "button_isle_12", + "type": "box", + "x": -9, + "y": 128, + "z": 99, + "dimx": 263, + "dimy": 192, + "dimz": 11 + }, + { + "dimension": "minecraft:overworld", + "name": "button_isle_13", + "type": "box", + "x": 3, + "y": 128, + "z": 123, + "dimx": 251, + "dimy": 192, + "dimz": 11 + }, + { + "dimension": "minecraft:overworld", + "name": "button_isle_14", + "type": "box", + "x": 3, + "y": 128, + "z": 159, + "dimx": 227, + "dimy": 192, + "dimz": 23 + }, + { + "dimension": "minecraft:overworld", + "name": "button_isle_15", + "type": "box", + "x": 3, + "y": 128, + "z": 195, + "dimx": 203, + "dimy": 192, + "dimz": 11 + }, + { + "dimension": "minecraft:overworld", + "name": "button_isle_16", + "type": "box", + "x": 3, + "y": 128, + "z": 219, + "dimx": 179, + "dimy": 192, + "dimz": 11 + }, + { + "dimension": "minecraft:overworld", + "name": "button_isle_17", + "type": "box", + "x": 3, + "y": 128, + "z": 243, + "dimx": 131, + "dimy": 192, + "dimz": 11 + }, + { + "dimension": "minecraft:overworld", + "name": "button_isle_18", + "type": "box", + "x": 3, + "y": 128, + "z": 267, + "dimx": 83, + "dimy": 192, + "dimz": 11 + }, + { + "dimension": "minecraft:overworld", + "name": "southwold_0", + "type": "box", + "x": -1473, + "y": 128, + "z": 75, + "dimx": 47, + "dimy": 192, + "dimz": 11 + }, + { + "dimension": "minecraft:overworld", + "name": "southwold_1", + "type": "box", + "x": -405, + "y": 128, + "z": 75, + "dimx": 11, + "dimy": 192, + "dimz": 11 + }, + { + "dimension": "minecraft:overworld", + "name": "southwold_2", + "type": "box", + "x": 1539, + "y": 128, + "z": 87, + "dimx": 11, + "dimy": 192, + "dimz": 23 + }, + { + "dimension": "minecraft:overworld", + "name": "southwold_3", + "type": "box", + "x": -957, + "y": 128, + "z": 111, + "dimx": 563, + "dimy": 192, + "dimz": 23 + }, + { + "dimension": "minecraft:overworld", + "name": "southwold_4", + "type": "box", + "x": 1203, + "y": 128, + "z": 123, + "dimx": 11, + "dimy": 192, + "dimz": 11 + }, + { + "dimension": "minecraft:overworld", + "name": "southwold_5", + "type": "box", + "x": 1443, + "y": 128, + "z": 123, + "dimx": 35, + "dimy": 192, + "dimz": 11 + }, + { + "dimension": "minecraft:overworld", + "name": "southwold_6", + "type": "box", + "x": -945, + "y": 128, + "z": 147, + "dimx": 575, + "dimy": 192, + "dimz": 11 + }, + { + "dimension": "minecraft:overworld", + "name": "southwold_7", + "type": "box", + "x": 1443, + "y": 128, + "z": 159, + "dimx": 59, + "dimy": 192, + "dimz": 23 + }, + { + "dimension": "minecraft:overworld", + "name": "southwold_8", + "type": "box", + "x": -933, + "y": 128, + "z": 171, + "dimx": 587, + "dimy": 192, + "dimz": 11 + }, + { + "dimension": "minecraft:overworld", + "name": "southwold_9", + "type": "box", + "x": -921, + "y": 128, + "z": 195, + "dimx": 575, + "dimy": 192, + "dimz": 11 + }, + { + "dimension": "minecraft:overworld", + "name": "southwold_10", + "type": "box", + "x": 1431, + "y": 128, + "z": 195, + "dimx": 71, + "dimy": 192, + "dimz": 11 + }, + { + "dimension": "minecraft:overworld", + "name": "southwold_11", + "type": "box", + "x": -909, + "y": 128, + "z": 231, + "dimx": 587, + "dimy": 192, + "dimz": 23 + }, + { + "dimension": "minecraft:overworld", + "name": "southwold_12", + "type": "box", + "x": 339, + "y": 128, + "z": 219, + "dimx": 11, + "dimy": 192, + "dimz": 11 + }, + { + "dimension": "minecraft:overworld", + "name": "southwold_13", + "type": "box", + "x": 711, + "y": 128, + "z": 219, + "dimx": 23, + "dimy": 192, + "dimz": 11 + }, + { + "dimension": "minecraft:overworld", + "name": "southwold_14", + "type": "box", + "x": 1443, + "y": 128, + "z": 219, + "dimx": 59, + "dimy": 192, + "dimz": 11 + }, + { + "dimension": "minecraft:overworld", + "name": "southwold_15", + "type": "box", + "x": 327, + "y": 128, + "z": 243, + "dimx": 23, + "dimy": 192, + "dimz": 11 + }, + { + "dimension": "minecraft:overworld", + "name": "southwold_16", + "type": "box", + "x": 1431, + "y": 128, + "z": 243, + "dimx": 71, + "dimy": 192, + "dimz": 11 + }, + { + "dimension": "minecraft:overworld", + "name": "southwold_17", + "type": "box", + "x": -897, + "y": 128, + "z": 267, + "dimx": 599, + "dimy": 192, + "dimz": 11 + }, + { + "dimension": "minecraft:overworld", + "name": "southwold_18", + "type": "box", + "x": 351, + "y": 128, + "z": 267, + "dimx": 47, + "dimy": 192, + "dimz": 11 + }, + { + "dimension": "minecraft:overworld", + "name": "southwold_19", + "type": "box", + "x": 1443, + "y": 128, + "z": 267, + "dimx": 59, + "dimy": 192, + "dimz": 11 + }, + { + "dimension": "minecraft:overworld", + "name": "southwold_20", + "type": "box", + "x": -885, + "y": 128, + "z": 291, + "dimx": 611, + "dimy": 192, + "dimz": 11 + }, + { + "dimension": "minecraft:overworld", + "name": "southwold_21", + "type": "box", + "x": 351, + "y": 128, + "z": 291, + "dimx": 71, + "dimy": 192, + "dimz": 11 + }, + { + "dimension": "minecraft:overworld", + "name": "southwold_22", + "type": "box", + "x": 1455, + "y": 128, + "z": 291, + "dimx": 47, + "dimy": 192, + "dimz": 11 + }, + { + "dimension": "minecraft:overworld", + "name": "southwold_23", + "type": "box", + "x": -861, + "y": 128, + "z": 315, + "dimx": 611, + "dimy": 192, + "dimz": 11 + }, + { + "dimension": "minecraft:overworld", + "name": "southwold_24", + "type": "box", + "x": 327, + "y": 128, + "z": 315, + "dimx": 95, + "dimy": 192, + "dimz": 11 + }, + { + "dimension": "minecraft:overworld", + "name": "southwold_25", + "type": "box", + "x": 1455, + "y": 128, + "z": 315, + "dimx": 23, + "dimy": 192, + "dimz": 11 + }, + { + "dimension": "minecraft:overworld", + "name": "southwold_26", + "type": "box", + "x": -837, + "y": 128, + "z": 339, + "dimx": 635, + "dimy": 192, + "dimz": 11 + }, + { + "dimension": "minecraft:overworld", + "name": "southwold_27", + "type": "box", + "x": 315, + "y": 128, + "z": 339, + "dimx": 107, + "dimy": 192, + "dimz": 11 + }, + { + "dimension": "minecraft:overworld", + "name": "southwold_28", + "type": "box", + "x": 1467, + "y": 128, + "z": 339, + "dimx": 11, + "dimy": 192, + "dimz": 11 + }, + { + "dimension": "minecraft:overworld", + "name": "southwold_29", + "type": "box", + "x": -813, + "y": 128, + "z": 363, + "dimx": 659, + "dimy": 192, + "dimz": 11 + }, + { + "dimension": "minecraft:overworld", + "name": "southwold_30", + "type": "box", + "x": 291, + "y": 128, + "z": 363, + "dimx": 131, + "dimy": 192, + "dimz": 11 + }, + { + "dimension": "minecraft:overworld", + "name": "southwold_31", + "type": "box", + "x": -777, + "y": 128, + "z": 387, + "dimx": 695, + "dimy": 192, + "dimz": 11 + }, + { + "dimension": "minecraft:overworld", + "name": "southwold_32", + "type": "box", + "x": 267, + "y": 128, + "z": 387, + "dimx": 179, + "dimy": 192, + "dimz": 11 + }, + { + "dimension": "minecraft:overworld", + "name": "southwold_33", + "type": "box", + "x": 1467, + "y": 128, + "z": 387, + "dimx": 11, + "dimy": 192, + "dimz": 11 + }, + { + "dimension": "minecraft:overworld", + "name": "southwold_34", + "type": "box", + "x": -489, + "y": 128, + "z": 423, + "dimx": 959, + "dimy": 192, + "dimz": 23 + }, + { + "dimension": "minecraft:overworld", + "name": "southwold_35", + "type": "box", + "x": 1431, + "y": 128, + "z": 411, + "dimx": 47, + "dimy": 192, + "dimz": 11 + }, + { + "dimension": "minecraft:overworld", + "name": "southwold_36", + "type": "box", + "x": 1395, + "y": 128, + "z": 435, + "dimx": 59, + "dimy": 192, + "dimz": 11 + }, + { + "dimension": "minecraft:overworld", + "name": "southwold_37", + "type": "box", + "x": -477, + "y": 128, + "z": 459, + "dimx": 971, + "dimy": 192, + "dimz": 11 + }, + { + "dimension": "minecraft:overworld", + "name": "southwold_38", + "type": "box", + "x": 1383, + "y": 128, + "z": 459, + "dimx": 71, + "dimy": 192, + "dimz": 11 + }, + { + "dimension": "minecraft:overworld", + "name": "southwold_39", + "type": "box", + "x": -489, + "y": 128, + "z": 495, + "dimx": 935, + "dimy": 192, + "dimz": 23 + }, + { + "dimension": "minecraft:overworld", + "name": "southwold_40", + "type": "box", + "x": 1359, + "y": 128, + "z": 483, + "dimx": 95, + "dimy": 192, + "dimz": 11 + }, + { + "dimension": "minecraft:overworld", + "name": "southwold_41", + "type": "box", + "x": 1335, + "y": 128, + "z": 531, + "dimx": 95, + "dimy": 192, + "dimz": 35 + }, + { + "dimension": "minecraft:overworld", + "name": "southwold_42", + "type": "box", + "x": -513, + "y": 128, + "z": 531, + "dimx": 911, + "dimy": 192, + "dimz": 11 + }, + { + "dimension": "minecraft:overworld", + "name": "southwold_43", + "type": "box", + "x": -549, + "y": 128, + "z": 555, + "dimx": 851, + "dimy": 192, + "dimz": 11 + }, + { + "dimension": "minecraft:overworld", + "name": "southwold_44", + "type": "box", + "x": -597, + "y": 128, + "z": 579, + "dimx": 803, + "dimy": 192, + "dimz": 11 + }, + { + "dimension": "minecraft:overworld", + "name": "southwold_45", + "type": "box", + "x": 1323, + "y": 128, + "z": 591, + "dimx": 83, + "dimy": 192, + "dimz": 23 + }, + { + "dimension": "minecraft:overworld", + "name": "southwold_46", + "type": "box", + "x": -597, + "y": 128, + "z": 603, + "dimx": 779, + "dimy": 192, + "dimz": 11 + }, + { + "dimension": "minecraft:overworld", + "name": "southwold_47", + "type": "box", + "x": -609, + "y": 128, + "z": 627, + "dimx": 767, + "dimy": 192, + "dimz": 11 + }, + { + "dimension": "minecraft:overworld", + "name": "southwold_48", + "type": "box", + "x": 1311, + "y": 128, + "z": 639, + "dimx": 71, + "dimy": 192, + "dimz": 23 + }, + { + "dimension": "minecraft:overworld", + "name": "southwold_49", + "type": "box", + "x": -621, + "y": 128, + "z": 651, + "dimx": 755, + "dimy": 192, + "dimz": 11 + }, + { + "dimension": "minecraft:overworld", + "name": "southwold_50", + "type": "box", + "x": -609, + "y": 128, + "z": 675, + "dimx": 743, + "dimy": 192, + "dimz": 11 + }, + { + "dimension": "minecraft:overworld", + "name": "southwold_51", + "type": "box", + "x": 1299, + "y": 128, + "z": 675, + "dimx": 59, + "dimy": 192, + "dimz": 11 + }, + { + "dimension": "minecraft:overworld", + "name": "southwold_52", + "type": "box", + "x": -597, + "y": 128, + "z": 699, + "dimx": 731, + "dimy": 192, + "dimz": 11 + }, + { + "dimension": "minecraft:overworld", + "name": "southwold_53", + "type": "box", + "x": 1287, + "y": 128, + "z": 699, + "dimx": 71, + "dimy": 192, + "dimz": 11 + }, + { + "dimension": "minecraft:overworld", + "name": "southwold_54", + "type": "box", + "x": -633, + "y": 128, + "z": 723, + "dimx": 695, + "dimy": 192, + "dimz": 11 + }, + { + "dimension": "minecraft:overworld", + "name": "southwold_55", + "type": "box", + "x": 1275, + "y": 128, + "z": 723, + "dimx": 59, + "dimy": 192, + "dimz": 11 + }, + { + "dimension": "minecraft:overworld", + "name": "southwold_56", + "type": "box", + "x": -621, + "y": 128, + "z": 747, + "dimx": 683, + "dimy": 192, + "dimz": 11 + }, + { + "dimension": "minecraft:overworld", + "name": "southwold_57", + "type": "box", + "x": 1251, + "y": 128, + "z": 747, + "dimx": 59, + "dimy": 192, + "dimz": 11 + }, + { + "dimension": "minecraft:overworld", + "name": "southwold_58", + "type": "box", + "x": -633, + "y": 128, + "z": 771, + "dimx": 671, + "dimy": 192, + "dimz": 11 + }, + { + "dimension": "minecraft:overworld", + "name": "southwold_59", + "type": "box", + "x": 1239, + "y": 128, + "z": 771, + "dimx": 71, + "dimy": 192, + "dimz": 11 + }, + { + "dimension": "minecraft:overworld", + "name": "southwold_60", + "type": "box", + "x": -621, + "y": 128, + "z": 807, + "dimx": 659, + "dimy": 192, + "dimz": 23 + }, + { + "dimension": "minecraft:overworld", + "name": "southwold_61", + "type": "box", + "x": 1203, + "y": 128, + "z": 795, + "dimx": 83, + "dimy": 192, + "dimz": 11 + }, + { + "dimension": "minecraft:overworld", + "name": "southwold_62", + "type": "box", + "x": 243, + "y": 128, + "z": 819, + "dimx": 35, + "dimy": 192, + "dimz": 11 + }, + { + "dimension": "minecraft:overworld", + "name": "southwold_63", + "type": "box", + "x": 1191, + "y": 128, + "z": 819, + "dimx": 95, + "dimy": 192, + "dimz": 11 + }, + { + "dimension": "minecraft:overworld", + "name": "southwold_64", + "type": "box", + "x": -609, + "y": 128, + "z": 843, + "dimx": 647, + "dimy": 192, + "dimz": 11 + }, + { + "dimension": "minecraft:overworld", + "name": "southwold_65", + "type": "box", + "x": 231, + "y": 128, + "z": 843, + "dimx": 47, + "dimy": 192, + "dimz": 11 + }, + { + "dimension": "minecraft:overworld", + "name": "southwold_66", + "type": "box", + "x": 1179, + "y": 128, + "z": 843, + "dimx": 83, + "dimy": 192, + "dimz": 11 + }, + { + "dimension": "minecraft:overworld", + "name": "southwold_67", + "type": "box", + "x": -597, + "y": 128, + "z": 867, + "dimx": 635, + "dimy": 192, + "dimz": 11 + }, + { + "dimension": "minecraft:overworld", + "name": "southwold_68", + "type": "box", + "x": 219, + "y": 128, + "z": 867, + "dimx": 35, + "dimy": 192, + "dimz": 11 + }, + { + "dimension": "minecraft:overworld", + "name": "southwold_69", + "type": "box", + "x": 1155, + "y": 128, + "z": 879, + "dimx": 83, + "dimy": 192, + "dimz": 23 + }, + { + "dimension": "minecraft:overworld", + "name": "southwold_70", + "type": "box", + "x": -585, + "y": 128, + "z": 903, + "dimx": 623, + "dimy": 192, + "dimz": 23 + }, + { + "dimension": "minecraft:overworld", + "name": "southwold_71", + "type": "box", + "x": 207, + "y": 128, + "z": 891, + "dimx": 23, + "dimy": 192, + "dimz": 11 + }, + { + "dimension": "minecraft:overworld", + "name": "southwold_72", + "type": "box", + "x": 435, + "y": 128, + "z": 903, + "dimx": 35, + "dimy": 192, + "dimz": 23 + }, + { + "dimension": "minecraft:overworld", + "name": "southwold_73", + "type": "box", + "x": 1155, + "y": 128, + "z": 927, + "dimx": 35, + "dimy": 192, + "dimz": 23 + }, + { + "dimension": "minecraft:overworld", + "name": "southwold_74", + "type": "box", + "x": -561, + "y": 128, + "z": 939, + "dimx": 623, + "dimy": 192, + "dimz": 11 + }, + { + "dimension": "minecraft:overworld", + "name": "southwold_75", + "type": "box", + "x": 459, + "y": 128, + "z": 939, + "dimx": 11, + "dimy": 192, + "dimz": 11 + }, + { + "dimension": "minecraft:overworld", + "name": "southwold_76", + "type": "box", + "x": -549, + "y": 128, + "z": 963, + "dimx": 611, + "dimy": 192, + "dimz": 11 + }, + { + "dimension": "minecraft:overworld", + "name": "southwold_77", + "type": "box", + "x": 1131, + "y": 128, + "z": 963, + "dimx": 35, + "dimy": 192, + "dimz": 11 + }, + { + "dimension": "minecraft:overworld", + "name": "southwold_78", + "type": "box", + "x": -525, + "y": 128, + "z": 987, + "dimx": 611, + "dimy": 192, + "dimz": 11 + }, + { + "dimension": "minecraft:overworld", + "name": "southwold_79", + "type": "box", + "x": 1131, + "y": 128, + "z": 987, + "dimx": 11, + "dimy": 192, + "dimz": 11 + }, + { + "dimension": "minecraft:overworld", + "name": "southwold_80", + "type": "box", + "x": -513, + "y": 128, + "z": 1011, + "dimx": 599, + "dimy": 192, + "dimz": 11 + }, + { + "dimension": "minecraft:overworld", + "name": "southwold_81", + "type": "box", + "x": -489, + "y": 128, + "z": 1035, + "dimx": 599, + "dimy": 192, + "dimz": 11 + }, + { + "dimension": "minecraft:overworld", + "name": "southwold_82", + "type": "box", + "x": -477, + "y": 128, + "z": 1059, + "dimx": 587, + "dimy": 192, + "dimz": 11 + }, + { + "dimension": "minecraft:overworld", + "name": "southwold_83", + "type": "box", + "x": 843, + "y": 128, + "z": 1059, + "dimx": 11, + "dimy": 192, + "dimz": 11 + }, + { + "dimension": "minecraft:overworld", + "name": "southwold_84", + "type": "box", + "x": -477, + "y": 128, + "z": 1083, + "dimx": 563, + "dimy": 192, + "dimz": 11 + }, + { + "dimension": "minecraft:overworld", + "name": "southwold_85", + "type": "box", + "x": 795, + "y": 128, + "z": 1083, + "dimx": 83, + "dimy": 192, + "dimz": 11 + }, + { + "dimension": "minecraft:overworld", + "name": "southwold_86", + "type": "box", + "x": -453, + "y": 128, + "z": 1107, + "dimx": 563, + "dimy": 192, + "dimz": 11 + }, + { + "dimension": "minecraft:overworld", + "name": "southwold_87", + "type": "box", + "x": 795, + "y": 128, + "z": 1107, + "dimx": 107, + "dimy": 192, + "dimz": 11 + }, + { + "dimension": "minecraft:overworld", + "name": "southwold_88", + "type": "box", + "x": -441, + "y": 128, + "z": 1131, + "dimx": 551, + "dimy": 192, + "dimz": 11 + }, + { + "dimension": "minecraft:overworld", + "name": "southwold_89", + "type": "box", + "x": 771, + "y": 128, + "z": 1131, + "dimx": 83, + "dimy": 192, + "dimz": 11 + }, + { + "dimension": "minecraft:overworld", + "name": "southwold_90", + "type": "box", + "x": -429, + "y": 128, + "z": 1155, + "dimx": 539, + "dimy": 192, + "dimz": 11 + }, + { + "dimension": "minecraft:overworld", + "name": "southwold_91", + "type": "box", + "x": 723, + "y": 128, + "z": 1155, + "dimx": 107, + "dimy": 192, + "dimz": 11 + }, + { + "dimension": "minecraft:overworld", + "name": "southwold_92", + "type": "box", + "x": -417, + "y": 128, + "z": 1179, + "dimx": 527, + "dimy": 192, + "dimz": 11 + }, + { + "dimension": "minecraft:overworld", + "name": "southwold_93", + "type": "box", + "x": 675, + "y": 128, + "z": 1179, + "dimx": 155, + "dimy": 192, + "dimz": 11 + }, + { + "dimension": "minecraft:overworld", + "name": "southwold_94", + "type": "box", + "x": -405, + "y": 128, + "z": 1203, + "dimx": 515, + "dimy": 192, + "dimz": 11 + }, + { + "dimension": "minecraft:overworld", + "name": "southwold_95", + "type": "box", + "x": 639, + "y": 128, + "z": 1203, + "dimx": 167, + "dimy": 192, + "dimz": 11 + }, + { + "dimension": "minecraft:overworld", + "name": "southwold_96", + "type": "box", + "x": -429, + "y": 128, + "z": 1227, + "dimx": 443, + "dimy": 192, + "dimz": 11 + }, + { + "dimension": "minecraft:overworld", + "name": "southwold_97", + "type": "box", + "x": 75, + "y": 128, + "z": 1227, + "dimx": 11, + "dimy": 192, + "dimz": 11 + }, + { + "dimension": "minecraft:overworld", + "name": "southwold_98", + "type": "box", + "x": 639, + "y": 128, + "z": 1227, + "dimx": 191, + "dimy": 192, + "dimz": 11 + }, + { + "dimension": "minecraft:overworld", + "name": "southwold_99", + "type": "box", + "x": -405, + "y": 128, + "z": 1251, + "dimx": 419, + "dimy": 192, + "dimz": 11 + }, + { + "dimension": "minecraft:overworld", + "name": "southwold_100", + "type": "box", + "x": 603, + "y": 128, + "z": 1251, + "dimx": 227, + "dimy": 192, + "dimz": 11 + }, + { + "dimension": "minecraft:overworld", + "name": "southwold_101", + "type": "box", + "x": -393, + "y": 128, + "z": 1275, + "dimx": 407, + "dimy": 192, + "dimz": 11 + }, + { + "dimension": "minecraft:overworld", + "name": "southwold_102", + "type": "box", + "x": 555, + "y": 128, + "z": 1275, + "dimx": 251, + "dimy": 192, + "dimz": 11 + }, + { + "dimension": "minecraft:overworld", + "name": "southwold_103", + "type": "box", + "x": -369, + "y": 128, + "z": 1299, + "dimx": 383, + "dimy": 192, + "dimz": 11 + }, + { + "dimension": "minecraft:overworld", + "name": "southwold_104", + "type": "box", + "x": 519, + "y": 128, + "z": 1299, + "dimx": 263, + "dimy": 192, + "dimz": 11 + }, + { + "dimension": "minecraft:overworld", + "name": "southwold_105", + "type": "box", + "x": -345, + "y": 128, + "z": 1323, + "dimx": 383, + "dimy": 192, + "dimz": 11 + }, + { + "dimension": "minecraft:overworld", + "name": "southwold_106", + "type": "box", + "x": 495, + "y": 128, + "z": 1323, + "dimx": 239, + "dimy": 192, + "dimz": 11 + }, + { + "dimension": "minecraft:overworld", + "name": "southwold_107", + "type": "box", + "x": -285, + "y": 128, + "z": 1347, + "dimx": 395, + "dimy": 192, + "dimz": 11 + }, + { + "dimension": "minecraft:overworld", + "name": "southwold_108", + "type": "box", + "x": 435, + "y": 128, + "z": 1347, + "dimx": 251, + "dimy": 192, + "dimz": 11 + }, + { + "dimension": "minecraft:overworld", + "name": "southwold_109", + "type": "box", + "x": 15, + "y": 128, + "z": 1371, + "dimx": 647, + "dimy": 192, + "dimz": 11 + }, + { + "dimension": "minecraft:overworld", + "name": "southwold_110", + "type": "box", + "x": 15, + "y": 128, + "z": 1395, + "dimx": 599, + "dimy": 192, + "dimz": 11 + }, + { + "dimension": "minecraft:overworld", + "name": "southwold_111", + "type": "box", + "x": 3, + "y": 128, + "z": 1419, + "dimx": 539, + "dimy": 192, + "dimz": 11 + }, + { + "dimension": "minecraft:overworld", + "name": "southwold_112", + "type": "box", + "x": -117, + "y": 128, + "z": 1443, + "dimx": 347, + "dimy": 192, + "dimz": 11 + }, + { + "dimension": "minecraft:overworld", + "name": "southwold_113", + "type": "box", + "x": 375, + "y": 128, + "z": 1443, + "dimx": 95, + "dimy": 192, + "dimz": 11 + }, + { + "dimension": "minecraft:overworld", + "name": "southwold_114", + "type": "box", + "x": -141, + "y": 128, + "z": 1467, + "dimx": 275, + "dimy": 192, + "dimz": 11 + }, + { + "dimension": "minecraft:overworld", + "name": "southwold_115", + "type": "box", + "x": 351, + "y": 128, + "z": 1467, + "dimx": 71, + "dimy": 192, + "dimz": 11 + }, + { + "dimension": "minecraft:overworld", + "name": "southwold_116", + "type": "box", + "x": -93, + "y": 128, + "z": 1491, + "dimx": 227, + "dimy": 192, + "dimz": 11 + }, + { + "dimension": "minecraft:overworld", + "name": "southwold_117", + "type": "box", + "x": 339, + "y": 128, + "z": 1491, + "dimx": 11, + "dimy": 192, + "dimz": 11 + }, + { + "dimension": "minecraft:overworld", + "name": "southwold_118", + "type": "box", + "x": -213, + "y": 128, + "z": 1515, + "dimx": 11, + "dimy": 192, + "dimz": 11 + }, + { + "dimension": "minecraft:overworld", + "name": "southwold_119", + "type": "box", + "x": -93, + "y": 128, + "z": 1515, + "dimx": 83, + "dimy": 192, + "dimz": 11 + }, + { + "dimension": "minecraft:overworld", + "name": "westmarch_0", + "type": "box", + "x": -309, + "y": 128, + "z": -1461, + "dimx": 59, + "dimy": 192, + "dimz": 11 + }, + { + "dimension": "minecraft:overworld", + "name": "westmarch_1", + "type": "box", + "x": -321, + "y": 128, + "z": -1437, + "dimx": 71, + "dimy": 192, + "dimz": 11 + }, + { + "dimension": "minecraft:overworld", + "name": "westmarch_2", + "type": "box", + "x": -345, + "y": 128, + "z": -1413, + "dimx": 95, + "dimy": 192, + "dimz": 11 + }, + { + "dimension": "minecraft:overworld", + "name": "westmarch_3", + "type": "box", + "x": -381, + "y": 128, + "z": -1377, + "dimx": 131, + "dimy": 192, + "dimz": 23 + }, + { + "dimension": "minecraft:overworld", + "name": "westmarch_4", + "type": "box", + "x": -549, + "y": 128, + "z": -1365, + "dimx": 11, + "dimy": 192, + "dimz": 11 + }, + { + "dimension": "minecraft:overworld", + "name": "westmarch_5", + "type": "box", + "x": -597, + "y": 128, + "z": -1341, + "dimx": 11, + "dimy": 192, + "dimz": 11 + }, + { + "dimension": "minecraft:overworld", + "name": "westmarch_6", + "type": "box", + "x": -405, + "y": 128, + "z": -1341, + "dimx": 155, + "dimy": 192, + "dimz": 11 + }, + { + "dimension": "minecraft:overworld", + "name": "westmarch_7", + "type": "box", + "x": -645, + "y": 128, + "z": -1317, + "dimx": 11, + "dimy": 192, + "dimz": 11 + }, + { + "dimension": "minecraft:overworld", + "name": "westmarch_8", + "type": "box", + "x": -429, + "y": 128, + "z": -1317, + "dimx": 179, + "dimy": 192, + "dimz": 11 + }, + { + "dimension": "minecraft:overworld", + "name": "westmarch_9", + "type": "box", + "x": -693, + "y": 128, + "z": -1293, + "dimx": 11, + "dimy": 192, + "dimz": 11 + }, + { + "dimension": "minecraft:overworld", + "name": "westmarch_10", + "type": "box", + "x": -441, + "y": 128, + "z": -1281, + "dimx": 191, + "dimy": 192, + "dimz": 23 + }, + { + "dimension": "minecraft:overworld", + "name": "westmarch_11", + "type": "box", + "x": -741, + "y": 128, + "z": -1269, + "dimx": 11, + "dimy": 192, + "dimz": 11 + }, + { + "dimension": "minecraft:overworld", + "name": "westmarch_12", + "type": "box", + "x": -753, + "y": 128, + "z": -1245, + "dimx": 47, + "dimy": 192, + "dimz": 11 + }, + { + "dimension": "minecraft:overworld", + "name": "westmarch_13", + "type": "box", + "x": -453, + "y": 128, + "z": -1245, + "dimx": 203, + "dimy": 192, + "dimz": 11 + }, + { + "dimension": "minecraft:overworld", + "name": "westmarch_14", + "type": "box", + "x": -765, + "y": 128, + "z": -1221, + "dimx": 59, + "dimy": 192, + "dimz": 11 + }, + { + "dimension": "minecraft:overworld", + "name": "westmarch_15", + "type": "box", + "x": -453, + "y": 128, + "z": -1209, + "dimx": 227, + "dimy": 192, + "dimz": 23 + }, + { + "dimension": "minecraft:overworld", + "name": "westmarch_16", + "type": "box", + "x": -789, + "y": 128, + "z": -1197, + "dimx": 83, + "dimy": 192, + "dimz": 11 + }, + { + "dimension": "minecraft:overworld", + "name": "westmarch_17", + "type": "box", + "x": -573, + "y": 128, + "z": -1161, + "dimx": 323, + "dimy": 192, + "dimz": 23 + }, + { + "dimension": "minecraft:overworld", + "name": "westmarch_18", + "type": "box", + "x": -561, + "y": 128, + "z": -1089, + "dimx": 311, + "dimy": 192, + "dimz": 47 + }, + { + "dimension": "minecraft:overworld", + "name": "westmarch_19", + "type": "box", + "x": -573, + "y": 128, + "z": -1029, + "dimx": 323, + "dimy": 192, + "dimz": 11 + }, + { + "dimension": "minecraft:overworld", + "name": "westmarch_20", + "type": "box", + "x": -561, + "y": 128, + "z": -1005, + "dimx": 311, + "dimy": 192, + "dimz": 11 + }, + { + "dimension": "minecraft:overworld", + "name": "westmarch_21", + "type": "box", + "x": -585, + "y": 128, + "z": -981, + "dimx": 335, + "dimy": 192, + "dimz": 11 + }, + { + "dimension": "minecraft:overworld", + "name": "westmarch_22", + "type": "box", + "x": -597, + "y": 128, + "z": -957, + "dimx": 347, + "dimy": 192, + "dimz": 11 + }, + { + "dimension": "minecraft:overworld", + "name": "westmarch_23", + "type": "box", + "x": -1161, + "y": 128, + "z": -933, + "dimx": 23, + "dimy": 192, + "dimz": 11 + }, + { + "dimension": "minecraft:overworld", + "name": "westmarch_24", + "type": "box", + "x": -645, + "y": 128, + "z": -933, + "dimx": 395, + "dimy": 192, + "dimz": 11 + }, + { + "dimension": "minecraft:overworld", + "name": "westmarch_25", + "type": "box", + "x": -729, + "y": 128, + "z": -897, + "dimx": 479, + "dimy": 192, + "dimz": 23 + }, + { + "dimension": "minecraft:overworld", + "name": "westmarch_26", + "type": "box", + "x": -741, + "y": 128, + "z": -861, + "dimx": 491, + "dimy": 192, + "dimz": 11 + }, + { + "dimension": "minecraft:overworld", + "name": "westmarch_27", + "type": "box", + "x": -753, + "y": 128, + "z": -837, + "dimx": 503, + "dimy": 192, + "dimz": 11 + }, + { + "dimension": "minecraft:overworld", + "name": "westmarch_28", + "type": "box", + "x": -765, + "y": 128, + "z": -801, + "dimx": 515, + "dimy": 192, + "dimz": 23 + }, + { + "dimension": "minecraft:overworld", + "name": "westmarch_29", + "type": "box", + "x": -777, + "y": 128, + "z": -765, + "dimx": 527, + "dimy": 192, + "dimz": 11 + }, + { + "dimension": "minecraft:overworld", + "name": "westmarch_30", + "type": "box", + "x": -789, + "y": 128, + "z": -729, + "dimx": 515, + "dimy": 192, + "dimz": 23 + }, + { + "dimension": "minecraft:overworld", + "name": "westmarch_31", + "type": "box", + "x": -765, + "y": 128, + "z": -669, + "dimx": 515, + "dimy": 192, + "dimz": 35 + }, + { + "dimension": "minecraft:overworld", + "name": "westmarch_32", + "type": "box", + "x": -813, + "y": 128, + "z": -621, + "dimx": 563, + "dimy": 192, + "dimz": 11 + }, + { + "dimension": "minecraft:overworld", + "name": "westmarch_33", + "type": "box", + "x": -825, + "y": 128, + "z": -585, + "dimx": 575, + "dimy": 192, + "dimz": 23 + }, + { + "dimension": "minecraft:overworld", + "name": "westmarch_34", + "type": "box", + "x": -849, + "y": 128, + "z": -537, + "dimx": 575, + "dimy": 192, + "dimz": 23 + }, + { + "dimension": "minecraft:overworld", + "name": "westmarch_35", + "type": "box", + "x": -849, + "y": 128, + "z": -489, + "dimx": 599, + "dimy": 192, + "dimz": 23 + }, + { + "dimension": "minecraft:overworld", + "name": "westmarch_36", + "type": "box", + "x": -861, + "y": 128, + "z": -417, + "dimx": 611, + "dimy": 192, + "dimz": 47 + }, + { + "dimension": "minecraft:overworld", + "name": "westmarch_37", + "type": "box", + "x": -849, + "y": 128, + "z": -357, + "dimx": 599, + "dimy": 192, + "dimz": 11 + }, + { + "dimension": "minecraft:overworld", + "name": "westmarch_38", + "type": "box", + "x": -813, + "y": 128, + "z": -333, + "dimx": 563, + "dimy": 192, + "dimz": 11 + }, + { + "dimension": "minecraft:overworld", + "name": "westmarch_39", + "type": "box", + "x": -801, + "y": 128, + "z": -309, + "dimx": 551, + "dimy": 192, + "dimz": 11 + }, + { + "dimension": "minecraft:overworld", + "name": "westmarch_40", + "type": "box", + "x": -813, + "y": 128, + "z": -285, + "dimx": 539, + "dimy": 192, + "dimz": 11 + }, + { + "dimension": "minecraft:overworld", + "name": "westmarch_41", + "type": "box", + "x": -813, + "y": 128, + "z": -261, + "dimx": 515, + "dimy": 192, + "dimz": 11 + }, + { + "dimension": "minecraft:overworld", + "name": "westmarch_42", + "type": "box", + "x": -825, + "y": 128, + "z": -237, + "dimx": 503, + "dimy": 192, + "dimz": 11 + }, + { + "dimension": "minecraft:overworld", + "name": "westmarch_43", + "type": "box", + "x": -837, + "y": 128, + "z": -213, + "dimx": 491, + "dimy": 192, + "dimz": 11 + }, + { + "dimension": "minecraft:overworld", + "name": "westmarch_44", + "type": "box", + "x": -1509, + "y": 128, + "z": -177, + "dimx": 11, + "dimy": 192, + "dimz": 23 + }, + { + "dimension": "minecraft:overworld", + "name": "westmarch_45", + "type": "box", + "x": -1185, + "y": 128, + "z": -189, + "dimx": 143, + "dimy": 192, + "dimz": 11 + }, + { + "dimension": "minecraft:overworld", + "name": "westmarch_46", + "type": "box", + "x": -669, + "y": 128, + "z": -177, + "dimx": 323, + "dimy": 192, + "dimz": 23 + }, + { + "dimension": "minecraft:overworld", + "name": "westmarch_47", + "type": "box", + "x": -1209, + "y": 128, + "z": -165, + "dimx": 143, + "dimy": 192, + "dimz": 11 + }, + { + "dimension": "minecraft:overworld", + "name": "westmarch_48", + "type": "box", + "x": -1245, + "y": 128, + "z": -141, + "dimx": 107, + "dimy": 192, + "dimz": 11 + }, + { + "dimension": "minecraft:overworld", + "name": "westmarch_49", + "type": "box", + "x": -681, + "y": 128, + "z": -141, + "dimx": 311, + "dimy": 192, + "dimz": 11 + }, + { + "dimension": "minecraft:overworld", + "name": "westmarch_50", + "type": "box", + "x": -1269, + "y": 128, + "z": -117, + "dimx": 107, + "dimy": 192, + "dimz": 11 + }, + { + "dimension": "minecraft:overworld", + "name": "westmarch_51", + "type": "box", + "x": -693, + "y": 128, + "z": -117, + "dimx": 323, + "dimy": 192, + "dimz": 11 + }, + { + "dimension": "minecraft:overworld", + "name": "westmarch_52", + "type": "box", + "x": -1281, + "y": 128, + "z": -93, + "dimx": 119, + "dimy": 192, + "dimz": 11 + }, + { + "dimension": "minecraft:overworld", + "name": "westmarch_53", + "type": "box", + "x": -717, + "y": 128, + "z": -93, + "dimx": 323, + "dimy": 192, + "dimz": 11 + }, + { + "dimension": "minecraft:overworld", + "name": "jungle_0", + "type": "box", + "x": -1473, + "y": 128, + "z": -357, + "dimx": 23, + "dimy": 192, + "dimz": 11 + }, + { + "dimension": "minecraft:overworld", + "name": "jungle_1", + "type": "box", + "x": -1437, + "y": 128, + "z": -333, + "dimx": 59, + "dimy": 192, + "dimz": 11 + }, + { + "dimension": "minecraft:overworld", + "name": "jungle_2", + "type": "box", + "x": 363, + "y": 128, + "z": -333, + "dimx": 11, + "dimy": 192, + "dimz": 11 + }, + { + "dimension": "minecraft:overworld", + "name": "jungle_3", + "type": "box", + "x": -1425, + "y": 128, + "z": -297, + "dimx": 71, + "dimy": 192, + "dimz": 23 + }, + { + "dimension": "minecraft:overworld", + "name": "jungle_4", + "type": "box", + "x": 363, + "y": 128, + "z": -309, + "dimx": 35, + "dimy": 192, + "dimz": 11 + }, + { + "dimension": "minecraft:overworld", + "name": "jungle_5", + "type": "box", + "x": 363, + "y": 128, + "z": -285, + "dimx": 59, + "dimy": 192, + "dimz": 11 + }, + { + "dimension": "minecraft:overworld", + "name": "jungle_6", + "type": "box", + "x": 531, + "y": 128, + "z": -285, + "dimx": 35, + "dimy": 192, + "dimz": 11 + }, + { + "dimension": "minecraft:overworld", + "name": "jungle_7", + "type": "box", + "x": -1413, + "y": 128, + "z": -261, + "dimx": 83, + "dimy": 192, + "dimz": 11 + }, + { + "dimension": "minecraft:overworld", + "name": "jungle_8", + "type": "box", + "x": 375, + "y": 128, + "z": -261, + "dimx": 71, + "dimy": 192, + "dimz": 11 + }, + { + "dimension": "minecraft:overworld", + "name": "jungle_9", + "type": "box", + "x": 519, + "y": 128, + "z": -261, + "dimx": 47, + "dimy": 192, + "dimz": 11 + }, + { + "dimension": "minecraft:overworld", + "name": "jungle_10", + "type": "box", + "x": -1425, + "y": 128, + "z": -225, + "dimx": 95, + "dimy": 192, + "dimz": 23 + }, + { + "dimension": "minecraft:overworld", + "name": "jungle_11", + "type": "box", + "x": 435, + "y": 128, + "z": -225, + "dimx": 107, + "dimy": 192, + "dimz": 23 + }, + { + "dimension": "minecraft:overworld", + "name": "jungle_12", + "type": "box", + "x": 783, + "y": 128, + "z": -213, + "dimx": 23, + "dimy": 192, + "dimz": 11 + }, + { + "dimension": "minecraft:overworld", + "name": "jungle_13", + "type": "box", + "x": -1413, + "y": 128, + "z": -189, + "dimx": 83, + "dimy": 192, + "dimz": 11 + }, + { + "dimension": "minecraft:overworld", + "name": "jungle_14", + "type": "box", + "x": 447, + "y": 128, + "z": -189, + "dimx": 95, + "dimy": 192, + "dimz": 11 + }, + { + "dimension": "minecraft:overworld", + "name": "jungle_15", + "type": "box", + "x": 795, + "y": 128, + "z": -189, + "dimx": 59, + "dimy": 192, + "dimz": 11 + }, + { + "dimension": "minecraft:overworld", + "name": "jungle_16", + "type": "box", + "x": -1425, + "y": 128, + "z": -165, + "dimx": 71, + "dimy": 192, + "dimz": 11 + }, + { + "dimension": "minecraft:overworld", + "name": "jungle_17", + "type": "box", + "x": 459, + "y": 128, + "z": -165, + "dimx": 107, + "dimy": 192, + "dimz": 11 + }, + { + "dimension": "minecraft:overworld", + "name": "jungle_18", + "type": "box", + "x": 783, + "y": 128, + "z": -153, + "dimx": 71, + "dimy": 192, + "dimz": 23 + }, + { + "dimension": "minecraft:overworld", + "name": "jungle_19", + "type": "box", + "x": -1437, + "y": 128, + "z": -141, + "dimx": 83, + "dimy": 192, + "dimz": 11 + }, + { + "dimension": "minecraft:overworld", + "name": "jungle_20", + "type": "box", + "x": 507, + "y": 128, + "z": -141, + "dimx": 131, + "dimy": 192, + "dimz": 11 + }, + { + "dimension": "minecraft:overworld", + "name": "jungle_21", + "type": "box", + "x": -1449, + "y": 128, + "z": -117, + "dimx": 71, + "dimy": 192, + "dimz": 11 + }, + { + "dimension": "minecraft:overworld", + "name": "jungle_22", + "type": "box", + "x": 627, + "y": 128, + "z": -117, + "dimx": 251, + "dimy": 192, + "dimz": 11 + }, + { + "dimension": "minecraft:overworld", + "name": "jungle_23", + "type": "box", + "x": -1461, + "y": 128, + "z": -93, + "dimx": 59, + "dimy": 192, + "dimz": 11 + }, + { + "dimension": "minecraft:overworld", + "name": "jungle_24", + "type": "box", + "x": 639, + "y": 128, + "z": -93, + "dimx": 263, + "dimy": 192, + "dimz": 11 + }, + { + "dimension": "minecraft:overworld", + "name": "jungle_25", + "type": "box", + "x": 447, + "y": 128, + "z": 75, + "dimx": 47, + "dimy": 192, + "dimz": 11 + }, + { + "dimension": "minecraft:overworld", + "name": "jungle_26", + "type": "box", + "x": 1479, + "y": 128, + "z": 75, + "dimx": 47, + "dimy": 192, + "dimz": 11 + }, + { + "dimension": "minecraft:overworld", + "name": "jungle_27", + "type": "box", + "x": 951, + "y": 128, + "z": 99, + "dimx": 575, + "dimy": 192, + "dimz": 11 + }, + { + "dimension": "minecraft:overworld", + "name": "jungle_28", + "type": "box", + "x": 783, + "y": 128, + "z": 123, + "dimx": 407, + "dimy": 192, + "dimz": 11 + }, + { + "dimension": "minecraft:overworld", + "name": "jungle_29", + "type": "box", + "x": 1311, + "y": 128, + "z": 123, + "dimx": 95, + "dimy": 192, + "dimz": 11 + }, + { + "dimension": "minecraft:overworld", + "name": "jungle_30", + "type": "box", + "x": 1503, + "y": 128, + "z": 123, + "dimx": 23, + "dimy": 192, + "dimz": 11 + }, + { + "dimension": "minecraft:overworld", + "name": "jungle_31", + "type": "box", + "x": 879, + "y": 128, + "z": 147, + "dimx": 503, + "dimy": 192, + "dimz": 11 + }, + { + "dimension": "minecraft:overworld", + "name": "jungle_32", + "type": "box", + "x": 1515, + "y": 128, + "z": 195, + "dimx": 11, + "dimy": 192, + "dimz": 59 + }, + { + "dimension": "minecraft:overworld", + "name": "jungle_33", + "type": "box", + "x": 867, + "y": 128, + "z": 171, + "dimx": 515, + "dimy": 192, + "dimz": 11 + }, + { + "dimension": "minecraft:overworld", + "name": "jungle_34", + "type": "box", + "x": 855, + "y": 128, + "z": 195, + "dimx": 503, + "dimy": 192, + "dimz": 11 + }, + { + "dimension": "minecraft:overworld", + "name": "jungle_35", + "type": "box", + "x": 519, + "y": 128, + "z": 219, + "dimx": 167, + "dimy": 192, + "dimz": 11 + }, + { + "dimension": "minecraft:overworld", + "name": "jungle_36", + "type": "box", + "x": 1059, + "y": 128, + "z": 219, + "dimx": 323, + "dimy": 192, + "dimz": 11 + }, + { + "dimension": "minecraft:overworld", + "name": "jungle_37", + "type": "box", + "x": 855, + "y": 128, + "z": 243, + "dimx": 503, + "dimy": 192, + "dimz": 11 + }, + { + "dimension": "minecraft:overworld", + "name": "jungle_38", + "type": "box", + "x": 891, + "y": 128, + "z": 267, + "dimx": 491, + "dimy": 192, + "dimz": 11 + }, + { + "dimension": "minecraft:overworld", + "name": "jungle_39", + "type": "box", + "x": 915, + "y": 128, + "z": 291, + "dimx": 491, + "dimy": 192, + "dimz": 11 + }, + { + "dimension": "minecraft:overworld", + "name": "jungle_40", + "type": "box", + "x": 927, + "y": 128, + "z": 315, + "dimx": 503, + "dimy": 192, + "dimz": 11 + }, + { + "dimension": "minecraft:overworld", + "name": "jungle_41", + "type": "box", + "x": 1491, + "y": 128, + "z": 327, + "dimx": 11, + "dimy": 192, + "dimz": 23 + }, + { + "dimension": "minecraft:overworld", + "name": "jungle_42", + "type": "box", + "x": 939, + "y": 128, + "z": 339, + "dimx": 515, + "dimy": 192, + "dimz": 11 + }, + { + "dimension": "minecraft:overworld", + "name": "jungle_43", + "type": "box", + "x": 951, + "y": 128, + "z": 363, + "dimx": 527, + "dimy": 192, + "dimz": 11 + }, + { + "dimension": "minecraft:overworld", + "name": "jungle_44", + "type": "box", + "x": 951, + "y": 128, + "z": 387, + "dimx": 503, + "dimy": 192, + "dimz": 11 + }, + { + "dimension": "minecraft:overworld", + "name": "jungle_45", + "type": "box", + "x": 927, + "y": 128, + "z": 411, + "dimx": 455, + "dimy": 192, + "dimz": 11 + }, + { + "dimension": "minecraft:overworld", + "name": "jungle_46", + "type": "box", + "x": 903, + "y": 128, + "z": 435, + "dimx": 431, + "dimy": 192, + "dimz": 11 + }, + { + "dimension": "minecraft:overworld", + "name": "jungle_47", + "type": "box", + "x": 507, + "y": 128, + "z": 459, + "dimx": 11, + "dimy": 192, + "dimz": 11 + }, + { + "dimension": "minecraft:overworld", + "name": "jungle_48", + "type": "box", + "x": 927, + "y": 128, + "z": 459, + "dimx": 383, + "dimy": 192, + "dimz": 11 + }, + { + "dimension": "minecraft:overworld", + "name": "jungle_49", + "type": "box", + "x": 591, + "y": 128, + "z": 495, + "dimx": 71, + "dimy": 192, + "dimz": 23 + }, + { + "dimension": "minecraft:overworld", + "name": "jungle_50", + "type": "box", + "x": 975, + "y": 128, + "z": 483, + "dimx": 287, + "dimy": 192, + "dimz": 11 + }, + { + "dimension": "minecraft:overworld", + "name": "jungle_51", + "type": "box", + "x": 987, + "y": 128, + "z": 507, + "dimx": 251, + "dimy": 192, + "dimz": 11 + }, + { + "dimension": "minecraft:overworld", + "name": "jungle_52", + "type": "box", + "x": 603, + "y": 128, + "z": 531, + "dimx": 83, + "dimy": 192, + "dimz": 11 + }, + { + "dimension": "minecraft:overworld", + "name": "jungle_53", + "type": "box", + "x": 999, + "y": 128, + "z": 531, + "dimx": 239, + "dimy": 192, + "dimz": 11 + }, + { + "dimension": "minecraft:overworld", + "name": "jungle_54", + "type": "box", + "x": 615, + "y": 128, + "z": 555, + "dimx": 71, + "dimy": 192, + "dimz": 11 + }, + { + "dimension": "minecraft:overworld", + "name": "jungle_55", + "type": "box", + "x": 1011, + "y": 128, + "z": 555, + "dimx": 227, + "dimy": 192, + "dimz": 11 + }, + { + "dimension": "minecraft:overworld", + "name": "jungle_56", + "type": "box", + "x": 627, + "y": 128, + "z": 579, + "dimx": 59, + "dimy": 192, + "dimz": 11 + }, + { + "dimension": "minecraft:overworld", + "name": "jungle_57", + "type": "box", + "x": 1023, + "y": 128, + "z": 579, + "dimx": 215, + "dimy": 192, + "dimz": 11 + }, + { + "dimension": "minecraft:overworld", + "name": "jungle_58", + "type": "box", + "x": 639, + "y": 128, + "z": 603, + "dimx": 47, + "dimy": 192, + "dimz": 11 + }, + { + "dimension": "minecraft:overworld", + "name": "jungle_59", + "type": "box", + "x": 1047, + "y": 128, + "z": 603, + "dimx": 191, + "dimy": 192, + "dimz": 11 + }, + { + "dimension": "minecraft:overworld", + "name": "jungle_60", + "type": "box", + "x": 1083, + "y": 128, + "z": 639, + "dimx": 155, + "dimy": 192, + "dimz": 23 + }, + { + "dimension": "minecraft:overworld", + "name": "jungle_61", + "type": "box", + "x": 1107, + "y": 128, + "z": 675, + "dimx": 131, + "dimy": 192, + "dimz": 11 + }, + { + "dimension": "minecraft:overworld", + "name": "jungle_62", + "type": "box", + "x": 1131, + "y": 128, + "z": 699, + "dimx": 83, + "dimy": 192, + "dimz": 11 + }, + { + "dimension": "minecraft:overworld", + "name": "jungle_63", + "type": "box", + "x": 1167, + "y": 128, + "z": 723, + "dimx": 47, + "dimy": 192, + "dimz": 11 + }, + { + "dimension": "minecraft:overworld", + "name": "jungle_64", + "type": "box", + "x": 1155, + "y": 128, + "z": 747, + "dimx": 35, + "dimy": 192, + "dimz": 11 + }, + { + "dimension": "minecraft:overworld", + "name": "jungle_65", + "type": "box", + "x": 1143, + "y": 128, + "z": 771, + "dimx": 23, + "dimy": 192, + "dimz": 11 + }, + { + "dimension": "minecraft:overworld", + "name": "jungle_66", + "type": "box", + "x": 867, + "y": 128, + "z": 1131, + "dimx": 11, + "dimy": 192, + "dimz": 11 + }, + { + "dimension": "minecraft:overworld", + "name": "jungle_67", + "type": "box", + "x": 867, + "y": 128, + "z": 1167, + "dimx": 35, + "dimy": 192, + "dimz": 23 + }, + { + "dimension": "minecraft:overworld", + "name": "jungle_68", + "type": "box", + "x": 843, + "y": 128, + "z": 1203, + "dimx": 35, + "dimy": 192, + "dimz": 11 + }, + { + "dimension": "minecraft:overworld", + "name": "jungle_69", + "type": "box", + "x": 855, + "y": 128, + "z": 1227, + "dimx": 23, + "dimy": 192, + "dimz": 11 + }, + { + "dimension": "minecraft:overworld", + "name": "jungle_70", + "type": "box", + "x": 843, + "y": 128, + "z": 1251, + "dimx": 11, + "dimy": 192, + "dimz": 11 + }, + { + "dimension": "minecraft:overworld", + "name": "highlands_0", + "type": "box", + "x": -93, + "y": 128, + "z": -1509, + "dimx": 11, + "dimy": 192, + "dimz": 11 + }, + { + "dimension": "minecraft:overworld", + "name": "highlands_1", + "type": "box", + "x": 3, + "y": 128, + "z": -1509, + "dimx": 59, + "dimy": 192, + "dimz": 11 + }, + { + "dimension": "minecraft:overworld", + "name": "highlands_2", + "type": "box", + "x": 123, + "y": 128, + "z": -1509, + "dimx": 35, + "dimy": 192, + "dimz": 11 + }, + { + "dimension": "minecraft:overworld", + "name": "highlands_3", + "type": "box", + "x": -261, + "y": 128, + "z": -1485, + "dimx": 11, + "dimy": 192, + "dimz": 11 + }, + { + "dimension": "minecraft:overworld", + "name": "highlands_4", + "type": "box", + "x": 39, + "y": 128, + "z": -1485, + "dimx": 263, + "dimy": 192, + "dimz": 11 + }, + { + "dimension": "minecraft:overworld", + "name": "highlands_5", + "type": "box", + "x": 63, + "y": 128, + "z": -1461, + "dimx": 311, + "dimy": 192, + "dimz": 11 + }, + { + "dimension": "minecraft:overworld", + "name": "highlands_6", + "type": "box", + "x": 39, + "y": 128, + "z": -1437, + "dimx": 287, + "dimy": 192, + "dimz": 11 + }, + { + "dimension": "minecraft:overworld", + "name": "highlands_7", + "type": "box", + "x": 423, + "y": 128, + "z": -1437, + "dimx": 23, + "dimy": 192, + "dimz": 11 + }, + { + "dimension": "minecraft:overworld", + "name": "highlands_8", + "type": "box", + "x": 123, + "y": 128, + "z": -1413, + "dimx": 371, + "dimy": 192, + "dimz": 11 + }, + { + "dimension": "minecraft:overworld", + "name": "highlands_9", + "type": "box", + "x": 3, + "y": 128, + "z": -1389, + "dimx": 251, + "dimy": 192, + "dimz": 11 + }, + { + "dimension": "minecraft:overworld", + "name": "highlands_10", + "type": "box", + "x": 483, + "y": 128, + "z": -1389, + "dimx": 83, + "dimy": 192, + "dimz": 11 + }, + { + "dimension": "minecraft:overworld", + "name": "highlands_11", + "type": "box", + "x": -9, + "y": 128, + "z": -1365, + "dimx": 239, + "dimy": 192, + "dimz": 11 + }, + { + "dimension": "minecraft:overworld", + "name": "highlands_12", + "type": "box", + "x": 531, + "y": 128, + "z": -1365, + "dimx": 83, + "dimy": 192, + "dimz": 11 + }, + { + "dimension": "minecraft:overworld", + "name": "highlands_13", + "type": "box", + "x": -21, + "y": 128, + "z": -1341, + "dimx": 227, + "dimy": 192, + "dimz": 11 + }, + { + "dimension": "minecraft:overworld", + "name": "highlands_14", + "type": "box", + "x": 579, + "y": 128, + "z": -1341, + "dimx": 107, + "dimy": 192, + "dimz": 11 + }, + { + "dimension": "minecraft:overworld", + "name": "highlands_15", + "type": "box", + "x": -33, + "y": 128, + "z": -1293, + "dimx": 215, + "dimy": 192, + "dimz": 35 + }, + { + "dimension": "minecraft:overworld", + "name": "highlands_16", + "type": "box", + "x": 591, + "y": 128, + "z": -1317, + "dimx": 143, + "dimy": 192, + "dimz": 11 + }, + { + "dimension": "minecraft:overworld", + "name": "highlands_17", + "type": "box", + "x": 579, + "y": 128, + "z": -1293, + "dimx": 179, + "dimy": 192, + "dimz": 11 + }, + { + "dimension": "minecraft:overworld", + "name": "highlands_18", + "type": "box", + "x": 567, + "y": 128, + "z": -1269, + "dimx": 239, + "dimy": 192, + "dimz": 11 + }, + { + "dimension": "minecraft:overworld", + "name": "highlands_19", + "type": "box", + "x": 303, + "y": 128, + "z": -1245, + "dimx": 551, + "dimy": 192, + "dimz": 11 + }, + { + "dimension": "minecraft:overworld", + "name": "highlands_20", + "type": "box", + "x": 327, + "y": 128, + "z": -1221, + "dimx": 551, + "dimy": 192, + "dimz": 11 + }, + { + "dimension": "minecraft:overworld", + "name": "highlands_21", + "type": "box", + "x": 75, + "y": 128, + "z": -1197, + "dimx": 299, + "dimy": 192, + "dimz": 11 + }, + { + "dimension": "minecraft:overworld", + "name": "highlands_22", + "type": "box", + "x": 711, + "y": 128, + "z": -1197, + "dimx": 215, + "dimy": 192, + "dimz": 11 + }, + { + "dimension": "minecraft:overworld", + "name": "highlands_23", + "type": "box", + "x": 63, + "y": 128, + "z": -1173, + "dimx": 311, + "dimy": 192, + "dimz": 11 + }, + { + "dimension": "minecraft:overworld", + "name": "highlands_24", + "type": "box", + "x": 735, + "y": 128, + "z": -1173, + "dimx": 215, + "dimy": 192, + "dimz": 11 + }, + { + "dimension": "minecraft:overworld", + "name": "highlands_25", + "type": "box", + "x": 39, + "y": 128, + "z": -1125, + "dimx": 287, + "dimy": 192, + "dimz": 35 + }, + { + "dimension": "minecraft:overworld", + "name": "highlands_26", + "type": "box", + "x": 747, + "y": 128, + "z": -1149, + "dimx": 227, + "dimy": 192, + "dimz": 11 + }, + { + "dimension": "minecraft:overworld", + "name": "highlands_27", + "type": "box", + "x": 771, + "y": 128, + "z": -1125, + "dimx": 227, + "dimy": 192, + "dimz": 11 + }, + { + "dimension": "minecraft:overworld", + "name": "highlands_28", + "type": "box", + "x": 807, + "y": 128, + "z": -1101, + "dimx": 215, + "dimy": 192, + "dimz": 11 + }, + { + "dimension": "minecraft:overworld", + "name": "highlands_29", + "type": "box", + "x": 27, + "y": 128, + "z": -1053, + "dimx": 275, + "dimy": 192, + "dimz": 35 + }, + { + "dimension": "minecraft:overworld", + "name": "highlands_30", + "type": "box", + "x": 435, + "y": 128, + "z": -1077, + "dimx": 11, + "dimy": 192, + "dimz": 11 + }, + { + "dimension": "minecraft:overworld", + "name": "highlands_31", + "type": "box", + "x": 807, + "y": 128, + "z": -1077, + "dimx": 239, + "dimy": 192, + "dimz": 11 + }, + { + "dimension": "minecraft:overworld", + "name": "highlands_32", + "type": "box", + "x": 831, + "y": 128, + "z": -1053, + "dimx": 239, + "dimy": 192, + "dimz": 11 + }, + { + "dimension": "minecraft:overworld", + "name": "highlands_33", + "type": "box", + "x": 855, + "y": 128, + "z": -1029, + "dimx": 239, + "dimy": 192, + "dimz": 11 + }, + { + "dimension": "minecraft:overworld", + "name": "highlands_34", + "type": "box", + "x": 63, + "y": 128, + "z": -1005, + "dimx": 311, + "dimy": 192, + "dimz": 11 + }, + { + "dimension": "minecraft:overworld", + "name": "highlands_35", + "type": "box", + "x": 867, + "y": 128, + "z": -1005, + "dimx": 251, + "dimy": 192, + "dimz": 11 + }, + { + "dimension": "minecraft:overworld", + "name": "highlands_36", + "type": "box", + "x": 75, + "y": 128, + "z": -981, + "dimx": 323, + "dimy": 192, + "dimz": 11 + }, + { + "dimension": "minecraft:overworld", + "name": "highlands_37", + "type": "box", + "x": 855, + "y": 128, + "z": -981, + "dimx": 287, + "dimy": 192, + "dimz": 11 + }, + { + "dimension": "minecraft:overworld", + "name": "highlands_38", + "type": "box", + "x": 87, + "y": 128, + "z": -957, + "dimx": 335, + "dimy": 192, + "dimz": 11 + }, + { + "dimension": "minecraft:overworld", + "name": "highlands_39", + "type": "box", + "x": 855, + "y": 128, + "z": -957, + "dimx": 311, + "dimy": 192, + "dimz": 11 + }, + { + "dimension": "minecraft:overworld", + "name": "highlands_40", + "type": "box", + "x": 99, + "y": 128, + "z": -933, + "dimx": 347, + "dimy": 192, + "dimz": 11 + }, + { + "dimension": "minecraft:overworld", + "name": "highlands_41", + "type": "box", + "x": 855, + "y": 128, + "z": -933, + "dimx": 335, + "dimy": 192, + "dimz": 11 + }, + { + "dimension": "minecraft:overworld", + "name": "highlands_42", + "type": "box", + "x": 483, + "y": 128, + "z": -909, + "dimx": 731, + "dimy": 192, + "dimz": 11 + }, + { + "dimension": "minecraft:overworld", + "name": "highlands_43", + "type": "box", + "x": -9, + "y": 128, + "z": -885, + "dimx": 239, + "dimy": 192, + "dimz": 11 + }, + { + "dimension": "minecraft:overworld", + "name": "highlands_44", + "type": "box", + "x": 747, + "y": 128, + "z": -885, + "dimx": 491, + "dimy": 192, + "dimz": 11 + }, + { + "dimension": "minecraft:overworld", + "name": "highlands_45", + "type": "box", + "x": -57, + "y": 128, + "z": -861, + "dimx": 191, + "dimy": 192, + "dimz": 11 + }, + { + "dimension": "minecraft:overworld", + "name": "highlands_46", + "type": "box", + "x": 219, + "y": 128, + "z": -861, + "dimx": 11, + "dimy": 192, + "dimz": 11 + }, + { + "dimension": "minecraft:overworld", + "name": "highlands_47", + "type": "box", + "x": 795, + "y": 128, + "z": -861, + "dimx": 443, + "dimy": 192, + "dimz": 11 + }, + { + "dimension": "minecraft:overworld", + "name": "highlands_48", + "type": "box", + "x": -105, + "y": 128, + "z": -801, + "dimx": 143, + "dimy": 192, + "dimz": 47 + }, + { + "dimension": "minecraft:overworld", + "name": "highlands_49", + "type": "box", + "x": 603, + "y": 128, + "z": -837, + "dimx": 131, + "dimy": 192, + "dimz": 11 + }, + { + "dimension": "minecraft:overworld", + "name": "highlands_50", + "type": "box", + "x": 1011, + "y": 128, + "z": -837, + "dimx": 251, + "dimy": 192, + "dimz": 11 + }, + { + "dimension": "minecraft:overworld", + "name": "highlands_51", + "type": "box", + "x": 483, + "y": 128, + "z": -813, + "dimx": 35, + "dimy": 192, + "dimz": 11 + }, + { + "dimension": "minecraft:overworld", + "name": "highlands_52", + "type": "box", + "x": 639, + "y": 128, + "z": -813, + "dimx": 23, + "dimy": 192, + "dimz": 11 + }, + { + "dimension": "minecraft:overworld", + "name": "highlands_53", + "type": "box", + "x": 711, + "y": 128, + "z": -813, + "dimx": 23, + "dimy": 192, + "dimz": 11 + }, + { + "dimension": "minecraft:overworld", + "name": "highlands_54", + "type": "box", + "x": 1023, + "y": 128, + "z": -801, + "dimx": 263, + "dimy": 192, + "dimz": 23 + }, + { + "dimension": "minecraft:overworld", + "name": "highlands_55", + "type": "box", + "x": 483, + "y": 128, + "z": -777, + "dimx": 11, + "dimy": 192, + "dimz": 23 + }, + { + "dimension": "minecraft:overworld", + "name": "highlands_56", + "type": "box", + "x": 627, + "y": 128, + "z": -789, + "dimx": 11, + "dimy": 192, + "dimz": 11 + }, + { + "dimension": "minecraft:overworld", + "name": "highlands_57", + "type": "box", + "x": 723, + "y": 128, + "z": -789, + "dimx": 11, + "dimy": 192, + "dimz": 11 + }, + { + "dimension": "minecraft:overworld", + "name": "highlands_58", + "type": "box", + "x": 315, + "y": 128, + "z": -765, + "dimx": 11, + "dimy": 192, + "dimz": 11 + }, + { + "dimension": "minecraft:overworld", + "name": "highlands_59", + "type": "box", + "x": 591, + "y": 128, + "z": -765, + "dimx": 23, + "dimy": 192, + "dimz": 11 + }, + { + "dimension": "minecraft:overworld", + "name": "highlands_60", + "type": "box", + "x": 1011, + "y": 128, + "z": -753, + "dimx": 299, + "dimy": 192, + "dimz": 23 + }, + { + "dimension": "minecraft:overworld", + "name": "highlands_61", + "type": "box", + "x": -213, + "y": 128, + "z": -741, + "dimx": 59, + "dimy": 192, + "dimz": 11 + }, + { + "dimension": "minecraft:overworld", + "name": "highlands_62", + "type": "box", + "x": -45, + "y": 128, + "z": -741, + "dimx": 83, + "dimy": 192, + "dimz": 11 + }, + { + "dimension": "minecraft:overworld", + "name": "highlands_63", + "type": "box", + "x": 363, + "y": 128, + "z": -741, + "dimx": 11, + "dimy": 192, + "dimz": 11 + }, + { + "dimension": "minecraft:overworld", + "name": "highlands_64", + "type": "box", + "x": 507, + "y": 128, + "z": -741, + "dimx": 83, + "dimy": 192, + "dimz": 11 + }, + { + "dimension": "minecraft:overworld", + "name": "highlands_65", + "type": "box", + "x": 651, + "y": 128, + "z": -741, + "dimx": 11, + "dimy": 192, + "dimz": 11 + }, + { + "dimension": "minecraft:overworld", + "name": "highlands_66", + "type": "box", + "x": -225, + "y": 128, + "z": -717, + "dimx": 47, + "dimy": 192, + "dimz": 11 + }, + { + "dimension": "minecraft:overworld", + "name": "highlands_67", + "type": "box", + "x": -21, + "y": 128, + "z": -717, + "dimx": 59, + "dimy": 192, + "dimz": 11 + }, + { + "dimension": "minecraft:overworld", + "name": "highlands_68", + "type": "box", + "x": 279, + "y": 128, + "z": -717, + "dimx": 23, + "dimy": 192, + "dimz": 11 + }, + { + "dimension": "minecraft:overworld", + "name": "highlands_69", + "type": "box", + "x": 459, + "y": 128, + "z": -717, + "dimx": 107, + "dimy": 192, + "dimz": 11 + }, + { + "dimension": "minecraft:overworld", + "name": "highlands_70", + "type": "box", + "x": 1035, + "y": 128, + "z": -717, + "dimx": 275, + "dimy": 192, + "dimz": 11 + }, + { + "dimension": "minecraft:overworld", + "name": "highlands_71", + "type": "box", + "x": -237, + "y": 128, + "z": -681, + "dimx": 11, + "dimy": 192, + "dimz": 23 + }, + { + "dimension": "minecraft:overworld", + "name": "highlands_72", + "type": "box", + "x": 3, + "y": 128, + "z": -693, + "dimx": 35, + "dimy": 192, + "dimz": 11 + }, + { + "dimension": "minecraft:overworld", + "name": "highlands_73", + "type": "box", + "x": 255, + "y": 128, + "z": -693, + "dimx": 47, + "dimy": 192, + "dimz": 11 + }, + { + "dimension": "minecraft:overworld", + "name": "highlands_74", + "type": "box", + "x": 435, + "y": 128, + "z": -681, + "dimx": 107, + "dimy": 192, + "dimz": 23 + }, + { + "dimension": "minecraft:overworld", + "name": "highlands_75", + "type": "box", + "x": 1047, + "y": 128, + "z": -693, + "dimx": 287, + "dimy": 192, + "dimz": 11 + }, + { + "dimension": "minecraft:overworld", + "name": "highlands_76", + "type": "box", + "x": 15, + "y": 128, + "z": -657, + "dimx": 47, + "dimy": 192, + "dimz": 23 + }, + { + "dimension": "minecraft:overworld", + "name": "highlands_77", + "type": "box", + "x": 219, + "y": 128, + "z": -669, + "dimx": 35, + "dimy": 192, + "dimz": 11 + }, + { + "dimension": "minecraft:overworld", + "name": "highlands_78", + "type": "box", + "x": 1059, + "y": 128, + "z": -657, + "dimx": 299, + "dimy": 192, + "dimz": 23 + }, + { + "dimension": "minecraft:overworld", + "name": "highlands_79", + "type": "box", + "x": 423, + "y": 128, + "z": -645, + "dimx": 119, + "dimy": 192, + "dimz": 11 + }, + { + "dimension": "minecraft:overworld", + "name": "highlands_80", + "type": "box", + "x": 39, + "y": 128, + "z": -621, + "dimx": 47, + "dimy": 192, + "dimz": 11 + }, + { + "dimension": "minecraft:overworld", + "name": "highlands_81", + "type": "box", + "x": 183, + "y": 128, + "z": -621, + "dimx": 23, + "dimy": 192, + "dimz": 11 + }, + { + "dimension": "minecraft:overworld", + "name": "highlands_82", + "type": "box", + "x": 399, + "y": 128, + "z": -621, + "dimx": 119, + "dimy": 192, + "dimz": 11 + }, + { + "dimension": "minecraft:overworld", + "name": "highlands_83", + "type": "box", + "x": 1071, + "y": 128, + "z": -621, + "dimx": 311, + "dimy": 192, + "dimz": 11 + }, + { + "dimension": "minecraft:overworld", + "name": "highlands_84", + "type": "box", + "x": 27, + "y": 128, + "z": -597, + "dimx": 35, + "dimy": 192, + "dimz": 11 + }, + { + "dimension": "minecraft:overworld", + "name": "highlands_85", + "type": "box", + "x": 99, + "y": 128, + "z": -597, + "dimx": 11, + "dimy": 192, + "dimz": 11 + }, + { + "dimension": "minecraft:overworld", + "name": "highlands_86", + "type": "box", + "x": 339, + "y": 128, + "z": -597, + "dimx": 179, + "dimy": 192, + "dimz": 11 + }, + { + "dimension": "minecraft:overworld", + "name": "highlands_87", + "type": "box", + "x": 1071, + "y": 128, + "z": -597, + "dimx": 335, + "dimy": 192, + "dimz": 11 + }, + { + "dimension": "minecraft:overworld", + "name": "highlands_88", + "type": "box", + "x": 327, + "y": 128, + "z": -537, + "dimx": 191, + "dimy": 192, + "dimz": 47 + }, + { + "dimension": "minecraft:overworld", + "name": "highlands_89", + "type": "box", + "x": 783, + "y": 128, + "z": -573, + "dimx": 47, + "dimy": 192, + "dimz": 11 + }, + { + "dimension": "minecraft:overworld", + "name": "highlands_90", + "type": "box", + "x": 1155, + "y": 128, + "z": -573, + "dimx": 251, + "dimy": 192, + "dimz": 11 + }, + { + "dimension": "minecraft:overworld", + "name": "highlands_91", + "type": "box", + "x": 771, + "y": 128, + "z": -525, + "dimx": 35, + "dimy": 192, + "dimz": 35 + }, + { + "dimension": "minecraft:overworld", + "name": "highlands_92", + "type": "box", + "x": 1167, + "y": 128, + "z": -549, + "dimx": 263, + "dimy": 192, + "dimz": 11 + }, + { + "dimension": "minecraft:overworld", + "name": "highlands_93", + "type": "box", + "x": 1167, + "y": 128, + "z": -525, + "dimx": 239, + "dimy": 192, + "dimz": 11 + }, + { + "dimension": "minecraft:overworld", + "name": "highlands_94", + "type": "box", + "x": 1155, + "y": 128, + "z": -501, + "dimx": 227, + "dimy": 192, + "dimz": 11 + }, + { + "dimension": "minecraft:overworld", + "name": "highlands_95", + "type": "box", + "x": -225, + "y": 128, + "z": -477, + "dimx": 23, + "dimy": 192, + "dimz": 11 + }, + { + "dimension": "minecraft:overworld", + "name": "highlands_96", + "type": "box", + "x": 339, + "y": 128, + "z": -477, + "dimx": 179, + "dimy": 192, + "dimz": 11 + }, + { + "dimension": "minecraft:overworld", + "name": "highlands_97", + "type": "box", + "x": 795, + "y": 128, + "z": -477, + "dimx": 35, + "dimy": 192, + "dimz": 11 + }, + { + "dimension": "minecraft:overworld", + "name": "highlands_98", + "type": "box", + "x": 1143, + "y": 128, + "z": -477, + "dimx": 215, + "dimy": 192, + "dimz": 11 + }, + { + "dimension": "minecraft:overworld", + "name": "highlands_99", + "type": "box", + "x": 1443, + "y": 128, + "z": -465, + "dimx": 11, + "dimy": 192, + "dimz": 23 + }, + { + "dimension": "minecraft:overworld", + "name": "highlands_100", + "type": "box", + "x": -213, + "y": 128, + "z": -405, + "dimx": 35, + "dimy": 192, + "dimz": 59 + }, + { + "dimension": "minecraft:overworld", + "name": "highlands_101", + "type": "box", + "x": 375, + "y": 128, + "z": -453, + "dimx": 167, + "dimy": 192, + "dimz": 11 + }, + { + "dimension": "minecraft:overworld", + "name": "highlands_102", + "type": "box", + "x": 1059, + "y": 128, + "z": -441, + "dimx": 275, + "dimy": 192, + "dimz": 23 + }, + { + "dimension": "minecraft:overworld", + "name": "highlands_103", + "type": "box", + "x": 387, + "y": 128, + "z": -429, + "dimx": 179, + "dimy": 192, + "dimz": 11 + }, + { + "dimension": "minecraft:overworld", + "name": "highlands_104", + "type": "box", + "x": 1467, + "y": 128, + "z": -405, + "dimx": 11, + "dimy": 192, + "dimz": 35 + }, + { + "dimension": "minecraft:overworld", + "name": "highlands_105", + "type": "box", + "x": 135, + "y": 128, + "z": -405, + "dimx": 23, + "dimy": 192, + "dimz": 11 + }, + { + "dimension": "minecraft:overworld", + "name": "highlands_106", + "type": "box", + "x": 411, + "y": 128, + "z": -405, + "dimx": 179, + "dimy": 192, + "dimz": 11 + }, + { + "dimension": "minecraft:overworld", + "name": "highlands_107", + "type": "box", + "x": 1071, + "y": 128, + "z": -405, + "dimx": 239, + "dimy": 192, + "dimz": 11 + }, + { + "dimension": "minecraft:overworld", + "name": "highlands_108", + "type": "box", + "x": 147, + "y": 128, + "z": -381, + "dimx": 35, + "dimy": 192, + "dimz": 11 + }, + { + "dimension": "minecraft:overworld", + "name": "highlands_109", + "type": "box", + "x": 399, + "y": 128, + "z": -369, + "dimx": 191, + "dimy": 192, + "dimz": 23 + }, + { + "dimension": "minecraft:overworld", + "name": "highlands_110", + "type": "box", + "x": 1083, + "y": 128, + "z": -381, + "dimx": 203, + "dimy": 192, + "dimz": 11 + }, + { + "dimension": "minecraft:overworld", + "name": "highlands_111", + "type": "box", + "x": 171, + "y": 128, + "z": -357, + "dimx": 11, + "dimy": 192, + "dimz": 11 + }, + { + "dimension": "minecraft:overworld", + "name": "highlands_112", + "type": "box", + "x": 723, + "y": 128, + "z": -357, + "dimx": 59, + "dimy": 192, + "dimz": 11 + }, + { + "dimension": "minecraft:overworld", + "name": "highlands_113", + "type": "box", + "x": 1083, + "y": 128, + "z": -345, + "dimx": 179, + "dimy": 192, + "dimz": 23 + }, + { + "dimension": "minecraft:overworld", + "name": "highlands_114", + "type": "box", + "x": -237, + "y": 128, + "z": -333, + "dimx": 11, + "dimy": 192, + "dimz": 11 + }, + { + "dimension": "minecraft:overworld", + "name": "highlands_115", + "type": "box", + "x": 279, + "y": 128, + "z": -333, + "dimx": 71, + "dimy": 192, + "dimz": 11 + }, + { + "dimension": "minecraft:overworld", + "name": "highlands_116", + "type": "box", + "x": 483, + "y": 128, + "z": -333, + "dimx": 107, + "dimy": 192, + "dimz": 11 + }, + { + "dimension": "minecraft:overworld", + "name": "highlands_117", + "type": "box", + "x": 723, + "y": 128, + "z": -333, + "dimx": 83, + "dimy": 192, + "dimz": 11 + }, + { + "dimension": "minecraft:overworld", + "name": "highlands_118", + "type": "box", + "x": 867, + "y": 128, + "z": -333, + "dimx": 11, + "dimy": 192, + "dimz": 11 + }, + { + "dimension": "minecraft:overworld", + "name": "highlands_119", + "type": "box", + "x": 1491, + "y": 128, + "z": -333, + "dimx": 11, + "dimy": 192, + "dimz": 11 + }, + { + "dimension": "minecraft:overworld", + "name": "highlands_120", + "type": "box", + "x": 291, + "y": 128, + "z": -309, + "dimx": 35, + "dimy": 192, + "dimz": 11 + }, + { + "dimension": "minecraft:overworld", + "name": "highlands_121", + "type": "box", + "x": 495, + "y": 128, + "z": -309, + "dimx": 95, + "dimy": 192, + "dimz": 11 + }, + { + "dimension": "minecraft:overworld", + "name": "highlands_122", + "type": "box", + "x": 711, + "y": 128, + "z": -309, + "dimx": 95, + "dimy": 192, + "dimz": 11 + }, + { + "dimension": "minecraft:overworld", + "name": "highlands_123", + "type": "box", + "x": 879, + "y": 128, + "z": -309, + "dimx": 23, + "dimy": 192, + "dimz": 11 + }, + { + "dimension": "minecraft:overworld", + "name": "highlands_124", + "type": "box", + "x": 1083, + "y": 128, + "z": -309, + "dimx": 155, + "dimy": 192, + "dimz": 11 + }, + { + "dimension": "minecraft:overworld", + "name": "highlands_125", + "type": "box", + "x": 291, + "y": 128, + "z": -285, + "dimx": 11, + "dimy": 192, + "dimz": 11 + }, + { + "dimension": "minecraft:overworld", + "name": "highlands_126", + "type": "box", + "x": 459, + "y": 128, + "z": -285, + "dimx": 35, + "dimy": 192, + "dimz": 11 + }, + { + "dimension": "minecraft:overworld", + "name": "highlands_127", + "type": "box", + "x": 579, + "y": 128, + "z": -273, + "dimx": 11, + "dimy": 192, + "dimz": 23 + }, + { + "dimension": "minecraft:overworld", + "name": "highlands_128", + "type": "box", + "x": 699, + "y": 128, + "z": -285, + "dimx": 83, + "dimy": 192, + "dimz": 11 + }, + { + "dimension": "minecraft:overworld", + "name": "highlands_129", + "type": "box", + "x": 1023, + "y": 128, + "z": -285, + "dimx": 167, + "dimy": 192, + "dimz": 11 + }, + { + "dimension": "minecraft:overworld", + "name": "highlands_130", + "type": "box", + "x": 1491, + "y": 128, + "z": -285, + "dimx": 11, + "dimy": 192, + "dimz": 11 + }, + { + "dimension": "minecraft:overworld", + "name": "highlands_131", + "type": "box", + "x": 459, + "y": 128, + "z": -261, + "dimx": 11, + "dimy": 192, + "dimz": 11 + }, + { + "dimension": "minecraft:overworld", + "name": "highlands_132", + "type": "box", + "x": 687, + "y": 128, + "z": -261, + "dimx": 71, + "dimy": 192, + "dimz": 11 + }, + { + "dimension": "minecraft:overworld", + "name": "highlands_133", + "type": "box", + "x": 975, + "y": 128, + "z": -261, + "dimx": 167, + "dimy": 192, + "dimz": 11 + }, + { + "dimension": "minecraft:overworld", + "name": "highlands_134", + "type": "box", + "x": 1179, + "y": 128, + "z": -261, + "dimx": 11, + "dimy": 192, + "dimz": 11 + }, + { + "dimension": "minecraft:overworld", + "name": "highlands_135", + "type": "box", + "x": 1479, + "y": 128, + "z": -249, + "dimx": 23, + "dimy": 192, + "dimz": 23 + }, + { + "dimension": "minecraft:overworld", + "name": "highlands_136", + "type": "box", + "x": 567, + "y": 128, + "z": -225, + "dimx": 23, + "dimy": 192, + "dimz": 23 + }, + { + "dimension": "minecraft:overworld", + "name": "highlands_137", + "type": "box", + "x": 663, + "y": 128, + "z": -237, + "dimx": 23, + "dimy": 192, + "dimz": 11 + }, + { + "dimension": "minecraft:overworld", + "name": "highlands_138", + "type": "box", + "x": 927, + "y": 128, + "z": -237, + "dimx": 191, + "dimy": 192, + "dimz": 11 + }, + { + "dimension": "minecraft:overworld", + "name": "highlands_139", + "type": "box", + "x": 735, + "y": 128, + "z": -213, + "dimx": 23, + "dimy": 192, + "dimz": 11 + }, + { + "dimension": "minecraft:overworld", + "name": "highlands_140", + "type": "box", + "x": 927, + "y": 128, + "z": -213, + "dimx": 119, + "dimy": 192, + "dimz": 11 + }, + { + "dimension": "minecraft:overworld", + "name": "highlands_141", + "type": "box", + "x": 1491, + "y": 128, + "z": -213, + "dimx": 35, + "dimy": 192, + "dimz": 11 + }, + { + "dimension": "minecraft:overworld", + "name": "highlands_142", + "type": "box", + "x": 579, + "y": 128, + "z": -189, + "dimx": 35, + "dimy": 192, + "dimz": 11 + }, + { + "dimension": "minecraft:overworld", + "name": "highlands_143", + "type": "box", + "x": 711, + "y": 128, + "z": -189, + "dimx": 23, + "dimy": 192, + "dimz": 11 + }, + { + "dimension": "minecraft:overworld", + "name": "highlands_144", + "type": "box", + "x": 915, + "y": 128, + "z": -189, + "dimx": 59, + "dimy": 192, + "dimz": 11 + }, + { + "dimension": "minecraft:overworld", + "name": "highlands_145", + "type": "box", + "x": 1479, + "y": 128, + "z": -177, + "dimx": 47, + "dimy": 192, + "dimz": 23 + }, + { + "dimension": "minecraft:overworld", + "name": "highlands_146", + "type": "box", + "x": 591, + "y": 128, + "z": -165, + "dimx": 23, + "dimy": 192, + "dimz": 11 + }, + { + "dimension": "minecraft:overworld", + "name": "highlands_147", + "type": "box", + "x": 699, + "y": 128, + "z": -165, + "dimx": 11, + "dimy": 192, + "dimz": 11 + }, + { + "dimension": "minecraft:overworld", + "name": "highlands_148", + "type": "box", + "x": 927, + "y": 128, + "z": -165, + "dimx": 71, + "dimy": 192, + "dimz": 11 + }, + { + "dimension": "minecraft:overworld", + "name": "highlands_149", + "type": "box", + "x": 687, + "y": 128, + "z": -141, + "dimx": 23, + "dimy": 192, + "dimz": 11 + }, + { + "dimension": "minecraft:overworld", + "name": "highlands_150", + "type": "box", + "x": 939, + "y": 128, + "z": -141, + "dimx": 83, + "dimy": 192, + "dimz": 11 + }, + { + "dimension": "minecraft:overworld", + "name": "highlands_151", + "type": "box", + "x": 1467, + "y": 128, + "z": -141, + "dimx": 59, + "dimy": 192, + "dimz": 11 + }, + { + "dimension": "minecraft:overworld", + "name": "highlands_152", + "type": "box", + "x": 951, + "y": 128, + "z": -117, + "dimx": 71, + "dimy": 192, + "dimz": 11 + }, + { + "dimension": "minecraft:overworld", + "name": "highlands_153", + "type": "box", + "x": 1467, + "y": 128, + "z": -117, + "dimx": 83, + "dimy": 192, + "dimz": 11 + }, + { + "dimension": "minecraft:overworld", + "name": "highlands_154", + "type": "box", + "x": 975, + "y": 128, + "z": -93, + "dimx": 71, + "dimy": 192, + "dimz": 11 + }, + { + "dimension": "minecraft:overworld", + "name": "highlands_155", + "type": "box", + "x": 1455, + "y": 128, + "z": -93, + "dimx": 95, + "dimy": 192, + "dimz": 11 + }, + { + "dimension": "minecraft:overworld", + "name": "highlands_156", + "type": "box", + "x": 1527, + "y": 128, + "z": -69, + "dimx": 23, + "dimy": 192, + "dimz": 11 + }, + { + "dimension": "minecraft:overworld", + "name": "sunscorch_0", + "type": "box", + "x": -645, + "y": 128, + "z": -1293, + "dimx": 11, + "dimy": 192, + "dimz": 11 + }, + { + "dimension": "minecraft:overworld", + "name": "sunscorch_1", + "type": "box", + "x": -669, + "y": 128, + "z": -1269, + "dimx": 35, + "dimy": 192, + "dimz": 11 + }, + { + "dimension": "minecraft:overworld", + "name": "sunscorch_2", + "type": "box", + "x": -681, + "y": 128, + "z": -1245, + "dimx": 23, + "dimy": 192, + "dimz": 11 + }, + { + "dimension": "minecraft:overworld", + "name": "sunscorch_3", + "type": "box", + "x": -693, + "y": 128, + "z": -1209, + "dimx": 11, + "dimy": 192, + "dimz": 23 + }, + { + "dimension": "minecraft:overworld", + "name": "sunscorch_4", + "type": "box", + "x": -981, + "y": 128, + "z": -1125, + "dimx": 11, + "dimy": 192, + "dimz": 11 + }, + { + "dimension": "minecraft:overworld", + "name": "sunscorch_5", + "type": "box", + "x": -897, + "y": 128, + "z": -1125, + "dimx": 23, + "dimy": 192, + "dimz": 11 + }, + { + "dimension": "minecraft:overworld", + "name": "sunscorch_6", + "type": "box", + "x": -945, + "y": 128, + "z": -1101, + "dimx": 71, + "dimy": 192, + "dimz": 11 + }, + { + "dimension": "minecraft:overworld", + "name": "sunscorch_7", + "type": "box", + "x": -957, + "y": 128, + "z": -1077, + "dimx": 83, + "dimy": 192, + "dimz": 11 + }, + { + "dimension": "minecraft:overworld", + "name": "sunscorch_8", + "type": "box", + "x": -969, + "y": 128, + "z": -1053, + "dimx": 95, + "dimy": 192, + "dimz": 11 + }, + { + "dimension": "minecraft:overworld", + "name": "sunscorch_9", + "type": "box", + "x": -993, + "y": 128, + "z": -1029, + "dimx": 95, + "dimy": 192, + "dimz": 11 + }, + { + "dimension": "minecraft:overworld", + "name": "sunscorch_10", + "type": "box", + "x": -993, + "y": 128, + "z": -1005, + "dimx": 119, + "dimy": 192, + "dimz": 11 + }, + { + "dimension": "minecraft:overworld", + "name": "sunscorch_11", + "type": "box", + "x": -1029, + "y": 128, + "z": -981, + "dimx": 107, + "dimy": 192, + "dimz": 11 + }, + { + "dimension": "minecraft:overworld", + "name": "sunscorch_12", + "type": "box", + "x": -1053, + "y": 128, + "z": -957, + "dimx": 107, + "dimy": 192, + "dimz": 11 + }, + { + "dimension": "minecraft:overworld", + "name": "sunscorch_13", + "type": "box", + "x": -1089, + "y": 128, + "z": -933, + "dimx": 47, + "dimy": 192, + "dimz": 11 + }, + { + "dimension": "minecraft:overworld", + "name": "sunscorch_14", + "type": "box", + "x": -1317, + "y": 128, + "z": -681, + "dimx": 35, + "dimy": 192, + "dimz": 23 + }, + { + "dimension": "minecraft:overworld", + "name": "sunscorch_15", + "type": "box", + "x": -1329, + "y": 128, + "z": -645, + "dimx": 47, + "dimy": 192, + "dimz": 11 + }, + { + "dimension": "minecraft:overworld", + "name": "sunscorch_16", + "type": "box", + "x": 75, + "y": 128, + "z": -597, + "dimx": 11, + "dimy": 192, + "dimz": 11 + }, + { + "dimension": "minecraft:overworld", + "name": "sunscorch_17", + "type": "box", + "x": 135, + "y": 128, + "z": -597, + "dimx": 23, + "dimy": 192, + "dimz": 11 + }, + { + "dimension": "minecraft:overworld", + "name": "sunscorch_18", + "type": "box", + "x": 51, + "y": 128, + "z": -573, + "dimx": 83, + "dimy": 192, + "dimz": 11 + }, + { + "dimension": "minecraft:overworld", + "name": "sunscorch_19", + "type": "box", + "x": 39, + "y": 128, + "z": -549, + "dimx": 95, + "dimy": 192, + "dimz": 11 + }, + { + "dimension": "minecraft:overworld", + "name": "sunscorch_20", + "type": "box", + "x": 15, + "y": 128, + "z": -525, + "dimx": 119, + "dimy": 192, + "dimz": 11 + }, + { + "dimension": "minecraft:overworld", + "name": "sunscorch_21", + "type": "box", + "x": 1419, + "y": 128, + "z": -525, + "dimx": 11, + "dimy": 192, + "dimz": 11 + }, + { + "dimension": "minecraft:overworld", + "name": "sunscorch_22", + "type": "box", + "x": 3, + "y": 128, + "z": -501, + "dimx": 131, + "dimy": 192, + "dimz": 11 + }, + { + "dimension": "minecraft:overworld", + "name": "sunscorch_23", + "type": "box", + "x": 1407, + "y": 128, + "z": -501, + "dimx": 23, + "dimy": 192, + "dimz": 11 + }, + { + "dimension": "minecraft:overworld", + "name": "sunscorch_24", + "type": "box", + "x": 3, + "y": 128, + "z": -477, + "dimx": 155, + "dimy": 192, + "dimz": 11 + }, + { + "dimension": "minecraft:overworld", + "name": "sunscorch_25", + "type": "box", + "x": 1395, + "y": 128, + "z": -477, + "dimx": 35, + "dimy": 192, + "dimz": 11 + }, + { + "dimension": "minecraft:overworld", + "name": "sunscorch_26", + "type": "box", + "x": -33, + "y": 128, + "z": -453, + "dimx": 143, + "dimy": 192, + "dimz": 11 + }, + { + "dimension": "minecraft:overworld", + "name": "sunscorch_27", + "type": "box", + "x": 1383, + "y": 128, + "z": -453, + "dimx": 47, + "dimy": 192, + "dimz": 11 + }, + { + "dimension": "minecraft:overworld", + "name": "sunscorch_28", + "type": "box", + "x": -45, + "y": 128, + "z": -417, + "dimx": 131, + "dimy": 192, + "dimz": 23 + }, + { + "dimension": "minecraft:overworld", + "name": "sunscorch_29", + "type": "box", + "x": 1395, + "y": 128, + "z": -429, + "dimx": 59, + "dimy": 192, + "dimz": 11 + }, + { + "dimension": "minecraft:overworld", + "name": "sunscorch_30", + "type": "box", + "x": 1383, + "y": 128, + "z": -405, + "dimx": 71, + "dimy": 192, + "dimz": 11 + }, + { + "dimension": "minecraft:overworld", + "name": "sunscorch_31", + "type": "box", + "x": -141, + "y": 128, + "z": -381, + "dimx": 35, + "dimy": 192, + "dimz": 11 + }, + { + "dimension": "minecraft:overworld", + "name": "sunscorch_32", + "type": "box", + "x": 1371, + "y": 128, + "z": -381, + "dimx": 83, + "dimy": 192, + "dimz": 11 + }, + { + "dimension": "minecraft:overworld", + "name": "sunscorch_33", + "type": "box", + "x": -165, + "y": 128, + "z": -357, + "dimx": 11, + "dimy": 192, + "dimz": 11 + }, + { + "dimension": "minecraft:overworld", + "name": "sunscorch_34", + "type": "box", + "x": 1371, + "y": 128, + "z": -345, + "dimx": 107, + "dimy": 192, + "dimz": 23 + }, + { + "dimension": "minecraft:overworld", + "name": "sunscorch_35", + "type": "box", + "x": 1371, + "y": 128, + "z": -309, + "dimx": 131, + "dimy": 192, + "dimz": 11 + }, + { + "dimension": "minecraft:overworld", + "name": "sunscorch_36", + "type": "box", + "x": 1335, + "y": 128, + "z": -285, + "dimx": 143, + "dimy": 192, + "dimz": 11 + }, + { + "dimension": "minecraft:overworld", + "name": "sunscorch_37", + "type": "box", + "x": 1155, + "y": 128, + "z": -261, + "dimx": 11, + "dimy": 192, + "dimz": 11 + }, + { + "dimension": "minecraft:overworld", + "name": "sunscorch_38", + "type": "box", + "x": 1323, + "y": 128, + "z": -261, + "dimx": 131, + "dimy": 192, + "dimz": 11 + }, + { + "dimension": "minecraft:overworld", + "name": "sunscorch_39", + "type": "box", + "x": 1287, + "y": 128, + "z": -237, + "dimx": 167, + "dimy": 192, + "dimz": 11 + }, + { + "dimension": "minecraft:overworld", + "name": "sunscorch_40", + "type": "box", + "x": 1251, + "y": 128, + "z": -213, + "dimx": 203, + "dimy": 192, + "dimz": 11 + }, + { + "dimension": "minecraft:overworld", + "name": "sunscorch_41", + "type": "box", + "x": 1203, + "y": 128, + "z": -189, + "dimx": 227, + "dimy": 192, + "dimz": 11 + }, + { + "dimension": "minecraft:overworld", + "name": "sunscorch_42", + "type": "box", + "x": 1215, + "y": 128, + "z": -165, + "dimx": 215, + "dimy": 192, + "dimz": 11 + }, + { + "dimension": "minecraft:overworld", + "name": "sunscorch_43", + "type": "box", + "x": 1215, + "y": 128, + "z": -141, + "dimx": 191, + "dimy": 192, + "dimz": 11 + }, + { + "dimension": "minecraft:overworld", + "name": "sunscorch_44", + "type": "box", + "x": 1203, + "y": 128, + "z": -117, + "dimx": 179, + "dimy": 192, + "dimz": 11 + }, + { + "dimension": "minecraft:overworld", + "name": "sunscorch_45", + "type": "box", + "x": 1203, + "y": 128, + "z": -93, + "dimx": 155, + "dimy": 192, + "dimz": 11 + }, + { + "dimension": "minecraft:overworld", + "name": "sunscorch_46", + "type": "box", + "x": 255, + "y": 128, + "z": 1443, + "dimx": 23, + "dimy": 192, + "dimz": 11 + }, + { + "dimension": "minecraft:overworld", + "name": "sunscorch_47", + "type": "box", + "x": 207, + "y": 128, + "z": 1467, + "dimx": 71, + "dimy": 192, + "dimz": 11 + }, + { + "dimension": "minecraft:overworld", + "name": "sunscorch_48", + "type": "box", + "x": 231, + "y": 128, + "z": 1491, + "dimx": 95, + "dimy": 192, + "dimz": 11 + }, + { + "dimension": "minecraft:overworld", + "name": "frostpeak_0", + "type": "box", + "x": 387, + "y": 128, + "z": -1461, + "dimx": 11, + "dimy": 192, + "dimz": 11 + }, + { + "dimension": "minecraft:overworld", + "name": "frostpeak_1", + "type": "box", + "x": 363, + "y": 128, + "z": -1437, + "dimx": 35, + "dimy": 192, + "dimz": 11 + }, + { + "dimension": "minecraft:overworld", + "name": "frostpeak_2", + "type": "box", + "x": 507, + "y": 128, + "z": -1413, + "dimx": 11, + "dimy": 192, + "dimz": 11 + }, + { + "dimension": "minecraft:overworld", + "name": "frostpeak_3", + "type": "box", + "x": 327, + "y": 128, + "z": -1389, + "dimx": 71, + "dimy": 192, + "dimz": 11 + }, + { + "dimension": "minecraft:overworld", + "name": "frostpeak_4", + "type": "box", + "x": 339, + "y": 128, + "z": -1365, + "dimx": 107, + "dimy": 192, + "dimz": 11 + }, + { + "dimension": "minecraft:overworld", + "name": "frostpeak_5", + "type": "box", + "x": 339, + "y": 128, + "z": -1341, + "dimx": 131, + "dimy": 192, + "dimz": 11 + }, + { + "dimension": "minecraft:overworld", + "name": "frostpeak_6", + "type": "box", + "x": 315, + "y": 128, + "z": -1317, + "dimx": 131, + "dimy": 192, + "dimz": 11 + }, + { + "dimension": "minecraft:overworld", + "name": "frostpeak_7", + "type": "box", + "x": 291, + "y": 128, + "z": -1293, + "dimx": 107, + "dimy": 192, + "dimz": 11 + }, + { + "dimension": "minecraft:overworld", + "name": "frostpeak_8", + "type": "box", + "x": 255, + "y": 128, + "z": -1269, + "dimx": 71, + "dimy": 192, + "dimz": 11 + }, + { + "dimension": "minecraft:overworld", + "name": "frostpeak_9", + "type": "box", + "x": 435, + "y": 128, + "z": -1197, + "dimx": 59, + "dimy": 192, + "dimz": 11 + }, + { + "dimension": "minecraft:overworld", + "name": "frostpeak_10", + "type": "box", + "x": 447, + "y": 128, + "z": -1173, + "dimx": 71, + "dimy": 192, + "dimz": 11 + }, + { + "dimension": "minecraft:overworld", + "name": "frostpeak_11", + "type": "box", + "x": 423, + "y": 128, + "z": -1149, + "dimx": 95, + "dimy": 192, + "dimz": 11 + }, + { + "dimension": "minecraft:overworld", + "name": "frostpeak_12", + "type": "box", + "x": 435, + "y": 128, + "z": -1125, + "dimx": 107, + "dimy": 192, + "dimz": 11 + }, + { + "dimension": "minecraft:overworld", + "name": "frostpeak_13", + "type": "box", + "x": 459, + "y": 128, + "z": -1101, + "dimx": 131, + "dimy": 192, + "dimz": 11 + }, + { + "dimension": "minecraft:overworld", + "name": "frostpeak_14", + "type": "box", + "x": 363, + "y": 128, + "z": -1077, + "dimx": 59, + "dimy": 192, + "dimz": 11 + }, + { + "dimension": "minecraft:overworld", + "name": "frostpeak_15", + "type": "box", + "x": 507, + "y": 128, + "z": -1077, + "dimx": 59, + "dimy": 192, + "dimz": 11 + }, + { + "dimension": "minecraft:overworld", + "name": "frostpeak_16", + "type": "box", + "x": 447, + "y": 128, + "z": -1053, + "dimx": 143, + "dimy": 192, + "dimz": 11 + }, + { + "dimension": "minecraft:overworld", + "name": "frostpeak_17", + "type": "box", + "x": 459, + "y": 128, + "z": -1029, + "dimx": 155, + "dimy": 192, + "dimz": 11 + }, + { + "dimension": "minecraft:overworld", + "name": "frostpeak_18", + "type": "box", + "x": 495, + "y": 128, + "z": -1005, + "dimx": 119, + "dimy": 192, + "dimz": 11 + }, + { + "dimension": "minecraft:overworld", + "name": "frostpeak_19", + "type": "box", + "x": 483, + "y": 128, + "z": -981, + "dimx": 83, + "dimy": 192, + "dimz": 11 + }, + { + "dimension": "minecraft:overworld", + "name": "frostpeak_20", + "type": "box", + "x": 483, + "y": 128, + "z": -957, + "dimx": 59, + "dimy": 192, + "dimz": 11 + }, + { + "dimension": "minecraft:overworld", + "name": "frostpeak_21", + "type": "box", + "x": 483, + "y": 128, + "z": -933, + "dimx": 35, + "dimy": 192, + "dimz": 11 + }, + { + "dimension": "minecraft:overworld", + "name": "frostpeak_22", + "type": "box", + "x": 243, + "y": 128, + "z": -885, + "dimx": 11, + "dimy": 192, + "dimz": 11 + }, + { + "dimension": "minecraft:overworld", + "name": "frostpeak_23", + "type": "box", + "x": 171, + "y": 128, + "z": -861, + "dimx": 35, + "dimy": 192, + "dimz": 11 + }, + { + "dimension": "minecraft:overworld", + "name": "frostpeak_24", + "type": "box", + "x": 291, + "y": 128, + "z": -861, + "dimx": 59, + "dimy": 192, + "dimz": 11 + }, + { + "dimension": "minecraft:overworld", + "name": "frostpeak_25", + "type": "box", + "x": 255, + "y": 128, + "z": -837, + "dimx": 215, + "dimy": 192, + "dimz": 11 + }, + { + "dimension": "minecraft:overworld", + "name": "frostpeak_26", + "type": "box", + "x": 747, + "y": 128, + "z": -813, + "dimx": 11, + "dimy": 192, + "dimz": 35 + }, + { + "dimension": "minecraft:overworld", + "name": "frostpeak_27", + "type": "box", + "x": 243, + "y": 128, + "z": -813, + "dimx": 203, + "dimy": 192, + "dimz": 11 + }, + { + "dimension": "minecraft:overworld", + "name": "frostpeak_28", + "type": "box", + "x": 567, + "y": 128, + "z": -813, + "dimx": 47, + "dimy": 192, + "dimz": 11 + }, + { + "dimension": "minecraft:overworld", + "name": "frostpeak_29", + "type": "box", + "x": 675, + "y": 128, + "z": -813, + "dimx": 11, + "dimy": 192, + "dimz": 11 + }, + { + "dimension": "minecraft:overworld", + "name": "frostpeak_30", + "type": "box", + "x": 255, + "y": 128, + "z": -789, + "dimx": 215, + "dimy": 192, + "dimz": 11 + }, + { + "dimension": "minecraft:overworld", + "name": "frostpeak_31", + "type": "box", + "x": 555, + "y": 128, + "z": -789, + "dimx": 59, + "dimy": 192, + "dimz": 11 + }, + { + "dimension": "minecraft:overworld", + "name": "frostpeak_32", + "type": "box", + "x": 675, + "y": 128, + "z": -789, + "dimx": 35, + "dimy": 192, + "dimz": 11 + }, + { + "dimension": "minecraft:overworld", + "name": "frostpeak_33", + "type": "box", + "x": 171, + "y": 128, + "z": -765, + "dimx": 131, + "dimy": 192, + "dimz": 11 + }, + { + "dimension": "minecraft:overworld", + "name": "frostpeak_34", + "type": "box", + "x": 399, + "y": 128, + "z": -765, + "dimx": 71, + "dimy": 192, + "dimz": 11 + }, + { + "dimension": "minecraft:overworld", + "name": "frostpeak_35", + "type": "box", + "x": 531, + "y": 128, + "z": -765, + "dimx": 35, + "dimy": 192, + "dimz": 11 + }, + { + "dimension": "minecraft:overworld", + "name": "frostpeak_36", + "type": "box", + "x": 663, + "y": 128, + "z": -765, + "dimx": 47, + "dimy": 192, + "dimz": 11 + }, + { + "dimension": "minecraft:overworld", + "name": "frostpeak_37", + "type": "box", + "x": -141, + "y": 128, + "z": -741, + "dimx": 11, + "dimy": 192, + "dimz": 11 + }, + { + "dimension": "minecraft:overworld", + "name": "frostpeak_38", + "type": "box", + "x": 195, + "y": 128, + "z": -741, + "dimx": 155, + "dimy": 192, + "dimz": 11 + }, + { + "dimension": "minecraft:overworld", + "name": "frostpeak_39", + "type": "box", + "x": 399, + "y": 128, + "z": -741, + "dimx": 23, + "dimy": 192, + "dimz": 11 + }, + { + "dimension": "minecraft:overworld", + "name": "frostpeak_40", + "type": "box", + "x": 615, + "y": 128, + "z": -741, + "dimx": 23, + "dimy": 192, + "dimz": 11 + }, + { + "dimension": "minecraft:overworld", + "name": "frostpeak_41", + "type": "box", + "x": 687, + "y": 128, + "z": -741, + "dimx": 23, + "dimy": 192, + "dimz": 11 + }, + { + "dimension": "minecraft:overworld", + "name": "frostpeak_42", + "type": "box", + "x": -129, + "y": 128, + "z": -717, + "dimx": 47, + "dimy": 192, + "dimz": 11 + }, + { + "dimension": "minecraft:overworld", + "name": "frostpeak_43", + "type": "box", + "x": 147, + "y": 128, + "z": -717, + "dimx": 107, + "dimy": 192, + "dimz": 11 + }, + { + "dimension": "minecraft:overworld", + "name": "frostpeak_44", + "type": "box", + "x": 327, + "y": 128, + "z": -717, + "dimx": 23, + "dimy": 192, + "dimz": 11 + }, + { + "dimension": "minecraft:overworld", + "name": "frostpeak_45", + "type": "box", + "x": 663, + "y": 128, + "z": -717, + "dimx": 95, + "dimy": 192, + "dimz": 11 + }, + { + "dimension": "minecraft:overworld", + "name": "frostpeak_46", + "type": "box", + "x": -129, + "y": 128, + "z": -681, + "dimx": 95, + "dimy": 192, + "dimz": 23 + }, + { + "dimension": "minecraft:overworld", + "name": "frostpeak_47", + "type": "box", + "x": 123, + "y": 128, + "z": -693, + "dimx": 83, + "dimy": 192, + "dimz": 11 + }, + { + "dimension": "minecraft:overworld", + "name": "frostpeak_48", + "type": "box", + "x": 315, + "y": 128, + "z": -693, + "dimx": 11, + "dimy": 192, + "dimz": 11 + }, + { + "dimension": "minecraft:overworld", + "name": "frostpeak_49", + "type": "box", + "x": 651, + "y": 128, + "z": -669, + "dimx": 107, + "dimy": 192, + "dimz": 35 + }, + { + "dimension": "minecraft:overworld", + "name": "frostpeak_50", + "type": "box", + "x": 123, + "y": 128, + "z": -669, + "dimx": 59, + "dimy": 192, + "dimz": 11 + }, + { + "dimension": "minecraft:overworld", + "name": "frostpeak_51", + "type": "box", + "x": 291, + "y": 128, + "z": -669, + "dimx": 35, + "dimy": 192, + "dimz": 11 + }, + { + "dimension": "minecraft:overworld", + "name": "frostpeak_52", + "type": "box", + "x": -141, + "y": 128, + "z": -645, + "dimx": 107, + "dimy": 192, + "dimz": 11 + }, + { + "dimension": "minecraft:overworld", + "name": "frostpeak_53", + "type": "box", + "x": 183, + "y": 128, + "z": -645, + "dimx": 119, + "dimy": 192, + "dimz": 11 + }, + { + "dimension": "minecraft:overworld", + "name": "frostpeak_54", + "type": "box", + "x": -129, + "y": 128, + "z": -609, + "dimx": 119, + "dimy": 192, + "dimz": 23 + }, + { + "dimension": "minecraft:overworld", + "name": "frostpeak_55", + "type": "box", + "x": 123, + "y": 128, + "z": -621, + "dimx": 35, + "dimy": 192, + "dimz": 11 + }, + { + "dimension": "minecraft:overworld", + "name": "frostpeak_56", + "type": "box", + "x": 243, + "y": 128, + "z": -621, + "dimx": 35, + "dimy": 192, + "dimz": 11 + }, + { + "dimension": "minecraft:overworld", + "name": "frostpeak_57", + "type": "box", + "x": 639, + "y": 128, + "z": -621, + "dimx": 119, + "dimy": 192, + "dimz": 11 + }, + { + "dimension": "minecraft:overworld", + "name": "frostpeak_58", + "type": "box", + "x": 627, + "y": 128, + "z": -549, + "dimx": 107, + "dimy": 192, + "dimz": 59 + }, + { + "dimension": "minecraft:overworld", + "name": "frostpeak_59", + "type": "box", + "x": -141, + "y": 128, + "z": -573, + "dimx": 107, + "dimy": 192, + "dimz": 11 + }, + { + "dimension": "minecraft:overworld", + "name": "frostpeak_60", + "type": "box", + "x": 867, + "y": 128, + "z": -573, + "dimx": 35, + "dimy": 192, + "dimz": 11 + }, + { + "dimension": "minecraft:overworld", + "name": "frostpeak_61", + "type": "box", + "x": -165, + "y": 128, + "z": -549, + "dimx": 107, + "dimy": 192, + "dimz": 11 + }, + { + "dimension": "minecraft:overworld", + "name": "frostpeak_62", + "type": "box", + "x": 855, + "y": 128, + "z": -549, + "dimx": 47, + "dimy": 192, + "dimz": 11 + }, + { + "dimension": "minecraft:overworld", + "name": "frostpeak_63", + "type": "box", + "x": -189, + "y": 128, + "z": -525, + "dimx": 83, + "dimy": 192, + "dimz": 11 + }, + { + "dimension": "minecraft:overworld", + "name": "frostpeak_64", + "type": "box", + "x": 867, + "y": 128, + "z": -513, + "dimx": 59, + "dimy": 192, + "dimz": 23 + }, + { + "dimension": "minecraft:overworld", + "name": "frostpeak_65", + "type": "box", + "x": -189, + "y": 128, + "z": -501, + "dimx": 59, + "dimy": 192, + "dimz": 11 + }, + { + "dimension": "minecraft:overworld", + "name": "frostpeak_66", + "type": "box", + "x": -177, + "y": 128, + "z": -477, + "dimx": 23, + "dimy": 192, + "dimz": 11 + }, + { + "dimension": "minecraft:overworld", + "name": "frostpeak_67", + "type": "box", + "x": 639, + "y": 128, + "z": -477, + "dimx": 119, + "dimy": 192, + "dimz": 11 + }, + { + "dimension": "minecraft:overworld", + "name": "frostpeak_68", + "type": "box", + "x": 879, + "y": 128, + "z": -477, + "dimx": 47, + "dimy": 192, + "dimz": 11 + }, + { + "dimension": "minecraft:overworld", + "name": "frostpeak_69", + "type": "box", + "x": 159, + "y": 128, + "z": -453, + "dimx": 47, + "dimy": 192, + "dimz": 11 + }, + { + "dimension": "minecraft:overworld", + "name": "frostpeak_70", + "type": "box", + "x": 663, + "y": 128, + "z": -453, + "dimx": 119, + "dimy": 192, + "dimz": 11 + }, + { + "dimension": "minecraft:overworld", + "name": "frostpeak_71", + "type": "box", + "x": 147, + "y": 128, + "z": -429, + "dimx": 59, + "dimy": 192, + "dimz": 11 + }, + { + "dimension": "minecraft:overworld", + "name": "frostpeak_72", + "type": "box", + "x": 675, + "y": 128, + "z": -429, + "dimx": 107, + "dimy": 192, + "dimz": 11 + }, + { + "dimension": "minecraft:overworld", + "name": "frostpeak_73", + "type": "box", + "x": 99, + "y": 128, + "z": -393, + "dimx": 11, + "dimy": 192, + "dimz": 23 + }, + { + "dimension": "minecraft:overworld", + "name": "frostpeak_74", + "type": "box", + "x": 195, + "y": 128, + "z": -405, + "dimx": 35, + "dimy": 192, + "dimz": 11 + }, + { + "dimension": "minecraft:overworld", + "name": "frostpeak_75", + "type": "box", + "x": 711, + "y": 128, + "z": -405, + "dimx": 119, + "dimy": 192, + "dimz": 11 + }, + { + "dimension": "minecraft:overworld", + "name": "frostpeak_76", + "type": "box", + "x": 195, + "y": 128, + "z": -369, + "dimx": 11, + "dimy": 192, + "dimz": 23 + }, + { + "dimension": "minecraft:overworld", + "name": "frostpeak_77", + "type": "box", + "x": 735, + "y": 128, + "z": -381, + "dimx": 143, + "dimy": 192, + "dimz": 11 + }, + { + "dimension": "minecraft:overworld", + "name": "frostpeak_78", + "type": "box", + "x": 627, + "y": 128, + "z": -357, + "dimx": 35, + "dimy": 192, + "dimz": 11 + }, + { + "dimension": "minecraft:overworld", + "name": "frostpeak_79", + "type": "box", + "x": 843, + "y": 128, + "z": -357, + "dimx": 59, + "dimy": 192, + "dimz": 11 + }, + { + "dimension": "minecraft:overworld", + "name": "frostpeak_80", + "type": "box", + "x": 615, + "y": 128, + "z": -333, + "dimx": 23, + "dimy": 192, + "dimz": 11 + }, + { + "dimension": "minecraft:overworld", + "name": "frostpeak_81", + "type": "box", + "x": 831, + "y": 128, + "z": -321, + "dimx": 23, + "dimy": 192, + "dimz": 23 + }, + { + "dimension": "minecraft:overworld", + "name": "frostpeak_82", + "type": "box", + "x": 891, + "y": 128, + "z": -333, + "dimx": 11, + "dimy": 192, + "dimz": 11 + }, + { + "dimension": "minecraft:overworld", + "name": "frostpeak_83", + "type": "box", + "x": 603, + "y": 128, + "z": -285, + "dimx": 11, + "dimy": 192, + "dimz": 35 + }, + { + "dimension": "minecraft:overworld", + "name": "frostpeak_84", + "type": "box", + "x": 915, + "y": 128, + "z": -309, + "dimx": 11, + "dimy": 192, + "dimz": 11 + }, + { + "dimension": "minecraft:overworld", + "name": "frostpeak_85", + "type": "box", + "x": 819, + "y": 128, + "z": -285, + "dimx": 35, + "dimy": 192, + "dimz": 11 + }, + { + "dimension": "minecraft:overworld", + "name": "frostpeak_86", + "type": "box", + "x": 783, + "y": 128, + "z": -261, + "dimx": 23, + "dimy": 192, + "dimz": 11 + }, + { + "dimension": "minecraft:overworld", + "name": "frostpeak_87", + "type": "box", + "x": 615, + "y": 128, + "z": -237, + "dimx": 23, + "dimy": 192, + "dimz": 11 + }, + { + "dimension": "minecraft:overworld", + "name": "frostpeak_88", + "type": "box", + "x": 711, + "y": 128, + "z": -237, + "dimx": 23, + "dimy": 192, + "dimz": 11 + }, + { + "dimension": "minecraft:overworld", + "name": "frostpeak_89", + "type": "box", + "x": 651, + "y": 128, + "z": -213, + "dimx": 59, + "dimy": 192, + "dimz": 11 + }, + { + "dimension": "minecraft:overworld", + "name": "frostpeak_90", + "type": "box", + "x": 651, + "y": 128, + "z": -177, + "dimx": 35, + "dimy": 192, + "dimz": 23 + }, + { + "dimension": "minecraft:overworld", + "name": "frostpeak_91", + "type": "box", + "x": 651, + "y": 128, + "z": -141, + "dimx": 11, + "dimy": 192, + "dimz": 11 + }, + { + "dimension": "minecraft:overworld", + "name": "mire_0", + "type": "box", + "x": -1017, + "y": 128, + "z": -189, + "dimx": 23, + "dimy": 192, + "dimz": 11 + }, + { + "dimension": "minecraft:overworld", + "name": "mire_1", + "type": "box", + "x": -1029, + "y": 128, + "z": -165, + "dimx": 35, + "dimy": 192, + "dimz": 11 + }, + { + "dimension": "minecraft:overworld", + "name": "mire_2", + "type": "box", + "x": -1065, + "y": 128, + "z": -141, + "dimx": 71, + "dimy": 192, + "dimz": 11 + }, + { + "dimension": "minecraft:overworld", + "name": "mire_3", + "type": "box", + "x": -1089, + "y": 128, + "z": -117, + "dimx": 71, + "dimy": 192, + "dimz": 11 + }, + { + "dimension": "minecraft:overworld", + "name": "mire_4", + "type": "box", + "x": -1101, + "y": 128, + "z": -93, + "dimx": 59, + "dimy": 192, + "dimz": 11 + }, + { + "dimension": "minecraft:overworld", + "name": "mire_5", + "type": "box", + "x": 531, + "y": 128, + "z": 459, + "dimx": 11, + "dimy": 192, + "dimz": 11 + }, + { + "dimension": "minecraft:overworld", + "name": "mire_6", + "type": "box", + "x": 483, + "y": 128, + "z": 495, + "dimx": 35, + "dimy": 192, + "dimz": 23 + }, + { + "dimension": "minecraft:overworld", + "name": "mire_7", + "type": "box", + "x": 675, + "y": 128, + "z": 483, + "dimx": 11, + "dimy": 192, + "dimz": 11 + }, + { + "dimension": "minecraft:overworld", + "name": "mire_8", + "type": "box", + "x": 699, + "y": 128, + "z": 507, + "dimx": 35, + "dimy": 192, + "dimz": 11 + }, + { + "dimension": "minecraft:overworld", + "name": "mire_9", + "type": "box", + "x": 459, + "y": 128, + "z": 531, + "dimx": 59, + "dimy": 192, + "dimz": 11 + }, + { + "dimension": "minecraft:overworld", + "name": "mire_10", + "type": "box", + "x": 723, + "y": 128, + "z": 531, + "dimx": 35, + "dimy": 192, + "dimz": 11 + }, + { + "dimension": "minecraft:overworld", + "name": "mire_11", + "type": "box", + "x": 423, + "y": 128, + "z": 555, + "dimx": 119, + "dimy": 192, + "dimz": 11 + }, + { + "dimension": "minecraft:overworld", + "name": "mire_12", + "type": "box", + "x": 735, + "y": 128, + "z": 555, + "dimx": 47, + "dimy": 192, + "dimz": 11 + }, + { + "dimension": "minecraft:overworld", + "name": "mire_13", + "type": "box", + "x": 387, + "y": 128, + "z": 579, + "dimx": 179, + "dimy": 192, + "dimz": 11 + }, + { + "dimension": "minecraft:overworld", + "name": "mire_14", + "type": "box", + "x": 747, + "y": 128, + "z": 579, + "dimx": 59, + "dimy": 192, + "dimz": 11 + }, + { + "dimension": "minecraft:overworld", + "name": "mire_15", + "type": "box", + "x": 387, + "y": 128, + "z": 603, + "dimx": 203, + "dimy": 192, + "dimz": 11 + }, + { + "dimension": "minecraft:overworld", + "name": "mire_16", + "type": "box", + "x": 771, + "y": 128, + "z": 603, + "dimx": 83, + "dimy": 192, + "dimz": 11 + }, + { + "dimension": "minecraft:overworld", + "name": "mire_17", + "type": "box", + "x": 543, + "y": 128, + "z": 627, + "dimx": 383, + "dimy": 192, + "dimz": 11 + }, + { + "dimension": "minecraft:overworld", + "name": "mire_18", + "type": "box", + "x": 531, + "y": 128, + "z": 651, + "dimx": 395, + "dimy": 192, + "dimz": 11 + }, + { + "dimension": "minecraft:overworld", + "name": "mire_19", + "type": "box", + "x": 555, + "y": 128, + "z": 675, + "dimx": 419, + "dimy": 192, + "dimz": 11 + }, + { + "dimension": "minecraft:overworld", + "name": "mire_20", + "type": "box", + "x": 591, + "y": 128, + "z": 699, + "dimx": 455, + "dimy": 192, + "dimz": 11 + }, + { + "dimension": "minecraft:overworld", + "name": "mire_21", + "type": "box", + "x": 591, + "y": 128, + "z": 735, + "dimx": 527, + "dimy": 192, + "dimz": 23 + }, + { + "dimension": "minecraft:overworld", + "name": "mire_22", + "type": "box", + "x": 579, + "y": 128, + "z": 783, + "dimx": 539, + "dimy": 192, + "dimz": 23 + }, + { + "dimension": "minecraft:overworld", + "name": "mire_23", + "type": "box", + "x": 123, + "y": 128, + "z": 819, + "dimx": 83, + "dimy": 192, + "dimz": 11 + }, + { + "dimension": "minecraft:overworld", + "name": "mire_24", + "type": "box", + "x": 687, + "y": 128, + "z": 831, + "dimx": 407, + "dimy": 192, + "dimz": 23 + }, + { + "dimension": "minecraft:overworld", + "name": "mire_25", + "type": "box", + "x": 111, + "y": 128, + "z": 867, + "dimx": 71, + "dimy": 192, + "dimz": 35 + }, + { + "dimension": "minecraft:overworld", + "name": "mire_26", + "type": "box", + "x": 663, + "y": 128, + "z": 867, + "dimx": 407, + "dimy": 192, + "dimz": 11 + }, + { + "dimension": "minecraft:overworld", + "name": "mire_27", + "type": "box", + "x": 315, + "y": 128, + "z": 891, + "dimx": 83, + "dimy": 192, + "dimz": 11 + }, + { + "dimension": "minecraft:overworld", + "name": "mire_28", + "type": "box", + "x": 771, + "y": 128, + "z": 891, + "dimx": 299, + "dimy": 192, + "dimz": 11 + }, + { + "dimension": "minecraft:overworld", + "name": "mire_29", + "type": "box", + "x": 219, + "y": 128, + "z": 915, + "dimx": 179, + "dimy": 192, + "dimz": 11 + }, + { + "dimension": "minecraft:overworld", + "name": "mire_30", + "type": "box", + "x": 795, + "y": 128, + "z": 927, + "dimx": 323, + "dimy": 192, + "dimz": 23 + }, + { + "dimension": "minecraft:overworld", + "name": "mire_31", + "type": "box", + "x": 255, + "y": 128, + "z": 939, + "dimx": 191, + "dimy": 192, + "dimz": 11 + }, + { + "dimension": "minecraft:overworld", + "name": "mire_32", + "type": "box", + "x": 579, + "y": 128, + "z": 963, + "dimx": 515, + "dimy": 192, + "dimz": 11 + }, + { + "dimension": "minecraft:overworld", + "name": "mire_33", + "type": "box", + "x": 603, + "y": 128, + "z": 999, + "dimx": 515, + "dimy": 192, + "dimz": 23 + }, + { + "dimension": "minecraft:overworld", + "name": "mire_34", + "type": "box", + "x": 603, + "y": 128, + "z": 1035, + "dimx": 491, + "dimy": 192, + "dimz": 11 + }, + { + "dimension": "minecraft:overworld", + "name": "mire_35", + "type": "box", + "x": 471, + "y": 128, + "z": 1059, + "dimx": 359, + "dimy": 192, + "dimz": 11 + }, + { + "dimension": "minecraft:overworld", + "name": "mire_36", + "type": "box", + "x": 963, + "y": 128, + "z": 1059, + "dimx": 107, + "dimy": 192, + "dimz": 11 + }, + { + "dimension": "minecraft:overworld", + "name": "mire_37", + "type": "box", + "x": 399, + "y": 128, + "z": 1083, + "dimx": 311, + "dimy": 192, + "dimz": 11 + }, + { + "dimension": "minecraft:overworld", + "name": "mire_38", + "type": "box", + "x": 963, + "y": 128, + "z": 1083, + "dimx": 83, + "dimy": 192, + "dimz": 11 + }, + { + "dimension": "minecraft:overworld", + "name": "mire_39", + "type": "box", + "x": 399, + "y": 128, + "z": 1119, + "dimx": 287, + "dimy": 192, + "dimz": 23 + }, + { + "dimension": "minecraft:overworld", + "name": "mire_40", + "type": "box", + "x": 963, + "y": 128, + "z": 1107, + "dimx": 59, + "dimy": 192, + "dimz": 11 + }, + { + "dimension": "minecraft:overworld", + "name": "mire_41", + "type": "box", + "x": 939, + "y": 128, + "z": 1131, + "dimx": 59, + "dimy": 192, + "dimz": 11 + }, + { + "dimension": "minecraft:overworld", + "name": "mire_42", + "type": "box", + "x": 363, + "y": 128, + "z": 1155, + "dimx": 251, + "dimy": 192, + "dimz": 11 + }, + { + "dimension": "minecraft:overworld", + "name": "mire_43", + "type": "box", + "x": 927, + "y": 128, + "z": 1155, + "dimx": 23, + "dimy": 192, + "dimz": 11 + }, + { + "dimension": "minecraft:overworld", + "name": "mire_44", + "type": "box", + "x": 315, + "y": 128, + "z": 1179, + "dimx": 203, + "dimy": 192, + "dimz": 11 + }, + { + "dimension": "minecraft:overworld", + "name": "mire_45", + "type": "box", + "x": 915, + "y": 128, + "z": 1179, + "dimx": 11, + "dimy": 192, + "dimz": 11 + }, + { + "dimension": "minecraft:overworld", + "name": "mire_46", + "type": "box", + "x": 291, + "y": 128, + "z": 1203, + "dimx": 179, + "dimy": 192, + "dimz": 11 + }, + { + "dimension": "minecraft:overworld", + "name": "mire_47", + "type": "box", + "x": 891, + "y": 128, + "z": 1203, + "dimx": 11, + "dimy": 192, + "dimz": 11 + }, + { + "dimension": "minecraft:overworld", + "name": "mire_48", + "type": "box", + "x": 39, + "y": 128, + "z": 1227, + "dimx": 23, + "dimy": 192, + "dimz": 11 + }, + { + "dimension": "minecraft:overworld", + "name": "mire_49", + "type": "box", + "x": 267, + "y": 128, + "z": 1227, + "dimx": 179, + "dimy": 192, + "dimz": 11 + }, + { + "dimension": "minecraft:overworld", + "name": "mire_50", + "type": "box", + "x": 195, + "y": 128, + "z": 1251, + "dimx": 179, + "dimy": 192, + "dimz": 11 + }, + { + "dimension": "minecraft:overworld", + "name": "mire_51", + "type": "box", + "x": 159, + "y": 128, + "z": 1275, + "dimx": 143, + "dimy": 192, + "dimz": 11 + }, + { + "dimension": "minecraft:overworld", + "name": "mire_52", + "type": "box", + "x": 135, + "y": 128, + "z": 1299, + "dimx": 119, + "dimy": 192, + "dimz": 11 + }, + { + "dimension": "minecraft:overworld", + "name": "mire_53", + "type": "box", + "x": 147, + "y": 128, + "z": 1323, + "dimx": 107, + "dimy": 192, + "dimz": 11 + }, + { + "dimension": "minecraft:overworld", + "name": "mire_54", + "type": "box", + "x": 147, + "y": 128, + "z": 1347, + "dimx": 35, + "dimy": 192, + "dimz": 11 + }, + { + "dimension": "minecraft:overworld", + "name": "selftest_nowhere", + "type": "box", + "x": 29000000, + "y": 0, + "z": 29000000, + "dimx": 0, + "dimy": 0, + "dimz": 0 + } +] diff --git a/pack/config/regenerating_ore_veins/global.json b/pack/config/regenerating_ore_veins/global.json new file mode 100644 index 0000000..132ad85 --- /dev/null +++ b/pack/config/regenerating_ore_veins/global.json @@ -0,0 +1,12 @@ +{ + "allow_breaking": false, + "break_hardness": 5.0, + "default_regeneration_seconds": 3600, + "default_jitter_interval": { + "range_min": 0, + "range_max": 0 + }, + "regeneration_smoke_particles": true, + "destroyed_by_explosives": false, + "default_fill_factor": 0.7 +} diff --git a/pack/config/regenerating_ore_veins/vein_locator.json b/pack/config/regenerating_ore_veins/vein_locator.json new file mode 100644 index 0000000..f076e9e --- /dev/null +++ b/pack/config/regenerating_ore_veins/vein_locator.json @@ -0,0 +1,13 @@ +{ + "allow_crafting": true, + "allow_use": true, + "crafting_recipe": [ + "minecraft:compass", + "minecraft:copper_ingot" + ], + "craft_any_order": true, + "chance_to_break": 0.75, + "use_durability": false, + "durability": 2, + "stack_size": 64 +} diff --git a/pack/config/regenerating_ore_veins/veins.json b/pack/config/regenerating_ore_veins/veins.json new file mode 100644 index 0000000..cd2bb6f --- /dev/null +++ b/pack/config/regenerating_ore_veins/veins.json @@ -0,0 +1,3445 @@ +[ + { + "id": "coal", + "blocks": [ + "minecraft:coal_ore" + ], + "weights": [ + 1 + ], + "dimension_whitelist": [ + "minecraft:overworld" + ], + "area_whitelist": [ + "button_isle_0", + "button_isle_1", + "button_isle_2", + "button_isle_3", + "button_isle_4", + "button_isle_5", + "button_isle_6", + "button_isle_7", + "button_isle_8", + "button_isle_9", + "button_isle_10", + "button_isle_11", + "button_isle_12", + "button_isle_13", + "button_isle_14", + "button_isle_15", + "button_isle_16", + "button_isle_17", + "button_isle_18" + ], + "biome_blacklist": [ + "minecraft:basalt_deltas", + "minecraft:deep_dark", + "minecraft:dripstone_caves", + "minecraft:lush_caves" + ], + "shape": "sphere", + "min_radius": 1, + "max_radius": 2, + "attempts": 2, + "min_y": 0, + "max_y": 100, + "chunk_minimum_generation_separation": 4, + "fill_factor": 0.7, + "regeneration_interval_seconds": 1200, + "regeneration_interval_jitter": { + "range_min": -120, + "range_max": 120 + } + }, + { + "id": "coal_deep", + "blocks": [ + "minecraft:deepslate_coal_ore" + ], + "weights": [ + 1 + ], + "dimension_whitelist": [ + "minecraft:overworld" + ], + "area_whitelist": [ + "button_isle_0", + "button_isle_1", + "button_isle_2", + "button_isle_3", + "button_isle_4", + "button_isle_5", + "button_isle_6", + "button_isle_7", + "button_isle_8", + "button_isle_9", + "button_isle_10", + "button_isle_11", + "button_isle_12", + "button_isle_13", + "button_isle_14", + "button_isle_15", + "button_isle_16", + "button_isle_17", + "button_isle_18" + ], + "biome_blacklist": [ + "minecraft:basalt_deltas", + "minecraft:deep_dark", + "minecraft:dripstone_caves", + "minecraft:lush_caves" + ], + "shape": "sphere", + "min_radius": 1, + "max_radius": 2, + "attempts": 2, + "min_y": -32, + "max_y": -1, + "chunk_minimum_generation_separation": 4, + "fill_factor": 0.7, + "regeneration_interval_seconds": 1200, + "regeneration_interval_jitter": { + "range_min": -120, + "range_max": 120 + } + }, + { + "id": "copper", + "blocks": [ + "minecraft:copper_ore" + ], + "weights": [ + 1 + ], + "dimension_whitelist": [ + "minecraft:overworld" + ], + "area_whitelist": [ + "southwold_0", + "southwold_1", + "southwold_2", + "southwold_3", + "southwold_4", + "southwold_5", + "southwold_6", + "southwold_7", + "southwold_8", + "southwold_9", + "southwold_10", + "southwold_11", + "southwold_12", + "southwold_13", + "southwold_14", + "southwold_15", + "southwold_16", + "southwold_17", + "southwold_18", + "southwold_19", + "southwold_20", + "southwold_21", + "southwold_22", + "southwold_23", + "southwold_24", + "southwold_25", + "southwold_26", + "southwold_27", + "southwold_28", + "southwold_29", + "southwold_30", + "southwold_31", + "southwold_32", + "southwold_33", + "southwold_34", + "southwold_35", + "southwold_36", + "southwold_37", + "southwold_38", + "southwold_39", + "southwold_40", + "southwold_41", + "southwold_42", + "southwold_43", + "southwold_44", + "southwold_45", + "southwold_46", + "southwold_47", + "southwold_48", + "southwold_49", + "southwold_50", + "southwold_51", + "southwold_52", + "southwold_53", + "southwold_54", + "southwold_55", + "southwold_56", + "southwold_57", + "southwold_58", + "southwold_59", + "southwold_60", + "southwold_61", + "southwold_62", + "southwold_63", + "southwold_64", + "southwold_65", + "southwold_66", + "southwold_67", + "southwold_68", + "southwold_69", + "southwold_70", + "southwold_71", + "southwold_72", + "southwold_73", + "southwold_74", + "southwold_75", + "southwold_76", + "southwold_77", + "southwold_78", + "southwold_79", + "southwold_80", + "southwold_81", + "southwold_82", + "southwold_83", + "southwold_84", + "southwold_85", + "southwold_86", + "southwold_87", + "southwold_88", + "southwold_89", + "southwold_90", + "southwold_91", + "southwold_92", + "southwold_93", + "southwold_94", + "southwold_95", + "southwold_96", + "southwold_97", + "southwold_98", + "southwold_99", + "southwold_100", + "southwold_101", + "southwold_102", + "southwold_103", + "southwold_104", + "southwold_105", + "southwold_106", + "southwold_107", + "southwold_108", + "southwold_109", + "southwold_110", + "southwold_111", + "southwold_112", + "southwold_113", + "southwold_114", + "southwold_115", + "southwold_116", + "southwold_117", + "southwold_118", + "southwold_119" + ], + "biome_blacklist": [ + "minecraft:basalt_deltas", + "minecraft:deep_dark", + "minecraft:dripstone_caves", + "minecraft:lush_caves" + ], + "shape": "sphere", + "min_radius": 1, + "max_radius": 2, + "attempts": 2, + "min_y": 0, + "max_y": 100, + "chunk_minimum_generation_separation": 5, + "fill_factor": 0.7, + "regeneration_interval_seconds": 1800, + "regeneration_interval_jitter": { + "range_min": -180, + "range_max": 180 + } + }, + { + "id": "copper_deep", + "blocks": [ + "minecraft:deepslate_copper_ore" + ], + "weights": [ + 1 + ], + "dimension_whitelist": [ + "minecraft:overworld" + ], + "area_whitelist": [ + "southwold_0", + "southwold_1", + "southwold_2", + "southwold_3", + "southwold_4", + "southwold_5", + "southwold_6", + "southwold_7", + "southwold_8", + "southwold_9", + "southwold_10", + "southwold_11", + "southwold_12", + "southwold_13", + "southwold_14", + "southwold_15", + "southwold_16", + "southwold_17", + "southwold_18", + "southwold_19", + "southwold_20", + "southwold_21", + "southwold_22", + "southwold_23", + "southwold_24", + "southwold_25", + "southwold_26", + "southwold_27", + "southwold_28", + "southwold_29", + "southwold_30", + "southwold_31", + "southwold_32", + "southwold_33", + "southwold_34", + "southwold_35", + "southwold_36", + "southwold_37", + "southwold_38", + "southwold_39", + "southwold_40", + "southwold_41", + "southwold_42", + "southwold_43", + "southwold_44", + "southwold_45", + "southwold_46", + "southwold_47", + "southwold_48", + "southwold_49", + "southwold_50", + "southwold_51", + "southwold_52", + "southwold_53", + "southwold_54", + "southwold_55", + "southwold_56", + "southwold_57", + "southwold_58", + "southwold_59", + "southwold_60", + "southwold_61", + "southwold_62", + "southwold_63", + "southwold_64", + "southwold_65", + "southwold_66", + "southwold_67", + "southwold_68", + "southwold_69", + "southwold_70", + "southwold_71", + "southwold_72", + "southwold_73", + "southwold_74", + "southwold_75", + "southwold_76", + "southwold_77", + "southwold_78", + "southwold_79", + "southwold_80", + "southwold_81", + "southwold_82", + "southwold_83", + "southwold_84", + "southwold_85", + "southwold_86", + "southwold_87", + "southwold_88", + "southwold_89", + "southwold_90", + "southwold_91", + "southwold_92", + "southwold_93", + "southwold_94", + "southwold_95", + "southwold_96", + "southwold_97", + "southwold_98", + "southwold_99", + "southwold_100", + "southwold_101", + "southwold_102", + "southwold_103", + "southwold_104", + "southwold_105", + "southwold_106", + "southwold_107", + "southwold_108", + "southwold_109", + "southwold_110", + "southwold_111", + "southwold_112", + "southwold_113", + "southwold_114", + "southwold_115", + "southwold_116", + "southwold_117", + "southwold_118", + "southwold_119" + ], + "biome_blacklist": [ + "minecraft:basalt_deltas", + "minecraft:deep_dark", + "minecraft:dripstone_caves", + "minecraft:lush_caves" + ], + "shape": "sphere", + "min_radius": 1, + "max_radius": 2, + "attempts": 2, + "min_y": -32, + "max_y": -1, + "chunk_minimum_generation_separation": 5, + "fill_factor": 0.7, + "regeneration_interval_seconds": 1800, + "regeneration_interval_jitter": { + "range_min": -180, + "range_max": 180 + } + }, + { + "id": "iron", + "blocks": [ + "minecraft:iron_ore" + ], + "weights": [ + 1 + ], + "dimension_whitelist": [ + "minecraft:overworld" + ], + "area_whitelist": [ + "westmarch_0", + "westmarch_1", + "westmarch_2", + "westmarch_3", + "westmarch_4", + "westmarch_5", + "westmarch_6", + "westmarch_7", + "westmarch_8", + "westmarch_9", + "westmarch_10", + "westmarch_11", + "westmarch_12", + "westmarch_13", + "westmarch_14", + "westmarch_15", + "westmarch_16", + "westmarch_17", + "westmarch_18", + "westmarch_19", + "westmarch_20", + "westmarch_21", + "westmarch_22", + "westmarch_23", + "westmarch_24", + "westmarch_25", + "westmarch_26", + "westmarch_27", + "westmarch_28", + "westmarch_29", + "westmarch_30", + "westmarch_31", + "westmarch_32", + "westmarch_33", + "westmarch_34", + "westmarch_35", + "westmarch_36", + "westmarch_37", + "westmarch_38", + "westmarch_39", + "westmarch_40", + "westmarch_41", + "westmarch_42", + "westmarch_43", + "westmarch_44", + "westmarch_45", + "westmarch_46", + "westmarch_47", + "westmarch_48", + "westmarch_49", + "westmarch_50", + "westmarch_51", + "westmarch_52", + "westmarch_53" + ], + "biome_blacklist": [ + "minecraft:basalt_deltas", + "minecraft:deep_dark", + "minecraft:dripstone_caves", + "minecraft:lush_caves" + ], + "shape": "sphere", + "min_radius": 1, + "max_radius": 2, + "attempts": 2, + "min_y": 0, + "max_y": 90, + "chunk_minimum_generation_separation": 5, + "fill_factor": 0.7, + "regeneration_interval_seconds": 2400, + "regeneration_interval_jitter": { + "range_min": -240, + "range_max": 240 + } + }, + { + "id": "iron_deep", + "blocks": [ + "minecraft:deepslate_iron_ore" + ], + "weights": [ + 1 + ], + "dimension_whitelist": [ + "minecraft:overworld" + ], + "area_whitelist": [ + "westmarch_0", + "westmarch_1", + "westmarch_2", + "westmarch_3", + "westmarch_4", + "westmarch_5", + "westmarch_6", + "westmarch_7", + "westmarch_8", + "westmarch_9", + "westmarch_10", + "westmarch_11", + "westmarch_12", + "westmarch_13", + "westmarch_14", + "westmarch_15", + "westmarch_16", + "westmarch_17", + "westmarch_18", + "westmarch_19", + "westmarch_20", + "westmarch_21", + "westmarch_22", + "westmarch_23", + "westmarch_24", + "westmarch_25", + "westmarch_26", + "westmarch_27", + "westmarch_28", + "westmarch_29", + "westmarch_30", + "westmarch_31", + "westmarch_32", + "westmarch_33", + "westmarch_34", + "westmarch_35", + "westmarch_36", + "westmarch_37", + "westmarch_38", + "westmarch_39", + "westmarch_40", + "westmarch_41", + "westmarch_42", + "westmarch_43", + "westmarch_44", + "westmarch_45", + "westmarch_46", + "westmarch_47", + "westmarch_48", + "westmarch_49", + "westmarch_50", + "westmarch_51", + "westmarch_52", + "westmarch_53" + ], + "biome_blacklist": [ + "minecraft:basalt_deltas", + "minecraft:deep_dark", + "minecraft:dripstone_caves", + "minecraft:lush_caves" + ], + "shape": "sphere", + "min_radius": 1, + "max_radius": 2, + "attempts": 2, + "min_y": -48, + "max_y": -1, + "chunk_minimum_generation_separation": 5, + "fill_factor": 0.7, + "regeneration_interval_seconds": 2400, + "regeneration_interval_jitter": { + "range_min": -240, + "range_max": 240 + } + }, + { + "id": "redstone", + "blocks": [ + "minecraft:redstone_ore" + ], + "weights": [ + 1 + ], + "dimension_whitelist": [ + "minecraft:overworld" + ], + "area_whitelist": [ + "jungle_0", + "jungle_1", + "jungle_2", + "jungle_3", + "jungle_4", + "jungle_5", + "jungle_6", + "jungle_7", + "jungle_8", + "jungle_9", + "jungle_10", + "jungle_11", + "jungle_12", + "jungle_13", + "jungle_14", + "jungle_15", + "jungle_16", + "jungle_17", + "jungle_18", + "jungle_19", + "jungle_20", + "jungle_21", + "jungle_22", + "jungle_23", + "jungle_24", + "jungle_25", + "jungle_26", + "jungle_27", + "jungle_28", + "jungle_29", + "jungle_30", + "jungle_31", + "jungle_32", + "jungle_33", + "jungle_34", + "jungle_35", + "jungle_36", + "jungle_37", + "jungle_38", + "jungle_39", + "jungle_40", + "jungle_41", + "jungle_42", + "jungle_43", + "jungle_44", + "jungle_45", + "jungle_46", + "jungle_47", + "jungle_48", + "jungle_49", + "jungle_50", + "jungle_51", + "jungle_52", + "jungle_53", + "jungle_54", + "jungle_55", + "jungle_56", + "jungle_57", + "jungle_58", + "jungle_59", + "jungle_60", + "jungle_61", + "jungle_62", + "jungle_63", + "jungle_64", + "jungle_65", + "jungle_66", + "jungle_67", + "jungle_68", + "jungle_69", + "jungle_70" + ], + "biome_blacklist": [ + "minecraft:basalt_deltas", + "minecraft:deep_dark", + "minecraft:dripstone_caves", + "minecraft:lush_caves" + ], + "shape": "sphere", + "min_radius": 1, + "max_radius": 2, + "attempts": 1, + "min_y": 0, + "max_y": 60, + "chunk_minimum_generation_separation": 6, + "fill_factor": 0.7, + "regeneration_interval_seconds": 2700, + "regeneration_interval_jitter": { + "range_min": -270, + "range_max": 270 + } + }, + { + "id": "redstone_deep", + "blocks": [ + "minecraft:deepslate_redstone_ore" + ], + "weights": [ + 1 + ], + "dimension_whitelist": [ + "minecraft:overworld" + ], + "area_whitelist": [ + "jungle_0", + "jungle_1", + "jungle_2", + "jungle_3", + "jungle_4", + "jungle_5", + "jungle_6", + "jungle_7", + "jungle_8", + "jungle_9", + "jungle_10", + "jungle_11", + "jungle_12", + "jungle_13", + "jungle_14", + "jungle_15", + "jungle_16", + "jungle_17", + "jungle_18", + "jungle_19", + "jungle_20", + "jungle_21", + "jungle_22", + "jungle_23", + "jungle_24", + "jungle_25", + "jungle_26", + "jungle_27", + "jungle_28", + "jungle_29", + "jungle_30", + "jungle_31", + "jungle_32", + "jungle_33", + "jungle_34", + "jungle_35", + "jungle_36", + "jungle_37", + "jungle_38", + "jungle_39", + "jungle_40", + "jungle_41", + "jungle_42", + "jungle_43", + "jungle_44", + "jungle_45", + "jungle_46", + "jungle_47", + "jungle_48", + "jungle_49", + "jungle_50", + "jungle_51", + "jungle_52", + "jungle_53", + "jungle_54", + "jungle_55", + "jungle_56", + "jungle_57", + "jungle_58", + "jungle_59", + "jungle_60", + "jungle_61", + "jungle_62", + "jungle_63", + "jungle_64", + "jungle_65", + "jungle_66", + "jungle_67", + "jungle_68", + "jungle_69", + "jungle_70" + ], + "biome_blacklist": [ + "minecraft:basalt_deltas", + "minecraft:deep_dark", + "minecraft:dripstone_caves", + "minecraft:lush_caves" + ], + "shape": "sphere", + "min_radius": 1, + "max_radius": 2, + "attempts": 1, + "min_y": -56, + "max_y": -1, + "chunk_minimum_generation_separation": 6, + "fill_factor": 0.7, + "regeneration_interval_seconds": 2700, + "regeneration_interval_jitter": { + "range_min": -270, + "range_max": 270 + } + }, + { + "id": "lapis", + "blocks": [ + "minecraft:lapis_ore" + ], + "weights": [ + 1 + ], + "dimension_whitelist": [ + "minecraft:overworld" + ], + "area_whitelist": [ + "highlands_0", + "highlands_1", + "highlands_2", + "highlands_3", + "highlands_4", + "highlands_5", + "highlands_6", + "highlands_7", + "highlands_8", + "highlands_9", + "highlands_10", + "highlands_11", + "highlands_12", + "highlands_13", + "highlands_14", + "highlands_15", + "highlands_16", + "highlands_17", + "highlands_18", + "highlands_19", + "highlands_20", + "highlands_21", + "highlands_22", + "highlands_23", + "highlands_24", + "highlands_25", + "highlands_26", + "highlands_27", + "highlands_28", + "highlands_29", + "highlands_30", + "highlands_31", + "highlands_32", + "highlands_33", + "highlands_34", + "highlands_35", + "highlands_36", + "highlands_37", + "highlands_38", + "highlands_39", + "highlands_40", + "highlands_41", + "highlands_42", + "highlands_43", + "highlands_44", + "highlands_45", + "highlands_46", + "highlands_47", + "highlands_48", + "highlands_49", + "highlands_50", + "highlands_51", + "highlands_52", + "highlands_53", + "highlands_54", + "highlands_55", + "highlands_56", + "highlands_57", + "highlands_58", + "highlands_59", + "highlands_60", + "highlands_61", + "highlands_62", + "highlands_63", + "highlands_64", + "highlands_65", + "highlands_66", + "highlands_67", + "highlands_68", + "highlands_69", + "highlands_70", + "highlands_71", + "highlands_72", + "highlands_73", + "highlands_74", + "highlands_75", + "highlands_76", + "highlands_77", + "highlands_78", + "highlands_79", + "highlands_80", + "highlands_81", + "highlands_82", + "highlands_83", + "highlands_84", + "highlands_85", + "highlands_86", + "highlands_87", + "highlands_88", + "highlands_89", + "highlands_90", + "highlands_91", + "highlands_92", + "highlands_93", + "highlands_94", + "highlands_95", + "highlands_96", + "highlands_97", + "highlands_98", + "highlands_99", + "highlands_100", + "highlands_101", + "highlands_102", + "highlands_103", + "highlands_104", + "highlands_105", + "highlands_106", + "highlands_107", + "highlands_108", + "highlands_109", + "highlands_110", + "highlands_111", + "highlands_112", + "highlands_113", + "highlands_114", + "highlands_115", + "highlands_116", + "highlands_117", + "highlands_118", + "highlands_119", + "highlands_120", + "highlands_121", + "highlands_122", + "highlands_123", + "highlands_124", + "highlands_125", + "highlands_126", + "highlands_127", + "highlands_128", + "highlands_129", + "highlands_130", + "highlands_131", + "highlands_132", + "highlands_133", + "highlands_134", + "highlands_135", + "highlands_136", + "highlands_137", + "highlands_138", + "highlands_139", + "highlands_140", + "highlands_141", + "highlands_142", + "highlands_143", + "highlands_144", + "highlands_145", + "highlands_146", + "highlands_147", + "highlands_148", + "highlands_149", + "highlands_150", + "highlands_151", + "highlands_152", + "highlands_153", + "highlands_154", + "highlands_155", + "highlands_156" + ], + "biome_blacklist": [ + "minecraft:basalt_deltas", + "minecraft:deep_dark", + "minecraft:dripstone_caves", + "minecraft:lush_caves" + ], + "shape": "sphere", + "min_radius": 1, + "max_radius": 2, + "attempts": 1, + "min_y": 0, + "max_y": 80, + "chunk_minimum_generation_separation": 6, + "fill_factor": 0.7, + "regeneration_interval_seconds": 2700, + "regeneration_interval_jitter": { + "range_min": -270, + "range_max": 270 + } + }, + { + "id": "lapis_deep", + "blocks": [ + "minecraft:deepslate_lapis_ore" + ], + "weights": [ + 1 + ], + "dimension_whitelist": [ + "minecraft:overworld" + ], + "area_whitelist": [ + "highlands_0", + "highlands_1", + "highlands_2", + "highlands_3", + "highlands_4", + "highlands_5", + "highlands_6", + "highlands_7", + "highlands_8", + "highlands_9", + "highlands_10", + "highlands_11", + "highlands_12", + "highlands_13", + "highlands_14", + "highlands_15", + "highlands_16", + "highlands_17", + "highlands_18", + "highlands_19", + "highlands_20", + "highlands_21", + "highlands_22", + "highlands_23", + "highlands_24", + "highlands_25", + "highlands_26", + "highlands_27", + "highlands_28", + "highlands_29", + "highlands_30", + "highlands_31", + "highlands_32", + "highlands_33", + "highlands_34", + "highlands_35", + "highlands_36", + "highlands_37", + "highlands_38", + "highlands_39", + "highlands_40", + "highlands_41", + "highlands_42", + "highlands_43", + "highlands_44", + "highlands_45", + "highlands_46", + "highlands_47", + "highlands_48", + "highlands_49", + "highlands_50", + "highlands_51", + "highlands_52", + "highlands_53", + "highlands_54", + "highlands_55", + "highlands_56", + "highlands_57", + "highlands_58", + "highlands_59", + "highlands_60", + "highlands_61", + "highlands_62", + "highlands_63", + "highlands_64", + "highlands_65", + "highlands_66", + "highlands_67", + "highlands_68", + "highlands_69", + "highlands_70", + "highlands_71", + "highlands_72", + "highlands_73", + "highlands_74", + "highlands_75", + "highlands_76", + "highlands_77", + "highlands_78", + "highlands_79", + "highlands_80", + "highlands_81", + "highlands_82", + "highlands_83", + "highlands_84", + "highlands_85", + "highlands_86", + "highlands_87", + "highlands_88", + "highlands_89", + "highlands_90", + "highlands_91", + "highlands_92", + "highlands_93", + "highlands_94", + "highlands_95", + "highlands_96", + "highlands_97", + "highlands_98", + "highlands_99", + "highlands_100", + "highlands_101", + "highlands_102", + "highlands_103", + "highlands_104", + "highlands_105", + "highlands_106", + "highlands_107", + "highlands_108", + "highlands_109", + "highlands_110", + "highlands_111", + "highlands_112", + "highlands_113", + "highlands_114", + "highlands_115", + "highlands_116", + "highlands_117", + "highlands_118", + "highlands_119", + "highlands_120", + "highlands_121", + "highlands_122", + "highlands_123", + "highlands_124", + "highlands_125", + "highlands_126", + "highlands_127", + "highlands_128", + "highlands_129", + "highlands_130", + "highlands_131", + "highlands_132", + "highlands_133", + "highlands_134", + "highlands_135", + "highlands_136", + "highlands_137", + "highlands_138", + "highlands_139", + "highlands_140", + "highlands_141", + "highlands_142", + "highlands_143", + "highlands_144", + "highlands_145", + "highlands_146", + "highlands_147", + "highlands_148", + "highlands_149", + "highlands_150", + "highlands_151", + "highlands_152", + "highlands_153", + "highlands_154", + "highlands_155", + "highlands_156" + ], + "biome_blacklist": [ + "minecraft:basalt_deltas", + "minecraft:deep_dark", + "minecraft:dripstone_caves", + "minecraft:lush_caves" + ], + "shape": "sphere", + "min_radius": 1, + "max_radius": 2, + "attempts": 1, + "min_y": -56, + "max_y": -1, + "chunk_minimum_generation_separation": 6, + "fill_factor": 0.7, + "regeneration_interval_seconds": 2700, + "regeneration_interval_jitter": { + "range_min": -270, + "range_max": 270 + } + }, + { + "id": "gold", + "blocks": [ + "minecraft:gold_ore" + ], + "weights": [ + 1 + ], + "dimension_whitelist": [ + "minecraft:overworld" + ], + "area_whitelist": [ + "sunscorch_0", + "sunscorch_1", + "sunscorch_2", + "sunscorch_3", + "sunscorch_4", + "sunscorch_5", + "sunscorch_6", + "sunscorch_7", + "sunscorch_8", + "sunscorch_9", + "sunscorch_10", + "sunscorch_11", + "sunscorch_12", + "sunscorch_13", + "sunscorch_14", + "sunscorch_15", + "sunscorch_16", + "sunscorch_17", + "sunscorch_18", + "sunscorch_19", + "sunscorch_20", + "sunscorch_21", + "sunscorch_22", + "sunscorch_23", + "sunscorch_24", + "sunscorch_25", + "sunscorch_26", + "sunscorch_27", + "sunscorch_28", + "sunscorch_29", + "sunscorch_30", + "sunscorch_31", + "sunscorch_32", + "sunscorch_33", + "sunscorch_34", + "sunscorch_35", + "sunscorch_36", + "sunscorch_37", + "sunscorch_38", + "sunscorch_39", + "sunscorch_40", + "sunscorch_41", + "sunscorch_42", + "sunscorch_43", + "sunscorch_44", + "sunscorch_45", + "sunscorch_46", + "sunscorch_47", + "sunscorch_48" + ], + "biome_blacklist": [ + "minecraft:basalt_deltas", + "minecraft:deep_dark", + "minecraft:dripstone_caves", + "minecraft:lush_caves" + ], + "shape": "sphere", + "min_radius": 1, + "max_radius": 2, + "attempts": 1, + "min_y": 0, + "max_y": 120, + "chunk_minimum_generation_separation": 6, + "fill_factor": 0.7, + "regeneration_interval_seconds": 3600, + "regeneration_interval_jitter": { + "range_min": -360, + "range_max": 360 + } + }, + { + "id": "gold_deep", + "blocks": [ + "minecraft:deepslate_gold_ore" + ], + "weights": [ + 1 + ], + "dimension_whitelist": [ + "minecraft:overworld" + ], + "area_whitelist": [ + "sunscorch_0", + "sunscorch_1", + "sunscorch_2", + "sunscorch_3", + "sunscorch_4", + "sunscorch_5", + "sunscorch_6", + "sunscorch_7", + "sunscorch_8", + "sunscorch_9", + "sunscorch_10", + "sunscorch_11", + "sunscorch_12", + "sunscorch_13", + "sunscorch_14", + "sunscorch_15", + "sunscorch_16", + "sunscorch_17", + "sunscorch_18", + "sunscorch_19", + "sunscorch_20", + "sunscorch_21", + "sunscorch_22", + "sunscorch_23", + "sunscorch_24", + "sunscorch_25", + "sunscorch_26", + "sunscorch_27", + "sunscorch_28", + "sunscorch_29", + "sunscorch_30", + "sunscorch_31", + "sunscorch_32", + "sunscorch_33", + "sunscorch_34", + "sunscorch_35", + "sunscorch_36", + "sunscorch_37", + "sunscorch_38", + "sunscorch_39", + "sunscorch_40", + "sunscorch_41", + "sunscorch_42", + "sunscorch_43", + "sunscorch_44", + "sunscorch_45", + "sunscorch_46", + "sunscorch_47", + "sunscorch_48" + ], + "biome_blacklist": [ + "minecraft:basalt_deltas", + "minecraft:deep_dark", + "minecraft:dripstone_caves", + "minecraft:lush_caves" + ], + "shape": "sphere", + "min_radius": 1, + "max_radius": 2, + "attempts": 1, + "min_y": -48, + "max_y": -1, + "chunk_minimum_generation_separation": 6, + "fill_factor": 0.7, + "regeneration_interval_seconds": 3600, + "regeneration_interval_jitter": { + "range_min": -360, + "range_max": 360 + } + }, + { + "id": "emerald", + "blocks": [ + "minecraft:emerald_ore" + ], + "weights": [ + 1 + ], + "dimension_whitelist": [ + "minecraft:overworld" + ], + "area_whitelist": [ + "frostpeak_0", + "frostpeak_1", + "frostpeak_2", + "frostpeak_3", + "frostpeak_4", + "frostpeak_5", + "frostpeak_6", + "frostpeak_7", + "frostpeak_8", + "frostpeak_9", + "frostpeak_10", + "frostpeak_11", + "frostpeak_12", + "frostpeak_13", + "frostpeak_14", + "frostpeak_15", + "frostpeak_16", + "frostpeak_17", + "frostpeak_18", + "frostpeak_19", + "frostpeak_20", + "frostpeak_21", + "frostpeak_22", + "frostpeak_23", + "frostpeak_24", + "frostpeak_25", + "frostpeak_26", + "frostpeak_27", + "frostpeak_28", + "frostpeak_29", + "frostpeak_30", + "frostpeak_31", + "frostpeak_32", + "frostpeak_33", + "frostpeak_34", + "frostpeak_35", + "frostpeak_36", + "frostpeak_37", + "frostpeak_38", + "frostpeak_39", + "frostpeak_40", + "frostpeak_41", + "frostpeak_42", + "frostpeak_43", + "frostpeak_44", + "frostpeak_45", + "frostpeak_46", + "frostpeak_47", + "frostpeak_48", + "frostpeak_49", + "frostpeak_50", + "frostpeak_51", + "frostpeak_52", + "frostpeak_53", + "frostpeak_54", + "frostpeak_55", + "frostpeak_56", + "frostpeak_57", + "frostpeak_58", + "frostpeak_59", + "frostpeak_60", + "frostpeak_61", + "frostpeak_62", + "frostpeak_63", + "frostpeak_64", + "frostpeak_65", + "frostpeak_66", + "frostpeak_67", + "frostpeak_68", + "frostpeak_69", + "frostpeak_70", + "frostpeak_71", + "frostpeak_72", + "frostpeak_73", + "frostpeak_74", + "frostpeak_75", + "frostpeak_76", + "frostpeak_77", + "frostpeak_78", + "frostpeak_79", + "frostpeak_80", + "frostpeak_81", + "frostpeak_82", + "frostpeak_83", + "frostpeak_84", + "frostpeak_85", + "frostpeak_86", + "frostpeak_87", + "frostpeak_88", + "frostpeak_89", + "frostpeak_90", + "frostpeak_91" + ], + "biome_blacklist": [ + "minecraft:basalt_deltas", + "minecraft:deep_dark", + "minecraft:dripstone_caves", + "minecraft:lush_caves" + ], + "shape": "sphere", + "min_radius": 1, + "max_radius": 1, + "attempts": 1, + "min_y": 0, + "max_y": 320, + "chunk_minimum_generation_separation": 7, + "fill_factor": 0.7, + "regeneration_interval_seconds": 4500, + "regeneration_interval_jitter": { + "range_min": -450, + "range_max": 450 + } + }, + { + "id": "emerald_deep", + "blocks": [ + "minecraft:deepslate_emerald_ore" + ], + "weights": [ + 1 + ], + "dimension_whitelist": [ + "minecraft:overworld" + ], + "area_whitelist": [ + "frostpeak_0", + "frostpeak_1", + "frostpeak_2", + "frostpeak_3", + "frostpeak_4", + "frostpeak_5", + "frostpeak_6", + "frostpeak_7", + "frostpeak_8", + "frostpeak_9", + "frostpeak_10", + "frostpeak_11", + "frostpeak_12", + "frostpeak_13", + "frostpeak_14", + "frostpeak_15", + "frostpeak_16", + "frostpeak_17", + "frostpeak_18", + "frostpeak_19", + "frostpeak_20", + "frostpeak_21", + "frostpeak_22", + "frostpeak_23", + "frostpeak_24", + "frostpeak_25", + "frostpeak_26", + "frostpeak_27", + "frostpeak_28", + "frostpeak_29", + "frostpeak_30", + "frostpeak_31", + "frostpeak_32", + "frostpeak_33", + "frostpeak_34", + "frostpeak_35", + "frostpeak_36", + "frostpeak_37", + "frostpeak_38", + "frostpeak_39", + "frostpeak_40", + "frostpeak_41", + "frostpeak_42", + "frostpeak_43", + "frostpeak_44", + "frostpeak_45", + "frostpeak_46", + "frostpeak_47", + "frostpeak_48", + "frostpeak_49", + "frostpeak_50", + "frostpeak_51", + "frostpeak_52", + "frostpeak_53", + "frostpeak_54", + "frostpeak_55", + "frostpeak_56", + "frostpeak_57", + "frostpeak_58", + "frostpeak_59", + "frostpeak_60", + "frostpeak_61", + "frostpeak_62", + "frostpeak_63", + "frostpeak_64", + "frostpeak_65", + "frostpeak_66", + "frostpeak_67", + "frostpeak_68", + "frostpeak_69", + "frostpeak_70", + "frostpeak_71", + "frostpeak_72", + "frostpeak_73", + "frostpeak_74", + "frostpeak_75", + "frostpeak_76", + "frostpeak_77", + "frostpeak_78", + "frostpeak_79", + "frostpeak_80", + "frostpeak_81", + "frostpeak_82", + "frostpeak_83", + "frostpeak_84", + "frostpeak_85", + "frostpeak_86", + "frostpeak_87", + "frostpeak_88", + "frostpeak_89", + "frostpeak_90", + "frostpeak_91" + ], + "biome_blacklist": [ + "minecraft:basalt_deltas", + "minecraft:deep_dark", + "minecraft:dripstone_caves", + "minecraft:lush_caves" + ], + "shape": "sphere", + "min_radius": 1, + "max_radius": 1, + "attempts": 1, + "min_y": -16, + "max_y": -1, + "chunk_minimum_generation_separation": 7, + "fill_factor": 0.7, + "regeneration_interval_seconds": 4500, + "regeneration_interval_jitter": { + "range_min": -450, + "range_max": 450 + } + }, + { + "id": "amethyst", + "blocks": [ + "minecraft:amethyst_block", + "minecraft:budding_amethyst" + ], + "weights": [ + 3, + 1 + ], + "dimension_whitelist": [ + "minecraft:overworld" + ], + "biome_whitelist": [ + "minecraft:dripstone_caves" + ], + "shape": "sphere", + "min_radius": 1, + "max_radius": 1, + "attempts": 1, + "min_y": -64, + "max_y": 64, + "chunk_minimum_generation_separation": 8, + "fill_factor": 0.7, + "regeneration_interval_seconds": 7200, + "regeneration_interval_jitter": { + "range_min": -720, + "range_max": 720 + } + }, + { + "id": "diamond", + "blocks": [ + "minecraft:deepslate_diamond_ore" + ], + "weights": [ + 1 + ], + "dimension_whitelist": [ + "minecraft:overworld" + ], + "biome_whitelist": [ + "minecraft:deep_dark" + ], + "shape": "sphere", + "min_radius": 1, + "max_radius": 1, + "attempts": 1, + "min_y": -64, + "max_y": -1, + "chunk_minimum_generation_separation": 7, + "fill_factor": 0.7, + "regeneration_interval_seconds": 5400, + "regeneration_interval_jitter": { + "range_min": -540, + "range_max": 540 + } + }, + { + "id": "quartz", + "blocks": [ + "minecraft:nether_quartz_ore" + ], + "weights": [ + 1 + ], + "dimension_whitelist": [ + "minecraft:overworld" + ], + "biome_whitelist": [ + "minecraft:basalt_deltas" + ], + "shape": "sphere", + "min_radius": 1, + "max_radius": 2, + "attempts": 1, + "min_y": -64, + "max_y": 64, + "chunk_minimum_generation_separation": 6, + "fill_factor": 0.7, + "regeneration_interval_seconds": 3600, + "regeneration_interval_jitter": { + "range_min": -360, + "range_max": 360 + } + }, + { + "id": "netherite", + "blocks": [ + "minecraft:ancient_debris" + ], + "weights": [ + 1 + ], + "dimension_whitelist": [ + "minecraft:overworld" + ], + "biome_whitelist": [ + "minecraft:basalt_deltas" + ], + "shape": "sphere", + "min_radius": 0, + "max_radius": 1, + "attempts": 1, + "min_y": -64, + "max_y": 32, + "chunk_minimum_generation_separation": 10, + "fill_factor": 0.7, + "regeneration_interval_seconds": 10800, + "regeneration_interval_jitter": { + "range_min": -1080, + "range_max": 1080 + } + }, + { + "id": "thunder_stone", + "blocks": [ + "cobblemon:thunder_stone_ore" + ], + "weights": [ + 1 + ], + "dimension_whitelist": [ + "minecraft:overworld" + ], + "area_whitelist": [ + "westmarch_0", + "westmarch_1", + "westmarch_2", + "westmarch_3", + "westmarch_4", + "westmarch_5", + "westmarch_6", + "westmarch_7", + "westmarch_8", + "westmarch_9", + "westmarch_10", + "westmarch_11", + "westmarch_12", + "westmarch_13", + "westmarch_14", + "westmarch_15", + "westmarch_16", + "westmarch_17", + "westmarch_18", + "westmarch_19", + "westmarch_20", + "westmarch_21", + "westmarch_22", + "westmarch_23", + "westmarch_24", + "westmarch_25", + "westmarch_26", + "westmarch_27", + "westmarch_28", + "westmarch_29", + "westmarch_30", + "westmarch_31", + "westmarch_32", + "westmarch_33", + "westmarch_34", + "westmarch_35", + "westmarch_36", + "westmarch_37", + "westmarch_38", + "westmarch_39", + "westmarch_40", + "westmarch_41", + "westmarch_42", + "westmarch_43", + "westmarch_44", + "westmarch_45", + "westmarch_46", + "westmarch_47", + "westmarch_48", + "westmarch_49", + "westmarch_50", + "westmarch_51", + "westmarch_52", + "westmarch_53" + ], + "biome_blacklist": [ + "minecraft:basalt_deltas", + "minecraft:deep_dark", + "minecraft:dripstone_caves", + "minecraft:lush_caves" + ], + "shape": "sphere", + "min_radius": 0, + "max_radius": 1, + "attempts": 1, + "min_y": 0, + "max_y": 100, + "chunk_minimum_generation_separation": 8, + "fill_factor": 0.7, + "regeneration_interval_seconds": 3600, + "regeneration_interval_jitter": { + "range_min": -360, + "range_max": 360 + } + }, + { + "id": "thunder_stone_deep", + "blocks": [ + "cobblemon:deepslate_thunder_stone_ore" + ], + "weights": [ + 1 + ], + "dimension_whitelist": [ + "minecraft:overworld" + ], + "area_whitelist": [ + "westmarch_0", + "westmarch_1", + "westmarch_2", + "westmarch_3", + "westmarch_4", + "westmarch_5", + "westmarch_6", + "westmarch_7", + "westmarch_8", + "westmarch_9", + "westmarch_10", + "westmarch_11", + "westmarch_12", + "westmarch_13", + "westmarch_14", + "westmarch_15", + "westmarch_16", + "westmarch_17", + "westmarch_18", + "westmarch_19", + "westmarch_20", + "westmarch_21", + "westmarch_22", + "westmarch_23", + "westmarch_24", + "westmarch_25", + "westmarch_26", + "westmarch_27", + "westmarch_28", + "westmarch_29", + "westmarch_30", + "westmarch_31", + "westmarch_32", + "westmarch_33", + "westmarch_34", + "westmarch_35", + "westmarch_36", + "westmarch_37", + "westmarch_38", + "westmarch_39", + "westmarch_40", + "westmarch_41", + "westmarch_42", + "westmarch_43", + "westmarch_44", + "westmarch_45", + "westmarch_46", + "westmarch_47", + "westmarch_48", + "westmarch_49", + "westmarch_50", + "westmarch_51", + "westmarch_52", + "westmarch_53" + ], + "biome_blacklist": [ + "minecraft:basalt_deltas", + "minecraft:deep_dark", + "minecraft:dripstone_caves", + "minecraft:lush_caves" + ], + "shape": "sphere", + "min_radius": 0, + "max_radius": 1, + "attempts": 1, + "min_y": -48, + "max_y": -1, + "chunk_minimum_generation_separation": 8, + "fill_factor": 0.7, + "regeneration_interval_seconds": 3600, + "regeneration_interval_jitter": { + "range_min": -360, + "range_max": 360 + } + }, + { + "id": "shiny_stone", + "blocks": [ + "cobblemon:shiny_stone_ore" + ], + "weights": [ + 1 + ], + "dimension_whitelist": [ + "minecraft:overworld" + ], + "biome_whitelist": [ + "minecraft:lush_caves" + ], + "shape": "sphere", + "min_radius": 0, + "max_radius": 1, + "attempts": 1, + "min_y": 0, + "max_y": 64, + "chunk_minimum_generation_separation": 8, + "fill_factor": 0.7, + "regeneration_interval_seconds": 3600, + "regeneration_interval_jitter": { + "range_min": -360, + "range_max": 360 + } + }, + { + "id": "shiny_stone_deep", + "blocks": [ + "cobblemon:deepslate_shiny_stone_ore" + ], + "weights": [ + 1 + ], + "dimension_whitelist": [ + "minecraft:overworld" + ], + "biome_whitelist": [ + "minecraft:lush_caves" + ], + "shape": "sphere", + "min_radius": 0, + "max_radius": 1, + "attempts": 1, + "min_y": -64, + "max_y": -1, + "chunk_minimum_generation_separation": 8, + "fill_factor": 0.7, + "regeneration_interval_seconds": 3600, + "regeneration_interval_jitter": { + "range_min": -360, + "range_max": 360 + } + }, + { + "id": "leaf_stone", + "blocks": [ + "cobblemon:leaf_stone_ore" + ], + "weights": [ + 1 + ], + "dimension_whitelist": [ + "minecraft:overworld" + ], + "area_whitelist": [ + "jungle_0", + "jungle_1", + "jungle_2", + "jungle_3", + "jungle_4", + "jungle_5", + "jungle_6", + "jungle_7", + "jungle_8", + "jungle_9", + "jungle_10", + "jungle_11", + "jungle_12", + "jungle_13", + "jungle_14", + "jungle_15", + "jungle_16", + "jungle_17", + "jungle_18", + "jungle_19", + "jungle_20", + "jungle_21", + "jungle_22", + "jungle_23", + "jungle_24", + "jungle_25", + "jungle_26", + "jungle_27", + "jungle_28", + "jungle_29", + "jungle_30", + "jungle_31", + "jungle_32", + "jungle_33", + "jungle_34", + "jungle_35", + "jungle_36", + "jungle_37", + "jungle_38", + "jungle_39", + "jungle_40", + "jungle_41", + "jungle_42", + "jungle_43", + "jungle_44", + "jungle_45", + "jungle_46", + "jungle_47", + "jungle_48", + "jungle_49", + "jungle_50", + "jungle_51", + "jungle_52", + "jungle_53", + "jungle_54", + "jungle_55", + "jungle_56", + "jungle_57", + "jungle_58", + "jungle_59", + "jungle_60", + "jungle_61", + "jungle_62", + "jungle_63", + "jungle_64", + "jungle_65", + "jungle_66", + "jungle_67", + "jungle_68", + "jungle_69", + "jungle_70" + ], + "biome_blacklist": [ + "minecraft:basalt_deltas", + "minecraft:deep_dark", + "minecraft:dripstone_caves", + "minecraft:lush_caves" + ], + "shape": "sphere", + "min_radius": 0, + "max_radius": 1, + "attempts": 1, + "min_y": 0, + "max_y": 100, + "chunk_minimum_generation_separation": 8, + "fill_factor": 0.7, + "regeneration_interval_seconds": 3600, + "regeneration_interval_jitter": { + "range_min": -360, + "range_max": 360 + } + }, + { + "id": "leaf_stone_deep", + "blocks": [ + "cobblemon:deepslate_leaf_stone_ore" + ], + "weights": [ + 1 + ], + "dimension_whitelist": [ + "minecraft:overworld" + ], + "area_whitelist": [ + "jungle_0", + "jungle_1", + "jungle_2", + "jungle_3", + "jungle_4", + "jungle_5", + "jungle_6", + "jungle_7", + "jungle_8", + "jungle_9", + "jungle_10", + "jungle_11", + "jungle_12", + "jungle_13", + "jungle_14", + "jungle_15", + "jungle_16", + "jungle_17", + "jungle_18", + "jungle_19", + "jungle_20", + "jungle_21", + "jungle_22", + "jungle_23", + "jungle_24", + "jungle_25", + "jungle_26", + "jungle_27", + "jungle_28", + "jungle_29", + "jungle_30", + "jungle_31", + "jungle_32", + "jungle_33", + "jungle_34", + "jungle_35", + "jungle_36", + "jungle_37", + "jungle_38", + "jungle_39", + "jungle_40", + "jungle_41", + "jungle_42", + "jungle_43", + "jungle_44", + "jungle_45", + "jungle_46", + "jungle_47", + "jungle_48", + "jungle_49", + "jungle_50", + "jungle_51", + "jungle_52", + "jungle_53", + "jungle_54", + "jungle_55", + "jungle_56", + "jungle_57", + "jungle_58", + "jungle_59", + "jungle_60", + "jungle_61", + "jungle_62", + "jungle_63", + "jungle_64", + "jungle_65", + "jungle_66", + "jungle_67", + "jungle_68", + "jungle_69", + "jungle_70" + ], + "biome_blacklist": [ + "minecraft:basalt_deltas", + "minecraft:deep_dark", + "minecraft:dripstone_caves", + "minecraft:lush_caves" + ], + "shape": "sphere", + "min_radius": 0, + "max_radius": 1, + "attempts": 1, + "min_y": -48, + "max_y": -1, + "chunk_minimum_generation_separation": 8, + "fill_factor": 0.7, + "regeneration_interval_seconds": 3600, + "regeneration_interval_jitter": { + "range_min": -360, + "range_max": 360 + } + }, + { + "id": "water_stone", + "blocks": [ + "cobblemon:water_stone_ore" + ], + "weights": [ + 1 + ], + "dimension_whitelist": [ + "minecraft:overworld" + ], + "area_whitelist": [ + "mire_0", + "mire_1", + "mire_2", + "mire_3", + "mire_4", + "mire_5", + "mire_6", + "mire_7", + "mire_8", + "mire_9", + "mire_10", + "mire_11", + "mire_12", + "mire_13", + "mire_14", + "mire_15", + "mire_16", + "mire_17", + "mire_18", + "mire_19", + "mire_20", + "mire_21", + "mire_22", + "mire_23", + "mire_24", + "mire_25", + "mire_26", + "mire_27", + "mire_28", + "mire_29", + "mire_30", + "mire_31", + "mire_32", + "mire_33", + "mire_34", + "mire_35", + "mire_36", + "mire_37", + "mire_38", + "mire_39", + "mire_40", + "mire_41", + "mire_42", + "mire_43", + "mire_44", + "mire_45", + "mire_46", + "mire_47", + "mire_48", + "mire_49", + "mire_50", + "mire_51", + "mire_52", + "mire_53", + "mire_54" + ], + "biome_blacklist": [ + "minecraft:basalt_deltas", + "minecraft:deep_dark", + "minecraft:dripstone_caves", + "minecraft:lush_caves" + ], + "shape": "sphere", + "min_radius": 0, + "max_radius": 1, + "attempts": 1, + "min_y": 0, + "max_y": 100, + "chunk_minimum_generation_separation": 8, + "fill_factor": 0.7, + "regeneration_interval_seconds": 3600, + "regeneration_interval_jitter": { + "range_min": -360, + "range_max": 360 + } + }, + { + "id": "water_stone_deep", + "blocks": [ + "cobblemon:deepslate_water_stone_ore" + ], + "weights": [ + 1 + ], + "dimension_whitelist": [ + "minecraft:overworld" + ], + "area_whitelist": [ + "mire_0", + "mire_1", + "mire_2", + "mire_3", + "mire_4", + "mire_5", + "mire_6", + "mire_7", + "mire_8", + "mire_9", + "mire_10", + "mire_11", + "mire_12", + "mire_13", + "mire_14", + "mire_15", + "mire_16", + "mire_17", + "mire_18", + "mire_19", + "mire_20", + "mire_21", + "mire_22", + "mire_23", + "mire_24", + "mire_25", + "mire_26", + "mire_27", + "mire_28", + "mire_29", + "mire_30", + "mire_31", + "mire_32", + "mire_33", + "mire_34", + "mire_35", + "mire_36", + "mire_37", + "mire_38", + "mire_39", + "mire_40", + "mire_41", + "mire_42", + "mire_43", + "mire_44", + "mire_45", + "mire_46", + "mire_47", + "mire_48", + "mire_49", + "mire_50", + "mire_51", + "mire_52", + "mire_53", + "mire_54" + ], + "biome_blacklist": [ + "minecraft:basalt_deltas", + "minecraft:deep_dark", + "minecraft:dripstone_caves", + "minecraft:lush_caves" + ], + "shape": "sphere", + "min_radius": 0, + "max_radius": 1, + "attempts": 1, + "min_y": -48, + "max_y": -1, + "chunk_minimum_generation_separation": 8, + "fill_factor": 0.7, + "regeneration_interval_seconds": 3600, + "regeneration_interval_jitter": { + "range_min": -360, + "range_max": 360 + } + }, + { + "id": "moon_stone", + "blocks": [ + "cobblemon:dripstone_moon_stone_ore", + "cobblemon:moon_stone_ore", + "cobblemon:deepslate_moon_stone_ore" + ], + "weights": [ + 1, + 1, + 1 + ], + "dimension_whitelist": [ + "minecraft:overworld" + ], + "biome_whitelist": [ + "minecraft:dripstone_caves" + ], + "shape": "sphere", + "min_radius": 0, + "max_radius": 1, + "attempts": 1, + "min_y": -64, + "max_y": 64, + "chunk_minimum_generation_separation": 8, + "fill_factor": 0.7, + "regeneration_interval_seconds": 3600, + "regeneration_interval_jitter": { + "range_min": -360, + "range_max": 360 + } + }, + { + "id": "sun_stone", + "blocks": [ + "cobblemon:sun_stone_ore" + ], + "weights": [ + 1 + ], + "dimension_whitelist": [ + "minecraft:overworld" + ], + "area_whitelist": [ + "highlands_0", + "highlands_1", + "highlands_2", + "highlands_3", + "highlands_4", + "highlands_5", + "highlands_6", + "highlands_7", + "highlands_8", + "highlands_9", + "highlands_10", + "highlands_11", + "highlands_12", + "highlands_13", + "highlands_14", + "highlands_15", + "highlands_16", + "highlands_17", + "highlands_18", + "highlands_19", + "highlands_20", + "highlands_21", + "highlands_22", + "highlands_23", + "highlands_24", + "highlands_25", + "highlands_26", + "highlands_27", + "highlands_28", + "highlands_29", + "highlands_30", + "highlands_31", + "highlands_32", + "highlands_33", + "highlands_34", + "highlands_35", + "highlands_36", + "highlands_37", + "highlands_38", + "highlands_39", + "highlands_40", + "highlands_41", + "highlands_42", + "highlands_43", + "highlands_44", + "highlands_45", + "highlands_46", + "highlands_47", + "highlands_48", + "highlands_49", + "highlands_50", + "highlands_51", + "highlands_52", + "highlands_53", + "highlands_54", + "highlands_55", + "highlands_56", + "highlands_57", + "highlands_58", + "highlands_59", + "highlands_60", + "highlands_61", + "highlands_62", + "highlands_63", + "highlands_64", + "highlands_65", + "highlands_66", + "highlands_67", + "highlands_68", + "highlands_69", + "highlands_70", + "highlands_71", + "highlands_72", + "highlands_73", + "highlands_74", + "highlands_75", + "highlands_76", + "highlands_77", + "highlands_78", + "highlands_79", + "highlands_80", + "highlands_81", + "highlands_82", + "highlands_83", + "highlands_84", + "highlands_85", + "highlands_86", + "highlands_87", + "highlands_88", + "highlands_89", + "highlands_90", + "highlands_91", + "highlands_92", + "highlands_93", + "highlands_94", + "highlands_95", + "highlands_96", + "highlands_97", + "highlands_98", + "highlands_99", + "highlands_100", + "highlands_101", + "highlands_102", + "highlands_103", + "highlands_104", + "highlands_105", + "highlands_106", + "highlands_107", + "highlands_108", + "highlands_109", + "highlands_110", + "highlands_111", + "highlands_112", + "highlands_113", + "highlands_114", + "highlands_115", + "highlands_116", + "highlands_117", + "highlands_118", + "highlands_119", + "highlands_120", + "highlands_121", + "highlands_122", + "highlands_123", + "highlands_124", + "highlands_125", + "highlands_126", + "highlands_127", + "highlands_128", + "highlands_129", + "highlands_130", + "highlands_131", + "highlands_132", + "highlands_133", + "highlands_134", + "highlands_135", + "highlands_136", + "highlands_137", + "highlands_138", + "highlands_139", + "highlands_140", + "highlands_141", + "highlands_142", + "highlands_143", + "highlands_144", + "highlands_145", + "highlands_146", + "highlands_147", + "highlands_148", + "highlands_149", + "highlands_150", + "highlands_151", + "highlands_152", + "highlands_153", + "highlands_154", + "highlands_155", + "highlands_156" + ], + "biome_blacklist": [ + "minecraft:basalt_deltas", + "minecraft:deep_dark", + "minecraft:dripstone_caves", + "minecraft:lush_caves" + ], + "shape": "sphere", + "min_radius": 0, + "max_radius": 1, + "attempts": 1, + "min_y": 0, + "max_y": 100, + "chunk_minimum_generation_separation": 8, + "fill_factor": 0.7, + "regeneration_interval_seconds": 3600, + "regeneration_interval_jitter": { + "range_min": -360, + "range_max": 360 + } + }, + { + "id": "sun_stone_deep", + "blocks": [ + "cobblemon:deepslate_sun_stone_ore" + ], + "weights": [ + 1 + ], + "dimension_whitelist": [ + "minecraft:overworld" + ], + "area_whitelist": [ + "highlands_0", + "highlands_1", + "highlands_2", + "highlands_3", + "highlands_4", + "highlands_5", + "highlands_6", + "highlands_7", + "highlands_8", + "highlands_9", + "highlands_10", + "highlands_11", + "highlands_12", + "highlands_13", + "highlands_14", + "highlands_15", + "highlands_16", + "highlands_17", + "highlands_18", + "highlands_19", + "highlands_20", + "highlands_21", + "highlands_22", + "highlands_23", + "highlands_24", + "highlands_25", + "highlands_26", + "highlands_27", + "highlands_28", + "highlands_29", + "highlands_30", + "highlands_31", + "highlands_32", + "highlands_33", + "highlands_34", + "highlands_35", + "highlands_36", + "highlands_37", + "highlands_38", + "highlands_39", + "highlands_40", + "highlands_41", + "highlands_42", + "highlands_43", + "highlands_44", + "highlands_45", + "highlands_46", + "highlands_47", + "highlands_48", + "highlands_49", + "highlands_50", + "highlands_51", + "highlands_52", + "highlands_53", + "highlands_54", + "highlands_55", + "highlands_56", + "highlands_57", + "highlands_58", + "highlands_59", + "highlands_60", + "highlands_61", + "highlands_62", + "highlands_63", + "highlands_64", + "highlands_65", + "highlands_66", + "highlands_67", + "highlands_68", + "highlands_69", + "highlands_70", + "highlands_71", + "highlands_72", + "highlands_73", + "highlands_74", + "highlands_75", + "highlands_76", + "highlands_77", + "highlands_78", + "highlands_79", + "highlands_80", + "highlands_81", + "highlands_82", + "highlands_83", + "highlands_84", + "highlands_85", + "highlands_86", + "highlands_87", + "highlands_88", + "highlands_89", + "highlands_90", + "highlands_91", + "highlands_92", + "highlands_93", + "highlands_94", + "highlands_95", + "highlands_96", + "highlands_97", + "highlands_98", + "highlands_99", + "highlands_100", + "highlands_101", + "highlands_102", + "highlands_103", + "highlands_104", + "highlands_105", + "highlands_106", + "highlands_107", + "highlands_108", + "highlands_109", + "highlands_110", + "highlands_111", + "highlands_112", + "highlands_113", + "highlands_114", + "highlands_115", + "highlands_116", + "highlands_117", + "highlands_118", + "highlands_119", + "highlands_120", + "highlands_121", + "highlands_122", + "highlands_123", + "highlands_124", + "highlands_125", + "highlands_126", + "highlands_127", + "highlands_128", + "highlands_129", + "highlands_130", + "highlands_131", + "highlands_132", + "highlands_133", + "highlands_134", + "highlands_135", + "highlands_136", + "highlands_137", + "highlands_138", + "highlands_139", + "highlands_140", + "highlands_141", + "highlands_142", + "highlands_143", + "highlands_144", + "highlands_145", + "highlands_146", + "highlands_147", + "highlands_148", + "highlands_149", + "highlands_150", + "highlands_151", + "highlands_152", + "highlands_153", + "highlands_154", + "highlands_155", + "highlands_156" + ], + "biome_blacklist": [ + "minecraft:basalt_deltas", + "minecraft:deep_dark", + "minecraft:dripstone_caves", + "minecraft:lush_caves" + ], + "shape": "sphere", + "min_radius": 0, + "max_radius": 1, + "attempts": 1, + "min_y": -48, + "max_y": -1, + "chunk_minimum_generation_separation": 8, + "fill_factor": 0.7, + "regeneration_interval_seconds": 3600, + "regeneration_interval_jitter": { + "range_min": -360, + "range_max": 360 + } + }, + { + "id": "fire_stone", + "blocks": [ + "cobblemon:fire_stone_ore" + ], + "weights": [ + 1 + ], + "dimension_whitelist": [ + "minecraft:overworld" + ], + "area_whitelist": [ + "sunscorch_0", + "sunscorch_1", + "sunscorch_2", + "sunscorch_3", + "sunscorch_4", + "sunscorch_5", + "sunscorch_6", + "sunscorch_7", + "sunscorch_8", + "sunscorch_9", + "sunscorch_10", + "sunscorch_11", + "sunscorch_12", + "sunscorch_13", + "sunscorch_14", + "sunscorch_15", + "sunscorch_16", + "sunscorch_17", + "sunscorch_18", + "sunscorch_19", + "sunscorch_20", + "sunscorch_21", + "sunscorch_22", + "sunscorch_23", + "sunscorch_24", + "sunscorch_25", + "sunscorch_26", + "sunscorch_27", + "sunscorch_28", + "sunscorch_29", + "sunscorch_30", + "sunscorch_31", + "sunscorch_32", + "sunscorch_33", + "sunscorch_34", + "sunscorch_35", + "sunscorch_36", + "sunscorch_37", + "sunscorch_38", + "sunscorch_39", + "sunscorch_40", + "sunscorch_41", + "sunscorch_42", + "sunscorch_43", + "sunscorch_44", + "sunscorch_45", + "sunscorch_46", + "sunscorch_47", + "sunscorch_48" + ], + "biome_blacklist": [ + "minecraft:basalt_deltas", + "minecraft:deep_dark", + "minecraft:dripstone_caves", + "minecraft:lush_caves" + ], + "shape": "sphere", + "min_radius": 0, + "max_radius": 1, + "attempts": 1, + "min_y": 0, + "max_y": 120, + "chunk_minimum_generation_separation": 8, + "fill_factor": 0.7, + "regeneration_interval_seconds": 3600, + "regeneration_interval_jitter": { + "range_min": -360, + "range_max": 360 + } + }, + { + "id": "fire_stone_deep", + "blocks": [ + "cobblemon:deepslate_fire_stone_ore" + ], + "weights": [ + 1 + ], + "dimension_whitelist": [ + "minecraft:overworld" + ], + "area_whitelist": [ + "sunscorch_0", + "sunscorch_1", + "sunscorch_2", + "sunscorch_3", + "sunscorch_4", + "sunscorch_5", + "sunscorch_6", + "sunscorch_7", + "sunscorch_8", + "sunscorch_9", + "sunscorch_10", + "sunscorch_11", + "sunscorch_12", + "sunscorch_13", + "sunscorch_14", + "sunscorch_15", + "sunscorch_16", + "sunscorch_17", + "sunscorch_18", + "sunscorch_19", + "sunscorch_20", + "sunscorch_21", + "sunscorch_22", + "sunscorch_23", + "sunscorch_24", + "sunscorch_25", + "sunscorch_26", + "sunscorch_27", + "sunscorch_28", + "sunscorch_29", + "sunscorch_30", + "sunscorch_31", + "sunscorch_32", + "sunscorch_33", + "sunscorch_34", + "sunscorch_35", + "sunscorch_36", + "sunscorch_37", + "sunscorch_38", + "sunscorch_39", + "sunscorch_40", + "sunscorch_41", + "sunscorch_42", + "sunscorch_43", + "sunscorch_44", + "sunscorch_45", + "sunscorch_46", + "sunscorch_47", + "sunscorch_48" + ], + "biome_blacklist": [ + "minecraft:basalt_deltas", + "minecraft:deep_dark", + "minecraft:dripstone_caves", + "minecraft:lush_caves" + ], + "shape": "sphere", + "min_radius": 0, + "max_radius": 1, + "attempts": 1, + "min_y": -48, + "max_y": -1, + "chunk_minimum_generation_separation": 8, + "fill_factor": 0.7, + "regeneration_interval_seconds": 3600, + "regeneration_interval_jitter": { + "range_min": -360, + "range_max": 360 + } + }, + { + "id": "ice_stone", + "blocks": [ + "cobblemon:ice_stone_ore" + ], + "weights": [ + 1 + ], + "dimension_whitelist": [ + "minecraft:overworld" + ], + "area_whitelist": [ + "frostpeak_0", + "frostpeak_1", + "frostpeak_2", + "frostpeak_3", + "frostpeak_4", + "frostpeak_5", + "frostpeak_6", + "frostpeak_7", + "frostpeak_8", + "frostpeak_9", + "frostpeak_10", + "frostpeak_11", + "frostpeak_12", + "frostpeak_13", + "frostpeak_14", + "frostpeak_15", + "frostpeak_16", + "frostpeak_17", + "frostpeak_18", + "frostpeak_19", + "frostpeak_20", + "frostpeak_21", + "frostpeak_22", + "frostpeak_23", + "frostpeak_24", + "frostpeak_25", + "frostpeak_26", + "frostpeak_27", + "frostpeak_28", + "frostpeak_29", + "frostpeak_30", + "frostpeak_31", + "frostpeak_32", + "frostpeak_33", + "frostpeak_34", + "frostpeak_35", + "frostpeak_36", + "frostpeak_37", + "frostpeak_38", + "frostpeak_39", + "frostpeak_40", + "frostpeak_41", + "frostpeak_42", + "frostpeak_43", + "frostpeak_44", + "frostpeak_45", + "frostpeak_46", + "frostpeak_47", + "frostpeak_48", + "frostpeak_49", + "frostpeak_50", + "frostpeak_51", + "frostpeak_52", + "frostpeak_53", + "frostpeak_54", + "frostpeak_55", + "frostpeak_56", + "frostpeak_57", + "frostpeak_58", + "frostpeak_59", + "frostpeak_60", + "frostpeak_61", + "frostpeak_62", + "frostpeak_63", + "frostpeak_64", + "frostpeak_65", + "frostpeak_66", + "frostpeak_67", + "frostpeak_68", + "frostpeak_69", + "frostpeak_70", + "frostpeak_71", + "frostpeak_72", + "frostpeak_73", + "frostpeak_74", + "frostpeak_75", + "frostpeak_76", + "frostpeak_77", + "frostpeak_78", + "frostpeak_79", + "frostpeak_80", + "frostpeak_81", + "frostpeak_82", + "frostpeak_83", + "frostpeak_84", + "frostpeak_85", + "frostpeak_86", + "frostpeak_87", + "frostpeak_88", + "frostpeak_89", + "frostpeak_90", + "frostpeak_91" + ], + "biome_blacklist": [ + "minecraft:basalt_deltas", + "minecraft:deep_dark", + "minecraft:dripstone_caves", + "minecraft:lush_caves" + ], + "shape": "sphere", + "min_radius": 0, + "max_radius": 1, + "attempts": 1, + "min_y": 0, + "max_y": 320, + "chunk_minimum_generation_separation": 8, + "fill_factor": 0.7, + "regeneration_interval_seconds": 3600, + "regeneration_interval_jitter": { + "range_min": -360, + "range_max": 360 + } + }, + { + "id": "ice_stone_deep", + "blocks": [ + "cobblemon:deepslate_ice_stone_ore" + ], + "weights": [ + 1 + ], + "dimension_whitelist": [ + "minecraft:overworld" + ], + "area_whitelist": [ + "frostpeak_0", + "frostpeak_1", + "frostpeak_2", + "frostpeak_3", + "frostpeak_4", + "frostpeak_5", + "frostpeak_6", + "frostpeak_7", + "frostpeak_8", + "frostpeak_9", + "frostpeak_10", + "frostpeak_11", + "frostpeak_12", + "frostpeak_13", + "frostpeak_14", + "frostpeak_15", + "frostpeak_16", + "frostpeak_17", + "frostpeak_18", + "frostpeak_19", + "frostpeak_20", + "frostpeak_21", + "frostpeak_22", + "frostpeak_23", + "frostpeak_24", + "frostpeak_25", + "frostpeak_26", + "frostpeak_27", + "frostpeak_28", + "frostpeak_29", + "frostpeak_30", + "frostpeak_31", + "frostpeak_32", + "frostpeak_33", + "frostpeak_34", + "frostpeak_35", + "frostpeak_36", + "frostpeak_37", + "frostpeak_38", + "frostpeak_39", + "frostpeak_40", + "frostpeak_41", + "frostpeak_42", + "frostpeak_43", + "frostpeak_44", + "frostpeak_45", + "frostpeak_46", + "frostpeak_47", + "frostpeak_48", + "frostpeak_49", + "frostpeak_50", + "frostpeak_51", + "frostpeak_52", + "frostpeak_53", + "frostpeak_54", + "frostpeak_55", + "frostpeak_56", + "frostpeak_57", + "frostpeak_58", + "frostpeak_59", + "frostpeak_60", + "frostpeak_61", + "frostpeak_62", + "frostpeak_63", + "frostpeak_64", + "frostpeak_65", + "frostpeak_66", + "frostpeak_67", + "frostpeak_68", + "frostpeak_69", + "frostpeak_70", + "frostpeak_71", + "frostpeak_72", + "frostpeak_73", + "frostpeak_74", + "frostpeak_75", + "frostpeak_76", + "frostpeak_77", + "frostpeak_78", + "frostpeak_79", + "frostpeak_80", + "frostpeak_81", + "frostpeak_82", + "frostpeak_83", + "frostpeak_84", + "frostpeak_85", + "frostpeak_86", + "frostpeak_87", + "frostpeak_88", + "frostpeak_89", + "frostpeak_90", + "frostpeak_91" + ], + "biome_blacklist": [ + "minecraft:basalt_deltas", + "minecraft:deep_dark", + "minecraft:dripstone_caves", + "minecraft:lush_caves" + ], + "shape": "sphere", + "min_radius": 0, + "max_radius": 1, + "attempts": 1, + "min_y": -16, + "max_y": -1, + "chunk_minimum_generation_separation": 8, + "fill_factor": 0.7, + "regeneration_interval_seconds": 3600, + "regeneration_interval_jitter": { + "range_min": -360, + "range_max": 360 + } + }, + { + "id": "dawn_stone", + "blocks": [ + "cobblemon:dawn_stone_ore" + ], + "weights": [ + 1 + ], + "dimension_whitelist": [ + "minecraft:overworld" + ], + "area_whitelist": [ + "frostpeak_0", + "frostpeak_1", + "frostpeak_2", + "frostpeak_3", + "frostpeak_4", + "frostpeak_5", + "frostpeak_6", + "frostpeak_7", + "frostpeak_8", + "frostpeak_9", + "frostpeak_10", + "frostpeak_11", + "frostpeak_12", + "frostpeak_13", + "frostpeak_14", + "frostpeak_15", + "frostpeak_16", + "frostpeak_17", + "frostpeak_18", + "frostpeak_19", + "frostpeak_20", + "frostpeak_21", + "frostpeak_22", + "frostpeak_23", + "frostpeak_24", + "frostpeak_25", + "frostpeak_26", + "frostpeak_27", + "frostpeak_28", + "frostpeak_29", + "frostpeak_30", + "frostpeak_31", + "frostpeak_32", + "frostpeak_33", + "frostpeak_34", + "frostpeak_35", + "frostpeak_36", + "frostpeak_37", + "frostpeak_38", + "frostpeak_39", + "frostpeak_40", + "frostpeak_41", + "frostpeak_42", + "frostpeak_43", + "frostpeak_44", + "frostpeak_45", + "frostpeak_46", + "frostpeak_47", + "frostpeak_48", + "frostpeak_49", + "frostpeak_50", + "frostpeak_51", + "frostpeak_52", + "frostpeak_53", + "frostpeak_54", + "frostpeak_55", + "frostpeak_56", + "frostpeak_57", + "frostpeak_58", + "frostpeak_59", + "frostpeak_60", + "frostpeak_61", + "frostpeak_62", + "frostpeak_63", + "frostpeak_64", + "frostpeak_65", + "frostpeak_66", + "frostpeak_67", + "frostpeak_68", + "frostpeak_69", + "frostpeak_70", + "frostpeak_71", + "frostpeak_72", + "frostpeak_73", + "frostpeak_74", + "frostpeak_75", + "frostpeak_76", + "frostpeak_77", + "frostpeak_78", + "frostpeak_79", + "frostpeak_80", + "frostpeak_81", + "frostpeak_82", + "frostpeak_83", + "frostpeak_84", + "frostpeak_85", + "frostpeak_86", + "frostpeak_87", + "frostpeak_88", + "frostpeak_89", + "frostpeak_90", + "frostpeak_91" + ], + "biome_blacklist": [ + "minecraft:basalt_deltas", + "minecraft:deep_dark", + "minecraft:dripstone_caves", + "minecraft:lush_caves" + ], + "shape": "sphere", + "min_radius": 0, + "max_radius": 1, + "attempts": 1, + "min_y": 0, + "max_y": 320, + "chunk_minimum_generation_separation": 9, + "fill_factor": 0.7, + "regeneration_interval_seconds": 4500, + "regeneration_interval_jitter": { + "range_min": -450, + "range_max": 450 + } + }, + { + "id": "dawn_stone_deep", + "blocks": [ + "cobblemon:deepslate_dawn_stone_ore" + ], + "weights": [ + 1 + ], + "dimension_whitelist": [ + "minecraft:overworld" + ], + "area_whitelist": [ + "frostpeak_0", + "frostpeak_1", + "frostpeak_2", + "frostpeak_3", + "frostpeak_4", + "frostpeak_5", + "frostpeak_6", + "frostpeak_7", + "frostpeak_8", + "frostpeak_9", + "frostpeak_10", + "frostpeak_11", + "frostpeak_12", + "frostpeak_13", + "frostpeak_14", + "frostpeak_15", + "frostpeak_16", + "frostpeak_17", + "frostpeak_18", + "frostpeak_19", + "frostpeak_20", + "frostpeak_21", + "frostpeak_22", + "frostpeak_23", + "frostpeak_24", + "frostpeak_25", + "frostpeak_26", + "frostpeak_27", + "frostpeak_28", + "frostpeak_29", + "frostpeak_30", + "frostpeak_31", + "frostpeak_32", + "frostpeak_33", + "frostpeak_34", + "frostpeak_35", + "frostpeak_36", + "frostpeak_37", + "frostpeak_38", + "frostpeak_39", + "frostpeak_40", + "frostpeak_41", + "frostpeak_42", + "frostpeak_43", + "frostpeak_44", + "frostpeak_45", + "frostpeak_46", + "frostpeak_47", + "frostpeak_48", + "frostpeak_49", + "frostpeak_50", + "frostpeak_51", + "frostpeak_52", + "frostpeak_53", + "frostpeak_54", + "frostpeak_55", + "frostpeak_56", + "frostpeak_57", + "frostpeak_58", + "frostpeak_59", + "frostpeak_60", + "frostpeak_61", + "frostpeak_62", + "frostpeak_63", + "frostpeak_64", + "frostpeak_65", + "frostpeak_66", + "frostpeak_67", + "frostpeak_68", + "frostpeak_69", + "frostpeak_70", + "frostpeak_71", + "frostpeak_72", + "frostpeak_73", + "frostpeak_74", + "frostpeak_75", + "frostpeak_76", + "frostpeak_77", + "frostpeak_78", + "frostpeak_79", + "frostpeak_80", + "frostpeak_81", + "frostpeak_82", + "frostpeak_83", + "frostpeak_84", + "frostpeak_85", + "frostpeak_86", + "frostpeak_87", + "frostpeak_88", + "frostpeak_89", + "frostpeak_90", + "frostpeak_91" + ], + "biome_blacklist": [ + "minecraft:basalt_deltas", + "minecraft:deep_dark", + "minecraft:dripstone_caves", + "minecraft:lush_caves" + ], + "shape": "sphere", + "min_radius": 0, + "max_radius": 1, + "attempts": 1, + "min_y": -16, + "max_y": -1, + "chunk_minimum_generation_separation": 9, + "fill_factor": 0.7, + "regeneration_interval_seconds": 4500, + "regeneration_interval_jitter": { + "range_min": -450, + "range_max": 450 + } + }, + { + "id": "dusk_stone", + "blocks": [ + "cobblemon:deepslate_dusk_stone_ore" + ], + "weights": [ + 1 + ], + "dimension_whitelist": [ + "minecraft:overworld" + ], + "biome_whitelist": [ + "minecraft:deep_dark" + ], + "shape": "sphere", + "min_radius": 0, + "max_radius": 1, + "attempts": 1, + "min_y": -64, + "max_y": -1, + "chunk_minimum_generation_separation": 9, + "fill_factor": 0.7, + "regeneration_interval_seconds": 4500, + "regeneration_interval_jitter": { + "range_min": -450, + "range_max": 450 + } + }, + { + "id": "selftest", + "blocks": [ + "minecraft:coal_ore" + ], + "dimension_whitelist": [ + "minecraft:overworld" + ], + "area_whitelist": [ + "selftest_nowhere" + ], + "shape": "sphere", + "min_radius": 0, + "max_radius": 0, + "attempts": 1, + "min_y": 0, + "max_y": 0, + "chunk_minimum_generation_separation": 64, + "fill_factor": 1.0, + "regeneration_interval_seconds": 3600, + "regeneration_interval_jitter": { + "range_min": 0, + "range_max": 0 + } + } +] diff --git a/pack/index.toml b/pack/index.toml index e49c30d..ec60634 100644 --- a/pack/index.toml +++ b/pack/index.toml @@ -28,6 +28,22 @@ hash = "ca348d022ad97e74ec51a896060e8fcfc079cf0d34ef116a967e72f60bdb3381" file = "config/matthiesen_core/metrics.properties" hash = "e3833b9a5d62612cc9f8886b8bbc4a6fbb0f5c531aede06b1a580ba522f576b4" +[[files]] +file = "config/regenerating_ore_veins/areas.json" +hash = "79a3e379b5d9a142930acc1b599f3bf773c2dd6ee578239181f9720676f876ad" + +[[files]] +file = "config/regenerating_ore_veins/global.json" +hash = "412be923552eedcde822199f8fca7af273775b3ed36d58539f031d31ad933133" + +[[files]] +file = "config/regenerating_ore_veins/vein_locator.json" +hash = "a6e9d717e2f73e463b25b1eacfbff43304fd8993937d8c002f9629f24ebcc221" + +[[files]] +file = "config/regenerating_ore_veins/veins.json" +hash = "a671bcfc92c200a93f16bc92d46426b8d5f2bfd21e57af463a821c4fa3755d2c" + [[files]] file = "config/worldgen_editor/presets/cobblesurvival_island.json" hash = "73cfb1e126bf49dc6c9fa52fb137e8fe9bfb945535701fd542639202ed24704f" @@ -203,6 +219,11 @@ file = "mods/mouse-tweaks.pw.toml" hash = "39cee4df36d04a7530cde51b55154f76fb8954341728be08c3b2ee24b07ed742" metafile = true +[[files]] +file = "mods/regenerating-ore-veins.pw.toml" +hash = "e3be05bd89ad1091014025fe45abd2dcb4318930486597ee3daf02d9eb30648d" +metafile = true + [[files]] file = "mods/rhino.pw.toml" hash = "8be16680efb71ff64ebd5881943d58f7ef6ce36a95c7a4a856d7dc62b82231ef" diff --git a/pack/mods/regenerating-ore-veins.pw.toml b/pack/mods/regenerating-ore-veins.pw.toml new file mode 100644 index 0000000..46c7190 --- /dev/null +++ b/pack/mods/regenerating-ore-veins.pw.toml @@ -0,0 +1,13 @@ +name = "Regenerating Ore Veins" +filename = "regenerating_ore_veins-neoforge-1.21.1-1.4.0.jar" +side = "both" + +[download] +hash-format = "sha1" +hash = "cb1edab284593a48d0b0ee22614c0f786d427158" +mode = "metadata:curseforge" + +[update] +[update.curseforge] +file-id = 8066055 +project-id = 1535476 diff --git a/pack/pack.toml b/pack/pack.toml index 9de39d2..cbece9b 100644 --- a/pack/pack.toml +++ b/pack/pack.toml @@ -6,7 +6,7 @@ pack-format = "packwiz:1.1.0" [index] file = "index.toml" hash-format = "sha256" -hash = "bdca52cbc4ab217c9ced202856d5be6a5af4fb4f21c07ac5ae2516d4b44ed037" +hash = "37b01e238f83c754e3eb7093432815272645949ebcbc623ae5cde213a30e2155" [versions] minecraft = "1.21.1" diff --git a/tools/make_world.py b/tools/make_world.py index 465343b..732875d 100644 --- a/tools/make_world.py +++ b/tools/make_world.py @@ -7,9 +7,11 @@ type and gamerules, and pregenerate a circle of `pregen_radius` around 0,0 (the island plus a strip of sea; the sea corners inside the square border generate when someone gets there). - 3. In the same session: save, measure where the land ends - (tools/world_report.py) and set a square world border `border_margin` - blocks outside the outermost coast. + 3. In the same session: place the showcase ore veins (world/zones.json → + "ores", tiers with "showcase": one vein sticking out of the ground near + its zone's sample point, so players see what a regenerating vein looks + like), save, measure where the land ends (tools/world_report.py) and set + a square world border `border_margin` blocks outside the outermost coast. 4. Copy the world to build/world-template without player data, then run the world checks and render the map (build/island-map.png). @@ -29,10 +31,34 @@ from pathlib import Path sys.path.insert(0, str(Path(__file__).resolve().parent)) from mcserver import BUILD, ROOT, SERVER, Server, chunky, eula_accepted, prepare, scan_log # noqa: E402 import world_report # noqa: E402 +import zone_grid # noqa: E402 from numpy import hypot as np_hypot # noqa: E402 TEMPLATE = BUILD / "world-template" SKIP = shutil.ignore_patterns("playerdata", "advancements", "stats", "session.lock") +# A showcase sits this far from its zone's sample point (where guardians and the self-tests stand), first offset +# that is still inside the zone wins. +SHOWCASE_OFFSETS = [(16, 0), (0, 16), (-16, 0), (0, -16), (24, 24), (-24, -24)] + + +def place_showcases(server): + """One hand-placed vein per showcase tier, half sunk into the ground near the zone's sample point.""" + plan = json.loads((ROOT / "world/zones.json").read_text()) + grid = zone_grid.load() + samples = json.loads(zone_grid.ISLAND.read_text())["samples"] + for tier, spec in plan["ores"].items(): + if not spec.get("showcase"): + continue + sx, _, sz = samples[spec["zone"]] + spot = next(((sx + dx, sz + dz) for dx, dz in SHOWCASE_OFFSETS if grid.zone_at(sx + dx, sz + dz) == spec["zone"]), None) + if spot is None: + raise RuntimeError(f"no showcase spot inside {spec['zone']} near its sample point {sx},{sz}") + x, z = spot + server.command(f"forceload add {x} {z}") + reply = server.command(f"execute in minecraft:overworld positioned {x} 0 {z} positioned over world_surface " + f"positioned ~ ~-1 ~ run regenerating_ore_veins place {tier}").strip() + server.command(f"forceload remove {x} {z}") + print(f" showcase {tier} at {x},{z}: {reply[:100]}") def border_for(world, recipe): @@ -75,6 +101,7 @@ def main(): print(f" {server.command(f'gamerule {rule} {str(value).lower()}').strip()}") seconds = server.pregenerate(0, 0, recipe["pregen_radius"], shape="circle") print(f"pregeneration finished in {seconds:.0f}s") + place_showcases(server) server.command("save-all flush") cx, cz, size = border_for(world, recipe) print(f" {server.command(f'worldborder center {cx} {cz}').strip()}") diff --git a/tools/mcserver.py b/tools/mcserver.py index 9aea34b..9b70081 100644 --- a/tools/mcserver.py +++ b/tools/mcserver.py @@ -227,9 +227,12 @@ class Server: failures.append(f"{label}: {check['command']!r} did not match {check['expect']!r}") return failures - def run_selftest(self, timeout=300): - """Run the companion mod's in-game tests (needs SELFTEST_JVM_ARGS); returns the failures.""" - reply = self.command("cobblesurvival selftest run").strip() + def run_selftest(self, timeout=300, after_restart=False): + """Run the companion mod's in-game tests (needs SELFTEST_JVM_ARGS); returns the failures. + + after_restart runs the second halves of the cases that span a restart (stop, start again, then call this). + """ + reply = self.command("cobblesurvival selftest run" + (" after_restart" if after_restart else "")).strip() if "started" not in reply: return [f"selftest did not start: {reply!r}"] print(f" {reply}") diff --git a/tools/quick_check.py b/tools/quick_check.py index c3e1436..8661d36 100644 --- a/tools/quick_check.py +++ b/tools/quick_check.py @@ -12,9 +12,13 @@ square of structure_radius around each, plus spawn_radius around spawn. 5. Force-load the chunks around the sampled village for a few seconds, as a nearby player would, so Lootr converts its loot chests. - 6. Stop, scan the server log, and run tools/world_report.py --sample on the - sampled world: no ore, no vanilla mobs or mob sources, only listed biomes, - gamerules as in the recipe, and no vanilla loot chest left near the village. + 6. Stop, scan the server log, boot the same world again and run the second + halves of the self-tests that span a restart (`selftest run after_restart`, + e.g. a mined ore vein regrows), stop and scan that log too. + 7. Run tools/world_report.py --sample on the sampled world: ore only in + regenerating veins inside their tier's zone, no vanilla mobs or mob sources, + only listed biomes, gamerules as in the recipe, and no vanilla loot chest + left near the village. The border, strongholds-inside-border and the map need the whole island: tools/make_world.py checks those when the template is rebuilt. @@ -93,6 +97,7 @@ def main(): failures.append(f"{type(e).__name__}: {e}") failures += [f"log: {line}" for line in scan_log(server.log)] + failures += restart_selftest(args_file, props) report = subprocess.run([sys.executable, "-I", str(ROOT / "tools/world_report.py"), str(SERVER / LEVEL), "--sample", "--json", str(ROOT / "build/quick-check-report.json")]) if report.returncode: @@ -114,5 +119,20 @@ def main(): print("QUICK CHECK PASSED") +def restart_selftest(args_file, props): + """Boot the quick-check world again and run the self-tests' after-restart halves; returns the failures.""" + failures = [] + with Server(args_file, props, heap="8G", stdout_name="quick-check-restart-stdout.log", + jvm_args=SELFTEST_JVM_ARGS) as server: + try: + print(f"server restarted in {server.wait_ready():.0f}s") + failures += server.run_selftest(after_restart=True) + server.command("save-all flush") + server.stop() + except Exception as e: # report; the context manager still kills the process + failures.append(f"{type(e).__name__}: {e}") + return failures + [f"log after restart: {line}" for line in scan_log(server.log)] + + if __name__ == "__main__": main() diff --git a/tools/selftest.py b/tools/selftest.py index e3fe7e0..5cf8887 100755 --- a/tools/selftest.py +++ b/tools/selftest.py @@ -1,6 +1,8 @@ #!/usr/bin/env python3 """Run the companion mod's in-game tests on their own: one server boot on a fresh flat -world, `/cobblesurvival selftest run`, wait for the results, stop, scan the log. +world, `/cobblesurvival selftest run`, wait for the results, stop, scan the log; then boot +the world again for the second halves of the tests that span a restart +(`/cobblesurvival selftest run after_restart`). The tests (mod/src/main/kotlin/dev/cobblesurvival/selftest/) play real situations on the live server with every mod and config of the pack, e.g. the permadeath matrix: Pokémon @@ -47,6 +49,14 @@ def main(): except Exception as e: # report; the context manager still kills the process failures.append(f"{type(e).__name__}: {e}") failures += [f"log: {line}" for line in scan_log(server.log)] + with Server(args_file, props, stdout_name="selftest-restart-stdout.log", jvm_args=SELFTEST_JVM_ARGS) as server: + try: + print(f"server restarted in {server.wait_ready():.0f}s") + failures += server.run_selftest(after_restart=True) + server.stop() + except Exception as e: # report; the context manager still kills the process + failures.append(f"{type(e).__name__}: {e}") + failures += [f"log after restart: {line}" for line in scan_log(server.log)] print(f"\nselftest took {time.time() - started:.0f}s") if failures: print("SELFTEST FAILED") diff --git a/tools/world_report.py b/tools/world_report.py index adc2c6e..ceaadaa 100644 --- a/tools/world_report.py +++ b/tools/world_report.py @@ -1,8 +1,14 @@ #!/usr/bin/env python3 """Check and picture a generated world (default: build/world-template). - * Ore scan: every block in every stored chunk is checked; any ore block - ("*_ore", ancient debris, raw ore blocks from large veins) fails the check. + * Ore scan: every block in every stored chunk is checked. Ore ("*_ore", + ancient debris, raw ore blocks from large veins) is only allowed as part of + a regenerating vein (Regenerating Ore Veins' saved data), and each vein's + blocks must lie in the zone of its ore tier (world/zones.json → "ores"), + or at most two radii from a block of the same vein that does: the mod + checks the biome only at a vein's centre, so its edge can reach over the + border of a cave zone. Untracked ore fails the check, and so (except with + --sample) does an ore tier without any vein. * Biome set: every biome stored in any chunk section (surface and caves) must be listed in world/biomes.json ("allowed" or "water"). * End access: at least one stronghold must start inside the world border. @@ -38,9 +44,13 @@ import numpy as np sys.path.insert(0, str(Path(__file__).resolve().parent)) import anvil # noqa: E402 +import zone_grid # noqa: E402 ROOT = Path(__file__).resolve().parent.parent ORE = re.compile(r"(_ore|:ancient_debris|:raw_(iron|copper|gold)_block)$") +# Blocks the regenerating veins are made of (amethyst isn't "ore" by name but is a tier). +VEIN_BLOCKS = {b for v in json.loads((ROOT / "pack/config/regenerating_ore_veins/veins.json").read_text()) + for b in v["blocks"]} MOB_BLOCK = re.compile(r":(spawner|trial_spawner|infested_\w+)$") LOOT_CONTAINERS = {"minecraft:chest", "minecraft:trapped_chest", "minecraft:barrel", "minecraft:shulker_box"} SEA_LEVEL = 63 @@ -53,7 +63,7 @@ def scan_region(path): floor = np.full((512, 512), -10_000, dtype=np.int16) top = np.full((512, 512), -10_000, dtype=np.int16) biome = np.full((128, 128), -1, dtype=np.int16) - names, ores, chunks, present, strongholds = {}, {}, 0, {}, [] + names, ores, chunks, present, strongholds, ore_at = {}, {}, 0, {}, [], [] loot = {"lootr": 0, "unconverted": 0, "unconverted_at": []} for cx, cz, chunk in anvil.region_chunks(path): for be in chunk.get("block_entities", []): @@ -80,13 +90,20 @@ def scan_region(path): present[name] = present.get(name, 0) + 1 palette, indices = anvil.section_blocks(section) entries = section.get("block_states", {}).get("palette", []) - hits = {i: name for i, name in enumerate(palette) if ORE.search(name) or MOB_BLOCK.search(name)} + hits = {i: name for i, name in enumerate(palette) + if ORE.search(name) or MOB_BLOCK.search(name) or name in VEIN_BLOCKS} hits.update({i: "minecraft:sculk_shrieker[can_summon=true]" for i, e in enumerate(entries) if e["Name"] == "minecraft:sculk_shrieker" and e.get("Properties", {}).get("can_summon") == "true"}) for i, name in hits.items(): count = int(np.count_nonzero(indices == i)) if count: ores[name] = ores.get(name, 0) + count + if count and (ORE.search(name) or name in VEIN_BLOCKS): + biome_palette, biome_indices = anvil.section_biomes(section) + for idx in np.flatnonzero(indices == i).tolist(): + y, z, x = idx // 256, (idx // 16) % 16, idx % 16 + biome_name = biome_palette[int(biome_indices[(y // 4) * 16 + (z // 4) * 4 + x // 4])] + ore_at.append((cx * 16 + x, section["Y"] * 16 + y, cz * 16 + z, name, biome_name)) decoded = {} for qz in range(4): for qx in range(4): @@ -99,7 +116,7 @@ def scan_region(path): palette, indices = decoded[y // 16] name = palette[int(indices[((y % 16) // 4) * 16 + qz * 4 + qx])] biome[oz // 4 + qz, ox // 4 + qx] = names.setdefault(name, len(names)) - return rx, rz, floor, top, biome, list(names), ores, chunks, present, strongholds, loot + return rx, rz, floor, top, biome, list(names), ores, chunks, present, strongholds, loot, ore_at # Entities that aren't mobs: decorations, vehicles, and projectiles (a trial chamber's dispenser trap fires @@ -130,10 +147,11 @@ def analyse(world): floor = np.full((h, w), -10_000, dtype=np.int16) top = np.full((h, w), -10_000, dtype=np.int16) biome = np.full((h // 4, w // 4), -1, dtype=np.int16) - names, ores, chunks, present, strongholds = [], {}, 0, {}, [] + names, ores, chunks, present, strongholds, ore_at = [], {}, 0, {}, [], [] loot = {"lootr": 0, "unconverted": 0, "unconverted_at": []} with ProcessPoolExecutor(max_workers=os.cpu_count()) as pool: - for rx, rz, f, t, b, local, o, n, pr, sh, lt in pool.map(scan_region, regions): + for rx, rz, f, t, b, local, o, n, pr, sh, lt, oa in pool.map(scan_region, regions): + ore_at += oa for k, v in lt.items(): loot[k] += v strongholds += sh @@ -153,10 +171,71 @@ def analyse(world): for k, v in counts.items(): entities[k] = entities.get(k, 0) + v return {"origin": (x0 * 512, z0 * 512), "floor": floor, "top": top, "biome": biome, - "biome_names": names, "ores": ores, "chunks": chunks, "sections_per_biome": present, + "biome_names": names, "ores": ores, "ore_at": ore_at, "chunks": chunks, "sections_per_biome": present, "strongholds": strongholds, "entities": entities, "loot": loot} +def read_veins(world): + """{(x, y, z): vein id} from Regenerating Ore Veins' saved data (empty if the mod never ran).""" + path = Path(world, "data/regenerating_ore_veins_veins.dat") + if not path.exists(): + return {} + import gzip + data = anvil.parse_nbt(gzip.decompress(path.read_bytes())) + veins = {} + for entry in data.get("data", data).get("Entries", []): + pos = entry["Pos"] + if isinstance(pos, dict): + key = (pos["X"], pos["Y"], pos["Z"]) + elif isinstance(pos, int): # BlockPos.asLong + x, z, y = pos >> 38, (pos << 26) >> 38, ((pos & 0xFFF) ^ 0x800) - 0x800 + key = (x, y, ((z + (1 << 25)) % (1 << 26)) - (1 << 25)) + else: + key = tuple(int(v) for v in pos) + veins[key] = entry.get("VeinId", "") + return veins + + +def check_veins(world, ore_at, sample): + """Every ore block belongs to a tracked vein in its tier's zone; returns (blocks per tier and zone, problems).""" + plan = json.loads((ROOT / "world/zones.json").read_text()) + grid = zone_grid.load() + tier_zone = {} + for tier, spec in plan["ores"].items(): + tier_zone[tier] = tier_zone[f"{tier}_deep"] = (spec["zone"], spec["radius"][1]) + veins = read_veins(world) + per_tier, untracked, stray = {}, {}, [] + blocks = {(x, y, z): (name, biome) for x, y, z, name, biome in ore_at} + zone_of = {pos: grid.zone_at(pos[0], pos[2], biome) for pos, (_, biome) in blocks.items()} + for pos, (name, _) in blocks.items(): + vein = veins.get(pos) + if vein is None: + if ORE.search(name): # amethyst outside a vein is a natural geode + untracked[name] = untracked.get(name, 0) + 1 + continue + tier = vein[:-5] if vein.endswith("_deep") else vein + counts = per_tier.setdefault(tier, {}) + counts[zone_of[pos] or "none"] = counts.get(zone_of[pos] or "none", 0) + 1 + want, radius = tier_zone.get(vein, (None, 0)) + if zone_of[pos] == want: + continue + reach = 2 * radius + near = any(veins.get(q) == vein and zone_of.get(q) == want + for q in ((pos[0] + dx, pos[1] + dy, pos[2] + dz) for dx in range(-reach, reach + 1) + for dy in range(-reach, reach + 1) for dz in range(-reach, reach + 1))) + if not near: + stray.append((vein, pos, zone_of[pos])) + problems = [f"{n} {name} outside any regenerating vein" for name, n in sorted(untracked.items())] + if not sample: + problems += [f"ore tier {tier} has no vein in the world" for tier in plan["ores"] if tier not in per_tier] + by_vein = {} + for vein, pos, zone in stray: + by_vein.setdefault((vein, zone), []).append(pos) + problems += [f"{len(at)} blocks of vein {vein} in zone {zone}, not {tier_zone.get(vein, ('(no tier)',))[0]} " + f"(e.g. {at[0]})" for (vein, zone), at in sorted(by_vein.items(), key=str)] + return per_tier, problems + + def border_of(level): return level.get("BorderCenterX", 0.0), level.get("BorderCenterZ", 0.0), level.get("BorderSize", 5.9999968e7) @@ -348,10 +427,12 @@ def main(): biomes = json.loads((ROOT / "world/biomes.json").read_text()) listed = set(biomes["allowed"]) | set(biomes["water"]) unlisted = {b: n for b, n in data["sections_per_biome"].items() if b not in listed} + vein_counts, vein_problems = check_veins(args.world, data["ore_at"], args.sample) report = { "chunks_scanned": data["chunks"], - "ore_blocks": {k: v for k, v in data["ores"].items() if ORE.search(k)}, - "mob_source_blocks": {k: v for k, v in data["ores"].items() if not ORE.search(k)}, + "ore_blocks": {k: v for k, v in data["ores"].items() if ORE.search(k) or k in VEIN_BLOCKS}, + "vein_blocks_per_tier_and_zone": vein_counts, + "mob_source_blocks": {k: v for k, v in data["ores"].items() if MOB_BLOCK.search(k) or "shrieker" in k}, "unlisted_biomes": unlisted, "gamerules_not_as_recipe": wrong_rules, "vanilla_mobs_in_world": vanilla_mobs, @@ -368,7 +449,9 @@ def main(): args.json.write_text(json.dumps(report, indent=2) + "\n") print(json.dumps({k: v for k, v in report.items() if k != "land_biomes_percent"}, indent=2)) - failures = ([f"{n} {name}" for name, n in data["ores"].items()] + border["problems"] + failures = ([f"{n} {name}" for name, n in data["ores"].items() if MOB_BLOCK.search(name) or "shrieker" in name] + + vein_problems + + border["problems"] + [f"unlisted biome {b} in {n} chunk sections" for b, n in unlisted.items()] + [f"gamerule {r} is {v}, recipe says {recipe['gamerules'][r]}" for r, v in wrong_rules.items()] + [f"{n} vanilla {mob} in the world" for mob, n in vanilla_mobs.items()]) @@ -378,7 +461,8 @@ def main(): sys.exit(1) if report["missing_listed_biomes"] and not args.sample: print(f"note: listed biomes not on this island: {', '.join(report['missing_listed_biomes'])}") - print(f"\nWORLD CHECK PASSED: {data['chunks']} chunks, no ore, no vanilla mobs or mob sources, only listed biomes" + print(f"\nWORLD CHECK PASSED: {data['chunks']} chunks, ore only in regenerating veins in their zones, " + f"no vanilla mobs or mob sources, only listed biomes" + ("" if args.sample else ", border fits the coast")) diff --git a/tools/zone_grid.py b/tools/zone_grid.py new file mode 100644 index 0000000..d2f5e3d --- /dev/null +++ b/tools/zone_grid.py @@ -0,0 +1,33 @@ +"""The zone grid as the companion mod sees it (datapacks/core/data/cobblesurvival/zones/island.json). + +zone_at() answers like zone/Zones.kt: a cave biome is its cave zone; otherwise the grid cell's zone. +""" +import json +from pathlib import Path + +ROOT = Path(__file__).resolve().parent.parent +ISLAND = ROOT / "datapacks/core/data/cobblesurvival/zones/island.json" + + +class Grid: + def __init__(self, data): + self.radius, self.step, self.size = data["radius"], data["step"], data["size"] + self.ids = [z["id"] for z in data["zones"]] + self.caves = {c["biome"]: c["id"] for c in data["caves"]} + self.cells = [value for value, count in data["grid_rle"] for _ in range(count)] + if len(self.cells) != self.size * self.size: + raise ValueError(f"zone grid has {len(self.cells)} cells, expected {self.size ** 2}") + + def zone_at(self, x, z, biome=None): + if biome in self.caves: + return self.caves[biome] + col = (x + self.radius + self.step // 2) // self.step + row = (z + self.radius + self.step // 2) // self.step + if not (0 <= col < self.size and 0 <= row < self.size): + return None + index = self.cells[row * self.size + col] + return self.ids[index] if 0 <= index < len(self.ids) else None + + +def load(path=ISLAND): + return Grid(json.loads(Path(path).read_text())) diff --git a/tools/zone_ores.py b/tools/zone_ores.py new file mode 100755 index 0000000..0d2d9b3 --- /dev/null +++ b/tools/zone_ores.py @@ -0,0 +1,171 @@ +#!/usr/bin/env python3 +"""Write Regenerating Ore Veins' config from the zone plan, so every ore tier only has veins in its zone. + +world/zones.json → "ores" lists the tiers. This tool writes pack/config/regenerating_ore_veins/: + + * areas.json: each surface zone that has a tier, as boxes from the zone grid (build/zone-layout.json, + 24-block cells; rows of cells merged into rectangles), named _, reaching from bedrock to + the build limit. The mod's boxes are centre plus half-size, so a box covers its cells except their + last row and column of blocks: no box reaches into a neighbouring zone. + * veins.json: one vein per tier, or two when the tier has "stone" and "deepslate" blocks (an upper vein + from y 0 up, "_deep" below). A surface tier's veins are limited to its zone's boxes and kept out + of the cave biomes, which are zones of their own; a cave tier's veins to its cave biome. The mod checks + the area for every block and the biome at a vein's centre. One vein only for the self-tests comes + last ("selftest", a single coal block); its area lies far outside the world border, so it never + generates, and the tests place it by command. + * global.json: regenerators can't be broken by players (allow_breaking false), so nobody can remove a + vein for good; explosions don't destroy veins. + * vein_locator.json: the Vein Locator from a compass and a copper ingot (mid-game) instead of netherite. + +Re-run after changing the zone plan or the grid (tools/zone_layout.py) and commit the result. + +Usage: tools/zone_ores.py +""" +import json +import sys +from pathlib import Path + +ROOT = Path(__file__).resolve().parent.parent +OUT = ROOT / "pack/config/regenerating_ore_veins" +LAYOUT = ROOT / "build/zone-layout.json" +BOTTOM, TOP = -64, 320 +SELFTEST_AREA = "selftest_nowhere" + + +def rectangles(mask, size): + """Cover the True cells of a size×size row-major mask with rectangles (col0, row0, col1, row1).""" + open_runs, done = {}, [] + for row in range(size + 1): + runs = set() + col = 0 + while row < size and col < size: + if mask[row * size + col]: + start = col + while col < size and mask[row * size + col]: + col += 1 + runs.add((start, col - 1)) + col += 1 + for run in list(open_runs): + if run not in runs: + done.append((run[0], open_runs.pop(run), run[1], row - 1)) + for run in runs: + open_runs.setdefault(run, row) + return sorted(done, key=lambda r: (r[1], r[0])) + + +def zone_areas(layout, zone_id): + size, step, radius = layout["size"], layout["step"], layout["radius"] + index = layout["zones"].index(zone_id) + mask = [value == index for value in layout["grid"]] + areas = [] + for n, (c0, r0, c1, r1) in enumerate(rectangles(mask, size)): + # Cell i covers -radius - step/2 + i*step ... +step-1 (as in zone/Zones.kt). + x0, z0 = c0 * step - radius - step // 2, r0 * step - radius - step // 2 + w, h = (c1 - c0 + 1) * step, (r1 - r0 + 1) * step + areas.append({"dimension": "minecraft:overworld", "name": f"{zone_id}_{n}", "type": "box", + "x": x0 + w // 2 - 1, "y": (BOTTOM + TOP) // 2, "z": z0 + h // 2 - 1, + "dimx": w // 2 - 1, "dimy": (TOP - BOTTOM) // 2, "dimz": h // 2 - 1}) + return areas + + +def vein(vein_id, blocks, spec, defaults, y_range, where): + seconds = spec["regen_minutes"] * 60 + jitter = round(seconds * spec.get("jitter", defaults["jitter"])) + return { + "id": vein_id, + "blocks": [b for b, _ in blocks], + "weights": [w for _, w in blocks], + "dimension_whitelist": ["minecraft:overworld"], + **where, + "shape": "sphere", + "min_radius": spec["radius"][0], + "max_radius": spec["radius"][1], + "attempts": spec.get("attempts", defaults["attempts"]), + "min_y": y_range[0], + "max_y": y_range[1], + "chunk_minimum_generation_separation": spec["spacing"], + "fill_factor": spec.get("fill", defaults["fill"]), + "regeneration_interval_seconds": seconds, + "regeneration_interval_jitter": {"range_min": -jitter, "range_max": jitter}, + } + + +def selftest_vein(): + return {"id": "selftest", "blocks": ["minecraft:coal_ore"], "dimension_whitelist": ["minecraft:overworld"], + "area_whitelist": [SELFTEST_AREA], "shape": "sphere", "min_radius": 0, "max_radius": 0, + "attempts": 1, "min_y": 0, "max_y": 0, "chunk_minimum_generation_separation": 64, + "fill_factor": 1.0, "regeneration_interval_seconds": 3600, + "regeneration_interval_jitter": {"range_min": 0, "range_max": 0}} + + +def main(): + if not LAYOUT.exists(): + sys.exit(f"{LAYOUT.relative_to(ROOT)} is missing: run tools/zone_layout.py first.") + layout = json.loads(LAYOUT.read_text()) + plan = json.loads((ROOT / "world/zones.json").read_text()) + defaults = plan["ore_defaults"] + caves = {c["id"]: c["biome"] for c in plan["caves"]} + surface = {z["id"] for z in plan["zones"]} + + areas, area_names, veins = [], {}, [] + for tier, spec in plan["ores"].items(): + zone = spec["zone"] + if zone in caves: + where = {"biome_whitelist": [caves[zone]]} + elif zone in surface: + if zone not in area_names: + boxes = zone_areas(layout, zone) + if not boxes: + sys.exit(f"zone {zone} (ore tier {tier}) has no cells in the grid") + areas += boxes + area_names[zone] = [a["name"] for a in boxes] + where = {"area_whitelist": area_names[zone], "biome_blacklist": sorted(caves.values())} + else: + sys.exit(f"ore tier {tier}: unknown zone {zone}") + low, high = spec["y"] + if "blocks" in spec: + veins.append(vein(tier, spec["blocks"], spec, defaults, (low, high), where)) + continue + if spec.get("stone") and high >= 0: + veins.append(vein(tier, [(spec["stone"], 1)], spec, defaults, (max(low, 0), high), where)) + if spec.get("deepslate") and low < 0: + deep_id = f"{tier}_deep" if spec.get("stone") and high >= 0 else tier + veins.append(vein(deep_id, [(spec["deepslate"], 1)], spec, defaults, (low, min(high, -1)), where)) + + areas.append({"dimension": "minecraft:overworld", "name": SELFTEST_AREA, "type": "box", + "x": 29_000_000, "y": 0, "z": 29_000_000, "dimx": 0, "dimy": 0, "dimz": 0}) + veins.append(selftest_vein()) + + OUT.mkdir(parents=True, exist_ok=True) + (OUT / "areas.json").write_text(json.dumps(areas, indent=1) + "\n") + (OUT / "veins.json").write_text(json.dumps(veins, indent=1) + "\n") + (OUT / "global.json").write_text(json.dumps({ + "allow_breaking": False, + "break_hardness": 5.0, + "default_regeneration_seconds": 3600, + "default_jitter_interval": {"range_min": 0, "range_max": 0}, + "regeneration_smoke_particles": True, + "destroyed_by_explosives": False, + "default_fill_factor": defaults["fill"], + }, indent=2) + "\n") + (OUT / "vein_locator.json").write_text(json.dumps({ + "allow_crafting": True, + "allow_use": True, + "crafting_recipe": ["minecraft:compass", "minecraft:copper_ingot"], + "craft_any_order": True, + "chance_to_break": 0.75, + "use_durability": False, + "durability": 2, + "stack_size": 64, + }, indent=2) + "\n") + per_zone = {} + for tier, spec in plan["ores"].items(): + per_zone.setdefault(spec["zone"], []).append(tier) + print(f"wrote {len(veins)} veins ({len(plan['ores'])} tiers) and {len(areas)} areas to {OUT.relative_to(ROOT)}") + for zone, tiers in per_zone.items(): + boxes = len(area_names.get(zone, [])) + print(f" {zone}: {', '.join(tiers)}" + (f" ({boxes} boxes)" if boxes else " (cave biome)")) + + +if __name__ == "__main__": + main() diff --git a/world/zones.json b/world/zones.json index 849d843..b5eedde 100644 --- a/world/zones.json +++ b/world/zones.json @@ -1,9 +1,33 @@ { - "_comment": "Zone plan for Phase 3 (model approved by Adrian 2026-10-29; levels are placeholders, see docs/balance.md). tools/zone_layout.py assigns each surface cell of the island to the first zone whose rule matches, in this order, and renders build/zone-map.png. Rules: 'within' = distance from 0,0 in blocks; 'biomes' = cells of these biomes, clusters smaller than min_cells dropped, plus 'absorb' = cells of other biomes within that many blocks of the cluster; 'region' = what is left, by half-plane (x/z bounds in blocks); 'water' = sea cells of these biomes. Biomes in 'inherit' (rivers) take the zone of the land around them. Cave zones follow the cave biome everywhere under the island and are not drawn. 'lines' = how many evolution lines tools/zone_spawns.py aims to give the zone (scaled to the lines available); 'species' pins a line to a zone by hand. 'guardian': the zone's Alpha guardian (tools/zone_spawns.py picks the strongest Pokémon spawning in the zone unless 'species' is given, at the band's top level + 5) and its drops, which help with the next zone; it stands at the zone's sample point and returns guardian_respawn_hours after it is beaten (Adrian, 2026-10-29: fixed spots, 5 hours). 'level_pressure': a Pokémon more than grace_levels above the band of the zone its trainer stands in gets per_level less experience per extra level, down to minimum (Exp. Candy and commands excepted).", + "_comment": "Zone plan for Phase 3 (model approved by Adrian 2026-10-29; levels are placeholders, see docs/balance.md). tools/zone_layout.py assigns each surface cell of the island to the first zone whose rule matches, in this order, and renders build/zone-map.png. Rules: 'within' = distance from 0,0 in blocks; 'biomes' = cells of these biomes, clusters smaller than min_cells dropped, plus 'absorb' = cells of other biomes within that many blocks of the cluster; 'region' = what is left, by half-plane (x/z bounds in blocks); 'water' = sea cells of these biomes. Biomes in 'inherit' (rivers) take the zone of the land around them. Cave zones follow the cave biome everywhere under the island and are not drawn. 'lines' = how many evolution lines tools/zone_spawns.py aims to give the zone (scaled to the lines available); 'species' pins a line to a zone by hand. 'guardian': the zone's Alpha guardian (tools/zone_spawns.py picks the strongest Pokémon spawning in the zone unless 'species' is given, at the band's top level + 5) and its drops, which help with the next zone; it stands at the zone's sample point and returns guardian_respawn_hours after it is beaten (Adrian, 2026-10-29: fixed spots, 5 hours). 'ores': Phase 4 ore tiers for Regenerating Ore Veins (tools/zone_ores.py writes the mod's config from them). Each tier has veins in exactly one zone, higher tiers in higher zones; Cobblemon's evolution stones are tiers too, since their natural ores are off. 'stone'/'deepslate' split a tier into an upper vein (y >= 0) and a lower one; 'blocks' is a weighted list for one vein. 'radius' in blocks, 'y' range, 'spacing' in chunks between candidate chunks, 'regen_minutes' of real time, plus 'jitter' (share of the interval), 'fill' and 'attempts' from 'ore_defaults'. 'showcase': the template gets one hand-placed vein of the tier at its zone's sample point. 'level_pressure': a Pokémon more than grace_levels above the band of the zone its trainer stands in gets per_level less experience per extra level, down to minimum (Exp. Candy and commands excepted).", "min_cells": 6, "inherit": ["minecraft:river"], "guardian_respawn_hours": 5, "level_pressure": {"grace_levels": 5, "per_level": 0.1, "minimum": 0.1}, + "ore_defaults": {"fill": 0.7, "attempts": 1, "jitter": 0.1}, + "ores": { + "coal": {"zone": "button_isle", "stone": "minecraft:coal_ore", "deepslate": "minecraft:deepslate_coal_ore", "radius": [1, 2], "y": [-32, 100], "spacing": 4, "regen_minutes": 20, "attempts": 2, "showcase": true}, + "copper": {"zone": "southwold", "stone": "minecraft:copper_ore", "deepslate": "minecraft:deepslate_copper_ore", "radius": [1, 2], "y": [-32, 100], "spacing": 5, "regen_minutes": 30, "attempts": 2, "showcase": true}, + "iron": {"zone": "westmarch", "stone": "minecraft:iron_ore", "deepslate": "minecraft:deepslate_iron_ore", "radius": [1, 2], "y": [-48, 90], "spacing": 5, "regen_minutes": 40, "attempts": 2, "showcase": true}, + "redstone": {"zone": "jungle", "stone": "minecraft:redstone_ore", "deepslate": "minecraft:deepslate_redstone_ore", "radius": [1, 2], "y": [-56, 60], "spacing": 6, "regen_minutes": 45, "showcase": true}, + "lapis": {"zone": "highlands", "stone": "minecraft:lapis_ore", "deepslate": "minecraft:deepslate_lapis_ore", "radius": [1, 2], "y": [-56, 80], "spacing": 6, "regen_minutes": 45, "showcase": true}, + "gold": {"zone": "sunscorch", "stone": "minecraft:gold_ore", "deepslate": "minecraft:deepslate_gold_ore", "radius": [1, 2], "y": [-48, 120], "spacing": 6, "regen_minutes": 60, "showcase": true}, + "emerald": {"zone": "frostpeak", "stone": "minecraft:emerald_ore", "deepslate": "minecraft:deepslate_emerald_ore", "radius": [1, 1], "y": [-16, 320], "spacing": 7, "regen_minutes": 75, "showcase": true}, + "amethyst": {"zone": "dripstone", "blocks": [["minecraft:amethyst_block", 3], ["minecraft:budding_amethyst", 1]], "radius": [1, 1], "y": [-64, 64], "spacing": 8, "regen_minutes": 120}, + "diamond": {"zone": "deep_dark", "deepslate": "minecraft:deepslate_diamond_ore", "radius": [1, 1], "y": [-64, 0], "spacing": 7, "regen_minutes": 90}, + "quartz": {"zone": "basalt", "blocks": [["minecraft:nether_quartz_ore", 1]], "radius": [1, 2], "y": [-64, 64], "spacing": 6, "regen_minutes": 60}, + "netherite": {"zone": "basalt", "blocks": [["minecraft:ancient_debris", 1]], "radius": [0, 1], "y": [-64, 32], "spacing": 10, "regen_minutes": 180}, + "thunder_stone": {"zone": "westmarch", "stone": "cobblemon:thunder_stone_ore", "deepslate": "cobblemon:deepslate_thunder_stone_ore", "radius": [0, 1], "y": [-48, 100], "spacing": 8, "regen_minutes": 60}, + "shiny_stone": {"zone": "lush_caves", "stone": "cobblemon:shiny_stone_ore", "deepslate": "cobblemon:deepslate_shiny_stone_ore", "radius": [0, 1], "y": [-64, 64], "spacing": 8, "regen_minutes": 60}, + "leaf_stone": {"zone": "jungle", "stone": "cobblemon:leaf_stone_ore", "deepslate": "cobblemon:deepslate_leaf_stone_ore", "radius": [0, 1], "y": [-48, 100], "spacing": 8, "regen_minutes": 60}, + "water_stone": {"zone": "mire", "stone": "cobblemon:water_stone_ore", "deepslate": "cobblemon:deepslate_water_stone_ore", "radius": [0, 1], "y": [-48, 100], "spacing": 8, "regen_minutes": 60, "showcase": true}, + "moon_stone": {"zone": "dripstone", "blocks": [["cobblemon:dripstone_moon_stone_ore", 1], ["cobblemon:moon_stone_ore", 1], ["cobblemon:deepslate_moon_stone_ore", 1]], "radius": [0, 1], "y": [-64, 64], "spacing": 8, "regen_minutes": 60}, + "sun_stone": {"zone": "highlands", "stone": "cobblemon:sun_stone_ore", "deepslate": "cobblemon:deepslate_sun_stone_ore", "radius": [0, 1], "y": [-48, 100], "spacing": 8, "regen_minutes": 60}, + "fire_stone": {"zone": "sunscorch", "stone": "cobblemon:fire_stone_ore", "deepslate": "cobblemon:deepslate_fire_stone_ore", "radius": [0, 1], "y": [-48, 120], "spacing": 8, "regen_minutes": 60}, + "ice_stone": {"zone": "frostpeak", "stone": "cobblemon:ice_stone_ore", "deepslate": "cobblemon:deepslate_ice_stone_ore", "radius": [0, 1], "y": [-16, 320], "spacing": 8, "regen_minutes": 60}, + "dawn_stone": {"zone": "frostpeak", "stone": "cobblemon:dawn_stone_ore", "deepslate": "cobblemon:deepslate_dawn_stone_ore", "radius": [0, 1], "y": [-16, 320], "spacing": 9, "regen_minutes": 75}, + "dusk_stone": {"zone": "deep_dark", "deepslate": "cobblemon:deepslate_dusk_stone_ore", "radius": [0, 1], "y": [-64, 0], "spacing": 9, "regen_minutes": 75} + }, "species": {"durant": "basalt", "torkoal": "basalt", "heatmor": "basalt"}, "zones": [ {