Phase 4 play-test fixes: deep caves, fuller cave spawns, strays, shared loot

From Adrian's play-test (2026-10-30):
- The Deep Dark no longer fills the deepslate layer: world/biomes.json
  splits it by temperature (Deep Dark under cold and temperate land,
  basalt deltas under the hottest, ordinary caves between); at y -52 it
  drops from 30 % to 14 % of the land, basalt 7 %.
- Cave zones fill up to their targets with lines whose primary type fits
  the cave; top stages spawn up to the band's top (Deep Dark Lv 60, Basalt
  70); no time-of-day conditions underground.
- Wild Pokemon more than 10 levels above the band of the zone they
  wander into despawn (zone/Wanderers.kt).
- Loot is shared: all players in one scoreboard team, Lootr team_loot.
- Basalt ore nodes reach the deep basalt.
Self-tests strays_despawn and loot_is_shared; the catching rules from the
previous commit are now tested too. Template rebuilt (world check passed),
island quick check passed (36 self-tests and the restart test).
Shoulder Pokemon noted for Phase 5.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
claudeandClaude Opus 5.5 committed 2026-10-31 02:01:41 +01:00
1 parent 6361636da7
commit d49684a2eb
40 files changed
+8212 -9412

No files matched your search

@@ -1,7 +1,7 @@
{ {
"_comment": "Generated by tools/zone_spawns.py from world/zones.json; do not edit by hand.", "_comment": "Generated by tools/zone_spawns.py from world/zones.json; do not edit by hand.",
"zone": "button_isle", "zone": "button_isle",
"pokemon": "pachirisu level=15 uncatchable=yes", "pokemon": "morpeko level=15 uncatchable=yes",
"scale": 1.5, "scale": 1.5,
"drops": [ "drops": [
{ {
@@ -1,7 +1,7 @@
{ {
"_comment": "Generated by tools/zone_spawns.py from world/zones.json; do not edit by hand.", "_comment": "Generated by tools/zone_spawns.py from world/zones.json; do not edit by hand.",
"zone": "deep_dark", "zone": "deep_dark",
"pokemon": "dusknoir level=65 uncatchable=yes", "pokemon": "crobat level=65 uncatchable=yes",
"scale": 1.5, "scale": 1.5,
"drops": [ "drops": [
{ {
@@ -1,7 +1,7 @@
{ {
"_comment": "Generated by tools/zone_spawns.py from world/zones.json; do not edit by hand.", "_comment": "Generated by tools/zone_spawns.py from world/zones.json; do not edit by hand.",
"zone": "frostpeak", "zone": "frostpeak",
"pokemon": "archaludon level=60 uncatchable=yes", "pokemon": "tyranitar level=60 uncatchable=yes",
"scale": 1.5, "scale": 1.5,
"drops": [ "drops": [
{ {
@@ -1,7 +1,7 @@
{ {
"_comment": "Generated by tools/zone_spawns.py from world/zones.json; do not edit by hand.", "_comment": "Generated by tools/zone_spawns.py from world/zones.json; do not edit by hand.",
"zone": "mire", "zone": "mire",
"pokemon": "arcanine level=43 uncatchable=yes", "pokemon": "swampert level=43 uncatchable=yes",
"scale": 1.5, "scale": 1.5,
"drops": [ "drops": [
{ {
@@ -1,7 +1,7 @@
{ {
"_comment": "Generated by tools/zone_spawns.py from world/zones.json; do not edit by hand.", "_comment": "Generated by tools/zone_spawns.py from world/zones.json; do not edit by hand.",
"zone": "southwold", "zone": "southwold",
"pokemon": "sigilyph level=23 uncatchable=yes", "pokemon": "pinsir level=23 uncatchable=yes",
"scale": 1.5, "scale": 1.5,
"drops": [ "drops": [
{ {
@@ -85,7 +85,7 @@
"biome": "minecraft:basalt_deltas", "biome": "minecraft:basalt_deltas",
"tries": 8, "tries": 8,
"y": [ "y": [
0, -64,
40 40
] ]
}, },
@@ -98,7 +98,7 @@
"biome": "minecraft:basalt_deltas", "biome": "minecraft:basalt_deltas",
"tries": 8, "tries": 8,
"y": [ "y": [
0, -64,
40 40
] ]
}, },
@@ -4,28 +4,60 @@
"neededInstalledMods": [], "neededInstalledMods": [],
"neededUninstalledMods": [], "neededUninstalledMods": [],
"spawns": [ "spawns": [
{
"bucket": "rare",
"condition": {
"biomes": [
"minecraft:basalt_deltas"
],
"maxSkyLight": 15,
"zone": "basalt"
},
"id": "basalt-absol-1-11",
"level": "55-70",
"pokemon": "absol",
"presets": [
"wild"
],
"spawnablePositionType": "grounded",
"type": "pokemon",
"weight": 100.0
},
{
"bucket": "uncommon",
"condition": {
"biomes": [
"minecraft:basalt_deltas"
],
"maxSkyLight": 15,
"zone": "basalt"
},
"id": "basalt-arcanine-1-9",
"level": "55-70",
"pokemon": "arcanine",
"presets": [
"urban"
],
"spawnablePositionType": "grounded",
"type": "pokemon",
"weight": 6.4,
"weightMultiplier": {
"condition": {
"isPokeSnack": true
},
"multiplier": 1.25
}
},
{ {
"bucket": "common", "bucket": "common",
"condition": { "condition": {
"biomes": [ "biomes": [
"#cobblemon:nether/is_basalt" "minecraft:basalt_deltas"
], ],
"maxSkyLight": 15,
"zone": "basalt" "zone": "basalt"
}, },
"drops": { "id": "basalt-centiskorch-1-6",
"amount": 2,
"entries": [
{
"item": "minecraft:blaze_powder",
"percentage": 10.0
},
{
"item": "cobblemon:charti_berry",
"percentage": 5.0
}
]
},
"id": "basalt-centiskorch-2-6",
"level": "55-70", "level": "55-70",
"pokemon": "centiskorch", "pokemon": "centiskorch",
"presets": [ "presets": [
@@ -39,11 +71,13 @@
"bucket": "ultra-rare", "bucket": "ultra-rare",
"condition": { "condition": {
"biomes": [ "biomes": [
"#cobblemon:nether/is_basalt" "minecraft:basalt_deltas"
], ],
"isRaining": false,
"maxSkyLight": 15,
"zone": "basalt" "zone": "basalt"
}, },
"id": "basalt-charizard-2-7", "id": "basalt-charizard-1-7",
"level": "55-70", "level": "55-70",
"pokemon": "charizard", "pokemon": "charizard",
"presets": [], "presets": [],
@@ -61,103 +95,149 @@
"bucket": "common", "bucket": "common",
"condition": { "condition": {
"biomes": [ "biomes": [
"#cobblemon:nether/is_mountain" "minecraft:basalt_deltas"
], ],
"isPokeSnack": true, "maxSkyLight": 7,
"minY": 0,
"zone": "basalt" "zone": "basalt"
}, },
"id": "basalt-durant-3-0", "id": "basalt-dugtrio-1-14",
"level": "55-70",
"pokemon": "dugtrio",
"presets": [],
"spawnablePositionType": "grounded",
"type": "pokemon",
"weight": 3.0,
"weightMultiplier": {
"condition": {
"isPokeSnack": true
},
"multiplier": 2.0
}
},
{
"bucket": "common",
"condition": {
"biomes": [
"minecraft:basalt_deltas"
],
"isPokeSnack": true,
"maxSkyLight": 15,
"zone": "basalt"
},
"id": "basalt-durant-1-0",
"level": "55-70", "level": "55-70",
"pokemon": "durant", "pokemon": "durant",
"presets": [], "presets": [],
"spawnablePositionType": "grounded", "spawnablePositionType": "grounded",
"type": "pokemon", "type": "pokemon",
"weight": 60.0
},
{
"bucket": "common",
"condition": {
"biomes": [
"#cobblemon:nether/is_mountain"
],
"zone": "basalt"
},
"id": "basalt-gliscor-2-4",
"level": "55-70",
"pokemon": "gliscor",
"presets": [],
"spawnablePositionType": "grounded",
"type": "pokemon",
"weight": 1.0
},
{
"bucket": "common",
"condition": {
"biomes": [
"#cobblemon:nether/is_mountain"
],
"zone": "basalt"
},
"drops": {
"amount": 3,
"entries": [
{
"item": "cobblemon:flame_orb",
"percentage": 5.0
},
{
"item": "minecraft:blaze_powder",
"percentage": 10.0
},
{
"item": "cobblemon:rawst_berry",
"percentage": 5.0
}
]
},
"id": "basalt-heatmor-2-2",
"level": "55-70",
"pokemon": "heatmor",
"presets": [
"wild"
],
"spawnablePositionType": "grounded",
"type": "pokemon",
"weight": 20.0 "weight": 20.0
}, },
{ {
"bucket": "common", "bucket": "common",
"condition": { "condition": {
"biomes": [ "biomes": [
"#minecraft:is_nether" "minecraft:basalt_deltas"
], ],
"isPokeSnack": true, "maxSkyLight": 7,
"zone": "basalt" "zone": "basalt"
}, },
"drops": { "id": "basalt-excadrill-1-10",
"amount": 6, "level": "55-70",
"entries": [ "pokemon": "excadrill",
{ "presets": [],
"item": "minecraft:bone", "spawnablePositionType": "grounded",
"quantityRange": "0-2" "type": "pokemon",
}, "weight": 10.0
{ },
"item": "minecraft:rotten_flesh", {
"quantityRange": "0-2" "bucket": "uncommon",
}, "condition": {
{ "biomes": [
"item": "minecraft:blaze_powder", "minecraft:basalt_deltas"
"percentage": 10.0 ],
}, "maxSkyLight": 15,
{ "zone": "basalt"
"item": "cobblemon:rawst_berry",
"percentage": 5.0
}
]
}, },
"id": "basalt-houndoom-2-5", "id": "basalt-gliscor-1-4",
"level": "55-70",
"pokemon": "gliscor",
"presets": [
"treetop"
],
"spawnablePositionType": "grounded",
"type": "pokemon",
"weight": 4.8
},
{
"bucket": "uncommon",
"condition": {
"biomes": [
"minecraft:basalt_deltas"
],
"maxSkyLight": 15,
"zone": "basalt"
},
"id": "basalt-heatmor-1-2",
"level": "55-70",
"pokemon": "heatmor",
"presets": [
"wild"
],
"spawnablePositionType": "grounded",
"type": "pokemon",
"weight": 60.0,
"weightMultiplier": {
"condition": {
"timeRange": "night"
},
"multiplier": 0.25
}
},
{
"bucket": "uncommon",
"condition": {
"biomes": [
"minecraft:basalt_deltas"
],
"isPokeSnack": true,
"maxSkyLight": 15,
"zone": "basalt"
},
"id": "basalt-houndoom-1-5",
"level": "55-70", "level": "55-70",
"pokemon": "houndoom", "pokemon": "houndoom",
"presets": [
"wild"
],
"spawnablePositionType": "grounded",
"type": "pokemon",
"weight": 3.2,
"weightMultiplier": {
"condition": {
"timeRange": "night"
},
"multiplier": 1.5
}
},
{
"anticondition": {
"structures": [
"#minecraft:village"
]
},
"bucket": "common",
"condition": {
"biomes": [
"minecraft:basalt_deltas"
],
"isRaining": false,
"maxSkyLight": 15,
"zone": "basalt"
},
"id": "basalt-liepard-1-12",
"level": "55-70",
"pokemon": "liepard",
"presets": [], "presets": [],
"spawnablePositionType": "grounded", "spawnablePositionType": "grounded",
"type": "pokemon", "type": "pokemon",
@@ -167,29 +247,41 @@
"bucket": "common", "bucket": "common",
"condition": { "condition": {
"biomes": [ "biomes": [
"#cobblemon:nether/is_basalt", "minecraft:basalt_deltas"
"#cobblemon:nether/is_wasteland"
], ],
"zone": "basalt" "zone": "basalt"
}, },
"drops": { "id": "basalt-magcargo-1-13",
"amount": 3, "level": "55-70",
"entries": [ "pokemon": "magcargo",
{ "presets": [
"item": "minecraft:blaze_powder", "lava"
"percentage": 25.0 ],
}, "spawnablePositionType": "surface",
{ "type": "pokemon",
"item": "cobblemon:magmarizer", "weight": 1.6,
"percentage": 10.0 "weightMultiplier": {
}, "condition": {
{ "isPokeSnack": true
"item": "cobblemon:rawst_berry", },
"percentage": 10.0 "multiplier": 1.25
} }
] },
{
"bucket": "common",
"condition": {
"biomes": [
"minecraft:basalt_deltas"
],
"isRaining": false,
"maxSkyLight": 15,
"neededNearbyBlocks": [
"minecraft:lava",
"minecraft:magma_block"
],
"zone": "basalt"
}, },
"id": "basalt-magmortar-3-8", "id": "basalt-magmortar-1-8",
"level": "55-70", "level": "55-70",
"pokemon": "magmortar", "pokemon": "magmortar",
"presets": [], "presets": [],
@@ -197,27 +289,47 @@
"type": "pokemon", "type": "pokemon",
"weight": 0.8 "weight": 0.8
}, },
{
"bucket": "uncommon",
"condition": {
"biomes": [
"minecraft:basalt_deltas"
],
"maxSkyLight": 7,
"zone": "basalt"
},
"id": "basalt-mawile-1-15",
"level": "55-70",
"pokemon": "mawile",
"presets": [],
"spawnablePositionType": "grounded",
"type": "pokemon",
"weight": 60.0
},
{ {
"bucket": "common", "bucket": "common",
"condition": { "condition": {
"biomes": [ "biomes": [
"#cobblemon:nether/is_basalt" "minecraft:basalt_deltas"
],
"neededNearbyBlocks": [
"#minecraft:coal_ores"
], ],
"zone": "basalt" "zone": "basalt"
}, },
"id": "basalt-torkoal-3-1", "id": "basalt-torkoal-1-1",
"level": "55-70", "level": "55-70",
"pokemon": "torkoal", "pokemon": "torkoal",
"presets": [], "presets": [],
"spawnablePositionType": "grounded", "spawnablePositionType": "grounded",
"type": "pokemon", "type": "pokemon",
"weight": 20.0 "weight": 100.0
}, },
{ {
"bucket": "uncommon", "bucket": "uncommon",
"condition": { "condition": {
"biomes": [ "biomes": [
"#cobblemon:nether/is_basalt" "minecraft:basalt_deltas"
], ],
"zone": "basalt" "zone": "basalt"
}, },
@@ -512,72 +512,6 @@
"multiplier": 5.0 "multiplier": 5.0
} }
}, },
{
"anticondition": {
"biomes": [
"#cobblemon:is_deep_dark",
"minecraft:sulfur_caves"
]
},
"bucket": "common",
"condition": {
"biomes": [
"#cobblemon:is_overworld"
],
"maxSkyLight": 7,
"minSkyLight": 0,
"minY": 0,
"zone": "button_isle"
},
"id": "button_isle-diglett-1-56",
"level": "2-10",
"pokemon": "diglett",
"presets": [
"natural"
],
"spawnablePositionType": "grounded",
"type": "pokemon",
"weight": 27.0,
"weightMultiplier": {
"condition": {
"isPokeSnack": true
},
"multiplier": 2.0
}
},
{
"anticondition": {
"biomes": [
"#cobblemon:is_deep_dark",
"minecraft:sulfur_caves"
]
},
"bucket": "common",
"condition": {
"biomes": [
"#cobblemon:is_overworld"
],
"maxSkyLight": 7,
"maxY": 0,
"minSkyLight": 0,
"zone": "button_isle"
},
"id": "button_isle-diglett-alolan-2-57",
"level": "2-10",
"pokemon": "diglett alolan",
"presets": [
"natural"
],
"spawnablePositionType": "grounded",
"type": "pokemon",
"weight": 27.0,
"weightMultiplier": {
"condition": {
"isPokeSnack": true
},
"multiplier": 2.0
}
},
{ {
"anticondition": { "anticondition": {
"biomes": [ "biomes": [
@@ -849,32 +783,6 @@
"multiplier": 2.0 "multiplier": 2.0
} }
}, },
{
"anticondition": {
"biomes": [
"#cobblemon:is_deep_dark",
"minecraft:sulfur_caves"
]
},
"bucket": "rare",
"condition": {
"biomes": [
"#cobblemon:is_overworld"
],
"maxSkyLight": 7,
"minSkyLight": 0,
"zone": "button_isle"
},
"id": "button_isle-mawile-2-38",
"level": "2-10",
"pokemon": "mawile",
"presets": [
"natural"
],
"spawnablePositionType": "grounded",
"type": "pokemon",
"weight": 60.0
},
{ {
"anticondition": { "anticondition": {
"structures": [ "structures": [
@@ -888,7 +796,7 @@
], ],
"zone": "button_isle" "zone": "button_isle"
}, },
"id": "button_isle-meditite-2-47", "id": "button_isle-meditite-2-46",
"level": "5-10", "level": "5-10",
"pokemon": "meditite", "pokemon": "meditite",
"presets": [ "presets": [
@@ -917,7 +825,7 @@
], ],
"zone": "button_isle" "zone": "button_isle"
}, },
"id": "button_isle-meditite-3-48", "id": "button_isle-meditite-3-47",
"level": "5-10", "level": "5-10",
"pokemon": "meditite", "pokemon": "meditite",
"presets": [ "presets": [
@@ -933,6 +841,276 @@
"multiplier": 0.25 "multiplier": 0.25
} }
}, },
{
"anticondition": {
"biomes": [
"#cobblemon:is_arid",
"#cobblemon:is_freezing",
"#cobblemon:is_taiga"
]
},
"bucket": "common",
"condition": {
"biomes": [
"#cobblemon:is_overworld"
],
"isRaining": false,
"maxSkyLight": 15,
"minSkyLight": 8,
"zone": "button_isle"
},
"id": "button_isle-meowth-1-66",
"level": "4-10",
"pokemon": "meowth",
"presets": [
"natural",
"urban"
],
"spawnablePositionType": "grounded",
"type": "pokemon",
"weight": 72.0,
"weightMultipliers": [
{
"condition": {
"timeRange": "night"
},
"multiplier": 1.5
},
{
"condition": {
"isPokeSnack": true
},
"multiplier": 1.25
}
]
},
{
"anticondition": {
"biomes": [
"#cobblemon:is_arid",
"#cobblemon:is_freezing",
"#cobblemon:is_taiga"
]
},
"bucket": "common",
"condition": {
"biomes": [
"#cobblemon:is_overworld"
],
"isRaining": false,
"maxSkyLight": 15,
"minSkyLight": 8,
"structures": [
"#cobblemon:spawns/is_civilization"
],
"zone": "button_isle"
},
"id": "button_isle-meowth-2-67",
"level": "4-10",
"pokemon": "meowth",
"presets": [
"natural"
],
"spawnablePositionType": "grounded",
"type": "pokemon",
"weight": 72.0,
"weightMultipliers": [
{
"condition": {
"timeRange": "night"
},
"multiplier": 1.5
},
{
"condition": {
"isPokeSnack": true
},
"multiplier": 1.25
}
]
},
{
"bucket": "common",
"condition": {
"biomes": [
"#cobblemon:is_arid"
],
"maxSkyLight": 15,
"minSkyLight": 8,
"zone": "button_isle"
},
"id": "button_isle-meowth-3-68",
"level": "4-10",
"pokemon": "meowth",
"presets": [
"natural",
"urban"
],
"spawnablePositionType": "grounded",
"type": "pokemon",
"weight": 72.0,
"weightMultipliers": [
{
"condition": {
"timeRange": "night"
},
"multiplier": 1.5
},
{
"condition": {
"isPokeSnack": true
},
"multiplier": 1.25
}
]
},
{
"bucket": "common",
"condition": {
"biomes": [
"#cobblemon:is_arid"
],
"maxSkyLight": 15,
"minSkyLight": 8,
"structures": [
"#cobblemon:spawns/is_civilization"
],
"zone": "button_isle"
},
"id": "button_isle-meowth-4-69",
"level": "4-10",
"pokemon": "meowth",
"presets": [
"natural"
],
"spawnablePositionType": "grounded",
"type": "pokemon",
"weight": 72.0,
"weightMultipliers": [
{
"condition": {
"timeRange": "night"
},
"multiplier": 1.5
},
{
"condition": {
"isPokeSnack": true
},
"multiplier": 1.25
}
]
},
{
"anticondition": {
"biomes": [
"#cobblemon:is_arid",
"#cobblemon:is_freezing"
]
},
"bucket": "common",
"condition": {
"biomes": [
"#cobblemon:is_overworld"
],
"isRaining": false,
"maxSkyLight": 15,
"minSkyLight": 8,
"minY": 62,
"structures": [
"#cobblemon:spawns/is_illager_structure"
],
"zone": "button_isle"
},
"id": "button_isle-meowth-alolan-5-70",
"level": "4-10",
"pokemon": "meowth alolan",
"presets": [
"natural"
],
"spawnablePositionType": "grounded",
"type": "pokemon",
"weight": 432.0,
"weightMultipliers": [
{
"condition": {
"timeRange": "night"
},
"multiplier": 1.5
},
{
"condition": {
"isPokeSnack": true
},
"multiplier": 1.25
}
]
},
{
"bucket": "common",
"condition": {
"biomes": [
"#cobblemon:is_arid",
"#cobblemon:is_freezing"
],
"maxSkyLight": 15,
"minSkyLight": 8,
"minY": 62,
"structures": [
"#cobblemon:spawns/is_illager_structure"
],
"zone": "button_isle"
},
"id": "button_isle-meowth-alolan-6-71",
"level": "4-10",
"pokemon": "meowth alolan",
"presets": [
"natural"
],
"spawnablePositionType": "grounded",
"type": "pokemon",
"weight": 432.0,
"weightMultipliers": [
{
"condition": {
"timeRange": "night"
},
"multiplier": 1.5
},
{
"condition": {
"isPokeSnack": true
},
"multiplier": 1.25
}
]
},
{
"bucket": "uncommon",
"condition": {
"biomes": [
"#cobblemon:is_overworld"
],
"canSeeSky": false,
"minY": 62,
"structures": [
"#cobblemon:spawns/is_illager_structure"
],
"zone": "button_isle"
},
"id": "button_isle-meowth-alolan-7-72",
"level": "4-10",
"pokemon": "meowth alolan",
"spawnablePositionType": "grounded",
"type": "pokemon",
"weight": 144.0,
"weightMultiplier": {
"condition": {
"isPokeSnack": true
},
"multiplier": 1.25
}
},
{ {
"anticondition": { "anticondition": {
"biomes": [ "biomes": [
@@ -985,6 +1163,43 @@
"type": "pokemon", "type": "pokemon",
"weight": 20.0 "weight": 20.0
}, },
{
"bucket": "uncommon",
"condition": {
"biomes": [
"#cobblemon:is_overworld"
],
"maxSkyLight": 15,
"minSkyLight": 8,
"neededNearbyBlocks": [
"#cobblemon:berries"
],
"zone": "button_isle"
},
"id": "button_isle-morpeko-1-65",
"level": "2-10",
"pokemon": "morpeko",
"presets": [
"natural"
],
"spawnablePositionType": "grounded",
"type": "pokemon",
"weight": 80.0,
"weightMultipliers": [
{
"condition": {
"isThundering": true
},
"multiplier": 5.0
},
{
"condition": {
"isPokeSnack": true
},
"multiplier": 1.25
}
]
},
{ {
"anticondition": { "anticondition": {
"biomes": [ "biomes": [
@@ -1068,7 +1283,7 @@
"minSkyLight": 8, "minSkyLight": 8,
"zone": "button_isle" "zone": "button_isle"
}, },
"id": "button_isle-rattata-1-51", "id": "button_isle-rattata-1-50",
"level": "2-10", "level": "2-10",
"pokemon": "rattata", "pokemon": "rattata",
"presets": [ "presets": [
@@ -1101,7 +1316,7 @@
"minY": 0, "minY": 0,
"zone": "button_isle" "zone": "button_isle"
}, },
"id": "button_isle-rattata-2-52", "id": "button_isle-rattata-2-51",
"level": "2-10", "level": "2-10",
"pokemon": "rattata", "pokemon": "rattata",
"presets": [ "presets": [
@@ -1133,7 +1348,7 @@
"minY": 0, "minY": 0,
"zone": "button_isle" "zone": "button_isle"
}, },
"id": "button_isle-rattata-3-53", "id": "button_isle-rattata-3-52",
"level": "2-10", "level": "2-10",
"pokemon": "rattata", "pokemon": "rattata",
"presets": [ "presets": [
@@ -1166,7 +1381,7 @@
"minSkyLight": 0, "minSkyLight": 0,
"zone": "button_isle" "zone": "button_isle"
}, },
"id": "button_isle-rattata-alolan-4-54", "id": "button_isle-rattata-alolan-4-53",
"level": "2-10", "level": "2-10",
"pokemon": "rattata alolan", "pokemon": "rattata alolan",
"presets": [ "presets": [
@@ -1192,7 +1407,7 @@
"maxY": 0, "maxY": 0,
"zone": "button_isle" "zone": "button_isle"
}, },
"id": "button_isle-rattata-alolan-5-55", "id": "button_isle-rattata-alolan-5-54",
"level": "2-10", "level": "2-10",
"pokemon": "rattata alolan", "pokemon": "rattata alolan",
"presets": [ "presets": [
@@ -1239,7 +1454,7 @@
"minSkyLight": 8, "minSkyLight": 8,
"zone": "button_isle" "zone": "button_isle"
}, },
"id": "button_isle-scatterbug-1-49", "id": "button_isle-scatterbug-1-48",
"level": "2-10", "level": "2-10",
"pokemon": "scatterbug", "pokemon": "scatterbug",
"presets": [ "presets": [
@@ -1296,7 +1511,7 @@
], ],
"zone": "button_isle" "zone": "button_isle"
}, },
"id": "button_isle-skitty-1-42", "id": "button_isle-skitty-1-41",
"level": "2-10", "level": "2-10",
"pokemon": "skitty", "pokemon": "skitty",
"presets": [ "presets": [
@@ -1329,7 +1544,7 @@
"minSkyLight": 8, "minSkyLight": 8,
"zone": "button_isle" "zone": "button_isle"
}, },
"id": "button_isle-skitty-2-43", "id": "button_isle-skitty-2-42",
"level": "2-10", "level": "2-10",
"pokemon": "skitty", "pokemon": "skitty",
"presets": [ "presets": [
@@ -1360,7 +1575,7 @@
], ],
"zone": "button_isle" "zone": "button_isle"
}, },
"id": "button_isle-skitty-4-44", "id": "button_isle-skitty-4-43",
"level": "2-10", "level": "2-10",
"pokemon": "skitty", "pokemon": "skitty",
"presets": [ "presets": [
@@ -1387,7 +1602,7 @@
"minSkyLight": 8, "minSkyLight": 8,
"zone": "button_isle" "zone": "button_isle"
}, },
"id": "button_isle-skitty-5-45", "id": "button_isle-skitty-5-44",
"level": "2-10", "level": "2-10",
"pokemon": "skitty", "pokemon": "skitty",
"presets": [ "presets": [
@@ -1473,7 +1688,7 @@
"minSkyLight": 8, "minSkyLight": 8,
"zone": "button_isle" "zone": "button_isle"
}, },
"id": "button_isle-spewpa-1-50", "id": "button_isle-spewpa-1-49",
"level": "9-10", "level": "9-10",
"pokemon": "spewpa", "pokemon": "spewpa",
"presets": [ "presets": [
@@ -1507,7 +1722,7 @@
"timeRange": "night", "timeRange": "night",
"zone": "button_isle" "zone": "button_isle"
}, },
"id": "button_isle-spinarak-1-39", "id": "button_isle-spinarak-1-38",
"level": "2-10", "level": "2-10",
"pokemon": "spinarak", "pokemon": "spinarak",
"presets": [ "presets": [
@@ -1534,7 +1749,7 @@
"minSkyLight": 0, "minSkyLight": 0,
"zone": "button_isle" "zone": "button_isle"
}, },
"id": "button_isle-spinarak-2-40", "id": "button_isle-spinarak-2-39",
"level": "2-10", "level": "2-10",
"pokemon": "spinarak", "pokemon": "spinarak",
"presets": [ "presets": [
@@ -1560,7 +1775,7 @@
"minY": 0, "minY": 0,
"zone": "button_isle" "zone": "button_isle"
}, },
"id": "button_isle-spinarak-3-41", "id": "button_isle-spinarak-3-40",
"level": "2-10", "level": "2-10",
"pokemon": "spinarak", "pokemon": "spinarak",
"presets": [ "presets": [
@@ -1589,7 +1804,7 @@
], ],
"zone": "button_isle" "zone": "button_isle"
}, },
"id": "button_isle-sunkern-2-58", "id": "button_isle-sunkern-2-55",
"level": "2-10", "level": "2-10",
"pokemon": "sunkern", "pokemon": "sunkern",
"presets": [ "presets": [
@@ -1695,7 +1910,7 @@
], ],
"zone": "button_isle" "zone": "button_isle"
}, },
"id": "button_isle-wooper-3-59", "id": "button_isle-wooper-3-56",
"level": "2-10", "level": "2-10",
"pokemon": "wooper", "pokemon": "wooper",
"presets": [ "presets": [
@@ -1728,7 +1943,7 @@
"minSkyLight": 0, "minSkyLight": 0,
"zone": "button_isle" "zone": "button_isle"
}, },
"id": "button_isle-wooper-4-60", "id": "button_isle-wooper-4-57",
"level": "2-10", "level": "2-10",
"pokemon": "wooper", "pokemon": "wooper",
"presets": [ "presets": [
@@ -1760,7 +1975,7 @@
"minSkyLight": 0, "minSkyLight": 0,
"zone": "button_isle" "zone": "button_isle"
}, },
"id": "button_isle-wooper-8-61", "id": "button_isle-wooper-8-58",
"level": "2-10", "level": "2-10",
"pokemon": "wooper", "pokemon": "wooper",
"spawnablePositionType": "fishing", "spawnablePositionType": "fishing",
@@ -1779,7 +1994,7 @@
"canSeeSky": true, "canSeeSky": true,
"zone": "button_isle" "zone": "button_isle"
}, },
"id": "button_isle-wooper-paldean-26-64", "id": "button_isle-wooper-paldean-26-61",
"level": "2-10", "level": "2-10",
"pokemon": "wooper paldean", "pokemon": "wooper paldean",
"spawnablePositionType": "fishing", "spawnablePositionType": "fishing",
@@ -1796,7 +2011,7 @@
"minLureLevel": 1, "minLureLevel": 1,
"zone": "button_isle" "zone": "button_isle"
}, },
"id": "button_isle-wooper-paldean-27-65", "id": "button_isle-wooper-paldean-27-62",
"level": "2-10", "level": "2-10",
"pokemon": "wooper paldean", "pokemon": "wooper paldean",
"spawnablePositionType": "fishing", "spawnablePositionType": "fishing",
@@ -1824,7 +2039,7 @@
"minSkyLight": 8, "minSkyLight": 8,
"zone": "button_isle" "zone": "button_isle"
}, },
"id": "button_isle-wooper-paldean-31-66", "id": "button_isle-wooper-paldean-31-63",
"level": "2-10", "level": "2-10",
"pokemon": "wooper paldean", "pokemon": "wooper paldean",
"spawnablePositionType": "fishing", "spawnablePositionType": "fishing",
@@ -1843,7 +2058,7 @@
"minSkyLight": 8, "minSkyLight": 8,
"zone": "button_isle" "zone": "button_isle"
}, },
"id": "button_isle-wooper-paldean-32-67", "id": "button_isle-wooper-paldean-32-64",
"level": "2-10", "level": "2-10",
"pokemon": "wooper paldean", "pokemon": "wooper paldean",
"spawnablePositionType": "fishing", "spawnablePositionType": "fishing",
@@ -1874,7 +2089,7 @@
"rodType": "cobblemon:love_rod", "rodType": "cobblemon:love_rod",
"zone": "button_isle" "zone": "button_isle"
}, },
"id": "button_isle-wooper-true-15-62", "id": "button_isle-wooper-true-15-59",
"level": "2-10", "level": "2-10",
"pokemon": "wooper wooper_heart=true", "pokemon": "wooper wooper_heart=true",
"spawnablePositionType": "fishing", "spawnablePositionType": "fishing",
@@ -1898,7 +2113,7 @@
"minSkyLight": 0, "minSkyLight": 0,
"zone": "button_isle" "zone": "button_isle"
}, },
"id": "button_isle-wooper-true-17-63", "id": "button_isle-wooper-true-17-60",
"level": "2-10", "level": "2-10",
"pokemon": "wooper wooper_heart=true", "pokemon": "wooper wooper_heart=true",
"spawnablePositionType": "fishing", "spawnablePositionType": "fishing",
@@ -1949,7 +2164,7 @@
"minSkyLight": 0, "minSkyLight": 0,
"zone": "button_isle" "zone": "button_isle"
}, },
"id": "button_isle-wynaut-1-46", "id": "button_isle-wynaut-1-45",
"level": "2-10", "level": "2-10",
"pokemon": "wynaut", "pokemon": "wynaut",
"presets": [ "presets": [
@@ -5,10 +5,114 @@
"neededUninstalledMods": [], "neededUninstalledMods": [],
"spawns": [ "spawns": [
{ {
"anticondition": { "bucket": "uncommon",
"condition": {
"biomes": [ "biomes": [
"#cobblemon:is_arid" "minecraft:deep_dark"
], ],
"maxSkyLight": 15,
"structures": [
"#cobblemon:spawns/is_ruins"
],
"zone": "deep_dark"
},
"id": "deep_dark-aegislash-2-29",
"level": "45-60",
"pokemon": "aegislash",
"spawnablePositionType": "grounded",
"type": "pokemon",
"weight": 4.8
},
{
"bucket": "uncommon",
"condition": {
"biomes": [
"minecraft:deep_dark"
],
"maxSkyLight": 7,
"minY": 0,
"zone": "deep_dark"
},
"id": "deep_dark-bronzong-1-30",
"level": "45-60",
"pokemon": "bronzong",
"presets": [],
"spawnablePositionType": "grounded",
"type": "pokemon",
"weight": 12.8
},
{
"anticondition": {
"structures": [
"#cobblemon:spawns/is_jungle_monument"
]
},
"bucket": "common",
"condition": {
"biomes": [
"minecraft:deep_dark"
],
"zone": "deep_dark"
},
"id": "deep_dark-bronzong-2-31",
"level": "45-60",
"pokemon": "bronzong",
"presets": [
"jungle_pyramid"
],
"spawnablePositionType": "grounded",
"type": "pokemon",
"weight": 76.8
},
{
"bucket": "common",
"condition": {
"biomes": [
"minecraft:deep_dark"
],
"maxSkyLight": 7,
"neededNearbyBlocks": [
"#minecraft:diamond_ores"
],
"zone": "deep_dark"
},
"id": "deep_dark-carbink-1-25",
"level": "45-60",
"pokemon": "carbink",
"presets": [],
"spawnablePositionType": "grounded",
"type": "pokemon",
"weight": 800.0,
"weightMultiplier": {
"condition": {
"isPokeSnack": true
},
"multiplier": 1.25
}
},
{
"bucket": "common",
"condition": {
"biomes": [
"minecraft:deep_dark"
],
"maxSkyLight": 7,
"neededNearbyBlocks": [
"#minecraft:coal_ores",
"minecraft:rail"
],
"zone": "deep_dark"
},
"id": "deep_dark-coalossal-1-17",
"level": "45-60",
"pokemon": "coalossal",
"presets": [],
"spawnablePositionType": "grounded",
"type": "pokemon",
"weight": 1.0
},
{
"anticondition": {
"structures": [ "structures": [
"#cobblemon:spawns/is_witch_structure" "#cobblemon:spawns/is_witch_structure"
] ]
@@ -16,17 +120,13 @@
"bucket": "common", "bucket": "common",
"condition": { "condition": {
"biomes": [ "biomes": [
"#cobblemon:is_hills", "minecraft:deep_dark"
"#cobblemon:is_sky",
"#cobblemon:is_spooky",
"#cobblemon:is_taiga"
], ],
"maxSkyLight": 15, "maxSkyLight": 15,
"timeRange": "day",
"zone": "deep_dark" "zone": "deep_dark"
}, },
"id": "deep_dark-corviknight-1-5", "id": "deep_dark-corviknight-1-5",
"level": "45-50", "level": "45-60",
"pokemon": "corviknight", "pokemon": "corviknight",
"presets": [ "presets": [
"treetop" "treetop"
@@ -44,10 +144,90 @@
"bucket": "common", "bucket": "common",
"condition": { "condition": {
"biomes": [ "biomes": [
"#cobblemon:is_spooky" "minecraft:deep_dark"
],
"isRaining": false,
"maxSkyLight": 15,
"zone": "deep_dark"
},
"id": "deep_dark-crobat-1-20",
"level": "45-60",
"pokemon": "crobat",
"presets": [],
"spawnablePositionType": "grounded",
"type": "pokemon",
"weight": 0.1,
"weightMultiplier": {
"condition": {
"isPokeSnack": true
},
"multiplier": 2.0
}
},
{
"bucket": "uncommon",
"condition": {
"biomes": [
"minecraft:deep_dark"
],
"canSeeSky": false,
"zone": "deep_dark"
},
"id": "deep_dark-crobat-4-21",
"level": "45-60",
"pokemon": "crobat",
"presets": [
"derelict"
],
"spawnablePositionType": "grounded",
"type": "pokemon",
"weight": 0.48,
"weightMultipliers": [
{
"condition": {
"timeRange": "day"
},
"multiplier": 1.5
},
{
"condition": {
"isPokeSnack": true
},
"multiplier": 2.0
}
]
},
{
"bucket": "uncommon",
"condition": {
"biomes": [
"minecraft:deep_dark"
],
"maxSkyLight": 15,
"structures": [
"#cobblemon:spawns/is_ruins"
],
"zone": "deep_dark"
},
"id": "deep_dark-doublade-2-28",
"level": "45-45",
"pokemon": "doublade",
"spawnablePositionType": "grounded",
"type": "pokemon",
"weight": 71.2
},
{
"anticondition": {
"structures": [
"#cobblemon:spawns/is_graveyard"
]
},
"bucket": "common",
"condition": {
"biomes": [
"minecraft:deep_dark"
], ],
"maxSkyLight": 15, "maxSkyLight": 15,
"timeRange": "night",
"zone": "deep_dark" "zone": "deep_dark"
}, },
"id": "deep_dark-dusclops-1-0", "id": "deep_dark-dusclops-1-0",
@@ -67,20 +247,178 @@
"bucket": "common", "bucket": "common",
"condition": { "condition": {
"biomes": [ "biomes": [
"#cobblemon:is_spooky" "minecraft:deep_dark"
], ],
"maxSkyLight": 15, "maxSkyLight": 15,
"timeRange": "night",
"zone": "deep_dark" "zone": "deep_dark"
}, },
"id": "deep_dark-dusknoir-1-1", "id": "deep_dark-dusknoir-1-1",
"level": "45-53", "level": "45-60",
"pokemon": "dusknoir", "pokemon": "dusknoir",
"presets": [], "presets": [],
"spawnablePositionType": "grounded", "spawnablePositionType": "grounded",
"type": "pokemon", "type": "pokemon",
"weight": 0.3 "weight": 0.3
}, },
{
"bucket": "rare",
"condition": {
"biomes": [
"minecraft:deep_dark"
],
"isPokeSnack": true,
"maxSkyLight": 15,
"zone": "deep_dark"
},
"id": "deep_dark-gallade-1-14",
"level": "45-52",
"pokemon": "gallade",
"presets": [],
"spawnablePositionType": "grounded",
"type": "pokemon",
"weight": 0.833
},
{
"bucket": "rare",
"condition": {
"biomes": [
"minecraft:deep_dark"
],
"isPokeSnack": true,
"maxSkyLight": 15,
"zone": "deep_dark"
},
"id": "deep_dark-gardevoir-1-13",
"level": "45-60",
"pokemon": "gardevoir",
"presets": [],
"spawnablePositionType": "grounded",
"type": "pokemon",
"weight": 1.667
},
{
"bucket": "common",
"condition": {
"biomes": [
"minecraft:deep_dark"
],
"maxSkyLight": 7,
"maxY": 0,
"zone": "deep_dark"
},
"id": "deep_dark-gigalith-1-15",
"level": "45-60",
"pokemon": "gigalith",
"presets": [],
"spawnablePositionType": "grounded",
"type": "pokemon",
"weight": 0.5
},
{
"bucket": "uncommon",
"condition": {
"biomes": [
"minecraft:deep_dark"
],
"maxSkyLight": 7,
"zone": "deep_dark"
},
"id": "deep_dark-gigalith-2-16",
"level": "45-60",
"pokemon": "gigalith",
"presets": [],
"spawnablePositionType": "grounded",
"type": "pokemon",
"weight": 0.8
},
{
"bucket": "common",
"condition": {
"biomes": [
"minecraft:deep_dark"
],
"maxSkyLight": 7,
"neededNearbyBlocks": [
"#cobblemon:gemstones"
],
"zone": "deep_dark"
},
"id": "deep_dark-glimmora-1-7",
"level": "45-60",
"pokemon": "glimmora",
"presets": [],
"spawnablePositionType": "grounded",
"type": "pokemon",
"weight": 5.0,
"weightMultiplier": {
"condition": {
"isPokeSnack": true
},
"multiplier": 2.0
}
},
{
"anticondition": {
"structures": [
"#cobblemon:spawns/is_graveyard"
]
},
"bucket": "common",
"condition": {
"biomes": [
"minecraft:deep_dark"
],
"isRaining": false,
"maxSkyLight": 15,
"zone": "deep_dark"
},
"id": "deep_dark-golbat-1-18",
"level": "45-46",
"pokemon": "golbat",
"presets": [],
"spawnablePositionType": "grounded",
"type": "pokemon",
"weight": 0.9,
"weightMultiplier": {
"condition": {
"isPokeSnack": true
},
"multiplier": 2.0
}
},
{
"bucket": "uncommon",
"condition": {
"biomes": [
"minecraft:deep_dark"
],
"canSeeSky": false,
"zone": "deep_dark"
},
"id": "deep_dark-golbat-4-19",
"level": "45-46",
"pokemon": "golbat",
"presets": [
"derelict"
],
"spawnablePositionType": "grounded",
"type": "pokemon",
"weight": 4.32,
"weightMultipliers": [
{
"condition": {
"timeRange": "day"
},
"multiplier": 1.5
},
{
"condition": {
"isPokeSnack": true
},
"multiplier": 2.0
}
]
},
{ {
"anticondition": { "anticondition": {
"structures": [ "structures": [
@@ -91,14 +429,14 @@
"bucket": "common", "bucket": "common",
"condition": { "condition": {
"biomes": [ "biomes": [
"#cobblemon:is_spooky" "minecraft:deep_dark"
], ],
"isPokeSnack": true, "isPokeSnack": true,
"maxSkyLight": 15, "maxSkyLight": 15,
"zone": "deep_dark" "zone": "deep_dark"
}, },
"id": "deep_dark-honchkrow-1-4", "id": "deep_dark-honchkrow-1-4",
"level": "45-51", "level": "45-60",
"pokemon": "honchkrow", "pokemon": "honchkrow",
"presets": [ "presets": [
"treetop" "treetop"
@@ -122,15 +460,13 @@
"bucket": "common", "bucket": "common",
"condition": { "condition": {
"biomes": [ "biomes": [
"#cobblemon:is_spooky", "minecraft:deep_dark"
"#cobblemon:is_taiga"
], ],
"maxSkyLight": 15, "maxSkyLight": 15,
"timeRange": "night",
"zone": "deep_dark" "zone": "deep_dark"
}, },
"id": "deep_dark-houndstone-1-2", "id": "deep_dark-houndstone-1-2",
"level": "45-49", "level": "45-60",
"pokemon": "houndstone", "pokemon": "houndstone",
"presets": [], "presets": [],
"spawnablePositionType": "grounded", "spawnablePositionType": "grounded",
@@ -144,84 +480,262 @@
} }
}, },
{ {
"anticondition": { "bucket": "common",
"condition": {
"biomes": [ "biomes": [
"#cobblemon:is_coast", "minecraft:deep_dark"
"#cobblemon:is_ocean",
"minecraft:sulfur_caves"
], ],
"zone": "deep_dark"
},
"id": "deep_dark-klinklang-2-9",
"level": "49-60",
"pokemon": "klinklang",
"presets": [
"redstone"
],
"spawnablePositionType": "grounded",
"type": "pokemon",
"weight": 0.1,
"weightMultiplier": {
"condition": {
"isPokeSnack": true
},
"multiplier": 2.0
}
},
{
"bucket": "common",
"condition": {
"biomes": [
"minecraft:deep_dark"
],
"maxSkyLight": 15,
"zone": "deep_dark"
},
"id": "deep_dark-mabosstiff-1-23",
"level": "45-60",
"pokemon": "mabosstiff",
"presets": [
"urban"
],
"spawnablePositionType": "grounded",
"type": "pokemon",
"weight": 4.8,
"weightMultiplier": {
"condition": {
"isPokeSnack": true
},
"multiplier": 1.25
}
},
{
"anticondition": {
"minLureLevel": 1 "minLureLevel": 1
}, },
"bucket": "common", "bucket": "common",
"condition": { "condition": {
"biomes": [ "biomes": [
"#cobblemon:is_overworld" "minecraft:deep_dark"
], ],
"isSlimeChunk": true, "isSlimeChunk": true,
"zone": "deep_dark" "zone": "deep_dark"
}, },
"id": "deep_dark-milotic-1-6", "id": "deep_dark-milotic-1-6",
"level": "45-54", "level": "45-60",
"pokemon": "milotic", "pokemon": "milotic",
"spawnablePositionType": "fishing", "spawnablePositionType": "fishing",
"type": "pokemon", "type": "pokemon",
"weight": 3.0 "weight": 3.0
}, },
{
"anticondition": {
"biomes": [
"#cobblemon:is_coast",
"#cobblemon:is_ocean",
"minecraft:sulfur_caves"
]
},
"bucket": "common",
"condition": {
"biomes": [
"#cobblemon:is_overworld"
],
"isSlimeChunk": true,
"minLureLevel": 1,
"zone": "deep_dark"
},
"id": "deep_dark-milotic-2-7",
"level": "45-54",
"pokemon": "milotic",
"spawnablePositionType": "fishing",
"type": "pokemon",
"weight": 5.0,
"weightMultipliers": [
{
"condition": {
"maxLureLevel": 2,
"minLureLevel": 2
},
"multiplier": 3.0
},
{
"condition": {
"minLureLevel": 3
},
"multiplier": 5.0
}
]
},
{ {
"bucket": "rare", "bucket": "rare",
"condition": { "condition": {
"biomes": [ "biomes": [
"#cobblemon:is_spooky" "minecraft:deep_dark"
], ],
"maxSkyLight": 15, "maxSkyLight": 15,
"zone": "deep_dark" "zone": "deep_dark"
}, },
"id": "deep_dark-mimikyu-1-3", "id": "deep_dark-mimikyu-1-3",
"level": "45-48", "level": "45-60",
"pokemon": "mimikyu", "pokemon": "mimikyu",
"presets": [], "presets": [],
"spawnablePositionType": "grounded", "spawnablePositionType": "grounded",
"type": "pokemon", "type": "pokemon",
"weight": 100.0 "weight": 100.0
},
{
"bucket": "uncommon",
"condition": {
"biomes": [
"minecraft:deep_dark"
],
"maxSkyLight": 15,
"zone": "deep_dark"
},
"id": "deep_dark-mrmime-1-10",
"level": "45-46",
"pokemon": "mrmime",
"presets": [
"urban"
],
"spawnablePositionType": "grounded",
"type": "pokemon",
"weight": 11.84,
"weightMultiplier": {
"condition": {
"isPokeSnack": true
},
"multiplier": 1.25
}
},
{
"bucket": "uncommon",
"condition": {
"biomes": [
"minecraft:deep_dark"
],
"maxSkyLight": 15,
"zone": "deep_dark"
},
"id": "deep_dark-mrmime-galarian-4-11",
"level": "45-46",
"pokemon": "mrmime galarian",
"presets": [
"urban"
],
"spawnablePositionType": "grounded",
"type": "pokemon",
"weight": 11.424,
"weightMultiplier": {
"condition": {
"isPokeSnack": true
},
"multiplier": 1.25
}
},
{
"bucket": "uncommon",
"condition": {
"biomes": [
"minecraft:deep_dark"
],
"maxSkyLight": 15,
"zone": "deep_dark"
},
"id": "deep_dark-mrrime-1-12",
"level": "45-60",
"pokemon": "mrrime",
"presets": [
"urban"
],
"spawnablePositionType": "grounded",
"type": "pokemon",
"weight": 0.416
},
{
"bucket": "uncommon",
"condition": {
"biomes": [
"minecraft:deep_dark"
],
"maxSkyLight": 7,
"zone": "deep_dark"
},
"id": "deep_dark-probopass-1-8",
"level": "45-60",
"pokemon": "probopass",
"presets": [],
"spawnablePositionType": "grounded",
"type": "pokemon",
"weight": 4.8
},
{
"bucket": "uncommon",
"condition": {
"biomes": [
"minecraft:deep_dark"
],
"maxSkyLight": 15,
"zone": "deep_dark"
},
"id": "deep_dark-revavroom-1-24",
"level": "45-60",
"pokemon": "revavroom",
"presets": [],
"spawnablePositionType": "grounded",
"type": "pokemon",
"weight": 7.68,
"weightMultiplier": {
"condition": {
"isPokeSnack": true
},
"multiplier": 1.25
}
},
{
"bucket": "uncommon",
"condition": {
"biomes": [
"minecraft:deep_dark"
],
"maxSkyLight": 7,
"zone": "deep_dark"
},
"id": "deep_dark-steelix-1-22",
"level": "45-60",
"pokemon": "steelix",
"presets": [],
"spawnablePositionType": "grounded",
"type": "pokemon",
"weight": 4.8
},
{
"bucket": "rare",
"condition": {
"biomes": [
"minecraft:deep_dark"
],
"maxSkyLight": 7,
"zone": "deep_dark"
},
"id": "deep_dark-zweilous-1-26",
"level": "50-60",
"pokemon": "zweilous",
"presets": [],
"spawnablePositionType": "grounded",
"type": "pokemon",
"weight": 18.0,
"weightMultiplier": {
"condition": {
"isPokeSnack": true
},
"multiplier": 1.25
}
},
{
"bucket": "ultra-rare",
"condition": {
"biomes": [
"minecraft:deep_dark"
],
"maxSkyLight": 7,
"maxY": 0,
"zone": "deep_dark"
},
"id": "deep_dark-zweilous-2-27",
"level": "50-60",
"pokemon": "zweilous",
"presets": [],
"spawnablePositionType": "grounded",
"type": "pokemon",
"weight": 28.8,
"weightMultiplier": {
"condition": {
"isPokeSnack": true
},
"multiplier": 1.25
}
} }
] ]
} }
@@ -700,7 +700,7 @@
"zone": "deep_sea" "zone": "deep_sea"
}, },
"id": "deep_sea-dragalge-1-121", "id": "deep_sea-dragalge-1-121",
"level": "48-49", "level": "48-50",
"pokemon": "dragalge", "pokemon": "dragalge",
"presets": [ "presets": [
"water" "water"
@@ -725,7 +725,7 @@
"zone": "deep_sea" "zone": "deep_sea"
}, },
"id": "deep_sea-dragalge-2-122", "id": "deep_sea-dragalge-2-122",
"level": "48-49", "level": "48-50",
"pokemon": "dragalge", "pokemon": "dragalge",
"presets": [ "presets": [
"water" "water"
@@ -748,7 +748,7 @@
"zone": "deep_sea" "zone": "deep_sea"
}, },
"id": "deep_sea-dragalge-4-123", "id": "deep_sea-dragalge-4-123",
"level": "48-49", "level": "48-50",
"pokemon": "dragalge", "pokemon": "dragalge",
"spawnablePositionType": "fishing", "spawnablePositionType": "fishing",
"type": "pokemon", "type": "pokemon",
@@ -785,7 +785,7 @@
"zone": "deep_sea" "zone": "deep_sea"
}, },
"id": "deep_sea-dragalge-5-124", "id": "deep_sea-dragalge-5-124",
"level": "48-49", "level": "48-50",
"pokemon": "dragalge", "pokemon": "dragalge",
"spawnablePositionType": "fishing", "spawnablePositionType": "fishing",
"type": "pokemon", "type": "pokemon",
@@ -1344,7 +1344,7 @@
"zone": "deep_sea" "zone": "deep_sea"
}, },
"id": "deep_sea-huntail-1-3", "id": "deep_sea-huntail-1-3",
"level": "30-49", "level": "30-50",
"pokemon": "huntail", "pokemon": "huntail",
"presets": [ "presets": [
"water" "water"
@@ -1369,7 +1369,7 @@
"zone": "deep_sea" "zone": "deep_sea"
}, },
"id": "deep_sea-huntail-3-4", "id": "deep_sea-huntail-3-4",
"level": "30-49", "level": "30-50",
"pokemon": "huntail", "pokemon": "huntail",
"spawnablePositionType": "fishing", "spawnablePositionType": "fishing",
"type": "pokemon", "type": "pokemon",
@@ -1388,7 +1388,7 @@
"zone": "deep_sea" "zone": "deep_sea"
}, },
"id": "deep_sea-huntail-4-5", "id": "deep_sea-huntail-4-5",
"level": "30-49", "level": "30-50",
"pokemon": "huntail", "pokemon": "huntail",
"presets": [ "presets": [
"water" "water"
@@ -1415,7 +1415,7 @@
"zone": "deep_sea" "zone": "deep_sea"
}, },
"id": "deep_sea-huntail-6-6", "id": "deep_sea-huntail-6-6",
"level": "30-49", "level": "30-50",
"pokemon": "huntail", "pokemon": "huntail",
"spawnablePositionType": "fishing", "spawnablePositionType": "fishing",
"type": "pokemon", "type": "pokemon",
@@ -1433,7 +1433,7 @@
"zone": "deep_sea" "zone": "deep_sea"
}, },
"id": "deep_sea-jellicent-1-22", "id": "deep_sea-jellicent-1-22",
"level": "40-48", "level": "40-50",
"pokemon": "jellicent", "pokemon": "jellicent",
"presets": [ "presets": [
"water" "water"
@@ -1464,7 +1464,7 @@
"zone": "deep_sea" "zone": "deep_sea"
}, },
"id": "deep_sea-jellicent-2-23", "id": "deep_sea-jellicent-2-23",
"level": "40-48", "level": "40-50",
"pokemon": "jellicent", "pokemon": "jellicent",
"presets": [ "presets": [
"water" "water"
@@ -1487,7 +1487,7 @@
"zone": "deep_sea" "zone": "deep_sea"
}, },
"id": "deep_sea-jellicent-3-24", "id": "deep_sea-jellicent-3-24",
"level": "40-48", "level": "40-50",
"pokemon": "jellicent", "pokemon": "jellicent",
"presets": [ "presets": [
"water" "water"
@@ -1514,7 +1514,7 @@
"zone": "deep_sea" "zone": "deep_sea"
}, },
"id": "deep_sea-jellicent-5-25", "id": "deep_sea-jellicent-5-25",
"level": "40-48", "level": "40-50",
"pokemon": "jellicent", "pokemon": "jellicent",
"spawnablePositionType": "fishing", "spawnablePositionType": "fishing",
"type": "pokemon", "type": "pokemon",
@@ -1549,7 +1549,7 @@
"zone": "deep_sea" "zone": "deep_sea"
}, },
"id": "deep_sea-jellicent-6-26", "id": "deep_sea-jellicent-6-26",
"level": "40-48", "level": "40-50",
"pokemon": "jellicent", "pokemon": "jellicent",
"spawnablePositionType": "fishing", "spawnablePositionType": "fishing",
"type": "pokemon", "type": "pokemon",
@@ -1587,7 +1587,7 @@
"zone": "deep_sea" "zone": "deep_sea"
}, },
"id": "deep_sea-kilowattrel-1-79", "id": "deep_sea-kilowattrel-1-79",
"level": "30-49", "level": "30-50",
"pokemon": "kilowattrel", "pokemon": "kilowattrel",
"presets": [ "presets": [
"natural" "natural"
@@ -1615,7 +1615,7 @@
"zone": "deep_sea" "zone": "deep_sea"
}, },
"id": "deep_sea-kilowattrel-2-80", "id": "deep_sea-kilowattrel-2-80",
"level": "30-49", "level": "30-50",
"pokemon": "kilowattrel", "pokemon": "kilowattrel",
"spawnablePositionType": "grounded", "spawnablePositionType": "grounded",
"type": "pokemon", "type": "pokemon",
@@ -1648,7 +1648,7 @@
"zone": "deep_sea" "zone": "deep_sea"
}, },
"id": "deep_sea-kilowattrel-5-81", "id": "deep_sea-kilowattrel-5-81",
"level": "30-49", "level": "30-50",
"pokemon": "kilowattrel", "pokemon": "kilowattrel",
"presets": [ "presets": [
"water" "water"
@@ -1682,7 +1682,7 @@
"zone": "deep_sea" "zone": "deep_sea"
}, },
"id": "deep_sea-kilowattrel-6-82", "id": "deep_sea-kilowattrel-6-82",
"level": "30-49", "level": "30-50",
"pokemon": "kilowattrel", "pokemon": "kilowattrel",
"spawnablePositionType": "fishing", "spawnablePositionType": "fishing",
"type": "pokemon", "type": "pokemon",
@@ -1713,7 +1713,7 @@
"zone": "deep_sea" "zone": "deep_sea"
}, },
"id": "deep_sea-kilowattrel-7-83", "id": "deep_sea-kilowattrel-7-83",
"level": "30-49", "level": "30-50",
"pokemon": "kilowattrel", "pokemon": "kilowattrel",
"spawnablePositionType": "fishing", "spawnablePositionType": "fishing",
"type": "pokemon", "type": "pokemon",
@@ -1936,7 +1936,7 @@
"zone": "deep_sea" "zone": "deep_sea"
}, },
"id": "deep_sea-mantine-1-42", "id": "deep_sea-mantine-1-42",
"level": "30-49", "level": "30-50",
"pokemon": "mantine", "pokemon": "mantine",
"presets": [ "presets": [
"water" "water"
@@ -1960,7 +1960,7 @@
"zone": "deep_sea" "zone": "deep_sea"
}, },
"id": "deep_sea-mantine-2-43", "id": "deep_sea-mantine-2-43",
"level": "30-49", "level": "30-50",
"pokemon": "mantine", "pokemon": "mantine",
"presets": [ "presets": [
"water" "water"
@@ -1986,7 +1986,7 @@
"zone": "deep_sea" "zone": "deep_sea"
}, },
"id": "deep_sea-mantine-3-44", "id": "deep_sea-mantine-3-44",
"level": "30-49", "level": "30-50",
"pokemon": "mantine", "pokemon": "mantine",
"spawnablePositionType": "fishing", "spawnablePositionType": "fishing",
"type": "pokemon", "type": "pokemon",
@@ -2009,7 +2009,7 @@
"zone": "deep_sea" "zone": "deep_sea"
}, },
"id": "deep_sea-mantine-4-45", "id": "deep_sea-mantine-4-45",
"level": "30-49", "level": "30-50",
"pokemon": "mantine", "pokemon": "mantine",
"spawnablePositionType": "fishing", "spawnablePositionType": "fishing",
"type": "pokemon", "type": "pokemon",
@@ -2041,7 +2041,7 @@
"zone": "deep_sea" "zone": "deep_sea"
}, },
"id": "deep_sea-mantine-5-46", "id": "deep_sea-mantine-5-46",
"level": "30-49", "level": "30-50",
"pokemon": "mantine", "pokemon": "mantine",
"spawnablePositionType": "fishing", "spawnablePositionType": "fishing",
"type": "pokemon", "type": "pokemon",
@@ -2066,7 +2066,7 @@
"zone": "deep_sea" "zone": "deep_sea"
}, },
"id": "deep_sea-mantine-6-47", "id": "deep_sea-mantine-6-47",
"level": "30-49", "level": "30-50",
"pokemon": "mantine", "pokemon": "mantine",
"spawnablePositionType": "fishing", "spawnablePositionType": "fishing",
"type": "pokemon", "type": "pokemon",
@@ -2245,7 +2245,7 @@
"zone": "deep_sea" "zone": "deep_sea"
}, },
"id": "deep_sea-octillery-1-58", "id": "deep_sea-octillery-1-58",
"level": "30-48", "level": "30-50",
"pokemon": "octillery", "pokemon": "octillery",
"presets": [ "presets": [
"water" "water"
@@ -2264,7 +2264,7 @@
"zone": "deep_sea" "zone": "deep_sea"
}, },
"id": "deep_sea-octillery-2-59", "id": "deep_sea-octillery-2-59",
"level": "30-48", "level": "30-50",
"pokemon": "octillery", "pokemon": "octillery",
"spawnablePositionType": "fishing", "spawnablePositionType": "fishing",
"type": "pokemon", "type": "pokemon",
@@ -2282,7 +2282,7 @@
"zone": "deep_sea" "zone": "deep_sea"
}, },
"id": "deep_sea-octillery-3-60", "id": "deep_sea-octillery-3-60",
"level": "30-48", "level": "30-50",
"pokemon": "octillery", "pokemon": "octillery",
"spawnablePositionType": "fishing", "spawnablePositionType": "fishing",
"type": "pokemon", "type": "pokemon",
@@ -3220,7 +3220,7 @@
"zone": "deep_sea" "zone": "deep_sea"
}, },
"id": "deep_sea-veluza-1-61", "id": "deep_sea-veluza-1-61",
"level": "30-48", "level": "30-50",
"pokemon": "veluza", "pokemon": "veluza",
"presets": [ "presets": [
"water" "water"
@@ -3242,7 +3242,7 @@
"zone": "deep_sea" "zone": "deep_sea"
}, },
"id": "deep_sea-veluza-2-62", "id": "deep_sea-veluza-2-62",
"level": "30-48", "level": "30-50",
"pokemon": "veluza", "pokemon": "veluza",
"presets": [ "presets": [
"water" "water"
@@ -3264,7 +3264,7 @@
"zone": "deep_sea" "zone": "deep_sea"
}, },
"id": "deep_sea-veluza-4-63", "id": "deep_sea-veluza-4-63",
"level": "30-48", "level": "30-50",
"pokemon": "veluza", "pokemon": "veluza",
"spawnablePositionType": "fishing", "spawnablePositionType": "fishing",
"type": "pokemon", "type": "pokemon",
@@ -3281,7 +3281,7 @@
"zone": "deep_sea" "zone": "deep_sea"
}, },
"id": "deep_sea-veluza-5-64", "id": "deep_sea-veluza-5-64",
"level": "30-48", "level": "30-50",
"pokemon": "veluza", "pokemon": "veluza",
"spawnablePositionType": "fishing", "spawnablePositionType": "fishing",
"type": "pokemon", "type": "pokemon",
@@ -3308,7 +3308,7 @@
"zone": "deep_sea" "zone": "deep_sea"
}, },
"id": "deep_sea-veluza-6-65", "id": "deep_sea-veluza-6-65",
"level": "30-48", "level": "30-50",
"pokemon": "veluza", "pokemon": "veluza",
"spawnablePositionType": "fishing", "spawnablePositionType": "fishing",
"type": "pokemon", "type": "pokemon",
@@ -3327,7 +3327,7 @@
"zone": "deep_sea" "zone": "deep_sea"
}, },
"id": "deep_sea-veluza-7-66", "id": "deep_sea-veluza-7-66",
"level": "30-48", "level": "30-50",
"pokemon": "veluza", "pokemon": "veluza",
"spawnablePositionType": "fishing", "spawnablePositionType": "fishing",
"type": "pokemon", "type": "pokemon",
File diff suppressed because it is too large. Load diff
@@ -23,7 +23,7 @@
"zone": "frostpeak" "zone": "frostpeak"
}, },
"id": "frostpeak-abomasnow-2-66", "id": "frostpeak-abomasnow-2-66",
"level": "40-49", "level": "40-55",
"pokemon": "abomasnow", "pokemon": "abomasnow",
"presets": [ "presets": [
"natural", "natural",
@@ -46,7 +46,7 @@
"zone": "frostpeak" "zone": "frostpeak"
}, },
"id": "frostpeak-annihilape-1-56", "id": "frostpeak-annihilape-1-56",
"level": "40-54", "level": "40-55",
"pokemon": "annihilape", "pokemon": "annihilape",
"presets": [ "presets": [
"natural", "natural",
@@ -112,7 +112,7 @@
"zone": "frostpeak" "zone": "frostpeak"
}, },
"id": "frostpeak-aromatisse-1-19", "id": "frostpeak-aromatisse-1-19",
"level": "40-46", "level": "40-55",
"pokemon": "aromatisse", "pokemon": "aromatisse",
"presets": [ "presets": [
"natural" "natural"
@@ -140,7 +140,7 @@
"zone": "frostpeak" "zone": "frostpeak"
}, },
"id": "frostpeak-basculegion-5-82", "id": "frostpeak-basculegion-5-82",
"level": "41-53", "level": "41-55",
"pokemon": "basculegion", "pokemon": "basculegion",
"spawnablePositionType": "fishing", "spawnablePositionType": "fishing",
"type": "pokemon", "type": "pokemon",
@@ -167,7 +167,7 @@
"zone": "frostpeak" "zone": "frostpeak"
}, },
"id": "frostpeak-basculegion-7-83", "id": "frostpeak-basculegion-7-83",
"level": "41-53", "level": "41-55",
"pokemon": "basculegion", "pokemon": "basculegion",
"spawnablePositionType": "fishing", "spawnablePositionType": "fishing",
"type": "pokemon", "type": "pokemon",
@@ -545,7 +545,7 @@
"zone": "frostpeak" "zone": "frostpeak"
}, },
"id": "frostpeak-cherrim-1-2", "id": "frostpeak-cherrim-1-2",
"level": "40-45", "level": "40-55",
"pokemon": "cherrim", "pokemon": "cherrim",
"presets": [ "presets": [
"natural", "natural",
@@ -573,7 +573,7 @@
"zone": "frostpeak" "zone": "frostpeak"
}, },
"id": "frostpeak-cherrim-3-4", "id": "frostpeak-cherrim-3-4",
"level": "40-45", "level": "40-55",
"pokemon": "cherrim", "pokemon": "cherrim",
"presets": [ "presets": [
"natural", "natural",
@@ -601,7 +601,7 @@
"zone": "frostpeak" "zone": "frostpeak"
}, },
"id": "frostpeak-cherrim-sunshine-2-3", "id": "frostpeak-cherrim-sunshine-2-3",
"level": "40-45", "level": "40-55",
"pokemon": "cherrim blossom_form=sunshine", "pokemon": "cherrim blossom_form=sunshine",
"presets": [ "presets": [
"natural", "natural",
@@ -627,7 +627,7 @@
"zone": "frostpeak" "zone": "frostpeak"
}, },
"id": "frostpeak-chesnaught-1-27", "id": "frostpeak-chesnaught-1-27",
"level": "40-53", "level": "40-55",
"pokemon": "chesnaught", "pokemon": "chesnaught",
"presets": [ "presets": [
"natural" "natural"
@@ -661,7 +661,7 @@
"zone": "frostpeak" "zone": "frostpeak"
}, },
"id": "frostpeak-copperajah-1-43", "id": "frostpeak-copperajah-1-43",
"level": "40-50", "level": "40-55",
"pokemon": "copperajah", "pokemon": "copperajah",
"presets": [ "presets": [
"natural", "natural",
@@ -688,7 +688,7 @@
"zone": "frostpeak" "zone": "frostpeak"
}, },
"id": "frostpeak-cryogonal-1-7", "id": "frostpeak-cryogonal-1-7",
"level": "40-52", "level": "40-55",
"pokemon": "cryogonal", "pokemon": "cryogonal",
"presets": [ "presets": [
"natural" "natural"
@@ -751,7 +751,7 @@
"zone": "frostpeak" "zone": "frostpeak"
}, },
"id": "frostpeak-decidueye-1-31", "id": "frostpeak-decidueye-1-31",
"level": "40-53", "level": "40-55",
"pokemon": "decidueye", "pokemon": "decidueye",
"presets": [ "presets": [
"natural", "natural",
@@ -811,7 +811,7 @@
"zone": "frostpeak" "zone": "frostpeak"
}, },
"id": "frostpeak-dubwool-1-70", "id": "frostpeak-dubwool-1-70",
"level": "40-49", "level": "40-55",
"pokemon": "dubwool", "pokemon": "dubwool",
"presets": [ "presets": [
"natural" "natural"
@@ -881,7 +881,7 @@
"zone": "frostpeak" "zone": "frostpeak"
}, },
"id": "frostpeak-eldegoss-1-9", "id": "frostpeak-eldegoss-1-9",
"level": "40-46", "level": "40-55",
"pokemon": "eldegoss", "pokemon": "eldegoss",
"presets": [ "presets": [
"natural" "natural"
@@ -951,7 +951,7 @@
"zone": "frostpeak" "zone": "frostpeak"
}, },
"id": "frostpeak-electivire-1-49", "id": "frostpeak-electivire-1-49",
"level": "45-54", "level": "45-55",
"pokemon": "electivire", "pokemon": "electivire",
"presets": [ "presets": [
"natural" "natural"
@@ -1058,7 +1058,7 @@
"zone": "frostpeak" "zone": "frostpeak"
}, },
"id": "frostpeak-frosmoth-1-14", "id": "frostpeak-frosmoth-1-14",
"level": "40-48", "level": "40-55",
"pokemon": "frosmoth", "pokemon": "frosmoth",
"spawnablePositionType": "grounded", "spawnablePositionType": "grounded",
"type": "pokemon", "type": "pokemon",
@@ -1091,7 +1091,7 @@
"zone": "frostpeak" "zone": "frostpeak"
}, },
"id": "frostpeak-glalie-2-15", "id": "frostpeak-glalie-2-15",
"level": "42-48", "level": "42-55",
"pokemon": "glalie", "pokemon": "glalie",
"presets": [ "presets": [
"natural" "natural"
@@ -1123,7 +1123,7 @@
"zone": "frostpeak" "zone": "frostpeak"
}, },
"id": "frostpeak-gogoat-1-63", "id": "frostpeak-gogoat-1-63",
"level": "40-53", "level": "40-55",
"pokemon": "gogoat", "pokemon": "gogoat",
"presets": [ "presets": [
"natural" "natural"
@@ -1149,7 +1149,7 @@
"zone": "frostpeak" "zone": "frostpeak"
}, },
"id": "frostpeak-grumpig-1-33", "id": "frostpeak-grumpig-1-33",
"level": "40-47", "level": "40-55",
"pokemon": "grumpig", "pokemon": "grumpig",
"presets": [ "presets": [
"natural", "natural",
@@ -1176,7 +1176,7 @@
"zone": "frostpeak" "zone": "frostpeak"
}, },
"id": "frostpeak-hariyama-1-54", "id": "frostpeak-hariyama-1-54",
"level": "40-47", "level": "40-55",
"pokemon": "hariyama", "pokemon": "hariyama",
"presets": [ "presets": [
"natural" "natural"
@@ -1208,7 +1208,7 @@
"zone": "frostpeak" "zone": "frostpeak"
}, },
"id": "frostpeak-haxorus-1-40", "id": "frostpeak-haxorus-1-40",
"level": "48-54", "level": "48-55",
"pokemon": "haxorus", "pokemon": "haxorus",
"presets": [ "presets": [
"natural", "natural",
@@ -1261,7 +1261,7 @@
"zone": "frostpeak" "zone": "frostpeak"
}, },
"id": "frostpeak-hitmonlee-1-36", "id": "frostpeak-hitmonlee-1-36",
"level": "40-46", "level": "40-55",
"pokemon": "hitmonlee", "pokemon": "hitmonlee",
"presets": [ "presets": [
"natural" "natural"
@@ -1320,7 +1320,7 @@
"zone": "frostpeak" "zone": "frostpeak"
}, },
"id": "frostpeak-infernape-1-42", "id": "frostpeak-infernape-1-42",
"level": "40-53", "level": "40-55",
"pokemon": "infernape", "pokemon": "infernape",
"presets": [ "presets": [
"natural", "natural",
@@ -1341,7 +1341,7 @@
"zone": "frostpeak" "zone": "frostpeak"
}, },
"id": "frostpeak-jynx-1-13", "id": "frostpeak-jynx-1-13",
"level": "40-46", "level": "40-55",
"pokemon": "jynx", "pokemon": "jynx",
"presets": [ "presets": [
"natural", "natural",
@@ -1377,7 +1377,7 @@
"zone": "frostpeak" "zone": "frostpeak"
}, },
"id": "frostpeak-lucario-1-58", "id": "frostpeak-lucario-1-58",
"level": "40-53", "level": "40-55",
"pokemon": "lucario", "pokemon": "lucario",
"presets": [ "presets": [
"natural", "natural",
@@ -1406,7 +1406,7 @@
"zone": "frostpeak" "zone": "frostpeak"
}, },
"id": "frostpeak-lycanroc-dusk-3-61", "id": "frostpeak-lycanroc-dusk-3-61",
"level": "40-49", "level": "40-55",
"pokemon": "lycanroc wolf_form=dusk", "pokemon": "lycanroc wolf_form=dusk",
"presets": [ "presets": [
"natural", "natural",
@@ -1435,7 +1435,7 @@
"zone": "frostpeak" "zone": "frostpeak"
}, },
"id": "frostpeak-lycanroc-midday-1-59", "id": "frostpeak-lycanroc-midday-1-59",
"level": "40-49", "level": "40-55",
"pokemon": "lycanroc wolf_form=midday", "pokemon": "lycanroc wolf_form=midday",
"presets": [ "presets": [
"natural", "natural",
@@ -1464,7 +1464,7 @@
"zone": "frostpeak" "zone": "frostpeak"
}, },
"id": "frostpeak-lycanroc-midnight-2-60", "id": "frostpeak-lycanroc-midnight-2-60",
"level": "40-49", "level": "40-55",
"pokemon": "lycanroc wolf_form=midnight", "pokemon": "lycanroc wolf_form=midnight",
"presets": [ "presets": [
"natural", "natural",
@@ -1491,7 +1491,7 @@
"zone": "frostpeak" "zone": "frostpeak"
}, },
"id": "frostpeak-machamp-1-29", "id": "frostpeak-machamp-1-29",
"level": "40-51", "level": "40-55",
"pokemon": "machamp", "pokemon": "machamp",
"presets": [ "presets": [
"natural" "natural"
@@ -1545,7 +1545,7 @@
"zone": "frostpeak" "zone": "frostpeak"
}, },
"id": "frostpeak-meganium-1-6", "id": "frostpeak-meganium-1-6",
"level": "40-53", "level": "40-55",
"pokemon": "meganium", "pokemon": "meganium",
"presets": [ "presets": [
"natural" "natural"
@@ -1566,7 +1566,7 @@
"zone": "frostpeak" "zone": "frostpeak"
}, },
"id": "frostpeak-meowscarada-1-18", "id": "frostpeak-meowscarada-1-18",
"level": "40-53", "level": "40-55",
"pokemon": "meowscarada", "pokemon": "meowscarada",
"presets": [ "presets": [
"natural" "natural"
@@ -1598,7 +1598,7 @@
"zone": "frostpeak" "zone": "frostpeak"
}, },
"id": "frostpeak-mienshao-1-10", "id": "frostpeak-mienshao-1-10",
"level": "50-51", "level": "50-55",
"pokemon": "mienshao", "pokemon": "mienshao",
"presets": [ "presets": [
"natural", "natural",
@@ -1627,7 +1627,7 @@
"zone": "frostpeak" "zone": "frostpeak"
}, },
"id": "frostpeak-minior-1-57", "id": "frostpeak-minior-1-57",
"level": "40-50", "level": "40-55",
"pokemon": "minior", "pokemon": "minior",
"presets": [ "presets": [
"natural" "natural"
@@ -1809,7 +1809,7 @@
"zone": "frostpeak" "zone": "frostpeak"
}, },
"id": "frostpeak-rhyperior-1-12", "id": "frostpeak-rhyperior-1-12",
"level": "44-54", "level": "44-55",
"pokemon": "rhyperior", "pokemon": "rhyperior",
"presets": [ "presets": [
"natural", "natural",
@@ -1864,7 +1864,7 @@
"zone": "frostpeak" "zone": "frostpeak"
}, },
"id": "frostpeak-roserade-1-1", "id": "frostpeak-roserade-1-1",
"level": "40-52", "level": "40-55",
"pokemon": "roserade", "pokemon": "roserade",
"presets": [ "presets": [
"natural" "natural"
@@ -1920,7 +1920,7 @@
"zone": "frostpeak" "zone": "frostpeak"
}, },
"id": "frostpeak-sawk-1-62", "id": "frostpeak-sawk-1-62",
"level": "40-47", "level": "40-55",
"pokemon": "sawk", "pokemon": "sawk",
"presets": [ "presets": [
"natural" "natural"
@@ -1995,7 +1995,7 @@
"zone": "frostpeak" "zone": "frostpeak"
}, },
"id": "frostpeak-sneasler-1-65", "id": "frostpeak-sneasler-1-65",
"level": "40-51", "level": "40-55",
"pokemon": "sneasler", "pokemon": "sneasler",
"presets": [ "presets": [
"natural", "natural",
@@ -2053,7 +2053,7 @@
"zone": "frostpeak" "zone": "frostpeak"
}, },
"id": "frostpeak-staraptor-1-34", "id": "frostpeak-staraptor-1-34",
"level": "40-49", "level": "40-55",
"pokemon": "staraptor", "pokemon": "staraptor",
"presets": [ "presets": [
"natural", "natural",
@@ -2074,7 +2074,7 @@
"zone": "frostpeak" "zone": "frostpeak"
}, },
"id": "frostpeak-throh-1-67", "id": "frostpeak-throh-1-67",
"level": "40-47", "level": "40-55",
"pokemon": "throh", "pokemon": "throh",
"presets": [ "presets": [
"natural" "natural"
@@ -2108,7 +2108,7 @@
"zone": "frostpeak" "zone": "frostpeak"
}, },
"id": "frostpeak-togedemaru-1-35", "id": "frostpeak-togedemaru-1-35",
"level": "40-44", "level": "40-55",
"pokemon": "togedemaru", "pokemon": "togedemaru",
"presets": [ "presets": [
"natural", "natural",
@@ -2334,7 +2334,7 @@
"zone": "frostpeak" "zone": "frostpeak"
}, },
"id": "frostpeak-vanilluxe-1-24", "id": "frostpeak-vanilluxe-1-24",
"level": "47-54", "level": "47-55",
"pokemon": "vanilluxe", "pokemon": "vanilluxe",
"presets": [ "presets": [
"natural" "natural"
@@ -2369,7 +2369,7 @@
"zone": "frostpeak" "zone": "frostpeak"
}, },
"id": "frostpeak-vanilluxe-2-25", "id": "frostpeak-vanilluxe-2-25",
"level": "47-54", "level": "47-55",
"pokemon": "vanilluxe", "pokemon": "vanilluxe",
"presets": [ "presets": [
"natural" "natural"
@@ -716,6 +716,55 @@
} }
] ]
}, },
{
"bucket": "common",
"condition": {
"biomes": [
"#cobblemon:is_forest",
"#cobblemon:is_sky",
"#cobblemon:is_taiga"
],
"maxSkyLight": 15,
"minSkyLight": 8,
"timeRange": "day",
"zone": "highlands"
},
"id": "highlands-fletchinder-1-29",
"level": "25-35",
"pokemon": "fletchinder",
"presets": [
"natural",
"treetop"
],
"spawnablePositionType": "grounded",
"type": "pokemon",
"weight": 5.4
},
{
"bucket": "common",
"condition": {
"biomes": [
"#cobblemon:is_forest",
"#cobblemon:is_sky",
"#cobblemon:is_taiga"
],
"isPokeSnack": true,
"maxSkyLight": 15,
"minSkyLight": 8,
"timeRange": "day",
"zone": "highlands"
},
"id": "highlands-fletchling-1-28",
"level": "25-28",
"pokemon": "fletchling",
"presets": [
"natural",
"treetop"
],
"spawnablePositionType": "grounded",
"type": "pokemon",
"weight": 18.0
},
{ {
"anticondition": { "anticondition": {
"biomes": [ "biomes": [
@@ -986,7 +1035,7 @@
"zone": "highlands" "zone": "highlands"
}, },
"id": "highlands-golett-2-126", "id": "highlands-golett-2-126",
"level": "25-30", "level": "25-35",
"pokemon": "golett", "pokemon": "golett",
"presets": [ "presets": [
"natural" "natural"
@@ -1059,7 +1108,7 @@
"minSkyLight": 8, "minSkyLight": 8,
"zone": "highlands" "zone": "highlands"
}, },
"id": "highlands-jigglypuff-1-28", "id": "highlands-jigglypuff-1-31",
"level": "25-27", "level": "25-27",
"pokemon": "jigglypuff", "pokemon": "jigglypuff",
"presets": [ "presets": [
@@ -1090,7 +1139,7 @@
"minSkyLight": 8, "minSkyLight": 8,
"zone": "highlands" "zone": "highlands"
}, },
"id": "highlands-jigglypuff-2-29", "id": "highlands-jigglypuff-2-32",
"level": "25-27", "level": "25-27",
"pokemon": "jigglypuff", "pokemon": "jigglypuff",
"presets": [ "presets": [
@@ -1161,34 +1210,6 @@
"type": "pokemon", "type": "pokemon",
"weight": 23.75 "weight": 23.75
}, },
{
"anticondition": {
"biomes": [
"#cobblemon:is_freezing",
"#cobblemon:is_spooky"
]
},
"bucket": "common",
"condition": {
"biomes": [
"#cobblemon:is_forest"
],
"isPokeSnack": true,
"maxSkyLight": 15,
"minSkyLight": 8,
"zone": "highlands"
},
"id": "highlands-leavanny-3-39",
"level": "33-35",
"pokemon": "leavanny",
"presets": [
"natural",
"wild"
],
"spawnablePositionType": "grounded",
"type": "pokemon",
"weight": 0.6
},
{ {
"anticondition": { "anticondition": {
"biomes": [ "biomes": [
@@ -1459,7 +1480,7 @@
"minSkyLight": 8, "minSkyLight": 8,
"zone": "highlands" "zone": "highlands"
}, },
"id": "highlands-mudbray-1-32", "id": "highlands-mudbray-1-35",
"level": "25-35", "level": "25-35",
"pokemon": "mudbray", "pokemon": "mudbray",
"presets": [ "presets": [
@@ -1487,7 +1508,7 @@
"minSkyLight": 8, "minSkyLight": 8,
"zone": "highlands" "zone": "highlands"
}, },
"id": "highlands-mudsdale-1-33", "id": "highlands-mudsdale-1-36",
"level": "30-35", "level": "30-35",
"pokemon": "mudsdale", "pokemon": "mudsdale",
"presets": [ "presets": [
@@ -2480,7 +2501,7 @@
"minSkyLight": 8, "minSkyLight": 8,
"zone": "highlands" "zone": "highlands"
}, },
"id": "highlands-ponyta-1-34", "id": "highlands-ponyta-1-37",
"level": "25-35", "level": "25-35",
"pokemon": "ponyta", "pokemon": "ponyta",
"presets": [ "presets": [
@@ -2507,7 +2528,7 @@
"minSkyLight": 8, "minSkyLight": 8,
"zone": "highlands" "zone": "highlands"
}, },
"id": "highlands-ponyta-galarian-3-35", "id": "highlands-ponyta-galarian-3-38",
"level": "25-35", "level": "25-35",
"pokemon": "ponyta galarian", "pokemon": "ponyta galarian",
"presets": [ "presets": [
@@ -2937,7 +2958,7 @@
"minSkyLight": 8, "minSkyLight": 8,
"zone": "highlands" "zone": "highlands"
}, },
"id": "highlands-seviper-1-36", "id": "highlands-seviper-1-39",
"level": "25-35", "level": "25-35",
"pokemon": "seviper", "pokemon": "seviper",
"presets": [ "presets": [
@@ -2954,34 +2975,6 @@
"multiplier": 1.5 "multiplier": 1.5
} }
}, },
{
"anticondition": {
"biomes": [
"#cobblemon:is_freezing",
"#cobblemon:is_spooky"
]
},
"bucket": "common",
"condition": {
"biomes": [
"#cobblemon:is_forest"
],
"isPokeSnack": true,
"maxSkyLight": 15,
"minSkyLight": 8,
"zone": "highlands"
},
"id": "highlands-sewaddle-1-37",
"level": "25-31",
"pokemon": "sewaddle",
"presets": [
"natural",
"wild"
],
"spawnablePositionType": "grounded",
"type": "pokemon",
"weight": 54.0
},
{ {
"anticondition": { "anticondition": {
"biomes": [ "biomes": [
@@ -3369,32 +3362,28 @@
] ]
}, },
{ {
"anticondition": {
"biomes": [
"#cobblemon:is_freezing",
"#cobblemon:is_spooky"
]
},
"bucket": "common", "bucket": "common",
"condition": { "condition": {
"biomes": [ "biomes": [
"#cobblemon:is_forest" "#cobblemon:is_forest",
"#cobblemon:is_sky",
"#cobblemon:is_taiga"
], ],
"isPokeSnack": true,
"maxSkyLight": 15, "maxSkyLight": 15,
"minSkyLight": 8, "minSkyLight": 8,
"timeRange": "day",
"zone": "highlands" "zone": "highlands"
}, },
"id": "highlands-swadloon-2-38", "id": "highlands-talonflame-1-30",
"level": "25-35", "level": "35-35",
"pokemon": "swadloon", "pokemon": "talonflame",
"presets": [ "presets": [
"natural", "natural",
"wild" "treetop"
], ],
"spawnablePositionType": "grounded", "spawnablePositionType": "grounded",
"type": "pokemon", "type": "pokemon",
"weight": 5.4 "weight": 0.6
}, },
{ {
"anticondition": { "anticondition": {
@@ -3857,7 +3846,7 @@
"minSkyLight": 8, "minSkyLight": 8,
"zone": "highlands" "zone": "highlands"
}, },
"id": "highlands-wigglytuff-1-30", "id": "highlands-wigglytuff-1-33",
"level": "25-35", "level": "25-35",
"pokemon": "wigglytuff", "pokemon": "wigglytuff",
"presets": [ "presets": [
@@ -3888,7 +3877,7 @@
"minSkyLight": 8, "minSkyLight": 8,
"zone": "highlands" "zone": "highlands"
}, },
"id": "highlands-wigglytuff-2-31", "id": "highlands-wigglytuff-2-34",
"level": "25-35", "level": "25-35",
"pokemon": "wigglytuff", "pokemon": "wigglytuff",
"presets": [ "presets": [
File diff suppressed because it is too large. Load diff
@@ -8,7 +8,7 @@
"bucket": "ultra-rare", "bucket": "ultra-rare",
"condition": { "condition": {
"biomes": [ "biomes": [
"#cobblemon:is_lush" "minecraft:lush_caves"
], ],
"maxSkyLight": 7, "maxSkyLight": 7,
"zone": "lush_caves" "zone": "lush_caves"
@@ -25,7 +25,7 @@
"bucket": "ultra-rare", "bucket": "ultra-rare",
"condition": { "condition": {
"biomes": [ "biomes": [
"#cobblemon:is_lush" "minecraft:lush_caves"
], ],
"maxSkyLight": 7, "maxSkyLight": 7,
"zone": "lush_caves" "zone": "lush_caves"
@@ -42,7 +42,7 @@
"bucket": "ultra-rare", "bucket": "ultra-rare",
"condition": { "condition": {
"biomes": [ "biomes": [
"#cobblemon:is_lush" "minecraft:lush_caves"
], ],
"maxSkyLight": 7, "maxSkyLight": 7,
"zone": "lush_caves" "zone": "lush_caves"
@@ -61,7 +61,7 @@
"bucket": "ultra-rare", "bucket": "ultra-rare",
"condition": { "condition": {
"biomes": [ "biomes": [
"#cobblemon:is_lush" "minecraft:lush_caves"
], ],
"maxSkyLight": 7, "maxSkyLight": 7,
"zone": "lush_caves" "zone": "lush_caves"
@@ -75,34 +75,84 @@
"weight": 60.0 "weight": 60.0
}, },
{ {
"anticondition": { "bucket": "common",
"maxY": 9, "condition": {
"minY": -41, "biomes": [
"structures": [ "minecraft:lush_caves"
"cobblemon:shipwreck_coves/lush_shipwreck_cove" ],
] "isPokeSnack": true,
"zone": "lush_caves"
}, },
"id": "lush_caves-barboach-1-28",
"level": "12-28",
"pokemon": "barboach",
"presets": [
"water"
],
"spawnablePositionType": "submerged",
"type": "pokemon",
"weight": 54.0
},
{
"bucket": "uncommon", "bucket": "uncommon",
"condition": { "condition": {
"biomes": [ "biomes": [
"#cobblemon:is_lush" "minecraft:lush_caves"
], ],
"isPokeSnack": true,
"maxSkyLight": 7, "maxSkyLight": 7,
"zone": "lush_caves" "zone": "lush_caves"
}, },
"id": "lush_caves-carnivine-2-21", "id": "lush_caves-barboach-2-29",
"level": "12-28",
"pokemon": "barboach",
"presets": [
"water"
],
"spawnablePositionType": "submerged",
"type": "pokemon",
"weight": 84.0
},
{
"bucket": "common",
"condition": {
"biomes": [
"minecraft:lush_caves"
],
"zone": "lush_caves"
},
"id": "lush_caves-barboach-4-30",
"level": "12-28",
"pokemon": "barboach",
"spawnablePositionType": "fishing",
"type": "pokemon",
"weight": 90.0
},
{
"bucket": "uncommon",
"condition": {
"biomes": [
"minecraft:lush_caves"
],
"maxSkyLight": 15,
"zone": "lush_caves"
},
"id": "lush_caves-carnivine-1-21",
"level": "20-28", "level": "20-28",
"pokemon": "carnivine", "pokemon": "carnivine",
"presets": [], "presets": [
"treetop",
"foliage"
],
"spawnablePositionType": "grounded", "spawnablePositionType": "grounded",
"type": "pokemon", "type": "pokemon",
"weight": 20.0 "weight": 100.0
}, },
{ {
"bucket": "ultra-rare", "bucket": "ultra-rare",
"condition": { "condition": {
"biomes": [ "biomes": [
"#cobblemon:is_lush" "minecraft:lush_caves"
], ],
"maxSkyLight": 15, "maxSkyLight": 15,
"zone": "lush_caves" "zone": "lush_caves"
@@ -115,6 +165,30 @@
"type": "pokemon", "type": "pokemon",
"weight": 60.0 "weight": 60.0
}, },
{
"anticondition": {
"neededNearbyBlocks": [
"#cobblemon:saccharine_trees"
]
},
"bucket": "common",
"condition": {
"biomes": [
"minecraft:lush_caves"
],
"isPokeSnack": true,
"isRaining": false,
"maxSkyLight": 15,
"zone": "lush_caves"
},
"id": "lush_caves-cutiefly-1-26",
"level": "12-28",
"pokemon": "cutiefly",
"presets": [],
"spawnablePositionType": "grounded",
"type": "pokemon",
"weight": 54.0
},
{ {
"anticondition": { "anticondition": {
"maxY": 9, "maxY": 9,
@@ -126,7 +200,7 @@
"bucket": "common", "bucket": "common",
"condition": { "condition": {
"biomes": [ "biomes": [
"#cobblemon:is_lush" "minecraft:lush_caves"
], ],
"maxSkyLight": 7, "maxSkyLight": 7,
"zone": "lush_caves" "zone": "lush_caves"
@@ -145,11 +219,59 @@
"multiplier": 2.0 "multiplier": 2.0
} }
}, },
{
"bucket": "common",
"condition": {
"biomes": [
"minecraft:lush_caves"
],
"maxSkyLight": 15,
"zone": "lush_caves"
},
"id": "lush_caves-granbull-1-33",
"level": "23-28",
"pokemon": "granbull",
"presets": [
"urban"
],
"spawnablePositionType": "grounded",
"type": "pokemon",
"weight": 4.8,
"weightMultiplier": {
"condition": {
"isPokeSnack": true
},
"multiplier": 1.25
}
},
{
"bucket": "common",
"condition": {
"biomes": [
"minecraft:lush_caves"
],
"maxSkyLight": 15,
"zone": "lush_caves"
},
"id": "lush_caves-joltik-1-31",
"level": "12-28",
"pokemon": "joltik",
"presets": [],
"spawnablePositionType": "grounded",
"type": "pokemon",
"weight": 54.0,
"weightMultiplier": {
"condition": {
"isThundering": true
},
"multiplier": 5.0
}
},
{ {
"bucket": "ultra-rare", "bucket": "ultra-rare",
"condition": { "condition": {
"biomes": [ "biomes": [
"#cobblemon:is_lush" "minecraft:lush_caves"
], ],
"maxSkyLight": 7, "maxSkyLight": 7,
"zone": "lush_caves" "zone": "lush_caves"
@@ -166,7 +288,7 @@
"bucket": "ultra-rare", "bucket": "ultra-rare",
"condition": { "condition": {
"biomes": [ "biomes": [
"#cobblemon:is_lush" "minecraft:lush_caves"
], ],
"maxSkyLight": 7, "maxSkyLight": 7,
"zone": "lush_caves" "zone": "lush_caves"
@@ -185,7 +307,7 @@
"bucket": "ultra-rare", "bucket": "ultra-rare",
"condition": { "condition": {
"biomes": [ "biomes": [
"#cobblemon:is_lush" "minecraft:lush_caves"
], ],
"maxSkyLight": 7, "maxSkyLight": 7,
"zone": "lush_caves" "zone": "lush_caves"
@@ -204,7 +326,7 @@
"bucket": "ultra-rare", "bucket": "ultra-rare",
"condition": { "condition": {
"biomes": [ "biomes": [
"#cobblemon:is_lush" "minecraft:lush_caves"
], ],
"maxSkyLight": 7, "maxSkyLight": 7,
"zone": "lush_caves" "zone": "lush_caves"
@@ -220,22 +342,15 @@
"weight": 60.0 "weight": 60.0
}, },
{ {
"anticondition": {
"maxY": 9,
"minY": -41,
"structures": [
"cobblemon:shipwreck_coves/lush_shipwreck_cove"
]
},
"bucket": "common", "bucket": "common",
"condition": { "condition": {
"biomes": [ "biomes": [
"#cobblemon:is_lush" "minecraft:lush_caves"
], ],
"maxSkyLight": 7, "maxLight": 7,
"zone": "lush_caves" "zone": "lush_caves"
}, },
"id": "lush_caves-morelull-2-22", "id": "lush_caves-morelull-1-22",
"level": "12-28", "level": "12-28",
"pokemon": "morelull", "pokemon": "morelull",
"presets": [], "presets": [],
@@ -253,7 +368,7 @@
"bucket": "ultra-rare", "bucket": "ultra-rare",
"condition": { "condition": {
"biomes": [ "biomes": [
"#cobblemon:is_lush" "minecraft:lush_caves"
], ],
"maxSkyLight": 7, "maxSkyLight": 7,
"zone": "lush_caves" "zone": "lush_caves"
@@ -270,7 +385,7 @@
"bucket": "ultra-rare", "bucket": "ultra-rare",
"condition": { "condition": {
"biomes": [ "biomes": [
"#cobblemon:is_lush" "minecraft:lush_caves"
], ],
"maxSkyLight": 7, "maxSkyLight": 7,
"zone": "lush_caves" "zone": "lush_caves"
@@ -296,7 +411,7 @@
"bucket": "uncommon", "bucket": "uncommon",
"condition": { "condition": {
"biomes": [ "biomes": [
"#cobblemon:is_lush" "minecraft:lush_caves"
], ],
"maxSkyLight": 7, "maxSkyLight": 7,
"zone": "lush_caves" "zone": "lush_caves"
@@ -326,7 +441,7 @@
"bucket": "uncommon", "bucket": "uncommon",
"condition": { "condition": {
"biomes": [ "biomes": [
"#cobblemon:is_lush" "minecraft:lush_caves"
], ],
"maxSkyLight": 7, "maxSkyLight": 7,
"zone": "lush_caves" "zone": "lush_caves"
@@ -345,11 +460,35 @@
"multiplier": 2.0 "multiplier": 2.0
} }
}, },
{
"anticondition": {
"neededNearbyBlocks": [
"#cobblemon:saccharine_trees"
]
},
"bucket": "common",
"condition": {
"biomes": [
"minecraft:lush_caves"
],
"isPokeSnack": true,
"isRaining": false,
"maxSkyLight": 15,
"zone": "lush_caves"
},
"id": "lush_caves-ribombee-1-27",
"level": "25-28",
"pokemon": "ribombee",
"presets": [],
"spawnablePositionType": "grounded",
"type": "pokemon",
"weight": 6.0
},
{ {
"bucket": "ultra-rare", "bucket": "ultra-rare",
"condition": { "condition": {
"biomes": [ "biomes": [
"#cobblemon:is_lush" "minecraft:lush_caves"
], ],
"maxSkyLight": 15, "maxSkyLight": 15,
"zone": "lush_caves" "zone": "lush_caves"
@@ -363,22 +502,15 @@
"weight": 60.0 "weight": 60.0
}, },
{ {
"anticondition": {
"maxY": 9,
"minY": -41,
"structures": [
"cobblemon:shipwreck_coves/lush_shipwreck_cove"
]
},
"bucket": "common", "bucket": "common",
"condition": { "condition": {
"biomes": [ "biomes": [
"#cobblemon:is_lush" "minecraft:lush_caves"
], ],
"maxSkyLight": 7, "maxLight": 7,
"zone": "lush_caves" "zone": "lush_caves"
}, },
"id": "lush_caves-shiinotic-2-23", "id": "lush_caves-shiinotic-1-23",
"level": "24-28", "level": "24-28",
"pokemon": "shiinotic", "pokemon": "shiinotic",
"presets": [], "presets": [],
@@ -403,7 +535,7 @@
"bucket": "uncommon", "bucket": "uncommon",
"condition": { "condition": {
"biomes": [ "biomes": [
"#cobblemon:is_lush" "minecraft:lush_caves"
], ],
"maxSkyLight": 7, "maxSkyLight": 7,
"zone": "lush_caves" "zone": "lush_caves"
@@ -428,7 +560,7 @@
"bucket": "uncommon", "bucket": "uncommon",
"condition": { "condition": {
"biomes": [ "biomes": [
"#cobblemon:is_lush" "minecraft:lush_caves"
], ],
"maxSkyLight": 7, "maxSkyLight": 7,
"zone": "lush_caves" "zone": "lush_caves"
@@ -451,7 +583,7 @@
"bucket": "common", "bucket": "common",
"condition": { "condition": {
"biomes": [ "biomes": [
"#cobblemon:is_lush" "minecraft:lush_caves"
], ],
"maxSkyLight": 7, "maxSkyLight": 7,
"minLureLevel": 1, "minLureLevel": 1,
@@ -470,11 +602,30 @@
"multiplier": 3.0 "multiplier": 3.0
} }
}, },
{
"bucket": "common",
"condition": {
"biomes": [
"minecraft:lush_caves"
],
"maxSkyLight": 15,
"zone": "lush_caves"
},
"id": "lush_caves-snubbull-1-32",
"level": "12-28",
"pokemon": "snubbull",
"presets": [
"urban"
],
"spawnablePositionType": "grounded",
"type": "pokemon",
"weight": 54.0
},
{ {
"bucket": "ultra-rare", "bucket": "ultra-rare",
"condition": { "condition": {
"biomes": [ "biomes": [
"#cobblemon:is_lush" "minecraft:lush_caves"
], ],
"maxSkyLight": 7, "maxSkyLight": 7,
"zone": "lush_caves" "zone": "lush_caves"
@@ -491,7 +642,7 @@
"bucket": "ultra-rare", "bucket": "ultra-rare",
"condition": { "condition": {
"biomes": [ "biomes": [
"#cobblemon:is_lush" "minecraft:lush_caves"
], ],
"maxSkyLight": 7, "maxSkyLight": 7,
"zone": "lush_caves" "zone": "lush_caves"
@@ -506,11 +657,44 @@
"type": "pokemon", "type": "pokemon",
"weight": 60.0 "weight": 60.0
}, },
{
"bucket": "common",
"condition": {
"biomes": [
"minecraft:lush_caves"
],
"maxSkyLight": 15,
"zone": "lush_caves"
},
"id": "lush_caves-trubbish-1-34",
"level": "12-28",
"pokemon": "trubbish",
"presets": [
"urban"
],
"spawnablePositionType": "grounded",
"type": "pokemon",
"weight": 14.4,
"weightMultipliers": [
{
"condition": {
"timeRange": "night"
},
"multiplier": 5.0
},
{
"condition": {
"isPokeSnack": true
},
"multiplier": 1.25
}
]
},
{ {
"bucket": "ultra-rare", "bucket": "ultra-rare",
"condition": { "condition": {
"biomes": [ "biomes": [
"#cobblemon:is_lush" "minecraft:lush_caves"
], ],
"maxSkyLight": 7, "maxSkyLight": 7,
"zone": "lush_caves" "zone": "lush_caves"
@@ -524,25 +708,20 @@
"weight": 60.0 "weight": 60.0
}, },
{ {
"anticondition": {
"maxY": 9,
"minY": -41,
"structures": [
"cobblemon:shipwreck_coves/lush_shipwreck_cove"
]
},
"bucket": "common", "bucket": "common",
"condition": { "condition": {
"biomes": [ "biomes": [
"#cobblemon:is_lush" "minecraft:lush_caves"
], ],
"maxSkyLight": 7, "maxSkyLight": 15,
"zone": "lush_caves" "zone": "lush_caves"
}, },
"id": "lush_caves-venipede-3-24", "id": "lush_caves-venipede-1-24",
"level": "12-26", "level": "12-26",
"pokemon": "venipede", "pokemon": "venipede",
"presets": [], "presets": [
"wild"
],
"spawnablePositionType": "grounded", "spawnablePositionType": "grounded",
"type": "pokemon", "type": "pokemon",
"weight": 9.0, "weight": 9.0,
@@ -554,25 +733,20 @@
} }
}, },
{ {
"anticondition": {
"maxY": 9,
"minY": -41,
"structures": [
"cobblemon:shipwreck_coves/lush_shipwreck_cove"
]
},
"bucket": "common", "bucket": "common",
"condition": { "condition": {
"biomes": [ "biomes": [
"#cobblemon:is_lush" "minecraft:lush_caves"
], ],
"maxSkyLight": 7, "maxSkyLight": 15,
"zone": "lush_caves" "zone": "lush_caves"
}, },
"id": "lush_caves-whirlipede-3-25", "id": "lush_caves-whirlipede-1-25",
"level": "22-28", "level": "22-28",
"pokemon": "whirlipede", "pokemon": "whirlipede",
"presets": [], "presets": [
"wild"
],
"spawnablePositionType": "grounded", "spawnablePositionType": "grounded",
"type": "pokemon", "type": "pokemon",
"weight": 1.8, "weight": 1.8,
File diff suppressed because it is too large. Load diff
@@ -1862,7 +1862,7 @@
"zone": "shallows" "zone": "shallows"
}, },
"id": "shallows-wishiwashi-1-69", "id": "shallows-wishiwashi-1-69",
"level": "5-18", "level": "5-20",
"pokemon": "wishiwashi", "pokemon": "wishiwashi",
"presets": [ "presets": [
"water" "water"
@@ -1884,7 +1884,7 @@
"zone": "shallows" "zone": "shallows"
}, },
"id": "shallows-wishiwashi-2-70", "id": "shallows-wishiwashi-2-70",
"level": "5-18", "level": "5-20",
"pokemon": "wishiwashi", "pokemon": "wishiwashi",
"presets": [ "presets": [
"water" "water"
@@ -1904,7 +1904,7 @@
"zone": "shallows" "zone": "shallows"
}, },
"id": "shallows-wishiwashi-3-71", "id": "shallows-wishiwashi-3-71",
"level": "5-18", "level": "5-20",
"pokemon": "wishiwashi", "pokemon": "wishiwashi",
"spawnablePositionType": "fishing", "spawnablePositionType": "fishing",
"type": "pokemon", "type": "pokemon",
@@ -1923,7 +1923,7 @@
"zone": "shallows" "zone": "shallows"
}, },
"id": "shallows-wishiwashi-4-72", "id": "shallows-wishiwashi-4-72",
"level": "5-18", "level": "5-20",
"pokemon": "wishiwashi", "pokemon": "wishiwashi",
"spawnablePositionType": "fishing", "spawnablePositionType": "fishing",
"type": "pokemon", "type": "pokemon",
File diff suppressed because it is too large. Load diff
@@ -596,7 +596,7 @@
"zone": "sunscorch" "zone": "sunscorch"
}, },
"id": "sunscorch-fearow-1-33", "id": "sunscorch-fearow-1-33",
"level": "30-44", "level": "30-45",
"pokemon": "fearow", "pokemon": "fearow",
"presets": [ "presets": [
"natural", "natural",
@@ -905,7 +905,7 @@
"zone": "sunscorch" "zone": "sunscorch"
}, },
"id": "sunscorch-larvesta-1-51", "id": "sunscorch-larvesta-1-51",
"level": "30-36", "level": "30-45",
"pokemon": "larvesta", "pokemon": "larvesta",
"presets": [ "presets": [
"natural", "natural",
@@ -935,7 +935,7 @@
"zone": "sunscorch" "zone": "sunscorch"
}, },
"id": "sunscorch-larvesta-2-52", "id": "sunscorch-larvesta-2-52",
"level": "30-36", "level": "30-45",
"pokemon": "larvesta", "pokemon": "larvesta",
"presets": [ "presets": [
"natural" "natural"
@@ -1040,7 +1040,7 @@
"zone": "sunscorch" "zone": "sunscorch"
}, },
"id": "sunscorch-marowak-1-42", "id": "sunscorch-marowak-1-42",
"level": "30-43", "level": "30-45",
"pokemon": "marowak", "pokemon": "marowak",
"presets": [ "presets": [
"natural", "natural",
@@ -1165,7 +1165,7 @@
"zone": "sunscorch" "zone": "sunscorch"
}, },
"id": "sunscorch-pawniard-2-16", "id": "sunscorch-pawniard-2-16",
"level": "30-34", "level": "30-45",
"pokemon": "pawniard", "pokemon": "pawniard",
"presets": [ "presets": [
"natural", "natural",
File diff suppressed because it is too large. Load diff
@@ -1 +1 @@
{"_comment":"Generated by tools/zone_layout.py from world/zones.json; do not edit by hand.","seed":"isle-26","radius":1700,"step":24,"size":142,"zones":[{"id":"button_isle","name":"Button Isle","levels":[2,10]},{"id":"frostpeak","name":"Frostpeak Range","levels":[40,55]},{"id":"sunscorch","name":"Sunscorch","levels":[30,45]},{"id":"mire","name":"Mangrove Mire","levels":[25,38]},{"id":"jungle","name":"Verdant Jungle","levels":[18,30]},{"id":"highlands","name":"Highland Meadows","levels":[25,35]},{"id":"westmarch","name":"Westmarch","levels":[15,25]},{"id":"southwold","name":"Southwold","levels":[8,18]},{"id":"shallows","name":"Shallows","levels":[5,20]},{"id":"deep_sea","name":"Deep Sea","levels":[30,50]}],"caves":[{"id":"lush_caves","name":"Lush Caves","levels":[12,28],"biome":"minecraft:lush_caves"},{"id":"dripstone","name":"Dripstone Depths","levels":[22,38],"biome":"minecraft:dripstone_caves"},{"id":"deep_dark","name":"Deep Dark","levels":[45,60],"biome":"minecraft:deep_dark"},{"id":"basalt","name":"Basalt Furnace","levels":[55,70],"biome":"minecraft:basalt_deltas"}],"level_pressure":{"grace_levels":5,"per_level":0.1,"minimum":0.1},"samples":{"button_isle":[-116,null,-92],"frostpeak":[628,null,-572],"sunscorch":[1372,null,-236],"mire":[652,null,1012],"jungle":[844,null,196],"highlands":[100,null,-1076],"westmarch":[-428,null,-1100],"southwold":[-116,null,1108],"shallows":[1468,null,4],"deep_sea":[-1316,null,4],"lush_caves":[-1028,0,292],"dripstone":[940,40,-212],"deep_dark":[484,-52,-1124],"basalt":[1252,0,508]},"biome_samples":{"frostpeak":[580,null,-524],"sunscorch":[-44,null,-452],"mire":[652,null,1012],"jungle":[844,null,196]},"grid_rle":[[9,912],[8,22],[9,115],[8,32],[9,106],[8,40],[9,99],[8,18],[5,13],[8,15],[9,96],[8,12],[6,1],[5,22],[1,2],[8,12],[9,92],[8,9],[6,5],[5,27],[1,1],[8,10],[9,90],[8,8],[6,6],[5,29],[1,1],[8,10],[9,85],[8,7],[6,10],[5,21],[1,3],[5,7],[1,1],[5,1],[8,10],[9,80],[8,6],[6,1],[8,1],[6,11],[5,20],[1,8],[5,2],[1,2],[5,2],[8,11],[9,76],[8,5],[6,2],[8,1],[6,13],[5,19],[1,11],[5,5],[8,1],[5,2],[8,8],[9,73],[8,5],[6,2],[8,1],[6,15],[5,18],[1,11],[5,12],[8,7],[9,60],[8,2],[9,7],[8,5],[6,1],[8,2],[6,17],[5,18],[1,9],[5,15],[8,8],[9,57],[8,3],[9,5],[8,5],[6,2],[2,4],[6,16],[5,18],[1,6],[5,20],[8,7],[9,55],[8,12],[6,5],[2,2],[6,17],[5,46],[8,7],[9,52],[8,12],[6,6],[2,1],[6,19],[5,47],[8,6],[9,49],[8,12],[6,8],[2,1],[6,19],[5,25],[1,5],[5,18],[8,6],[9,47],[8,11],[6,1],[8,1],[6,27],[5,26],[1,6],[5,19],[8,5],[9,45],[8,10],[2,1],[8,2],[2,1],[6,27],[5,24],[1,8],[5,20],[8,6],[9,42],[8,9],[2,7],[6,26],[5,24],[1,9],[5,20],[8,6],[9,40],[8,9],[2,8],[6,26],[5,24],[1,11],[5,19],[8,6],[9,39],[8,8],[2,9],[6,26],[5,23],[1,5],[5,1],[1,5],[5,21],[8,5],[9,40],[8,6],[2,10],[6,26],[5,23],[1,12],[5,21],[8,5],[9,39],[8,5],[2,10],[6,27],[5,23],[1,13],[5,21],[8,5],[9,37],[8,5],[2,12],[6,26],[5,26],[1,10],[5,22],[8,5],[9,35],[8,5],[2,11],[6,28],[5,27],[1,7],[5,25],[8,5],[9,34],[8,5],[2,10],[6,29],[5,28],[1,5],[5,27],[8,5],[9,32],[8,5],[2,1],[6,2],[2,4],[6,33],[5,29],[1,3],[5,29],[8,4],[9,31],[8,5],[6,41],[5,62],[8,4],[9,30],[8,4],[6,42],[5,20],[1,1],[5,42],[8,4],[9,28],[8,5],[6,42],[5,16],[1,3],[5,1],[1,5],[5,38],[8,4],[9,27],[8,5],[6,43],[5,12],[1,18],[5,11],[1,1],[5,22],[8,4],[9,26],[8,5],[6,43],[5,12],[1,17],[5,3],[1,4],[5,2],[1,1],[5,2],[1,1],[5,22],[8,4],[9,25],[8,5],[6,44],[5,12],[1,18],[5,1],[1,5],[5,1],[1,3],[5,1],[1,1],[5,23],[8,4],[9,24],[8,4],[6,45],[5,12],[1,11],[5,1],[1,6],[5,1],[1,3],[5,2],[1,4],[5,25],[8,4],[9,23],[8,5],[6,44],[5,5],[1,1],[5,7],[1,13],[5,1],[1,2],[5,7],[1,2],[5,1],[1,2],[5,26],[8,4],[9,22],[8,4],[6,45],[5,4],[1,4],[5,5],[1,9],[5,2],[1,2],[5,9],[1,8],[5,24],[8,4],[9,21],[8,4],[2,3],[6,44],[5,1],[1,8],[5,3],[1,7],[5,4],[1,1],[5,9],[1,9],[5,24],[8,5],[9,20],[8,4],[2,4],[6,43],[5,1],[1,8],[5,4],[1,5],[5,3],[1,3],[5,9],[1,9],[5,25],[8,4],[9,19],[8,4],[2,5],[6,43],[1,9],[5,4],[1,10],[5,10],[1,9],[5,25],[8,5],[9,1],[8,1],[9,16],[8,4],[6,48],[1,10],[5,4],[1,3],[5,2],[1,3],[5,10],[1,10],[5,26],[8,6],[9,16],[8,4],[6,48],[1,10],[5,3],[2,1],[5,1],[2,2],[5,15],[1,9],[5,27],[8,7],[9,14],[8,4],[6,49],[1,9],[2,7],[5,16],[1,9],[5,4],[1,3],[5,21],[8,6],[9,14],[8,4],[6,48],[1,9],[2,8],[5,16],[1,9],[5,3],[1,4],[5,21],[8,6],[9,14],[8,3],[6,49],[1,7],[2,10],[5,16],[1,9],[5,3],[1,5],[5,20],[2,1],[8,6],[9,12],[8,4],[6,50],[1,5],[2,11],[5,16],[1,9],[5,3],[1,5],[5,19],[2,2],[8,6],[9,12],[8,4],[6,50],[5,2],[1,2],[2,13],[5,15],[1,10],[5,3],[1,4],[5,18],[2,3],[8,6],[9,12],[8,3],[6,51],[5,3],[2,12],[1,4],[5,14],[1,10],[5,23],[2,4],[8,7],[9,10],[8,4],[6,51],[5,3],[2,11],[1,5],[5,15],[1,9],[5,23],[2,5],[8,6],[9,10],[8,3],[6,52],[5,3],[2,11],[1,1],[5,2],[1,3],[5,15],[1,10],[5,20],[2,6],[8,6],[9,10],[8,3],[6,52],[5,3],[2,3],[8,3],[9,3],[8,2],[1,1],[5,3],[1,1],[5,16],[1,12],[5,17],[2,7],[8,6],[9,12],[8,1],[4,2],[6,50],[5,3],[2,1],[8,6],[9,2],[8,5],[5,1],[1,1],[5,16],[1,3],[5,5],[1,5],[5,15],[2,8],[5,1],[8,1],[9,1],[8,3],[9,7],[8,3],[9,2],[8,1],[4,5],[6,47],[5,1],[8,1],[9,2],[8,6],[9,3],[8,6],[5,6],[4,1],[5,9],[Line truncated {"_comment":"Generated by tools/zone_layout.py from world/zones.json; do not edit by hand.","seed":"isle-26","radius":1700,"step":24,"size":142,"zones":[{"id":"button_isle","name":"Button Isle","levels":[2,10]},{"id":"frostpeak","name":"Frostpeak Range","levels":[40,55]},{"id":"sunscorch","name":"Sunscorch","levels":[30,45]},{"id":"mire","name":"Mangrove Mire","levels":[25,38]},{"id":"jungle","name":"Verdant Jungle","levels":[18,30]},{"id":"highlands","name":"Highland Meadows","levels":[25,35]},{"id":"westmarch","name":"Westmarch","levels":[15,25]},{"id":"southwold","name":"Southwold","levels":[8,18]},{"id":"shallows","name":"Shallows","levels":[5,20]},{"id":"deep_sea","name":"Deep Sea","levels":[30,50]}],"caves":[{"id":"lush_caves","name":"Lush Caves","levels":[12,28],"biome":"minecraft:lush_caves"},{"id":"dripstone","name":"Dripstone Depths","levels":[22,38],"biome":"minecraft:dripstone_caves"},{"id":"deep_dark","name":"Deep Dark","levels":[45,60],"biome":"minecraft:deep_dark"},{"id":"basalt","name":"Basalt Furnace","levels":[55,70],"biome":"minecraft:basalt_deltas"}],"level_pressure":{"grace_levels":5,"per_level":0.1,"minimum":0.1},"wanderers":{"grace_levels":10},"samples":{"button_isle":[-116,null,-92],"frostpeak":[628,null,-572],"sunscorch":[1372,null,-236],"mire":[652,null,1012],"jungle":[844,null,196],"highlands":[100,null,-1076],"westmarch":[-428,null,-1100],"southwold":[-116,null,1108],"shallows":[1468,null,4],"deep_sea":[-1316,null,4],"lush_caves":[-1028,0,292],"dripstone":[940,40,-212],"deep_dark":[484,-52,-1124],"basalt":[1252,0,508]},"biome_samples":{"frostpeak":[580,null,-524],"sunscorch":[-44,null,-452],"mire":[652,null,1012],"jungle":[844,null,196]},"grid_rle":[[9,912],[8,22],[9,115],[8,32],[9,106],[8,40],[9,99],[8,18],[5,13],[8,15],[9,96],[8,12],[6,1],[5,22],[1,2],[8,12],[9,92],[8,9],[6,5],[5,27],[1,1],[8,10],[9,90],[8,8],[6,6],[5,29],[1,1],[8,10],[9,85],[8,7],[6,10],[5,21],[1,3],[5,7],[1,1],[5,1],[8,10],[9,80],[8,6],[6,1],[8,1],[6,11],[5,20],[1,8],[5,2],[1,2],[5,2],[8,11],[9,76],[8,5],[6,2],[8,1],[6,13],[5,19],[1,11],[5,5],[8,1],[5,2],[8,8],[9,73],[8,5],[6,2],[8,1],[6,15],[5,18],[1,11],[5,12],[8,7],[9,60],[8,2],[9,7],[8,5],[6,1],[8,2],[6,17],[5,18],[1,9],[5,15],[8,8],[9,57],[8,3],[9,5],[8,5],[6,2],[2,4],[6,16],[5,18],[1,6],[5,20],[8,7],[9,55],[8,12],[6,5],[2,2],[6,17],[5,46],[8,7],[9,52],[8,12],[6,6],[2,1],[6,19],[5,47],[8,6],[9,49],[8,12],[6,8],[2,1],[6,19],[5,25],[1,5],[5,18],[8,6],[9,47],[8,11],[6,1],[8,1],[6,27],[5,26],[1,6],[5,19],[8,5],[9,45],[8,10],[2,1],[8,2],[2,1],[6,27],[5,24],[1,8],[5,20],[8,6],[9,42],[8,9],[2,7],[6,26],[5,24],[1,9],[5,20],[8,6],[9,40],[8,9],[2,8],[6,26],[5,24],[1,11],[5,19],[8,6],[9,39],[8,8],[2,9],[6,26],[5,23],[1,5],[5,1],[1,5],[5,21],[8,5],[9,40],[8,6],[2,10],[6,26],[5,23],[1,12],[5,21],[8,5],[9,39],[8,5],[2,10],[6,27],[5,23],[1,13],[5,21],[8,5],[9,37],[8,5],[2,12],[6,26],[5,26],[1,10],[5,22],[8,5],[9,35],[8,5],[2,11],[6,28],[5,27],[1,7],[5,25],[8,5],[9,34],[8,5],[2,10],[6,29],[5,28],[1,5],[5,27],[8,5],[9,32],[8,5],[2,1],[6,2],[2,4],[6,33],[5,29],[1,3],[5,29],[8,4],[9,31],[8,5],[6,41],[5,62],[8,4],[9,30],[8,4],[6,42],[5,20],[1,1],[5,42],[8,4],[9,28],[8,5],[6,42],[5,16],[1,3],[5,1],[1,5],[5,38],[8,4],[9,27],[8,5],[6,43],[5,12],[1,18],[5,11],[1,1],[5,22],[8,4],[9,26],[8,5],[6,43],[5,12],[1,17],[5,3],[1,4],[5,2],[1,1],[5,2],[1,1],[5,22],[8,4],[9,25],[8,5],[6,44],[5,12],[1,18],[5,1],[1,5],[5,1],[1,3],[5,1],[1,1],[5,23],[8,4],[9,24],[8,4],[6,45],[5,12],[1,11],[5,1],[1,6],[5,1],[1,3],[5,2],[1,4],[5,25],[8,4],[9,23],[8,5],[6,44],[5,5],[1,1],[5,7],[1,13],[5,1],[1,2],[5,7],[1,2],[5,1],[1,2],[5,26],[8,4],[9,22],[8,4],[6,45],[5,4],[1,4],[5,5],[1,9],[5,2],[1,2],[5,9],[1,8],[5,24],[8,4],[9,21],[8,4],[2,3],[6,44],[5,1],[1,8],[5,3],[1,7],[5,4],[1,1],[5,9],[1,9],[5,24],[8,5],[9,20],[8,4],[2,4],[6,43],[5,1],[1,8],[5,4],[1,5],[5,3],[1,3],[5,9],[1,9],[5,25],[8,4],[9,19],[8,4],[2,5],[6,43],[1,9],[5,4],[1,10],[5,10],[1,9],[5,25],[8,5],[9,1],[8,1],[9,16],[8,4],[6,48],[1,10],[5,4],[1,3],[5,2],[1,3],[5,10],[1,10],[5,26],[8,6],[9,16],[8,4],[6,48],[1,10],[5,3],[2,1],[5,1],[2,2],[5,15],[1,9],[5,27],[8,7],[9,14],[8,4],[6,49],[1,9],[2,7],[5,16],[1,9],[5,4],[1,3],[5,21],[8,6],[9,14],[8,4],[6,48],[1,9],[2,8],[5,16],[1,9],[5,3],[1,4],[5,21],[8,6],[9,14],[8,3],[6,49],[1,7],[2,10],[5,16],[1,9],[5,3],[1,5],[5,20],[2,1],[8,6],[9,12],[8,4],[6,50],[1,5],[2,11],[5,16],[1,9],[5,3],[1,5],[5,19],[2,2],[8,6],[9,12],[8,4],[6,50],[5,2],[1,2],[2,13],[5,15],[1,10],[5,3],[1,4],[5,18],[2,3],[8,6],[9,12],[8,3],[6,51],[5,3],[2,12],[1,4],[5,14],[1,10],[5,23],[2,4],[8,7],[9,10],[8,4],[6,51],[5,3],[2,11],[1,5],[5,15],[1,9],[5,23],[2,5],[8,6],[9,10],[8,3],[6,52],[5,3],[2,11],[1,1],[5,2],[1,3],[5,15],[1,10],[5,20],[2,6],[8,6],[9,10],[8,3],[6,52],[5,3],[2,3],[8,3],[9,3],[8,2],[1,1],[5,3],[1,1],[5,16],[1,12],[5,17],[2,7],[8,6],[9,12],[8,1],[4,2],[6,50],[5,3],[2,1],[8,6],[9,2],[8,5],[5,1],[1,1],[5,16],[1,3],[5,5],[1,5],[5,15],[2,8],[5,1],[8,1],[9,1],[8,3],[9,7],[8,3],[9,2],[8,1],[4,5],[6,47],[5,1],[8,1],[9,2],[8,6]Line truncated
+5 -1
View File
@@ -33,7 +33,7 @@ Every tunable lives in a config file or in this table. **Placeholder** means gue
| Ore tiers per zone | Button Isle: coal; Southwold: copper; Westmarch: iron, thunder stone; Verdant Jungle: redstone, leaf stone; Highland Meadows: lapis, sun stone; Sunscorch: gold, fire stone; Frostpeak Range: emerald, ice stone, dawn stone; Dripstone Depths: amethyst, moon stone; Deep Dark: diamond, dusk stone; Basalt Furnace: quartz, netherite; Lush Caves: shiny stone; Mangrove Mire: water stone | Fine for now (Adrian, 2026-10-30) | `world/zones.json` → `ores` → `tools/zone_ores.py` | Each tier in exactly one zone; evolution stones are tiers (their natural ores are off) | | Ore tiers per zone | Button Isle: coal; Southwold: copper; Westmarch: iron, thunder stone; Verdant Jungle: redstone, leaf stone; Highland Meadows: lapis, sun stone; Sunscorch: gold, fire stone; Frostpeak Range: emerald, ice stone, dawn stone; Dripstone Depths: amethyst, moon stone; Deep Dark: diamond, dusk stone; Basalt Furnace: quartz, netherite; Lush Caves: shiny stone; Mangrove Mire: water stone | Fine for now (Adrian, 2026-10-30) | `world/zones.json` → `ores` → `tools/zone_ores.py` | Each tier in exactly one zone; evolution stones are tiers (their natural ores are off) |
| Vein regrowth | 20 min: coal; 30 min: copper; 40 min: iron; 45 min: redstone, lapis; 60 min: gold, quartz, thunder stone, shiny stone, leaf stone, water stone, moon stone, sun stone, fire stone, ice stone; 75 min: emerald, dawn stone, dusk stone; 90 min: diamond; 120 min: amethyst; 180 min: netherite; ±10 % jitter; real time | Fine for now (Adrian, 2026-10-30) | `world/zones.json` → `ores` (`regen_minutes`, `ore_defaults.jitter`) | Counts while the server is off too | | Vein regrowth | 20 min: coal; 30 min: copper; 40 min: iron; 45 min: redstone, lapis; 60 min: gold, quartz, thunder stone, shiny stone, leaf stone, water stone, moon stone, sun stone, fire stone, ice stone; 75 min: emerald, dawn stone, dusk stone; 90 min: diamond; 120 min: amethyst; 180 min: netherite; ±10 % jitter; real time | Fine for now (Adrian, 2026-10-30) | `world/zones.json` → `ores` (`regen_minutes`, `ore_defaults.jitter`) | Counts while the server is off too |
| Ore nodes | chance per chunk of the zone — surface: coal 50 %, copper 20 %, iron 20 %, redstone 20 %, lapis 15 %, gold 30 %, emerald 15 %, thunder stone 3 %, leaf stone 4 %, water stone 4 %, sun stone 2 %, fire stone 8 %, ice stone 6 %, dawn stone 4 %; cave floor (8 columns searched): amethyst 50 %, diamond 15 %, quartz 50 %, netherite 6 %, shiny stone 15 %, moon stone 25 %, dusk stone 10 %. Radius 0–1 (evolution stones and netherite one block), 80 % filled | Placeholder (Adrian, 2026-10-30: small on the surface) | `world/zones.json` → `ores` → `nodes` | | | Ore nodes | chance per chunk of the zone — surface: coal 50 %, copper 20 %, iron 20 %, redstone 20 %, lapis 15 %, gold 30 %, emerald 15 %, thunder stone 3 %, leaf stone 4 %, water stone 4 %, sun stone 2 %, fire stone 8 %, ice stone 6 %, dawn stone 4 %; cave floor (8 columns searched): amethyst 50 %, diamond 15 %, quartz 50 %, netherite 6 %, shiny stone 15 %, moon stone 25 %, dusk stone 10 %. Radius 0–1 (evolution stones and netherite one block), 80 % filled | Placeholder (Adrian, 2026-10-30: small on the surface) | `world/zones.json` → `ores` → `nodes` | |
| Underground veins (surface tiers) | radius 2–4 (stones 1–2), spacing 6–11 chunks between candidate chunks, 70 % filled, 1–2 tries per candidate chunk | Placeholder (Adrian, 2026-10-30: larger but harder to find) | `world/zones.json` → `ores` → `veins` | Ore blocks in the template (2026-10-30): copper 10,400, iron 6,356, quartz 2,397, lapis 2,236, coal 2,222, redstone 1,044, gold 815, diamond 559, shiny stone 466, thunder stone 239, sun stone 238, amethyst 238, dusk stone 222, emerald 181, leaf stone 125, ice stone 102, moon stone 100, fire stone 98, water stone 95, netherite 74, dawn stone 64. Per zone in `build/island-report.json` after `tools/make_world.py` | | Underground veins (surface tiers) | radius 2–4 (stones 1–2), spacing 6–11 chunks between candidate chunks, 70 % filled, 1–2 tries per candidate chunk | Placeholder (Adrian, 2026-10-30: larger but harder to find) | `world/zones.json` → `ores` → `veins` | Ore blocks in the template (2026-10-31, nodes and veins): copper 33,211, iron 18,275, quartz 13,366, coal 7,363, lapis 6,092, amethyst 3,640, redstone 3,406, gold 2,223, emerald 1,404, shiny stone 1,270, diamond 1,078, moon stone 970, sun stone 684, thunder stone 667, ice stone 435, dusk stone 425, water stone 404, dawn stone 380, leaf stone 352, fire stone 317, netherite 290. Per zone in `build/island-report.json` after `tools/make_world.py` |
| Regenerators breakable by players | no; explosions don't hurt veins | Fine for now (Adrian, 2026-10-30) | `tools/zone_ores.py` → `global.json` | Otherwise a player could remove a vein for good | | Regenerators breakable by players | no; explosions don't hurt veins | Fine for now (Adrian, 2026-10-30) | `tools/zone_ores.py` → `global.json` | Otherwise a player could remove a vein for good |
| Vein Locator | compass + copper ingot; 75 % chance to break per use (the mod's default) | Fine for now (Adrian, 2026-10-30) | `tools/zone_ores.py` → `vein_locator.json` | The mod's default recipe needs netherite | | Vein Locator | compass + copper ingot; 75 % chance to break per use (the mod's default) | Fine for now (Adrian, 2026-10-30) | `tools/zone_ores.py` → `vein_locator.json` | The mod's default recipe needs netherite |
| Drops for mobs the island lacks | Blaze Rod: Carkol 10 %, Torkoal 25 % ×1–2; Ghast Tear: Drifloon 5 %, Dusclops 10 %; Breeze Rod: Whimsicott 10 %; Shulker Shell: Shuckle 10 %, Cloyster 10 %; Nether Star: Charizard 5 % | Fine for now (Adrian, 2026-10-30) | `datapacks/core/data/cobblesurvival/species_additions/` | Every drop and what consumes it: `docs/pokemon-drops.md` (`tools/drop_audit.py`) | | Drops for mobs the island lacks | Blaze Rod: Carkol 10 %, Torkoal 25 % ×1–2; Ghast Tear: Drifloon 5 %, Dusclops 10 %; Breeze Rod: Whimsicott 10 %; Shulker Shell: Shuckle 10 %, Cloyster 10 %; Nether Star: Charizard 5 % | Fine for now (Adrian, 2026-10-30) | `datapacks/core/data/cobblesurvival/species_additions/` | Every drop and what consumes it: `docs/pokemon-drops.md` (`tools/drop_audit.py`) |
@@ -47,6 +47,10 @@ Every tunable lives in a config file or in this table. **Placeholder** means gue
| Ride stats (speed, stamina, ...) | Cobblemon's own | To tune after play-testing | species `riding` via `species_additions` | | | Ride stats (speed, stamina, ...) | Cobblemon's own | To tune after play-testing | species `riding` via `species_additions` | |
| Healing while sleeping | off (`healPercent` 0) | Decided (roadmap) | `config/cobblemon/main.json` | | | Healing while sleeping | off (`healPercent` 0) | Decided (roadmap) | `config/cobblemon/main.json` | |
| Loot container refresh | 1 hour (72,000 ticks of game time) after first opened, all containers | Decided (Adrian, 2026-10-29) | `config/lootr-common.toml` | Tiering by structure/biome later | | Loot container refresh | 1 hour (72,000 ticks of game time) after first opened, all containers | Decided (Adrian, 2026-10-29) | `config/lootr-common.toml` | Tiering by structure/biome later |
| Loot per player or shared | shared: one inventory per container for everybody (Lootr `team_loot`, all players in the team `islanders`) | Decided (Adrian, 2026-10-30) | `config/lootr-common.toml`, `world/SharedLoot.kt` | Gilded chests: rolled once, shared, don't refill |
| Stray wild Pokémon | despawn when more than 10 levels above the band of the zone they stand in | Placeholder (Adrian, 2026-10-30: a Lv 61 in the Lush Caves) | `world/zones.json` → `wanderers` | Not in battles, not while angry, never guardians |
| Deep layer split | temperature of the land above up to −0.1: Deep Dark; from 0.4: basalt deltas; between: ordinary caves | Placeholder (Adrian, 2026-10-30: Deep Dark scaled back, some basalt) | `world/biomes.json` → `split` → `tools/biome_layout.py` | y −52: Deep Dark 14 %, basalt 7 %, ordinary 9 % of land (was 30 % Deep Dark) |
| Cave zone types | Lush Caves grass, bug, fairy, poison, water; Dripstone rock, ground, steel, fairy, psychic, dragon; Deep Dark ghost, dark, steel, poison, psychic, rock; Basalt fire, rock, ground, steel, dark | Placeholder | `world/zones.json` → caves → `types` | Fills each cave zone up to its `lines` from the lines that spawn nearly anywhere |
| Gamerules in the template | `doMobSpawning false` | Decided (Adrian, 2026-10-28; may be reverted later) | `world/world.json` → `gamerules` | Pokémon spawning is Cobblemon's own `doPokemonSpawning` | | Gamerules in the template | `doMobSpawning false` | Decided (Adrian, 2026-10-28; may be reverted later) | `world/world.json` → `gamerules` | Pokémon spawning is Cobblemon's own `doPokemonSpawning` |
| Border margin | 96 blocks of sea past the outermost coast | Placeholder | `world/world.json` | | | Border margin | 96 blocks of sea past the outermost coast | Placeholder | `world/world.json` | |
| Pregeneration circle | radius 1,700 around 0,0 | Tooling | `world/world.json` | Must cover the land plus `border_margin`; `make_world.py` stops if it doesn't | | Pregeneration circle | radius 1,700 around 0,0 | Tooling | `world/world.json` | Must cover the land plus `border_margin`; `make_world.py` stops if it doesn't |
+17
View File
@@ -34,6 +34,23 @@ In game:
- [ ] Beat a guardian: the chat lists what it unlocked at your base. - [ ] Beat a guardian: the chat lists what it unlocked at your base.
- [ ] Try to place a Power Block in survival before the Jungle guardian: it's refused with a message; after `/cobblesurvival progress grant <you> jungle` it places, and an Electric-type Pokémon inside makes energy (the block's screen and Jade show it). - [ ] Try to place a Power Block in survival before the Jungle guardian: it's refused with a message; after `/cobblesurvival progress grant <you> jungle` it places, and an Electric-type Pokémon inside makes energy (the block's screen and Jade show it).
## From the play-test (2026-10-30)
Built after Adrian's reports; the new template is the save "Cobblemon Survival Island (Phase 4b)".
- **Catching:** the catch rate falls with the level gap to your strongest party Pokémon (2 % at +20 levels); a failed catch makes the Pokémon attack you; a wild Pokémon above your strongest attacks you on sight (16 blocks). Automated: `catch_rate_falls_with_level_gap`, `failed_catch_enrages`, `strong_wild_pokemon_hunt_weak_trainers`, `wild_pokemon_ignore_stronger_trainers`.
- **Deep caves:** the Deep Dark only lies under cold and temperate land now; under the hottest land the deep layer is basalt deltas (Basalt Furnace, Lv 55–70); elsewhere ordinary caves. Cave zones got fuller tables (16–21 lines, fitting types) and reach the top of their bands (Deep Dark Lv 60, Basalt Lv 70).
- **Strays** far above the band of the zone they wander into despawn (`strays_despawn`).
- **Loot is shared** by all players (`loot_is_shared`). Gilded chests are rolled once and don't refill.
- **Bee nests** no longer spam their sound.
In game:
- [ ] Throw a ball at a wild Pokémon 20+ levels above your strongest: it almost never sticks; when it breaks out, the Pokémon attacks.
- [ ] Walk up to a wild Pokémon above your strongest party member: it comes for you. With a stronger team, it leaves you alone (or flees).
- [ ] Fly through the deepslate layer in spectator mode: sculk only in places, basalt under the hot south-east, plain caves elsewhere; Deep Dark Pokémon up to Lv 60, basalt ones up to Lv 70.
- [ ] Empty a loot chest, then open it with a second player (or after relogging as another account): it's empty for them too.
## Ask Adrian: approve Phase 4 before Phase 5 ## Ask Adrian: approve Phase 4 before Phase 5
The roadmap's done-when holds (every ore tier in exactly one zone, veins regrow after restart and unload, every Pokémon-sourced recipe input has a source), and base jobs and power are in, gated. Remaining placeholders: the skill stages and the Power Block gate (`docs/balance.md`). The roadmap's done-when holds (every ore tier in exactly one zone, veins regrow after restart and unload, every Pokémon-sourced recipe input has a source), and base jobs and power are in, gated. Remaining placeholders: the skill stages and the Power Block gate (`docs/balance.md`).
+11 -5
View File
@@ -26,6 +26,7 @@ The roadmap (design pillars, phases, open decisions) is the source of truth for
| The biome list is enforced by remapping vanilla's overworld biome table (from Minecraft's data generator) onto the list, written into the world type by `tools/biome_layout.py` | Keeps vanilla's terrain–biome fit (peaks on peaks, swamps in lowlands) while only listed biomes can appear. Pure data. WorldGen Editor's own climate/exclusion options were rejected: they replace cave biomes with surface fallbacks such as snowy plains, and leak unlisted biomes | | The biome list is enforced by remapping vanilla's overworld biome table (from Minecraft's data generator) onto the list, written into the world type by `tools/biome_layout.py` | Keeps vanilla's terrain–biome fit (peaks on peaks, swamps in lowlands) while only listed biomes can appear. Pure data. WorldGen Editor's own climate/exclusion options were rejected: they replace cave biomes with surface fallbacks such as snowy plains, and leak unlisted biomes |
| "Mountain edge" → `windswept_hills` (with snowy slopes and stony shore folded in) | Mountain Edge was removed in 1.18; windswept hills is its successor. **Flagged** in case another biome was meant | | "Mountain edge" → `windswept_hills` (with snowy slopes and stony shore folded in) | Mountain Edge was removed in 1.18; windswept hills is its successor. **Flagged** in case another biome was meant |
| Basalt deltas is an overworld cave biome under the hottest, driest land (where desert and badlands are), at cave depth like lush and dripstone caves | Adrian's request. It keeps its own features (basalt columns, magma, lava deltas) and particles; its nether ores are removed with the rest | | Basalt deltas is an overworld cave biome under the hottest, driest land (where desert and badlands are), at cave depth like lush and dripstone caves | Adrian's request. It keeps its own features (basalt columns, magma, lava deltas) and particles; its nether ores are removed with the rest |
| The Deep Dark no longer fills the deepslate layer (Adrian, 2026-10-30: "too much"; part of it should become basalt deltas). Vanilla puts it at depth 1.1 wherever erosion is low, at any temperature; `world/biomes.json` → `split` cuts it by the temperature of the land above: up to −0.1 Deep Dark, from 0.4 basalt deltas, in between ordinary caves of the land above | Biome preview at y −52, share of land: Deep Dark 30 % → 14 %, basalt deltas 0 → 7 %, ordinary caves 9 %; at y −30 Deep Dark 18 % → 7 %. The deep basalt is part of the Basalt Furnace (Lv 55–70), so the deepest caves reach Lv 70 under hot land. The gaps between the pieces must be wide: Minecraft picks the nearest biome entry, and the land biome above is only 0.1 away in depth, so a narrow gap goes to the neighbouring piece |
| No Nether: the world type `cobblesurvival:island` defines only the overworld and the End | Adrian's request. Portals can still be lit but lead nowhere. The smoke test checks that `minecraft:the_nether` is an unknown dimension | | No Nether: the world type `cobblesurvival:island` defines only the overworld and the End | Adrian's request. Portals can still be lit but lead nowhere. The smoke test checks that `minecraft:the_nether` is an unknown dimension |
| Island shaped like a Poké Ball (Adrian, 2026-10-28): a round island cut into top and bottom halves by a channel across the middle, with a ring channel around a round centre island where the spawn is. Written by `tools/pokeball_preset.py` (ball r 1,500, band 160, button r 280, ring 120 — placeholders) | WorldGen Editor makes the round island; two flat-ended ocean entries cut the band and 36 overlapping ocean circles cut the ring. Entries have no climate or exclusions; biomes come from the remapped table | | Island shaped like a Poké Ball (Adrian, 2026-10-28): a round island cut into top and bottom halves by a channel across the middle, with a ring channel around a round centre island where the spawn is. Written by `tools/pokeball_preset.py` (ball r 1,500, band 160, button r 280, ring 120 — placeholders) | WorldGen Editor makes the round island; two flat-ended ocean entries cut the band and 36 overlapping ocean circles cut the ring. Entries have no climate or exclusions; biomes come from the remapped table |
| The seed is chosen by `tools/seed_search.py`, which scores many seeds with the op-only dev command `/cobblesurvival biomepreview` (samples the generator without generating chunks) | With vanilla climate noise, which biomes land on a 1,500-block island depends on the seed. The search wants every listed biome at a useful share, few large patches, a gentle start area and all four cave biomes | | The seed is chosen by `tools/seed_search.py`, which scores many seeds with the op-only dev command `/cobblesurvival biomepreview` (samples the generator without generating chunks) | With vanilla climate noise, which biomes land on a 1,500-block island depends on the seed. The search wants every listed biome at a useful share, few large patches, a gentle start area and all four cave biomes |
@@ -58,7 +59,7 @@ The roadmap (design pillars, phases, open decisions) is the source of truth for
| No healing while sleeping: Cobblemon `healPercent` 0 | Cobblemon only uses `healPercent`/`healTimer` while the player sleeps | | No healing while sleeping: Cobblemon `healPercent` 0 | Cobblemon only uses `healPercent`/`healTimer` while the player sleeps |
| Healing Machines are expensive (roadmap): a dearer recipe (gold, iron, a Max Revive and a diamond) and a four times slower recharge; values in `docs/balance.md` | With loot chests handing out ingots (Adrian, 2026-10-29), Cobblemon's copper-and-iron recipe would be cheap early on. The recipe is replaced by KubeJS under the id `cobblesurvival:healing_machine` | | Healing Machines are expensive (roadmap): a dearer recipe (gold, iron, a Max Revive and a diamond) and a four times slower recharge; values in `docs/balance.md` | With loot chests handing out ingots (Adrian, 2026-10-29), Cobblemon's copper-and-iron recipe would be cheap early on. The recipe is replaced by KubeJS under the id `cobblesurvival:healing_machine` |
| Fight or Flight Reborn and TP-Pastures installed with default settings | Tuning comes with the zones (Phase 3) and pastures (Phase 4) | | Fight or Flight Reborn and TP-Pastures installed with default settings | Tuning comes with the zones (Phase 3) and pastures (Phase 4) |
| Chest loot keeps its ore and ingots; every loot container refills with a new roll 1 hour after it was first opened (Adrian, 2026-10-29). Tiering loot by structure/biome comes later (lower priority) | Done with Lootr (`config/lootr-common.toml`: `refresh_all`, `refresh_value` 72,000 ticks of game time). Lootr also makes loot per player. This changes the roadmap's Phase 2 item "remove loot tables that hand out ore or ingots": chests are a second, renewable ore source next to the veins (pillar 3) | | Chest loot keeps its ore and ingots; every loot container refills with a new roll 1 hour after it was first opened (Adrian, 2026-10-29). Tiering loot by structure/biome comes later (lower priority) | Done with Lootr (`config/lootr-common.toml`: `refresh_all`, `refresh_value` 72,000 ticks of game time). Loot is shared by all players (Adrian, 2026-10-30): every player joins the scoreboard team `islanders` (`world/SharedLoot.kt`) and Lootr's `team_loot` is on, so a container has one inventory for everybody. Cobblemon's gilded chests (Gimmighoul's hiding spots) aren't Lootr containers: their loot is rolled once, shared, and doesn't come back. This changes the roadmap's Phase 2 item "remove loot tables that hand out ore or ingots": chests are a second, renewable ore source next to the veins (pillar 3) |
| Lootr converts a vanilla loot chest once the 5×5 chunks around it are loaded, i.e. when a player is near, not during pregeneration | So the template keeps vanilla loot chests until then. `tools/quick_check.py` force-loads the area around a sampled village and checks that its chests became Lootr chests | | Lootr converts a vanilla loot chest once the 5×5 chunks around it are loaded, i.e. when a player is near, not during pregeneration | So the template keeps vanilla loot chests until then. `tools/quick_check.py` force-loads the area around a sampled village and checks that its chests became Lootr chests |
| Matthiesen Core's usage statistics are off by default | A pack shouldn't send data for its players without asking; players can switch it on in `config/matthiesen_core/metrics.properties` | | Matthiesen Core's usage statistics are off by default | A pack shouldn't send data for its players without asking; players can switch it on in `config/matthiesen_core/metrics.properties` |
@@ -84,8 +85,8 @@ A zone decides **which Pokémon spawn** and **at what levels**: Cobblemon's own
| Deep Sea | ring and band channels, outer sea | deep ocean | 30–50 | none | Heart Scale-type rarities | Lapras or Wailord, Lv 55 | | Deep Sea | ring and band channels, outer sea | deep ocean | 30–50 | none | Heart Scale-type rarities | Lapras or Wailord, Lv 55 |
| Lush Caves | under the whole island | lush caves | 12–28 | none | glow berries, mushrooms (Paras) | none | | Lush Caves | under the whole island | lush caves | 12–28 | none | glow berries, mushrooms (Paras) | none |
| Dripstone Depths | under the whole island | dripstone caves | 22–38 | none | Dragon Fang (Bagon, Gible) | none | | Dripstone Depths | under the whole island | dripstone caves | 22–38 | none | Dragon Fang (Bagon, Gible) | none |
| Deep Dark | under the whole island | deep dark | 45–60 | darkness (vanilla sculk; no Warden) | | Sableye or Spiritomb, Lv 62 | | Deep Dark | under the cold and temperate land, deep (since 2026-10-30) | deep dark | 45–60 | darkness (vanilla sculk; no Warden) | | Sableye or Spiritomb, Lv 62 |
| Basalt Furnace | under the whole island | basalt deltas | 55–70 | heat (Cold Sweat) | **raw iron** (Durant), coal (Torkoal), blaze powder (Heatmor) | Heatran-like boss later (Phase 7) | | Basalt Furnace | under the hottest land, at cave depth and (since 2026-10-30) down to the bottom | basalt deltas | 55–70 | heat (Cold Sweat) | **raw iron** (Durant), coal (Torkoal), blaze powder (Heatmor) | Heatran-like boss later (Phase 7) |
Order of play the bands suggest: Button Isle → Southwold → Westmarch or Jungle → Mire or Highlands → Sunscorch (heat) → Frostpeak (cold) → the deep caves. Order of play the bands suggest: Button Isle → Southwold → Westmarch or Jungle → Mire or Highlands → Sunscorch (heat) → Frostpeak (cold) → the deep caves.
@@ -104,8 +105,9 @@ Order of play the bands suggest: Button Isle → Southwold → Westmarch or Jung
**How zones are built** (Phase 3, step 2): **How zones are built** (Phase 3, step 2):
- `tools/zone_layout.py` writes the zone grid to `datapacks/core/data/cobblesurvival/zones/island.json` (24-block cells; caves by cave biome). The companion mod loads it (`zone/Zones.kt`) and adds the spawn-condition field `"zone"`/`"zones"` to every Cobblemon spawn condition. `/cobblesurvival zone` (operators) names the zone you stand in. - `tools/zone_layout.py` writes the zone grid to `datapacks/core/data/cobblesurvival/zones/island.json` (24-block cells; caves by cave biome). The companion mod loads it (`zone/Zones.kt`) and adds the spawn-condition field `"zone"`/`"zones"` to every Cobblemon spawn condition. `/cobblesurvival zone` (operators) names the zone you stand in.
- Cobblemon's own spawn files are switched off by a filter in `datapacks/core/pack.mcmeta`. `tools/zone_spawns.py` writes one spawn pool per zone (`datapacks/core/data/cobblesurvival/spawn_pool_world/<zone>.json`) from Cobblemon's spawn data: every evolution line that can spawn on the island gets one home zone (none is lost; legendaries, mythicals, Ultra Beasts and Paradox Pokémon stay out), and its levels are clamped into the zone's band, which picks the evolution stages. Placement weighs how much of the zone is the line's habitat, how much of the line's range the zone covers, and the line's strength (base-stat total of its strongest form) against the zone's band. Lines that Cobblemon lets spawn nearly everywhere are shared out over the land zones by strength. The result per zone is in `docs/zone-species.md`; `world/zones.json` → `species` pins a line by hand. - Cobblemon's own spawn files are switched off by a filter in `datapacks/core/pack.mcmeta`. `tools/zone_spawns.py` writes one spawn pool per zone (`datapacks/core/data/cobblesurvival/spawn_pool_world/<zone>.json`) from Cobblemon's spawn data: every evolution line that can spawn on the island gets one home zone (none is lost; legendaries, mythicals, Ultra Beasts and Paradox Pokémon stay out), and its levels are clamped into the zone's band, which picks the evolution stages; the line's top stage spawns up to the top of the band (Cobblemon's own ranges stop earlier: the Deep Dark used to top out at Lv 54). Placement weighs how much of the zone is the line's habitat, how much of the line's range the zone covers, and the line's strength (base-stat total of its strongest form) against the zone's band. Lines that Cobblemon lets spawn nearly everywhere first fill the cave zones, which take those whose first stage's primary type fits the cave (`world/zones.json` → caves → `types`; Adrian, 2026-10-30: the deep caves' tables were too small), then are shared out over the land zones by strength. The result per zone is in `docs/zone-species.md`; `world/zones.json` → `species` pins a line by hand.
- Cave zones: sky-light minimums, "can see sky" and the "natural" ground preset are dropped from their entries; otherwise the Deep Dark (fed by Cobblemon's surface "spooky" spawns) could never spawn anything, and lush caves' moss floors would barely count. - Cave zones: every entry spawns in the cave's biome, and sky-light minimums, "can see sky", time of day, excluded biomes and the "natural" ground preset are dropped; otherwise the Deep Dark (fed by Cobblemon's surface "spooky" spawns, many of them night-only) would barely spawn anything, and lush caves' moss floors would barely count.
- Strays (Adrian, 2026-10-30: a Lv 61 from the Basalt Furnace turned up in the Lush Caves): every 5 seconds a wild Pokémon near a player that stands in a zone whose band it tops by more than 10 levels despawns, unless it is in a battle, angry at someone or a guardian (`zone/Wanderers.kt`, `world/zones.json` → `wanderers`). Tested: `strays_despawn`.
- Basalt Furnace got Durant, Torkoal and Heatmor pinned to it: its own lines were all big (Charizard, Turtonator, Centiskorch, …) and Cobblemon only spawns a Pokémon where its body fits, so cramped basalt caves stayed empty. - Basalt Furnace got Durant, Torkoal and Heatmor pinned to it: its own lines were all big (Charizard, Turtonator, Centiskorch, …) and Cobblemon only spawns a Pokémon where its body fits, so cramped basalt caves stayed empty.
- Tested: `spawn_pools_are_zoned` (no Cobblemon default spawn is left; every entry has a zone and spawns within its band) and `spawn_survey` (a player at a point deep inside each zone is offered only that zone's spawns, and at least one), both in `tools/quick_check.py`. - Tested: `spawn_pools_are_zoned` (no Cobblemon default spawn is left; every entry has a zone and spawns within its band) and `spawn_survey` (a player at a point deep inside each zone is offered only that zone's spawns, and at least one), both in `tools/quick_check.py`.
@@ -165,6 +167,10 @@ Order of play the bands suggest: Button Isle → Southwold → Westmarch or Jung
The field guide learned two things on the way: vanilla mobs count as absent (the companion mod lets only Cobblemon's entities join a world), and species additions replace the drops they set. The veins come in as sources from `world/vein-sources.json`. The field guide learned two things on the way: vanilla mobs count as absent (the companion mod lets only Cobblemon's entities join a world), and species additions replace the drops they set. The veins come in as sources from `world/vein-sources.json`.
## Notes for Phase 5
- **Shoulder Pokémon** (Adrian, 2026-10-30): Cobblemon lets a player carry a small Pokémon on their shoulder (96 species are `shoulderMountable`: Pidgey, Pikachu, Eevee, Zubat, Squirtle, ...). It has a shoulder-effect system with one type, `potion_effect` (effect, amplifier, particles, icon), but no species uses it in 1.8. Party passives can start there, as data: species additions giving shoulder Pokémon an effect while carried (e.g. Pidgey slow falling, Zubat night vision, a Fire type warmth against Frostpeak's cold), maybe gated behind progression like Cobblebase's skills. To check first: that species additions can set `shoulderEffects`, and how the effect behaves when the Pokémon faints or goes back in its ball.
## Open decisions for Adrian (proceeding with the default, flagged) ## Open decisions for Adrian (proceeding with the default, flagged)
| Decision | Default used for now | | Decision | Default used for now |
+86 -86
View File
@@ -5,29 +5,29 @@ Generated by `tools/drop_audit.py` (roadmap Phase 4, "unique drops"): every item
| Item | Wild Pokémon that drop it | Other sources | Consumed by | | Item | Wild Pokémon that drop it | Other sources | Consumed by |
| --- | --- | --- | --- | | --- | --- | --- | --- |
| Acacia Log (`minecraft:acacia_log`) | – | Break Acacia Log | Acacia Planks, Acacia Wood, Campfire, Charcoal, Smoker, Soul Campfire | | Acacia Log (`minecraft:acacia_log`) | – | Break Acacia Log | Acacia Planks, Acacia Wood, Campfire, Charcoal, Smoker, Soul Campfire |
| Amethyst Shard (`minecraft:amethyst_shard`) | Glimmet (jungle, ×0-1); Sableye (button_isle, ×0-2) | Break Amethyst Cluster; Loot in Ancient City; Regenerating amethyst vein in Dripstone Depths | Ability Shield, Blank TM, Block of Amethyst, Calibrated Sculk Sensor, Clear Amulet, Eviolite, Exp. Share, Fairy Feather … | | Amethyst Shard (`minecraft:amethyst_shard`) | Glimmora (deep_dark, ×0-2); Sableye (button_isle, ×0-2) | Break Amethyst Cluster; Loot in Ancient City; Regenerating amethyst ore nodes on the cave floor in Dripstone Depths | Ability Shield, Blank TM, Block of Amethyst, Calibrated Sculk Sensor, Clear Amulet, Eviolite, Exp. Share, Fairy Feather … |
| Apple (`minecraft:apple`) | Appletun (mire, ×1); Applin (mire, ×1); Flapple (mire, ×1); Munchlax (jungle, ×0-3); Torterra (highlands, ×0-3) | Break Oak Leaves; Loot in Village Desert, Village Plains; Loot in Village Plains | Candied Apple, Golden Apple, Open-Faced Sandwich | | Apple (`minecraft:apple`) | Appletun (westmarch, ×1); Applin (westmarch, ×1); Flapple (westmarch, ×1); Munchlax (westmarch, ×0-3); Torterra (highlands, ×0-3) | Break Oak Leaves; Loot in Village Desert, Village Plains; Loot in Village Plains | Candied Apple, Golden Apple, Open-Faced Sandwich |
| Armadillo Scute (`minecraft:armadillo_scute`) | Sandshrew (sunscorch, ×0-1); Sandslash (sunscorch, ×0-2) | Use c:tools/brush on your Hakamo-o; Use c:tools/brush on your Jangmo-o; Use c:tools/brush on your Kommo-o; Use c:tools/brush on your Sandshrew; Use c:tools/brush on your Sandslash | Assault Vest, Protector, Wolf Armor | | Armadillo Scute (`minecraft:armadillo_scute`) | Sandshrew (sunscorch, ×0-1); Sandslash (sunscorch, ×0-2) | Use c:tools/brush on your Hakamo-o; Use c:tools/brush on your Jangmo-o; Use c:tools/brush on your Kommo-o; Use c:tools/brush on your Sandshrew; Use c:tools/brush on your Sandslash | Assault Vest, Protector, Wolf Armor |
| Arrow (`minecraft:arrow`) | – | Crafting; Loot in Decaying Crypt Ruins (cobblemon), Deserted Gimmi Tower (cobblemon), Deserted Monument Ruins (cobblemon), Deserted Tower Ruins (cobblemon), Frozen Gimmi Tower (cobblemon), Lush Gimmi Tower (cobblemon) and 10 more; Loot in Jungle Pyramid; Loot in Pillager Outpost; Loot in Trial Chambers | Spectral Arrow | | Arrow (`minecraft:arrow`) | – | Crafting; Loot in Decaying Crypt Ruins (cobblemon), Deserted Gimmi Tower (cobblemon), Deserted Monument Ruins (cobblemon), Deserted Tower Ruins (cobblemon), Frozen Gimmi Tower (cobblemon), Lush Gimmi Tower (cobblemon) and 10 more; Loot in Jungle Pyramid; Loot in Pillager Outpost; Loot in Trial Chambers | Spectral Arrow |
| Aspear Berry (`cobblemon:aspear_berry`) | Carvanha (shallows, 2.5%); Cloyster (deep_sea, 5%); Crabrawler (shallows, 2.5%); Cryogonal (frostpeak, 5%); Jynx (frostpeak, 5%); Lapras (deep_sea, 5%); Octillery (deep_sea, 5%); Remoraid (deep_sea, 2.5%); Shellder (deep_sea, 2.5%); Vanillish (frostpeak, 5%); Vanilluxe (frostpeak, 10%) | Break Aspear Berry; Wild berry trees in Cherry Grove, Jagged Peaks, Windswept Hills | Berry Juice, Candied Berries, Ice Heal, Yellow Dye | | Aspear Berry (`cobblemon:aspear_berry`) | Carvanha (shallows, 2.5%); Cloyster (deep_sea, 5%); Crabrawler (shallows, 2.5%); Cryogonal (frostpeak, 5%); Jynx (frostpeak, 5%); Lapras (deep_sea, 5%); Mr. Rime (deep_dark, 10%); Octillery (deep_sea, 5%); Remoraid (deep_sea, 2.5%); Shellder (deep_sea, 2.5%); Vanillish (frostpeak, 5%); Vanilluxe (frostpeak, 10%) | Break Aspear Berry; Wild berry trees in Cherry Grove, Jagged Peaks, Windswept Hills | Berry Juice, Candied Berries, Ice Heal, Yellow Dye |
| Babiri Berry (`cobblemon:babiri_berry`) | Carbink (westmarch, 5%); Clefable (dripstone, 10%); Clefairy (dripstone, 5%); Cleffa (dripstone, 2.5%); Froslass (frostpeak, 5%); Glalie (frostpeak, 5%); Lycanroc (frostpeak, 5%); Mime Jr. (westmarch, 2.5%); Patrat (southwold, 2.5%); Snubbull (southwold, 2.5%); Swirlix (southwold, 2.5%) | Break Babiri Berry; Wild berry trees in Cherry Grove, Jagged Peaks, Windswept Hills | Berry Juice, Candied Berries, Lime Dye | | Babiri Berry (`cobblemon:babiri_berry`) | Carbink (deep_dark, 5%); Clefable (dripstone, 10%); Clefairy (dripstone, 5%); Cleffa (dripstone, 2.5%); Froslass (frostpeak, 5%); Glalie (frostpeak, 5%); Granbull (lush_caves, 5%); Lycanroc (frostpeak, 5%); Mr. Mime (deep_dark, 5%); Patrat (southwold, 2.5%); Slurpuff (dripstone, 5%); Snubbull (lush_caves, 2.5%); Swirlix (dripstone, 2.5%) | Break Babiri Berry; Wild berry trees in Cherry Grove, Jagged Peaks, Windswept Hills | Berry Juice, Candied Berries, Lime Dye |
| Bamboo (`minecraft:bamboo`) | Spinda (frostpeak, ×0-2) | Break Bamboo; Fishing; Fishing with a Poké Rod; Loot in Jungle Pyramid; Loot in Shipwreck, Shipwreck Beached | Block of Bamboo, Scaffolding, Stick | | Bamboo (`minecraft:bamboo`) | Spinda (frostpeak, ×0-2) | Break Bamboo; Fishing; Fishing with a Poké Rod; Loot in Jungle Pyramid; Loot in Shipwreck, Shipwreck Beached | Block of Bamboo, Scaffolding, Stick |
| Basalt (`minecraft:basalt`) | – | Break Basalt | Polished Basalt, Smooth Basalt | | Basalt (`minecraft:basalt`) | Magcargo (basalt, ×1) | Break Basalt | Polished Basalt, Smooth Basalt |
| Big Root (`cobblemon:big_root`) | Bellsprout (jungle, 2.5%); Carnivine (lush_caves, 5%); Diglett (button_isle, 2.5%); Lileep (lush_caves, 5%); Tangela (jungle, 2.5%); Tangrowth (jungle, 5%); Weepinbell (jungle, 5%) | Break Big Root; Brush suspicious blocks in Prehistoric Birch Tree (worldgen feature); Brush suspicious blocks in Prehistoric Dripstone Oasis (worldgen feature); Brush suspicious blocks in Prehistoric Enhydro Agate (worldgen feature); Brush suspicious blocks in Prehistoric Eroded Pillar (worldgen feature) … | Remedy | | Big Root (`cobblemon:big_root`) | Bellsprout (jungle, 2.5%); Carnivine (lush_caves, 5%); Dugtrio (basalt, 5%); Lileep (lush_caves, 5%); Tangela (jungle, 2.5%); Tangrowth (jungle, 5%); Weepinbell (jungle, 5%) | Break Big Root; Brush suspicious blocks in Prehistoric Birch Tree (worldgen feature); Brush suspicious blocks in Prehistoric Dripstone Oasis (worldgen feature); Brush suspicious blocks in Prehistoric Enhydro Agate (worldgen feature); Brush suspicious blocks in Prehistoric Eroded Pillar (worldgen feature) … | Remedy |
| Black Augurite (`cobblemon:black_augurite`) | Boldore (westmarch, 5%); Carkol (westmarch, 5%); Geodude (westmarch, 2.5%); Graveler (westmarch, 5%); Roggenrola (westmarch, 2.5%); Rolycoly (westmarch, 2.5%) | Brush suspicious blocks in Prehistoric Eroded Pillar (worldgen feature); Brush suspicious blocks in Prehistoric Sandy Den (worldgen feature) | Obsidian, Stone Axe | | Black Augurite (`cobblemon:black_augurite`) | Coalossal (deep_dark, 10%); Geodude (dripstone, 2.5%); Gigalith (deep_dark, 10%); Golem (dripstone, 10%); Graveler (dripstone, 5%) | Brush suspicious blocks in Prehistoric Eroded Pillar (worldgen feature); Brush suspicious blocks in Prehistoric Sandy Den (worldgen feature) | Obsidian, Stone Axe |
| Black Belt (`cobblemon:black_belt`) | Hariyama (frostpeak, 5%); Hitmonchan (frostpeak, 5%); Hitmonlee (frostpeak, 5%); Hitmontop (frostpeak, 5%); Meditite (button_isle, 2.5%); Sawk (frostpeak, 5%); Scrafty (sunscorch, 5%); Scraggy (sunscorch, 2.5%); Throh (frostpeak, 5%) | Crafting | Expert Belt | | Black Belt (`cobblemon:black_belt`) | Hariyama (frostpeak, 5%); Hitmonchan (frostpeak, 5%); Hitmonlee (frostpeak, 5%); Hitmontop (frostpeak, 5%); Meditite (button_isle, 2.5%); Sawk (frostpeak, 5%); Scrafty (sunscorch, 5%); Scraggy (sunscorch, 2.5%); Throh (frostpeak, 5%) | Crafting | Expert Belt |
| Black Sludge (`cobblemon:black_sludge`) | Croagunk (mire, 2.5%); Grimer (westmarch, 2.5%); Koffing (southwold, 2.5%); Toxicroak (mire, 5%); Trubbish (southwold, 2.5%); Varoom (westmarch, 2.5%) | – | Toxic Orb | | Black Sludge (`cobblemon:black_sludge`) | Croagunk (mire, 2.5%); Grimer (southwold, 2.5%); Koffing (southwold, 2.5%); Revavroom (deep_dark, 5%); Toxicroak (mire, 5%); Trubbish (lush_caves, 2.5%) | – | Toxic Orb |
| Black Wool (`minecraft:black_wool`) | – | Break Black Wool; Crafting (shapeless) | Air Balloon, Black Banner, Black Bed, Black Carpet, Blue Wool, Brown Wool, Choice Scarf, Covert Cloak … | | Black Wool (`minecraft:black_wool`) | – | Break Black Wool; Crafting (shapeless) | Air Balloon, Black Banner, Black Bed, Black Carpet, Blue Wool, Brown Wool, Choice Scarf, Covert Cloak … |
| Blaze Powder (`minecraft:blaze_powder`) | Braixen (sunscorch, ×0-2); Centiskorch (basalt, 10%); Charizard (basalt, ×0-3); Delphox (sunscorch, ×0-3); Fennekin (sunscorch, ×0-1); Heatmor (basalt, 10%); Houndoom (basalt, 10%); Larvesta (sunscorch, 2.5%); Magmortar (basalt, 25%); Ponyta (highlands, 2.5%) | Crafting (shapeless); Use c:tools/brush on your Volcarona | brewing: Strength; stand fuel, Expert Belt, Eye of Ender, Fire Charge, Flame Orb, Focus Band, Focus Sash, Magma Cream … | | Blaze Powder (`minecraft:blaze_powder`) | Braixen (sunscorch, ×0-2); Centiskorch (basalt, 5%); Charizard (basalt, ×0-3); Delphox (sunscorch, ×0-3); Fennekin (sunscorch, ×0-1); Heatmor (basalt, 5%); Houndoom (basalt, 5%); Larvesta (sunscorch, 2.5%); Magmortar (basalt, 10%); Ponyta (highlands, 2.5%) | Crafting (shapeless); Use c:tools/brush on your Volcarona | brewing: Strength; stand fuel, Expert Belt, Eye of Ender, Fire Charge, Flame Orb, Focus Band, Focus Sash, Magma Cream … |
| Blaze Rod (`minecraft:blaze_rod`) | Carkol (westmarch, 10%); Torkoal (basalt, 25%) | – | Blaze Powder, Brewing Stand, Choice Specs, Copper Bulb, End Rod, Exposed Copper Bulb, Oxidized Copper Bulb, Waxed Copper Bulb … | | Blaze Rod (`minecraft:blaze_rod`) | Torkoal (basalt, 25%) | – | Blaze Powder, Brewing Stand, Choice Specs, Copper Bulb, End Rod, Exposed Copper Bulb, Oxidized Copper Bulb, Waxed Copper Bulb … |
| Blue Ice (`minecraft:blue_ice`) | – | Break Blue Ice; Crafting (shapeless) | Never-Melt Ice | | Blue Ice (`minecraft:blue_ice`) | – | Break Blue Ice; Crafting (shapeless) | Never-Melt Ice |
| Blue Wool (`minecraft:blue_wool`) | Herdier (westmarch, ×1-2); Lillipup (westmarch, ×1) | Break Blue Wool; Crafting (shapeless) | Air Balloon, Black Wool, Blue Banner, Blue Bed, Blue Carpet, Brown Wool, Choice Scarf, Covert Cloak … | | Blue Wool (`minecraft:blue_wool`) | Herdier (southwold, ×1-2); Lillipup (southwold, ×1) | Break Blue Wool; Crafting (shapeless) | Air Balloon, Black Wool, Blue Banner, Blue Bed, Blue Carpet, Brown Wool, Choice Scarf, Covert Cloak … |
| Bluk Berry (`cobblemon:bluk_berry`) | Drapion (sunscorch, 5%); Golisopod (jungle, 5%); Honchkrow (deep_dark, 5%); Illumise (mire, 5%); Indeedee (southwold, 5%); Purrloin (southwold, 2.5%); Sawk (frostpeak, 5%); Skorupi (sunscorch, 2.5%); Wimpod (jungle, 2.5%) | Break Bluk Berry; Wild berry trees in Cherry Grove, Jagged Peaks, Windswept Hills | Berry Juice, Candied Berries, Purple Dye | | Bluk Berry (`cobblemon:bluk_berry`) | Drapion (sunscorch, 5%); Honchkrow (deep_dark, 5%); Illumise (mire, 5%); Liepard (basalt, 5%); Sawk (frostpeak, 5%); Skorupi (sunscorch, 2.5%); Wimpod (southwold, 2.5%) | Break Bluk Berry; Wild berry trees in Cherry Grove, Jagged Peaks, Windswept Hills | Berry Juice, Candied Berries, Purple Dye |
| Bone (`minecraft:bone`) | Arcanine (mire, ×0-2); Boltund (westmarch, ×0-2); Cranidos (lush_caves, ×0-1); Cubone (sunscorch, ×0-1); Electrike (highlands, ×0-1); Furfrou (southwold, ×0-2); Growlithe (mire, ×0-1); Herdier (westmarch, ×0-2); Houndoom (basalt, ×0-2); Houndstone (deep_dark, ×1-3); Lillipup (westmarch, ×0-1); Lycanroc (frostpeak, ×0-2); Manectric (highlands, ×0-2); Marowak (sunscorch, ×1); Maschiff (westmarch, ×0-1); Mightyena (highlands, ×0-2); Shieldon (lush_caves, ×0-1); Snubbull (southwold, ×0-1); Yamper (westmarch, ×0-1) | Brush suspicious blocks in Prehistoric Birch Tree (worldgen feature); Brush suspicious blocks in Prehistoric Dripstone Oasis (worldgen feature); Brush suspicious blocks in Prehistoric Enhydro Agate (worldgen feature); Brush suspicious blocks in Prehistoric Eroded Pillar (worldgen feature); Brush suspicious blocks in Prehistoric Hydrothermal Vents (worldgen feature) … | Bone Meal, Sharp Beak | | Bone (`minecraft:bone`) | Arcanine (basalt, ×0-2); Cranidos (lush_caves, ×0-1); Cubone (sunscorch, ×0-1); Electrike (highlands, ×0-1); Furfrou (southwold, ×0-2); Granbull (lush_caves, ×0-2); Herdier (southwold, ×0-2); Houndoom (basalt, ×0-2); Houndstone (deep_dark, ×1-3); Lillipup (southwold, ×0-1); Lycanroc (frostpeak, ×0-2); Mabosstiff (deep_dark, ×0-2); Manectric (highlands, ×0-2); Marowak (sunscorch, ×1); Mightyena (highlands, ×0-2); Shieldon (lush_caves, ×0-1); Snubbull (lush_caves, ×0-1); Yamper (southwold, ×0-1) | Brush suspicious blocks in Prehistoric Birch Tree (worldgen feature); Brush suspicious blocks in Prehistoric Dripstone Oasis (worldgen feature); Brush suspicious blocks in Prehistoric Enhydro Agate (worldgen feature); Brush suspicious blocks in Prehistoric Eroded Pillar (worldgen feature); Brush suspicious blocks in Prehistoric Hydrothermal Vents (worldgen feature) … | Bone Meal, Sharp Beak |
| Bone Block (`minecraft:bone_block`) | Wailmer (deep_sea, ×0-1); Wailord (deep_sea, ×0-2) | Break Bone Block; Crafting | Bone Meal | | Bone Block (`minecraft:bone_block`) | Wailmer (deep_sea, ×0-1); Wailord (deep_sea, ×0-2) | Break Bone Block; Crafting | Bone Meal |
| Bone Meal (`minecraft:bone_meal`) | Alomomola (shallows, 5%); Arrokuda (mire, 5%); Barraskewda (mire, 10%); Basculegion (frostpeak, 5%); Basculin (frostpeak, 5%); Bruxish (shallows, 5%); Dondozo (mire, 5%); Finneon (shallows, 5%); Goldeen (southwold, 5%); Gyarados (jungle, 10%); Kabuto (lush_caves, 5%); Magikarp (jungle, 5%); Milotic (deep_dark, 10%); Omanyte (lush_caves, 5%); Remoraid (deep_sea, 5%); Tatsugiri (mire, 5%); Veluza (deep_sea, 5%); Wishiwashi (shallows, 5%) | Break Composter; Crafting (shapeless); Loot in Trial Chambers | Bone Block, Cleanse Tag, Dire Hit, Growth Mulch, Guard Spec, Mulch, Terrain Extender, White Dye … | | Bone Meal (`minecraft:bone_meal`) | Alomomola (shallows, 5%); Arrokuda (mire, 5%); Barraskewda (mire, 10%); Basculegion (frostpeak, 5%); Basculin (frostpeak, 5%); Bruxish (shallows, 5%); Dondozo (mire, 5%); Finneon (shallows, 5%); Goldeen (southwold, 5%); Gyarados (westmarch, 10%); Kabuto (lush_caves, 5%); Magikarp (westmarch, 5%); Milotic (deep_dark, 10%); Omanyte (lush_caves, 5%); Remoraid (deep_sea, 5%); Tatsugiri (mire, 5%); Veluza (deep_sea, 5%); Wishiwashi (shallows, 5%) | Break Composter; Crafting (shapeless); Loot in Trial Chambers | Bone Block, Cleanse Tag, Dire Hit, Growth Mulch, Guard Spec, Mulch, Terrain Extender, White Dye … |
| Bowl (`minecraft:bowl`) | – | Brush suspicious blocks in Deserted House Ruins (cobblemon); Brush suspicious blocks in Deserted Tower Ruins (cobblemon); Brush suspicious blocks in Deserted Town Center Ruins (cobblemon); Crafting; Fishing … | Beetroot Soup, Berry Juice, Leek and Potato Stew, Luminous Moss, Mushroom Stew, Rabbit Stew, Sinister Tea, Suspicious Stew … | | Bowl (`minecraft:bowl`) | – | Brush suspicious blocks in Deserted House Ruins (cobblemon); Brush suspicious blocks in Deserted Tower Ruins (cobblemon); Brush suspicious blocks in Deserted Town Center Ruins (cobblemon); Crafting; Fishing … | Beetroot Soup, Berry Juice, Leek and Potato Stew, Luminous Moss, Mushroom Stew, Rabbit Stew, Sinister Tea, Suspicious Stew … |
| Bread (`minecraft:bread`) | Fidough (southwold, ×0-1) | Crafting; Loot in Decaying Crypt Ruins (cobblemon), Mossy Oubliette Ruins (cobblemon), Unstable Cave Ruins (cobblemon); Loot in Mineshaft, Mineshaft Mesa; Loot in Monster Room (worldgen feature); Loot in Village Desert … | Open-Faced Sandwich, Vivichoke Dip | | Bread (`minecraft:bread`) | Dachsbun (dripstone, ×0-2); Fidough (dripstone, ×0-1) | Crafting; Loot in Decaying Crypt Ruins (cobblemon), Mossy Oubliette Ruins (cobblemon), Unstable Cave Ruins (cobblemon); Loot in Mineshaft, Mineshaft Mesa; Loot in Monster Room (worldgen feature); Loot in Village Desert … | Open-Faced Sandwich, Vivichoke Dip |
| Breeze Rod (`minecraft:breeze_rod`) | Whimsicott (highlands, 10%) | – | brewing: Wind Charging, Mace, Smithing Template, Wind Charge | | Breeze Rod (`minecraft:breeze_rod`) | Whimsicott (highlands, 10%) | – | brewing: Wind Charging, Mace, Smithing Template, Wind Charge |
| Bright Powder (`cobblemon:bright_powder`) | Beautifly (button_isle, 5%); Illumise (mire, 5%); Morelull (lush_caves, 2.5%); Scatterbug (button_isle, 2.5%); Shiinotic (lush_caves, 5%); Spewpa (button_isle, 2.5%); Volbeat (mire, 5%) | Break Bright Powder; Smelting | Glow Item Frame, Pokédex, Pokédex, Pokédex, Pokédex, Pokédex, Pokédex, Pokédex | | Bright Powder (`cobblemon:bright_powder`) | Beautifly (button_isle, 5%); Illumise (mire, 5%); Morelull (lush_caves, 2.5%); Scatterbug (button_isle, 2.5%); Shiinotic (lush_caves, 5%); Spewpa (button_isle, 2.5%); Volbeat (mire, 5%) | Break Bright Powder; Smelting | Glow Item Frame, Pokédex, Pokédex, Pokédex, Pokédex, Pokédex, Pokédex, Pokédex |
| Brown Mushroom (`minecraft:brown_mushroom`) | Breloom (westmarch, ×0-2); Morelull (lush_caves, ×0-1); Shiinotic (lush_caves, ×0-2); Shroomish (westmarch, ×0-1) | Break Brown Mushroom; Break Brown Mushroom Block | Fermented Spider Eye, Mushroom Stew, Poké Bait, Rabbit Stew, Suspicious Stew | | Brown Mushroom (`minecraft:brown_mushroom`) | Breloom (westmarch, ×0-2); Morelull (lush_caves, ×0-1); Shiinotic (lush_caves, ×0-2); Shroomish (westmarch, ×0-1) | Break Brown Mushroom; Break Brown Mushroom Block | Fermented Spider Eye, Mushroom Stew, Poké Bait, Rabbit Stew, Suspicious Stew |
@@ -38,60 +38,60 @@ Generated by `tools/drop_audit.py` (roadmap Phase 4, "unique drops"): every item
| Chameleon Molt (`cold_sweat:chameleon_molt`) | none (Cold Sweat's chameleon armour and Thermolith are not part of the pack's progression) | – | Chameleon Scale Boots, Chameleon Scale Chestplate, Chameleon Scale Helmet, Chameleon Scale Leggings, Thermolith | | Chameleon Molt (`cold_sweat:chameleon_molt`) | none (Cold Sweat's chameleon armour and Thermolith are not part of the pack's progression) | – | Chameleon Scale Boots, Chameleon Scale Chestplate, Chameleon Scale Helmet, Chameleon Scale Leggings, Thermolith |
| Charcoal (`minecraft:charcoal`) | Ninetales (highlands, 5%); Turtonator (basalt, 5%); Vulpix (highlands, 2.5%) | Break Campfire; Brush suspicious blocks in Prehistoric Birch Tree (worldgen feature); Brush suspicious blocks in Prehistoric Oak Tree (worldgen feature); Smelting | Campfire, Charcoal Stick, Fire Charge, Soul Torch, Torch | | Charcoal (`minecraft:charcoal`) | Ninetales (highlands, 5%); Turtonator (basalt, 5%); Vulpix (highlands, 2.5%) | Break Campfire; Brush suspicious blocks in Prehistoric Birch Tree (worldgen feature); Brush suspicious blocks in Prehistoric Oak Tree (worldgen feature); Smelting | Campfire, Charcoal Stick, Fire Charge, Soul Torch, Torch |
| Charti Berry (`cobblemon:charti_berry`) | Centiskorch (basalt, 5%); Combee (button_isle, 2.5%); Delibird (frostpeak, 5%); Fearow (sunscorch, 5%); Frosmoth (frostpeak, 5%); Larvesta (sunscorch, 2.5%); Ledyba (button_isle, 2.5%); Taillow (southwold, 2.5%); Torkoal (basalt, 5%); Yanma (mire, 2.5%); Yanmega (mire, 5%) | Break Charti Berry; Wild berry trees in Badlands, Beach, Cherry Grove, Desert, Dripstone Caves, Jagged Peaks and 1 more | Berry Juice, Brown Dye, Candied Berries | | Charti Berry (`cobblemon:charti_berry`) | Centiskorch (basalt, 5%); Combee (button_isle, 2.5%); Delibird (frostpeak, 5%); Fearow (sunscorch, 5%); Frosmoth (frostpeak, 5%); Larvesta (sunscorch, 2.5%); Ledyba (button_isle, 2.5%); Taillow (southwold, 2.5%); Torkoal (basalt, 5%); Yanma (mire, 2.5%); Yanmega (mire, 5%) | Break Charti Berry; Wild berry trees in Badlands, Beach, Cherry Grove, Desert, Dripstone Caves, Jagged Peaks and 1 more | Berry Juice, Brown Dye, Candied Berries |
| Cheri Berry (`cobblemon:cheri_berry`) | Ampharos (highlands, 10%); Cherrim (frostpeak, 5%); Cutiefly (southwold, 2.5%); Dunsparce (westmarch, 2.5%); Electabuzz (frostpeak, 5%); Electivire (frostpeak, 10%); Electrike (highlands, 2.5%); Flaaffy (highlands, 5%); Glameow (southwold, 2.5%); Manectric (highlands, 5%); Mareep (highlands, 2.5%); Minun (southwold, 5%); Pachirisu (button_isle, 5%); Plusle (southwold, 5%); Scatterbug (button_isle, 2.5%); Spewpa (button_isle, 2.5%) | Break Cheri Berry; Wild berry trees in Plains | Berry Juice, Candied Berries, Paralyze Heal, Red Dye | | Cheri Berry (`cobblemon:cheri_berry`) | Ampharos (highlands, 10%); Cherrim (frostpeak, 5%); Cutiefly (lush_caves, 2.5%); Dunsparce (southwold, 2.5%); Electabuzz (frostpeak, 5%); Electivire (frostpeak, 10%); Electrike (highlands, 2.5%); Flaaffy (highlands, 5%); Glameow (southwold, 2.5%); Manectric (highlands, 5%); Mareep (highlands, 2.5%); Minun (southwold, 5%); Pachirisu (button_isle, 5%); Plusle (southwold, 5%); Ribombee (lush_caves, 5%); Scatterbug (button_isle, 2.5%); Spewpa (button_isle, 2.5%) | Break Cheri Berry; Wild berry trees in Plains | Berry Juice, Candied Berries, Paralyze Heal, Red Dye |
| Chesto Berry (`cobblemon:chesto_berry`) | Drowzee (southwold, 2.5%); Hippopotas (sunscorch, 2.5%); Hippowdon (sunscorch, 5%); Mimikyu (deep_dark, 5%); Minccino (southwold, 2.5%); Munchlax (jungle, 2.5%); Munna (southwold, 2.5%); Politoed (highlands, 10%); Poliwag (highlands, 2.5%); Poliwhirl (highlands, 5%); Poliwrath (highlands, 10%); Slakoth (jungle, 2.5%); Slowpoke (mire, 2.5%); Spinda (frostpeak, 5%); Vigoroth (jungle, 5%); Wailmer (deep_sea, 2.5%); Wailord (deep_sea, 5%); Whismur (southwold, 2.5%) | Break Chesto Berry; Wild berry trees in Cherry Grove, Forest | Awakening, Berry Juice, Blue Dye, Candied Berries | | Chesto Berry (`cobblemon:chesto_berry`) | Drowzee (dripstone, 2.5%); Hippopotas (sunscorch, 2.5%); Hippowdon (sunscorch, 5%); Hypno (dripstone, 5%); Mimikyu (deep_dark, 5%); Minccino (southwold, 2.5%); Munchlax (westmarch, 2.5%); Munna (dripstone, 2.5%); Musharna (dripstone, 5%); Politoed (highlands, 10%); Poliwag (highlands, 2.5%); Poliwhirl (highlands, 5%); Poliwrath (highlands, 10%); Slakoth (jungle, 2.5%); Slowpoke (mire, 2.5%); Spinda (frostpeak, 5%); Vigoroth (jungle, 5%); Wailmer (deep_sea, 2.5%); Wailord (deep_sea, 5%); Whismur (southwold, 2.5%) | Break Chesto Berry; Wild berry trees in Cherry Grove, Forest | Awakening, Berry Juice, Blue Dye, Candied Berries |
| Chilan Berry (`cobblemon:chilan_berry`) | Bunnelby (southwold, 2.5%); Farfetch'd (westmarch, 5%); Herdier (westmarch, 5%); Hoothoot (button_isle, 2.5%); Lillipup (westmarch, 2.5%); Maushold (westmarch, 5%); Pidgeotto (highlands, 5%); Pidgey (highlands, 2.5%); Rattata (button_isle, 2.5%); Squawkabilly (southwold, 5%); Tandemaus (westmarch, 2.5%) | Break Chilan Berry; Wild berry trees in Cherry Grove, Forest, Plains | Berry Juice, Candied Berries, Yellow Dye | | Chilan Berry (`cobblemon:chilan_berry`) | Bunnelby (southwold, 2.5%); Farfetch'd (southwold, 5%); Herdier (southwold, 5%); Hoothoot (button_isle, 2.5%); Lillipup (southwold, 2.5%); Maushold (westmarch, 5%); Pidgeotto (highlands, 5%); Pidgey (highlands, 2.5%); Rattata (button_isle, 2.5%); Squawkabilly (southwold, 5%); Tandemaus (westmarch, 2.5%) | Break Chilan Berry; Wild berry trees in Cherry Grove, Forest, Plains | Berry Juice, Candied Berries, Yellow Dye |
| Chople Berry (`cobblemon:chople_berry`) | Buneary (westmarch, 2.5%); Lucario (frostpeak, 5%); Nosepass (westmarch, 2.5%); Pawniard (sunscorch, 2.5%); Pupitar (frostpeak, 5%); Sneasel (frostpeak, 2.5%); Tyranitar (frostpeak, 10%) | Break Chople Berry; Wild berry trees in Cherry Grove, Jagged Peaks, Windswept Hills | Berry Juice, Candied Berries, Red Dye | | Chople Berry (`cobblemon:chople_berry`) | Buneary (westmarch, 2.5%); Lucario (frostpeak, 5%); Pawniard (sunscorch, 2.5%); Probopass (deep_dark, 5%); Pupitar (frostpeak, 5%); Sneasel (frostpeak, 2.5%); Tyranitar (frostpeak, 10%) | Break Chople Berry; Wild berry trees in Cherry Grove, Jagged Peaks, Windswept Hills | Berry Juice, Candied Berries, Red Dye |
| Clay Ball (`minecraft:clay_ball`) | Baltoy (westmarch, ×0-1); Barboach (southwold, ×0-1); Donphan (sunscorch, ×0-2); Golett (highlands, ×0-1); Marshtomp (mire, ×0-2); Mudbray (highlands, ×0-1); Mudkip (mire, ×0-1); Mudsdale (highlands, ×0-2); Palpitoad (sunscorch, ×0-2); Phanpy (sunscorch, ×0-1); Seismitoad (sunscorch, ×0-3); Shellos (shallows, ×0-1); Swampert (mire, ×0-3); Wooper (button_isle, ×0-1) | Break Clay; Loot in Village Desert | Brick, Chipped Pot, Clay, Cracked Pot, Light Clay, Masterpiece Teacup, Metal Coat, Unremarkable Teacup | | Clay Ball (`minecraft:clay_ball`) | Baltoy (dripstone, ×0-1); Barboach (lush_caves, ×0-1); Claydol (dripstone, ×0-2); Donphan (sunscorch, ×0-2); Golett (highlands, ×0-1); Marshtomp (mire, ×0-2); Mudbray (highlands, ×0-1); Mudkip (mire, ×0-1); Mudsdale (highlands, ×0-2); Palpitoad (sunscorch, ×0-2); Phanpy (sunscorch, ×0-1); Seismitoad (sunscorch, ×0-3); Shellos (shallows, ×0-1); Swampert (mire, ×0-3); Wooper (button_isle, ×0-1) | Break Clay; Loot in Village Desert | Brick, Chipped Pot, Clay, Cracked Pot, Light Clay, Masterpiece Teacup, Metal Coat, Unremarkable Teacup |
| Coal (`minecraft:coal`) | Carkol (westmarch, ×0-2); Rolycoly (westmarch, ×0-1); Torkoal (basalt, ×0-2) | Blast furnace; Break Coal Ore; Brush suspicious blocks in Ocean Ruin Cold; Brush suspicious blocks in Ocean Ruin Warm; Brush suspicious blocks in Prehistoric Birch Tree (worldgen feature) … | Block of Coal, Campfire, Fire Charge, Soul Torch, Torch | | Coal (`minecraft:coal`) | Coalossal (deep_dark, ×0-3); Torkoal (basalt, ×0-2) | Blast furnace; Break Coal Ore; Brush suspicious blocks in Ocean Ruin Cold; Brush suspicious blocks in Ocean Ruin Warm; Brush suspicious blocks in Prehistoric Birch Tree (worldgen feature) … | Block of Coal, Campfire, Fire Charge, Soul Torch, Torch |
| Coba Berry (`cobblemon:coba_berry`) | Eldegoss (frostpeak, 5%); Hawlucha (westmarch, 5%); Heracross (westmarch, 5%); Kricketot (button_isle, 2.5%); Kricketune (button_isle, 5%); Leavanny (highlands, 10%); Lokix (highlands, 5%); Paras (lush_caves, 2.5%); Parasect (lush_caves, 5%); Sewaddle (highlands, 2.5%); Sunkern (button_isle, 2.5%); Swadloon (highlands, 5%) | Break Coba Berry; Wild berry trees in Cherry Grove, Forest, Jagged Peaks, Plains | Berry Juice, Candied Berries, Light Blue Dye | | Coba Berry (`cobblemon:coba_berry`) | Eldegoss (frostpeak, 5%); Hawlucha (southwold, 5%); Heracross (southwold, 5%); Kricketot (button_isle, 2.5%); Kricketune (button_isle, 5%); Lokix (highlands, 5%); Paras (lush_caves, 2.5%); Parasect (lush_caves, 5%); Sewaddle (westmarch, 2.5%); Sunkern (button_isle, 2.5%); Swadloon (westmarch, 5%) | Break Coba Berry; Wild berry trees in Cherry Grove, Forest, Jagged Peaks, Plains | Berry Juice, Candied Berries, Light Blue Dye |
| Colbur Berry (`cobblemon:colbur_berry`) | Baltoy (westmarch, 2.5%); Chingling (southwold, 2.5%); Elgyem (southwold, 2.5%); Espurr (southwold, 2.5%); Golett (highlands, 2.5%); Lunatone (dripstone, 5%); Sigilyph (southwold, 5%); Solrock (dripstone, 5%); Swoobat (jungle, 5%); Woobat (jungle, 2.5%); Wynaut (button_isle, 2.5%); Zorua (highlands, 2.5%) | Break Colbur Berry; Wild berry trees in Badlands, Deep Dark | Berry Juice, Candied Berries, Magenta Dye | | Colbur Berry (`cobblemon:colbur_berry`) | Baltoy (dripstone, 2.5%); Chingling (southwold, 2.5%); Claydol (dripstone, 5%); Elgyem (dripstone, 2.5%); Espurr (dripstone, 2.5%); Golett (highlands, 2.5%); Lunatone (dripstone, 5%); Meowstic (dripstone, 5%); Sigilyph (dripstone, 5%); Solrock (dripstone, 5%); Swoobat (jungle, 5%); Woobat (jungle, 2.5%); Wynaut (button_isle, 2.5%); Zorua (highlands, 2.5%) | Break Colbur Berry; Wild berry trees in Badlands, Deep Dark | Berry Juice, Candied Berries, Magenta Dye |
| Copper Ingot (`minecraft:copper_ingot`) | – | Blast furnace; Brush suspicious blocks in Decaying Crypt Ruins (cobblemon); Brush suspicious blocks in Deserted Gimmi Tower (cobblemon); Brush suspicious blocks in Deserted Gimmi Tower (cobblemon), Frozen Gimmi Tower (cobblemon), Lush Gimmi Tower (cobblemon), Rooted Gimmi Tower (cobblemon), Sunscorched Gimmi Tower (cobblemon), Temperate Gimmi Tower (cobblemon); Brush suspicious blocks in Deserted Gimmi Tower (cobblemon), Rooted Gimmi Tower (cobblemon), Temperate Gimmi Tower (cobblemon) … | Ancient Azure Ball, Ancient Citrine Ball, Ancient Feather Ball, Ancient Heavy Ball, Ancient Ivory Ball, Ancient Poké Ball, Ancient Roseate Ball, Ancient Slate Ball … | | Copper Ingot (`minecraft:copper_ingot`) | – | Blast furnace; Brush suspicious blocks in Decaying Crypt Ruins (cobblemon); Brush suspicious blocks in Deserted Gimmi Tower (cobblemon); Brush suspicious blocks in Deserted Gimmi Tower (cobblemon), Frozen Gimmi Tower (cobblemon), Lush Gimmi Tower (cobblemon), Rooted Gimmi Tower (cobblemon), Sunscorched Gimmi Tower (cobblemon), Temperate Gimmi Tower (cobblemon); Brush suspicious blocks in Deserted Gimmi Tower (cobblemon), Rooted Gimmi Tower (cobblemon), Temperate Gimmi Tower (cobblemon) … | Ancient Azure Ball, Ancient Citrine Ball, Ancient Feather Ball, Ancient Heavy Ball, Ancient Ivory Ball, Ancient Poké Ball, Ancient Roseate Ball, Ancient Slate Ball … |
| Cyan Wool (`minecraft:cyan_wool`) | – | Break Cyan Wool; Crafting (shapeless) | Air Balloon, Black Wool, Blue Wool, Brown Wool, Choice Scarf, Covert Cloak, Cyan Banner, Cyan Bed … | | Cyan Wool (`minecraft:cyan_wool`) | – | Break Cyan Wool; Crafting (shapeless) | Air Balloon, Black Wool, Blue Wool, Brown Wool, Choice Scarf, Covert Cloak, Cyan Banner, Cyan Bed … |
| Dandelion (`minecraft:dandelion`) | Skiploom (highlands, ×1) | Break Dandelion; Break Potted Dandelion; Loot in Village Plains; Use c:fertilizers on your Hoppip; Use c:fertilizers on your Jumpluff … | Suspicious Stew, Yellow Dye | | Dandelion (`minecraft:dandelion`) | Skiploom (highlands, ×1) | Break Dandelion; Break Potted Dandelion; Loot in Village Plains; Use c:fertilizers on your Hoppip; Use c:fertilizers on your Jumpluff … | Suspicious Stew, Yellow Dye |
| Dawn Stone (`cobblemon:dawn_stone`) | Froslass (frostpeak, 5%); Glalie (frostpeak, 5%); Kirlia (westmarch, 5%); Ralts (westmarch, 2.5%) | Brush suspicious blocks in Frozen Gimmi Tower (cobblemon); Brush suspicious blocks in Lush Gimmi Tower (cobblemon); Crafting (shapeless); Loot in Crumbling Arch (worldgen feature); Loot in Decaying Crypt Ruins (cobblemon), Deep Crypt (worldgen feature), Deserted Gimmi Tower (cobblemon), Frozen Gimmi Tower (cobblemon), Lush Gimmi Tower (cobblemon), Reclaimed Deserted Monument (cobblemon) and 5 more … | Dawn Stone Block | | Dawn Stone (`cobblemon:dawn_stone`) | Froslass (frostpeak, 5%); Gallade (deep_dark, 10%); Gardevoir (deep_dark, 10%); Glalie (frostpeak, 5%) | Brush suspicious blocks in Frozen Gimmi Tower (cobblemon); Brush suspicious blocks in Lush Gimmi Tower (cobblemon); Crafting (shapeless); Loot in Crumbling Arch (worldgen feature); Loot in Decaying Crypt Ruins (cobblemon), Deep Crypt (worldgen feature), Deserted Gimmi Tower (cobblemon), Frozen Gimmi Tower (cobblemon), Lush Gimmi Tower (cobblemon), Reclaimed Deserted Monument (cobblemon) and 5 more … | Dawn Stone Block |
| Diamond (`minecraft:diamond`) | Carbink (westmarch, 5%); Sableye (button_isle, 5%) | Blast furnace; Break Deepslate Diamond Ore; Brush suspicious blocks in Deep Crypt (worldgen feature); Brush suspicious blocks in Desert Pyramid; Crafting (shapeless) … | Ability Shield, Beast Ball, Block of Diamond, Choice Scarf, Clear Amulet, Diamond Axe, Diamond Boots, Diamond Chestplate … | | Diamond (`minecraft:diamond`) | Carbink (deep_dark, 5%); Sableye (button_isle, 5%) | Blast furnace; Break Deepslate Diamond Ore; Brush suspicious blocks in Deep Crypt (worldgen feature); Brush suspicious blocks in Desert Pyramid; Crafting (shapeless) … | Ability Shield, Beast Ball, Block of Diamond, Choice Scarf, Clear Amulet, Diamond Axe, Diamond Boots, Diamond Chestplate … |
| Diamond Sword (`minecraft:diamond_sword`) | – | Crafting; Loot in Trial Chambers | Netherite Sword | | Diamond Sword (`minecraft:diamond_sword`) | – | Crafting; Loot in Trial Chambers | Netherite Sword |
| Dirt (`minecraft:dirt`) | Diglett (button_isle, ×0-1); Drilbur (westmarch, ×0-1) | Break Dirt; Break Farmland; Break Grass Block; Break Mycelium; Break Podzol | Coarse Dirt, Loamy Mulch, Mulch, Peat Block | | Dirt (`minecraft:dirt`) | Dugtrio (basalt, ×0-2); Excadrill (basalt, ×0-2) | Break Dirt; Break Farmland; Break Grass Block; Break Mycelium; Break Podzol | Coarse Dirt, Loamy Mulch, Mulch, Peat Block |
| Dragon's Breath (`minecraft:dragon_breath`) | Deino (mire, ×0-1); Dragonair (mire, ×0-2); Drampa (sunscorch, 5%); Dratini (mire, ×0-1) | – | brewing: lingering potions, Ability Capsule | | Dragon's Breath (`minecraft:dragon_breath`) | Drampa (sunscorch, 5%); Dratini (westmarch, ×0-1); Zweilous (deep_dark, ×0-2) | – | brewing: lingering potions, Ability Capsule |
| Dusk Stone (`cobblemon:dusk_stone`) | Honedge (westmarch, 2.5%) | Brush suspicious blocks in Rooted Gimmi Tower (cobblemon); Crafting (shapeless); Loot in Crumbling Arch (worldgen feature); Loot in Decaying Crypt Ruins (cobblemon), Deep Crypt (worldgen feature), Deserted Gimmi Tower (cobblemon), Frozen Gimmi Tower (cobblemon), Lush Gimmi Tower (cobblemon), Reclaimed Deserted Monument (cobblemon) and 5 more; Loot in Decaying Crypt Ruins (cobblemon), Rooted Gimmi Tower (cobblemon) … | Dusk Stone Block | | Dusk Stone (`cobblemon:dusk_stone`) | – | Brush suspicious blocks in Rooted Gimmi Tower (cobblemon); Crafting (shapeless); Loot in Crumbling Arch (worldgen feature); Loot in Decaying Crypt Ruins (cobblemon), Deep Crypt (worldgen feature), Deserted Gimmi Tower (cobblemon), Frozen Gimmi Tower (cobblemon), Lush Gimmi Tower (cobblemon), Reclaimed Deserted Monument (cobblemon) and 5 more; Loot in Decaying Crypt Ruins (cobblemon), Rooted Gimmi Tower (cobblemon) … | Dusk Stone Block |
| Echo Shard (`minecraft:echo_shard`) | – | Loot in Ancient City | Beast Ball, Recovery Compass | | Echo Shard (`minecraft:echo_shard`) | – | Loot in Ancient City | Beast Ball, Recovery Compass |
| Egg (`minecraft:egg`) | Chansey (jungle, 50%); Exeggcute (jungle, ×0-3); Exeggutor (jungle, ×0-3) | Loot in Trial Chambers | Cake, Open-Faced Sandwich, Oran Lucky Egg, Pumpkin Pie | | Egg (`minecraft:egg`) | Chansey (southwold, 50%); Exeggcute (jungle, ×0-3); Exeggutor (jungle, ×0-3) | Loot in Trial Chambers | Cake, Open-Faced Sandwich, Oran Lucky Egg, Pumpkin Pie |
| Electirizer (`cobblemon:electirizer`) | Electabuzz (frostpeak, 5%); Electivire (frostpeak, 10%) | Break Electirizer; Crafting | Power Block | | Electirizer (`cobblemon:electirizer`) | Electabuzz (frostpeak, 5%); Electivire (frostpeak, 10%) | Break Electirizer; Crafting | Power Block |
| Electric Seed (`cobblemon:electric_seed`) | Togedemaru (frostpeak, 5%) | Break Electric Seed | Miracle Seed | | Electric Seed (`cobblemon:electric_seed`) | Togedemaru (frostpeak, 5%) | Break Electric Seed | Miracle Seed |
| Emerald (`minecraft:emerald`) | Nickit (westmarch, 2.5%); Sableye (button_isle, 5%); Thievul (westmarch, 5%) | Blast furnace; Break Emerald Ore; Brush suspicious blocks in Decaying Crypt Ruins (cobblemon); Brush suspicious blocks in Desert Pyramid; Brush suspicious blocks in Desert Well (worldgen feature) … | Block of Emerald | | Emerald (`minecraft:emerald`) | Nickit (westmarch, 2.5%); Sableye (button_isle, 5%); Thievul (westmarch, 5%) | Blast furnace; Break Emerald Ore; Brush suspicious blocks in Decaying Crypt Ruins (cobblemon); Brush suspicious blocks in Desert Pyramid; Brush suspicious blocks in Desert Well (worldgen feature) … | Block of Emerald |
| Ender Pearl (`minecraft:ender_pearl`) | Abra (highlands, ×0-1); Alakazam (highlands, ×0-3); Beldum (dripstone, ×0-1); Elgyem (southwold, ×0-1); Grumpig (frostpeak, ×0-2); Kadabra (highlands, ×0-2); Kirlia (westmarch, ×0-2); Metang (dripstone, ×0-2); Rabsca (sunscorch, ×1); Ralts (westmarch, ×0-1); Sigilyph (southwold, ×0-1); Unown (jungle, ×0-1) | Loot in Trial Chambers | Eye of Ender, Flame Orb, Life Orb, Light Ball, Light Clay, Link Cable, Smoke Ball, Toxic Orb | | Ender Pearl (`minecraft:ender_pearl`) | Abra (highlands, ×0-1); Alakazam (highlands, ×0-3); Beldum (dripstone, ×0-1); Elgyem (dripstone, ×0-1); Gallade (deep_dark, ×0-3); Gardevoir (deep_dark, ×0-3); Grumpig (frostpeak, ×0-2); Kadabra (highlands, ×0-2); Metang (dripstone, ×0-2); Rabsca (sunscorch, ×1); Sigilyph (dripstone, ×0-1); Unown (jungle, ×0-1) | Loot in Trial Chambers | Eye of Ender, Flame Orb, Life Orb, Light Ball, Light Clay, Link Cable, Smoke Ball, Toxic Orb |
| Everstone (`cobblemon:everstone`) | Boldore (westmarch, 5%); Geodude (westmarch, 2.5%); Graveler (westmarch, 5%); Roggenrola (westmarch, 2.5%) | Brush suspicious blocks in Prehistoric Birch Tree (worldgen feature); Brush suspicious blocks in Prehistoric Dripstone Oasis (worldgen feature); Brush suspicious blocks in Prehistoric Enhydro Agate (worldgen feature); Brush suspicious blocks in Prehistoric Eroded Pillar (worldgen feature); Brush suspicious blocks in Prehistoric Hydrothermal Vents (worldgen feature) … | Eviolite | | Everstone (`cobblemon:everstone`) | Geodude (dripstone, 2.5%); Gigalith (deep_dark, 10%); Golem (dripstone, 10%); Graveler (dripstone, 5%) | Brush suspicious blocks in Prehistoric Birch Tree (worldgen feature); Brush suspicious blocks in Prehistoric Dripstone Oasis (worldgen feature); Brush suspicious blocks in Prehistoric Enhydro Agate (worldgen feature); Brush suspicious blocks in Prehistoric Eroded Pillar (worldgen feature); Brush suspicious blocks in Prehistoric Hydrothermal Vents (worldgen feature) … | Eviolite |
| Feather (`minecraft:feather`) | Archen (lush_caves, ×0-2); Braviary (frostpeak, ×0-2); Chatot (jungle, ×0-2); Combusken (highlands, ×0-2); Corviknight (deep_dark, ×0-3); Cramorant (shallows, ×0-2); Dartrix (frostpeak, ×0-2); Decidueye (frostpeak, ×0-3); Delibird (frostpeak, ×0-2); Ducklett (mire, ×0-1); Farfetch'd (westmarch, ×0-1); Fearow (sunscorch, ×0-2); Flamigo (mire, ×0-2); Fletchinder (westmarch, ×0-2); Fletchling (westmarch, ×0-1); Golduck (highlands, ×0-2); Honchkrow (deep_dark, ×0-3); Hoothoot (button_isle, ×0-1); Kilowattrel (deep_sea, ×0-2); Natu (jungle, ×0-1); Pidgeotto (highlands, ×0-2); Pidgey (highlands, ×0-1); Pidove (southwold, ×0-1); Pikipek (jungle, ×0-1); Psyduck (highlands, ×0-1); Squawkabilly (southwold, ×0-2); Staraptor (frostpeak, ×0-3); Swanna (mire, ×0-2); Taillow (southwold, ×0-1); Torchic (highlands, ×0-1); Toucannon (jungle, ×0-3); Trumbeak (jungle, ×0-2); Wingull (shallows, ×0-1); Xatu (jungle, ×0-2) | Loot in Shipwreck, Shipwreck Beached; Loot in Village Plains; Use c:tools/brush on your Archen; Use c:tools/brush on your Archeops; Use c:tools/brush on your Blaziken … | Arrow, Blunder Policy, Book and Quill, Brush, Clever Feather, Fairy Feather, Genius Feather, Health Feather … | | Feather (`minecraft:feather`) | Archen (lush_caves, ×0-2); Braviary (frostpeak, ×0-2); Chatot (jungle, ×0-2); Combusken (highlands, ×0-2); Corviknight (deep_dark, ×0-3); Cramorant (shallows, ×0-2); Dartrix (frostpeak, ×0-2); Decidueye (frostpeak, ×0-3); Delibird (frostpeak, ×0-2); Ducklett (mire, ×0-1); Farfetch'd (southwold, ×0-1); Fearow (sunscorch, ×0-2); Flamigo (mire, ×0-2); Fletchinder (highlands, ×0-2); Fletchling (highlands, ×0-1); Golduck (highlands, ×0-2); Honchkrow (deep_dark, ×0-3); Hoothoot (button_isle, ×0-1); Kilowattrel (deep_sea, ×0-2); Natu (jungle, ×0-1); Pidgeotto (highlands, ×0-2); Pidgey (highlands, ×0-1); Pidove (southwold, ×0-1); Pikipek (jungle, ×0-1); Psyduck (highlands, ×0-1); Squawkabilly (southwold, ×0-2); Staraptor (frostpeak, ×0-3); Swanna (mire, ×0-2); Taillow (southwold, ×0-1); Talonflame (highlands, ×0-3); Torchic (highlands, ×0-1); Toucannon (jungle, ×0-3); Trumbeak (jungle, ×0-2); Wingull (shallows, ×0-1); Xatu (jungle, ×0-2) | Loot in Shipwreck, Shipwreck Beached; Loot in Village Plains; Use c:tools/brush on your Archen; Use c:tools/brush on your Archeops; Use c:tools/brush on your Blaziken … | Arrow, Blunder Policy, Book and Quill, Brush, Clever Feather, Fairy Feather, Genius Feather, Health Feather … |
| Fire Stone (`cobblemon:fire_stone`) | Pansear (jungle, 2.5%); Simisear (jungle, 5%) | Crafting (shapeless); Loot in Crumbling Arch (worldgen feature); Loot in Decaying Crypt Ruins (cobblemon), Deep Crypt (worldgen feature), Deserted Gimmi Tower (cobblemon), Frozen Gimmi Tower (cobblemon), Lush Gimmi Tower (cobblemon), Reclaimed Deserted Monument (cobblemon) and 5 more; Loot in Decaying Crypt Ruins (cobblemon), Rooted Gimmi Tower (cobblemon); Loot in Deep Crypt (worldgen feature), Lush Gimmi Tower (cobblemon) … | Fire Stone Block, Flame Orb, Heat Rock | | Fire Stone (`cobblemon:fire_stone`) | Pansear (jungle, 2.5%); Simisear (jungle, 5%) | Crafting (shapeless); Loot in Crumbling Arch (worldgen feature); Loot in Decaying Crypt Ruins (cobblemon), Deep Crypt (worldgen feature), Deserted Gimmi Tower (cobblemon), Frozen Gimmi Tower (cobblemon), Lush Gimmi Tower (cobblemon), Reclaimed Deserted Monument (cobblemon) and 5 more; Loot in Decaying Crypt Ruins (cobblemon), Rooted Gimmi Tower (cobblemon); Loot in Deep Crypt (worldgen feature), Lush Gimmi Tower (cobblemon) … | Fire Stone Block, Flame Orb, Heat Rock |
| Flint (`minecraft:flint`) | Nosepass (westmarch, ×0-1) | Break Gravel | Arrow, Fletching Table, Flint and Steel, Utility Umbrella | | Flint (`minecraft:flint`) | Probopass (deep_dark, ×0-3) | Break Gravel | Arrow, Fletching Table, Flint and Steel, Utility Umbrella |
| Ghast Tear (`minecraft:ghast_tear`) | Drifloon (westmarch, 5%); Dusclops (deep_dark, 10%) | – | brewing: Regeneration, Destiny Knot, End Crystal, Focus Sash, Life Orb, Reaper Cloth | | Ghast Tear (`minecraft:ghast_tear`) | Drifloon (southwold, 5%); Dusclops (deep_dark, 10%) | – | brewing: Regeneration, Destiny Knot, End Crystal, Focus Sash, Life Orb, Reaper Cloth |
| Glass Bottle (`minecraft:glass_bottle`) | – | Crafting; Loot in Beach (cobblemon), Deep Ocean (cobblemon), Warm Ocean (cobblemon); Loot in Crumbling Arch (worldgen feature); Loot in Decaying Crypt Ruins (cobblemon), Deep Crypt (worldgen feature), Deserted Gimmi Tower (cobblemon), Frozen Gimmi Tower (cobblemon), Lush Gimmi Tower (cobblemon), Reclaimed Deserted Monument (cobblemon) and 5 more; Loot in Decaying Crypt Ruins (cobblemon), Rooted Gimmi Tower (cobblemon) … | Antidote, Awakening, Burn Heal, Dire Hit, Full Heal, Guard Spec, Honey Bottle, Ice Heal … | | Glass Bottle (`minecraft:glass_bottle`) | – | Crafting; Loot in Beach (cobblemon), Deep Ocean (cobblemon), Warm Ocean (cobblemon); Loot in Crumbling Arch (worldgen feature); Loot in Decaying Crypt Ruins (cobblemon), Deep Crypt (worldgen feature), Deserted Gimmi Tower (cobblemon), Frozen Gimmi Tower (cobblemon), Lush Gimmi Tower (cobblemon), Reclaimed Deserted Monument (cobblemon) and 5 more; Loot in Decaying Crypt Ruins (cobblemon), Rooted Gimmi Tower (cobblemon) … | Antidote, Awakening, Burn Heal, Dire Hit, Full Heal, Guard Spec, Honey Bottle, Ice Heal … |
| Glow Ink Sac (`minecraft:glow_ink_sac`) | Frillish (deep_sea, ×0-1); Jellicent (deep_sea, ×0-2); Tentacool (westmarch, 10%) | – | Glow Item Frame, Light Clay, Pokédex, Pokédex, Pokédex, Pokédex, Pokédex, Pokédex … | | Glow Ink Sac (`minecraft:glow_ink_sac`) | Frillish (deep_sea, ×0-1); Jellicent (deep_sea, ×0-2); Tentacool (southwold, 10%) | – | Glow Item Frame, Light Clay, Pokédex, Pokédex, Pokédex, Pokédex, Pokédex, Pokédex … |
| Glowstone Dust (`minecraft:glowstone_dust`) | – | Break Glowstone | brewing: stronger potions, Blunder Policy, Glowstone, Pokédex, Pokédex, Pokédex, Pokédex, Pokédex … | | Glowstone Dust (`minecraft:glowstone_dust`) | – | Break Glowstone | brewing: stronger potions, Blunder Policy, Glowstone, Pokédex, Pokédex, Pokédex, Pokédex, Pokédex … |
| Goat Fur (`cold_sweat:goat_fur`) | – | Crafting (pack recipe) | Goat Fur Boots, Goat Fur Cap, Goat Fur Pants, Goat Fur Parka, Minecart Insulation, Minecart with Insulation | | Goat Fur (`cold_sweat:goat_fur`) | – | Crafting (pack recipe) | Goat Fur Boots, Goat Fur Cap, Goat Fur Pants, Goat Fur Parka, Minecart Insulation, Minecart with Insulation |
| Gold Ingot (`minecraft:gold_ingot`) | – | Blast furnace; Brush suspicious blocks in Decaying Crypt Ruins (cobblemon); Brush suspicious blocks in Deep Crypt (worldgen feature); Brush suspicious blocks in Deserted Gimmi Tower (cobblemon); Brush suspicious blocks in Deserted Gimmi Tower (cobblemon), Frozen Gimmi Tower (cobblemon), Lush Gimmi Tower (cobblemon), Rooted Gimmi Tower (cobblemon), Sunscorched Gimmi Tower (cobblemon), Temperate Gimmi Tower (cobblemon) … | Ancient Gigaton Ball, Ancient Jet Ball, Ancient Ultra Ball, Beast Ball, Black Gilded Chest, Block of Gold, Blue Gilded Chest, Chipped Pot … | | Gold Ingot (`minecraft:gold_ingot`) | – | Blast furnace; Brush suspicious blocks in Decaying Crypt Ruins (cobblemon); Brush suspicious blocks in Deep Crypt (worldgen feature); Brush suspicious blocks in Deserted Gimmi Tower (cobblemon); Brush suspicious blocks in Deserted Gimmi Tower (cobblemon), Frozen Gimmi Tower (cobblemon), Lush Gimmi Tower (cobblemon), Rooted Gimmi Tower (cobblemon), Sunscorched Gimmi Tower (cobblemon), Temperate Gimmi Tower (cobblemon) … | Ancient Gigaton Ball, Ancient Jet Ball, Ancient Ultra Ball, Beast Ball, Black Gilded Chest, Block of Gold, Blue Gilded Chest, Chipped Pot … |
| Gold Nugget (`minecraft:gold_nugget`) | Meowth (southwold, ×0-1) | Blast furnace; Brush suspicious blocks in Ocean Ruin Cold; Brush suspicious blocks in Ocean Ruin Warm; Brush suspicious blocks in Trail Ruins; Crafting (shapeless) … | Chipped Pot, Cracked Pot, Eject Button, Glistering Melon Slice, Gold Ingot, Golden Carrot, Soulspring Lamp | | Gold Nugget (`minecraft:gold_nugget`) | Meowth (button_isle, ×0-1) | Blast furnace; Brush suspicious blocks in Ocean Ruin Cold; Brush suspicious blocks in Ocean Ruin Warm; Brush suspicious blocks in Trail Ruins; Crafting (shapeless) … | Chipped Pot, Cracked Pot, Eject Button, Glistering Melon Slice, Gold Ingot, Golden Carrot, Soulspring Lamp |
| Golden Helmet (`minecraft:golden_helmet`) | Falinks (sunscorch, 5%) | Crafting; Loot in Ocean Ruin Cold, Ocean Ruin Warm | Gold Nugget, Rocky Helmet | | Golden Helmet (`minecraft:golden_helmet`) | Falinks (sunscorch, 5%) | Crafting; Loot in Ocean Ruin Cold, Ocean Ruin Warm | Gold Nugget, Rocky Helmet |
| Grassy Seed (`cobblemon:grassy_seed`) | Bounsweet (jungle, 2.5%); Maractus (sunscorch, 5%); Steenee (jungle, 5%); Tsareena (jungle, 10%) | Break Grassy Seed | Miracle Seed | | Grassy Seed (`cobblemon:grassy_seed`) | Bounsweet (jungle, 2.5%); Maractus (sunscorch, 5%); Steenee (jungle, 5%); Tsareena (jungle, 10%) | Break Grassy Seed | Miracle Seed |
| Gravel (`minecraft:gravel`) | Geodude (westmarch, ×0-1); Graveler (westmarch, ×0-2) | Break Gravel | Black Concrete Powder, Blue Concrete Powder, Brown Concrete Powder, Coarse Dirt, Cyan Concrete Powder, Gray Concrete Powder, Green Concrete Powder, Light Blue Concrete Powder … | | Gravel (`minecraft:gravel`) | Geodude (dripstone, ×0-1); Golem (dripstone, ×0-3); Graveler (dripstone, ×0-2) | Break Gravel | Black Concrete Powder, Blue Concrete Powder, Brown Concrete Powder, Coarse Dirt, Cyan Concrete Powder, Gray Concrete Powder, Green Concrete Powder, Light Blue Concrete Powder … |
| Gray Wool (`minecraft:gray_wool`) | – | Break Gray Wool; Crafting (shapeless) | Air Balloon, Black Wool, Blue Wool, Brown Wool, Choice Scarf, Covert Cloak, Cyan Wool, Destiny Knot … | | Gray Wool (`minecraft:gray_wool`) | – | Break Gray Wool; Crafting (shapeless) | Air Balloon, Black Wool, Blue Wool, Brown Wool, Choice Scarf, Covert Cloak, Cyan Wool, Destiny Knot … |
| Green Wool (`minecraft:green_wool`) | – | Break Green Wool; Crafting (shapeless) | Air Balloon, Black Wool, Blue Wool, Brown Wool, Choice Scarf, Covert Cloak, Cyan Wool, Destiny Knot … | | Green Wool (`minecraft:green_wool`) | – | Break Green Wool; Crafting (shapeless) | Air Balloon, Black Wool, Blue Wool, Brown Wool, Choice Scarf, Covert Cloak, Cyan Wool, Destiny Knot … |
| Gunpowder (`minecraft:gunpowder`) | Voltorb (southwold, ×0-1) | Brush suspicious blocks in Desert Pyramid; Loot in Desert Pyramid; Loot in Monster Room (worldgen feature); Loot in Shipwreck, Shipwreck Beached | brewing: splash potions, Fire Charge, Firework Rocket, TNT, Weakness Policy | | Gunpowder (`minecraft:gunpowder`) | Voltorb (southwold, ×0-1) | Brush suspicious blocks in Desert Pyramid; Loot in Desert Pyramid; Loot in Monster Room (worldgen feature); Loot in Shipwreck, Shipwreck Beached | brewing: splash potions, Fire Charge, Firework Rocket, TNT, Weakness Policy |
| Haban Berry (`cobblemon:haban_berry`) | Cyclizar (highlands, 5%); Drakloak (deep_sea, 5%); Druddigon (southwold, 5%); Fraxure (frostpeak, 5%); Gabite (mire, 5%); Gible (mire, 2.5%); Goomy (mire, 2.5%); Haxorus (frostpeak, 10%); Tatsugiri (mire, 5%); Turtonator (basalt, 5%) | Break Haban Berry; Wild berry trees in Cherry Grove, Jagged Peaks, Jungle, Windswept Hills | Berry Juice, Candied Berries, Red Dye | | Haban Berry (`cobblemon:haban_berry`) | Cyclizar (highlands, 5%); Drakloak (deep_sea, 5%); Druddigon (dripstone, 5%); Fraxure (frostpeak, 5%); Gabite (westmarch, 5%); Gible (westmarch, 2.5%); Goomy (westmarch, 2.5%); Haxorus (frostpeak, 10%); Tatsugiri (mire, 5%); Turtonator (basalt, 5%) | Break Haban Berry; Wild berry trees in Cherry Grove, Jagged Peaks, Jungle, Windswept Hills | Berry Juice, Candied Berries, Red Dye |
| Hard Stone (`cobblemon:hard_stone`) | Boldore (westmarch, 5%); Bonsly (button_isle, 2.5%); Crustle (sunscorch, 5%); Dwebble (sunscorch, 2.5%); Lycanroc (frostpeak, 5%); Nosepass (westmarch, 2.5%); Onix (westmarch, 2.5%); Pupitar (frostpeak, 5%); Roggenrola (westmarch, 2.5%); Tyranitar (frostpeak, 10%) | Crafting | Damp Rock, Heat Rock, Icy Rock, Rocky Helmet, Smooth Rock | | Hard Stone (`cobblemon:hard_stone`) | Bonsly (button_isle, 2.5%); Crustle (sunscorch, 5%); Dwebble (sunscorch, 2.5%); Gigalith (deep_dark, 10%); Lycanroc (frostpeak, 5%); Probopass (deep_dark, 5%); Pupitar (frostpeak, 5%); Tyranitar (frostpeak, 10%) | Crafting | Damp Rock, Heat Rock, Icy Rock, Rocky Helmet, Smooth Rock |
| Heart of the Sea (`minecraft:heart_of_the_sea`) | Lapras (deep_sea, 5%) | Loot in Buried Treasure | Conduit, Soulspring Lamp | | Heart of the Sea (`minecraft:heart_of_the_sea`) | Lapras (deep_sea, 5%) | Loot in Buried Treasure | Conduit, Soulspring Lamp |
| Honey Bottle (`minecraft:honey_bottle`) | Combee (button_isle, ×0-1); Cutiefly (southwold, ×0-1); Gloom (highlands, ×0-2); Surskit (mire, ×0-1); Teddiursa (mire, 2.5%); Ursaring (mire, 5%) | Crafting (shapeless); Loot in Trial Chambers; Use a glass bottle on a full bee nest; Use minecraft:glass_bottle on your Vespiquen | Berry Sweet, Clever Mochi, Clover Sweet, Flower Sweet, Fresh-Start Mochi, Genius Mochi, Health Mochi, Honey Block … | | Honey Bottle (`minecraft:honey_bottle`) | Combee (button_isle, ×0-1); Cutiefly (lush_caves, ×0-1); Gloom (highlands, ×0-2); Ribombee (lush_caves, ×0-2); Surskit (mire, ×0-1); Teddiursa (westmarch, 2.5%) | Crafting (shapeless); Loot in Trial Chambers; Use a glass bottle on a full bee nest; Use minecraft:glass_bottle on your Vespiquen | Berry Sweet, Clever Mochi, Clover Sweet, Flower Sweet, Fresh-Start Mochi, Genius Mochi, Health Mochi, Honey Block … |
| Honeycomb (`minecraft:honeycomb`) | Combee (button_isle, ×0-1) | Loot in Trial Chambers; Shear a full bee nest | Beehive, Candle, Courage Candy, Exp. Candy XS, Health Candy, Honeycomb Block, Metal Coat, Mighty Candy … | | Honeycomb (`minecraft:honeycomb`) | Combee (button_isle, ×0-1) | Loot in Trial Chambers; Shear a full bee nest | Beehive, Candle, Courage Candy, Exp. Candy XS, Health Candy, Honeycomb Block, Metal Coat, Mighty Candy … |
| Ice Stone (`cobblemon:ice_stone`) | – | Brush suspicious blocks in Prehistoric Powdered Deposit (worldgen feature); Crafting (shapeless); Loot in Crumbling Arch (worldgen feature); Loot in Decaying Crypt Ruins (cobblemon), Deep Crypt (worldgen feature), Deserted Gimmi Tower (cobblemon), Frozen Gimmi Tower (cobblemon), Lush Gimmi Tower (cobblemon), Reclaimed Deserted Monument (cobblemon) and 5 more; Loot in Decaying Crypt Ruins (cobblemon), Rooted Gimmi Tower (cobblemon) … | Ice Stone Block, Icy Rock | | Ice Stone (`cobblemon:ice_stone`) | – | Brush suspicious blocks in Prehistoric Powdered Deposit (worldgen feature); Crafting (shapeless); Loot in Crumbling Arch (worldgen feature); Loot in Decaying Crypt Ruins (cobblemon), Deep Crypt (worldgen feature), Deserted Gimmi Tower (cobblemon), Frozen Gimmi Tower (cobblemon), Lush Gimmi Tower (cobblemon), Reclaimed Deserted Monument (cobblemon) and 5 more; Loot in Decaying Crypt Ruins (cobblemon), Rooted Gimmi Tower (cobblemon) … | Ice Stone Block, Icy Rock |
| Ink Sac (`minecraft:ink_sac`) | Clobbopus (shallows, ×1-3); Horsea (deep_sea, ×0-1); Inkay (shallows, ×0-1); Kingdra (deep_sea, ×0-3); Octillery (deep_sea, ×1-3); Seadra (deep_sea, ×0-2); Tentacool (westmarch, ×1-3) | Fishing; Fishing with a Poké Rod | Black Dye, Blunder Policy, Book and Quill, Spell Tag, Weakness Policy | | Ink Sac (`minecraft:ink_sac`) | Clobbopus (shallows, ×1-3); Horsea (deep_sea, ×0-1); Inkay (shallows, ×0-1); Kingdra (deep_sea, ×0-3); Octillery (deep_sea, ×1-3); Seadra (deep_sea, ×0-2); Tentacool (southwold, ×1-3) | Fishing; Fishing with a Poké Rod | Black Dye, Blunder Policy, Book and Quill, Spell Tag, Weakness Policy |
| Iron Ball (`cobblemon:iron_ball`) | Mawile (button_isle, 5%) | Break Iron Ball; Loot in Crumbling Arch (worldgen feature); Loot in Decaying Crypt Ruins (cobblemon), Deep Crypt (worldgen feature), Deserted Gimmi Tower (cobblemon), Frozen Gimmi Tower (cobblemon), Lush Gimmi Tower (cobblemon), Reclaimed Deserted Monument (cobblemon) and 5 more; Loot in Decaying Crypt Ruins (cobblemon), Rooted Gimmi Tower (cobblemon); Loot in Deep Crypt (worldgen feature), Lush Gimmi Tower (cobblemon) … | Loaded Dice | | Iron Ball (`cobblemon:iron_ball`) | Mawile (basalt, 5%) | Break Iron Ball; Loot in Crumbling Arch (worldgen feature); Loot in Decaying Crypt Ruins (cobblemon), Deep Crypt (worldgen feature), Deserted Gimmi Tower (cobblemon), Frozen Gimmi Tower (cobblemon), Lush Gimmi Tower (cobblemon), Reclaimed Deserted Monument (cobblemon) and 5 more; Loot in Decaying Crypt Ruins (cobblemon), Rooted Gimmi Tower (cobblemon); Loot in Deep Crypt (worldgen feature), Lush Gimmi Tower (cobblemon) … | Loaded Dice |
| Iron Helmet (`minecraft:iron_helmet`) | Escavalier (mire, 5%); Pawniard (sunscorch, 2.5%); Shelmet (mire, 2.5%) | Crafting; Loot in Trial Chambers; Loot in Village Desert, Village Plains | Exp. Share, Iron Nugget | | Iron Helmet (`minecraft:iron_helmet`) | Escavalier (mire, 5%); Pawniard (sunscorch, 2.5%); Shelmet (mire, 2.5%) | Crafting; Loot in Trial Chambers; Loot in Village Desert, Village Plains | Exp. Share, Iron Nugget |
| Iron Ingot (`minecraft:iron_ingot`) | Duraludon (frostpeak, ×0-1) | Blast furnace; Break Healing Machine; Break PC; Brush suspicious blocks in Decaying Crypt Ruins (cobblemon); Brush suspicious blocks in Deep Crypt (worldgen feature) … | Ability Shield, Activator Rail, Ancient Great Ball, Ancient Leaden Ball, Ancient Wing Ball, Anvil, Black Glasses, Black Plaque … | | Iron Ingot (`minecraft:iron_ingot`) | Duraludon (frostpeak, ×0-1) | Blast furnace; Break Healing Machine; Break PC; Brush suspicious blocks in Decaying Crypt Ruins (cobblemon); Brush suspicious blocks in Deep Crypt (worldgen feature) … | Ability Shield, Activator Rail, Ancient Great Ball, Ancient Leaden Ball, Ancient Wing Ball, Anvil, Black Glasses, Black Plaque … |
| Iron Nugget (`minecraft:iron_nugget`) | Honedge (westmarch, ×0-1); Orthworm (southwold, ×0-2); Varoom (westmarch, ×0-1) | Blast furnace; Crafting (shapeless); Loot in Shipwreck, Shipwreck Beached; Smelting | Chain, Disc Shelf, Iron Ingot, Lantern, Metronome, Silver Powder, Soothe Bell, Soul Lantern … | | Iron Nugget (`minecraft:iron_nugget`) | Orthworm (dripstone, ×0-2); Revavroom (deep_dark, ×0-2) | Blast furnace; Crafting (shapeless); Loot in Shipwreck, Shipwreck Beached; Smelting | Chain, Disc Shelf, Iron Ingot, Lantern, Metronome, Silver Powder, Soothe Bell, Soul Lantern … |
| Iron Sword (`minecraft:iron_sword`) | Honedge (westmarch, 2.5%) | Crafting; Loot in Buried Treasure; Loot in Trial Chambers; Loot in Village Desert, Village Plains | Iron Nugget | | Iron Sword (`minecraft:iron_sword`) | – | Crafting; Loot in Buried Treasure; Loot in Trial Chambers; Loot in Village Desert, Village Plains | Iron Nugget |
| Kasib Berry (`cobblemon:kasib_berry`) | Abra (highlands, 2.5%); Alakazam (highlands, 10%); Brambleghast (sunscorch, 5%); Drifloon (westmarch, 2.5%); Dusclops (deep_dark, 5%); Dusknoir (deep_dark, 10%); Frillish (deep_sea, 2.5%); Houndstone (deep_dark, 5%); Jellicent (deep_sea, 5%); Kadabra (highlands, 5%); Kirlia (westmarch, 5%); Misdreavus (mire, 2.5%); Pumpkaboo (westmarch, 2.5%); Ralts (westmarch, 2.5%) | Break Kasib Berry; Wild berry trees in Deep Dark, Dripstone Caves, Lush Caves, Mangrove Swamp | Berry Juice, Candied Berries, Purple Dye | | Kasib Berry (`cobblemon:kasib_berry`) | Abra (highlands, 2.5%); Alakazam (highlands, 10%); Brambleghast (sunscorch, 5%); Drifloon (southwold, 2.5%); Dusclops (deep_dark, 5%); Dusknoir (deep_dark, 10%); Frillish (deep_sea, 2.5%); Gallade (deep_dark, 10%); Gardevoir (deep_dark, 10%); Houndstone (deep_dark, 5%); Jellicent (deep_sea, 5%); Kadabra (highlands, 5%); Misdreavus (mire, 2.5%); Pumpkaboo (southwold, 2.5%) | Break Kasib Berry; Wild berry trees in Deep Dark, Dripstone Caves, Lush Caves, Mangrove Swamp | Berry Juice, Candied Berries, Purple Dye |
| Kebia Berry (`cobblemon:kebia_berry`) | Aromatisse (frostpeak, 5%); Azumarill (southwold, 10%); Azurill (southwold, 2.5%); Breloom (westmarch, 5%); Carnivine (lush_caves, 5%); Comfey (southwold, 5%); Cottonee (highlands, 2.5%); Flabébé (mire, 2.5%); Floette (mire, 5%); Florges (mire, 10%); Lombre (southwold, 5%); Lotad (southwold, 2.5%); Marill (southwold, 5%); Morelull (lush_caves, 2.5%); Shiinotic (lush_caves, 5%); Shroomish (westmarch, 2.5%); Whimsicott (highlands, 5%) | Break Kebia Berry; Wild berry trees in Cherry Grove, Deep Dark, Forest, Mangrove Swamp | Berry Juice, Candied Berries, Green Dye | | Kebia Berry (`cobblemon:kebia_berry`) | Aromatisse (frostpeak, 5%); Azumarill (southwold, 10%); Azurill (southwold, 2.5%); Breloom (westmarch, 5%); Carnivine (lush_caves, 5%); Comfey (dripstone, 5%); Cottonee (highlands, 2.5%); Flabébé (westmarch, 2.5%); Floette (westmarch, 5%); Lombre (southwold, 5%); Lotad (southwold, 2.5%); Marill (southwold, 5%); Morelull (lush_caves, 2.5%); Shiinotic (lush_caves, 5%); Shroomish (westmarch, 2.5%); Whimsicott (highlands, 5%) | Break Kebia Berry; Wild berry trees in Cherry Grove, Deep Dark, Forest, Mangrove Swamp | Berry Juice, Candied Berries, Green Dye |
| Kelp (`minecraft:kelp`) | Dhelmise (deep_sea, ×0-2); Dragalge (deep_sea, ×0-2); Skrelp (deep_sea, ×0-1) | Break Kelp; Break Kelp Plant; Use c:fertilizers on your Dhelmise | Dried Kelp | | Kelp (`minecraft:kelp`) | Dhelmise (deep_sea, ×0-2); Dragalge (deep_sea, ×0-2); Skrelp (deep_sea, ×0-1) | Break Kelp; Break Kelp Plant; Use c:fertilizers on your Dhelmise | Dried Kelp |
| Leaf Stone (`cobblemon:leaf_stone`) | Pansage (jungle, 2.5%); Simisage (jungle, 5%) | Blast furnace; Break Leaf Stone Ore; Brush suspicious blocks in Prehistoric Birch Tree (worldgen feature); Brush suspicious blocks in Prehistoric Lush Den (worldgen feature); Brush suspicious blocks in Prehistoric Mossy Pond (worldgen feature) … | Leaf Stone Block | | Leaf Stone (`cobblemon:leaf_stone`) | Pansage (jungle, 2.5%); Simisage (jungle, 5%) | Blast furnace; Break Leaf Stone Ore; Brush suspicious blocks in Prehistoric Birch Tree (worldgen feature); Brush suspicious blocks in Prehistoric Lush Den (worldgen feature); Brush suspicious blocks in Prehistoric Mossy Pond (worldgen feature) … | Leaf Stone Block |
| Leather (`minecraft:leather`) | Bouffalant (highlands, ×0-2); Deerling (westmarch, ×0-1); Miltank (highlands, ×0-2); Mudbray (highlands, ×0-1); Mudsdale (highlands, ×0-2); Ponyta (highlands, ×0-1); Tauros (highlands, ×0-2) | Crafting; Crafting (shapeless); Fishing; Fishing with a Poké Rod; Loot in Village Plains | Book, Eject Pack, Focus Band, Focus Sash, Hoglin Hide, Item Frame, Leather Boots, Leather Cap … | | Leather (`minecraft:leather`) | Bouffalant (highlands, ×0-2); Deerling (westmarch, ×0-1); Miltank (highlands, ×0-2); Mudbray (highlands, ×0-1); Mudsdale (highlands, ×0-2); Ponyta (highlands, ×0-1); Tauros (highlands, ×0-2) | Crafting; Crafting (shapeless); Fishing; Fishing with a Poké Rod; Loot in Village Plains | Book, Eject Pack, Focus Band, Focus Sash, Hoglin Hide, Item Frame, Leather Boots, Leather Cap … |
@@ -99,88 +99,88 @@ Generated by `tools/drop_audit.py` (roadmap Phase 4, "unique drops"): every item
| Light Gray Wool (`minecraft:light_gray_wool`) | – | Break Light Gray Wool; Crafting (shapeless) | Air Balloon, Black Wool, Blue Wool, Brown Wool, Choice Scarf, Covert Cloak, Cyan Wool, Destiny Knot … | | Light Gray Wool (`minecraft:light_gray_wool`) | – | Break Light Gray Wool; Crafting (shapeless) | Air Balloon, Black Wool, Blue Wool, Brown Wool, Choice Scarf, Covert Cloak, Cyan Wool, Destiny Knot … |
| Lime Wool (`minecraft:lime_wool`) | – | Break Lime Wool; Crafting (shapeless) | Air Balloon, Black Wool, Blue Wool, Brown Wool, Choice Scarf, Covert Cloak, Cyan Wool, Destiny Knot … | | Lime Wool (`minecraft:lime_wool`) | – | Break Lime Wool; Crafting (shapeless) | Air Balloon, Black Wool, Blue Wool, Brown Wool, Choice Scarf, Covert Cloak, Cyan Wool, Destiny Knot … |
| Magenta Wool (`minecraft:magenta_wool`) | – | Break Magenta Wool; Crafting (shapeless) | Air Balloon, Black Wool, Blue Wool, Brown Wool, Choice Scarf, Covert Cloak, Cyan Wool, Destiny Knot … | | Magenta Wool (`minecraft:magenta_wool`) | – | Break Magenta Wool; Crafting (shapeless) | Air Balloon, Black Wool, Blue Wool, Brown Wool, Choice Scarf, Covert Cloak, Cyan Wool, Destiny Knot … |
| Magma Cream (`minecraft:magma_cream`) | Camerupt (sunscorch, 5%); Numel (sunscorch, 2.5%); Slugma (southwold, ×0-1) | Crafting (shapeless) | brewing: Fire Resistance, Lava Cookie, Magma Block | | Magma Cream (`minecraft:magma_cream`) | Camerupt (sunscorch, 5%); Magcargo (basalt, ×0-2); Numel (sunscorch, 2.5%) | Crafting (shapeless) | brewing: Fire Resistance, Lava Cookie, Magma Block |
| Medicinal Leek (`cobblemon:medicinal_leek`) | Farfetch'd (westmarch, ×0-1) | Break Medicinal Leek | Leek and Potato Stew, Magenta Dye, Medicinal Brew, Open-Faced Sandwich, Roasted Leek | | Medicinal Leek (`cobblemon:medicinal_leek`) | Farfetch'd (southwold, ×0-1) | Break Medicinal Leek | Leek and Potato Stew, Magenta Dye, Medicinal Brew, Open-Faced Sandwich, Roasted Leek |
| Melon Seeds (`minecraft:melon_seeds`) | Bulbasaur (jungle, ×0-1); Ivysaur (jungle, ×0-2) | Break Melon Stem; Crafting (shapeless); Loot in Mineshaft, Mineshaft Mesa; Loot in Monster Room (worldgen feature) | Miracle Seed | | Melon Seeds (`minecraft:melon_seeds`) | Bulbasaur (jungle, ×0-1); Ivysaur (jungle, ×0-2) | Break Melon Stem; Crafting (shapeless); Loot in Mineshaft, Mineshaft Mesa; Loot in Monster Room (worldgen feature) | Miracle Seed |
| Misty Seed (`cobblemon:misty_seed`) | Comfey (southwold, 5%) | Break Misty Seed | Miracle Seed | | Misty Seed (`cobblemon:misty_seed`) | Comfey (dripstone, 5%) | Break Misty Seed | Miracle Seed |
| Moon Stone (`cobblemon:moon_stone`) | Clefable (dripstone, 10%); Clefairy (dripstone, 5%); Cleffa (dripstone, 2.5%); Jigglypuff (highlands, 5%); Lunatone (dripstone, 5%); Wigglytuff (highlands, 10%) | Blast furnace; Break Deepslate Moon Stone Ore; Crafting (shapeless); Loot in Crumbling Arch (worldgen feature); Loot in Decaying Crypt Ruins (cobblemon), Deep Crypt (worldgen feature), Deserted Gimmi Tower (cobblemon), Frozen Gimmi Tower (cobblemon), Lush Gimmi Tower (cobblemon), Reclaimed Deserted Monument (cobblemon) and 5 more … | Moon Stone Block | | Moon Stone (`cobblemon:moon_stone`) | Clefable (dripstone, 10%); Clefairy (dripstone, 5%); Cleffa (dripstone, 2.5%); Jigglypuff (highlands, 5%); Lunatone (dripstone, 5%); Wigglytuff (highlands, 10%) | Blast furnace; Break Deepslate Moon Stone Ore; Crafting (shapeless); Loot in Crumbling Arch (worldgen feature); Loot in Decaying Crypt Ruins (cobblemon), Deep Crypt (worldgen feature), Deserted Gimmi Tower (cobblemon), Frozen Gimmi Tower (cobblemon), Lush Gimmi Tower (cobblemon), Reclaimed Deserted Monument (cobblemon) and 5 more … | Moon Stone Block |
| Mud (`minecraft:mud`) | Stunfisk (jungle, ×0-2) | Break Mud; Use a water bottle on dirt | Humid Mulch, Muddy Mangrove Roots, Packed Mud, Peat Block | | Mud (`minecraft:mud`) | Stunfisk (jungle, ×0-2) | Break Mud; Use a water bottle on dirt | Humid Mulch, Muddy Mangrove Roots, Packed Mud, Peat Block |
| Muscle Band (`cobblemon:muscle_band`) | Annihilape (frostpeak, 10%); Gurdurr (westmarch, 5%); Machamp (frostpeak, 10%); Machoke (frostpeak, 5%); Primeape (frostpeak, 5%); Timburr (westmarch, 2.5%) | Crafting | Choice Band | | Muscle Band (`cobblemon:muscle_band`) | Annihilape (frostpeak, 10%); Machamp (frostpeak, 10%); Machoke (frostpeak, 5%); Primeape (frostpeak, 5%); Timburr (southwold, 2.5%) | Crafting | Choice Band |
| Nanab Berry (`cobblemon:nanab_berry`) | Aipom (jungle, 2.5%); Copperajah (frostpeak, 5%); Cubone (sunscorch, 2.5%); Falinks (sunscorch, 5%); Fidough (southwold, 2.5%); Grafaiai (jungle, 5%); Joltik (southwold, 2.5%); Marowak (sunscorch, 5%); Meditite (button_isle, 2.5%); Shroodle (jungle, 2.5%); Tropius (jungle, ×0-2) | Break Nanab Berry; Wild berry trees in Jungle, Mangrove Swamp | Berry Juice, Candied Berries, Pink Dye | | Nanab Berry (`cobblemon:nanab_berry`) | Aipom (jungle, 2.5%); Copperajah (frostpeak, 5%); Cubone (sunscorch, 2.5%); Dachsbun (dripstone, 5%); Falinks (sunscorch, 5%); Fidough (dripstone, 2.5%); Grafaiai (jungle, 5%); Joltik (lush_caves, 2.5%); Marowak (sunscorch, 5%); Meditite (button_isle, 2.5%); Shroodle (jungle, 2.5%); Tropius (jungle, ×0-2) | Break Nanab Berry; Wild berry trees in Jungle, Mangrove Swamp | Berry Juice, Candied Berries, Pink Dye |
| Nautilus Shell (`minecraft:nautilus_shell`) | Omanyte (lush_caves, ×1) | Fishing; Fishing with a Poké Rod | Conduit, Shell Bell | | Nautilus Shell (`minecraft:nautilus_shell`) | Omanyte (lush_caves, ×1) | Fishing; Fishing with a Poké Rod | Conduit, Shell Bell |
| Nether Star (`minecraft:nether_star`) | Charizard (basalt, 5%) | – | Beacon, Master Ball | | Nether Star (`minecraft:nether_star`) | Charizard (basalt, 5%) | – | Beacon, Master Ball |
| Occa Berry (`cobblemon:occa_berry`) | Abomasnow (frostpeak, 5%); Bronzor (westmarch, 2.5%); Burmy (southwold, 2.5%); Durant (basalt, 2.5%); Escavalier (mire, 5%); Ferroseed (lush_caves, 2.5%); Karrablast (mire, 2.5%); Mawile (button_isle, 5%); Pansage (jungle, 2.5%); Simisage (jungle, 5%) | Break Occa Berry; Wild berry trees in Badlands, Beach, Desert, Jungle | Berry Juice, Candied Berries, Orange Dye | | Occa Berry (`cobblemon:occa_berry`) | Abomasnow (frostpeak, 5%); Bronzong (deep_dark, 5%); Burmy (southwold, 2.5%); Durant (basalt, 2.5%); Escavalier (mire, 5%); Ferroseed (lush_caves, 2.5%); Karrablast (mire, 2.5%); Mawile (basalt, 5%); Pansage (jungle, 2.5%); Simisage (jungle, 5%) | Break Occa Berry; Wild berry trees in Badlands, Beach, Desert, Jungle | Berry Juice, Candied Berries, Orange Dye |
| Oran Berry (`cobblemon:oran_berry`) | Audino (southwold, 5%); Bidoof (button_isle, 2.5%); Furret (southwold, 5%); Gogoat (frostpeak, 5%); Greedent (westmarch, ×0-2); Jigglypuff (highlands, 5%); Lechonk (highlands, 2.5%); Lickilicky (highlands, 5%); Lickitung (highlands, 2.5%); Miltank (highlands, 5%); Oinkologne (highlands, 5%); Pichu (westmarch, 2.5%); Pikachu (westmarch, 5%); Sentret (southwold, 2.5%); Skwovet (westmarch, ×0-1); Teddiursa (mire, 2.5%); Ursaring (mire, 5%); Wigglytuff (highlands, 10%); Zigzagoon (southwold, 2.5%) | Break Oran Berry; Loot in Village Desert, Village Plains; Wild berry trees in Badlands, Beach, Cherry Grove, Deep Dark, Deep Lukewarm Ocean, Deep Ocean and 13 more | Berry Juice, Candied Berries, Light Blue Dye, Oran Lucky Egg, Potion | | Oran Berry (`cobblemon:oran_berry`) | Audino (southwold, 5%); Bidoof (button_isle, 2.5%); Furret (southwold, 5%); Gogoat (frostpeak, 5%); Greedent (westmarch, ×0-2); Jigglypuff (highlands, 5%); Lechonk (highlands, 2.5%); Lickilicky (highlands, 5%); Lickitung (highlands, 2.5%); Miltank (highlands, 5%); Oinkologne (highlands, 5%); Pichu (westmarch, 2.5%); Pikachu (westmarch, 5%); Sentret (southwold, 2.5%); Skwovet (westmarch, ×0-1); Teddiursa (westmarch, 2.5%); Wigglytuff (highlands, 10%); Zigzagoon (southwold, 2.5%) | Break Oran Berry; Loot in Village Desert, Village Plains; Wild berry trees in Badlands, Beach, Cherry Grove, Deep Dark, Deep Lukewarm Ocean, Deep Ocean and 13 more | Berry Juice, Candied Berries, Light Blue Dye, Oran Lucky Egg, Potion |
| Orange Wool (`minecraft:orange_wool`) | – | Break Orange Wool; Crafting (shapeless) | Air Balloon, Black Wool, Blue Wool, Brown Wool, Choice Scarf, Covert Cloak, Cyan Wool, Destiny Knot … | | Orange Wool (`minecraft:orange_wool`) | – | Break Orange Wool; Crafting (shapeless) | Air Balloon, Black Wool, Blue Wool, Brown Wool, Choice Scarf, Covert Cloak, Cyan Wool, Destiny Knot … |
| Passho Berry (`cobblemon:passho_berry`) | Bonsly (button_isle, 2.5%); Carkol (westmarch, 5%); Donphan (sunscorch, 5%); Garganacl (sunscorch, 10%); Mudbray (highlands, 2.5%); Mudsdale (highlands, 5%); Naclstack (sunscorch, 5%); Onix (westmarch, 2.5%); Pansear (jungle, 2.5%); Phanpy (sunscorch, 2.5%); Rhydon (frostpeak, 5%); Rhyperior (frostpeak, 10%); Rolycoly (westmarch, 2.5%); Sandygast (shallows, 2.5%); Simisear (jungle, 5%); Slugma (southwold, 2.5%); Stunfisk (jungle, 5%) | Break Passho Berry; Wild berry trees in Beach, Deep Lukewarm Ocean, Deep Ocean, Lukewarm Ocean, Mangrove Swamp, Ocean and 2 more | Berry Juice, Blue Dye, Candied Berries | | Passho Berry (`cobblemon:passho_berry`) | Bonsly (button_isle, 2.5%); Coalossal (deep_dark, 10%); Donphan (sunscorch, 5%); Garganacl (sunscorch, 10%); Magcargo (basalt, 5%); Mudbray (highlands, 2.5%); Mudsdale (highlands, 5%); Naclstack (sunscorch, 5%); Pansear (jungle, 2.5%); Phanpy (sunscorch, 2.5%); Rhydon (frostpeak, 5%); Rhyperior (frostpeak, 10%); Sandygast (shallows, 2.5%); Simisear (jungle, 5%); Steelix (deep_dark, 5%); Stunfisk (jungle, 5%) | Break Passho Berry; Wild berry trees in Beach, Deep Lukewarm Ocean, Deep Ocean, Lukewarm Ocean, Mangrove Swamp, Ocean and 2 more | Berry Juice, Blue Dye, Candied Berries |
| Payapa Berry (`cobblemon:payapa_berry`) | Annihilape (frostpeak, 10%); Croagunk (mire, 2.5%); Flamigo (mire, 5%); Gastly (westmarch, 2.5%); Hariyama (frostpeak, 5%); Haunter (westmarch, 5%); Hitmonchan (frostpeak, 5%); Hitmonlee (frostpeak, 5%); Hitmontop (frostpeak, 5%); Mienshao (frostpeak, 5%); Primeape (frostpeak, 5%); Sneasler (frostpeak, 5%); Toxicroak (mire, 5%) | Break Payapa Berry; Wild berry trees in Cherry Grove, Deep Dark, Desert | Berry Juice, Candied Berries, Magenta Dye | | Payapa Berry (`cobblemon:payapa_berry`) | Annihilape (frostpeak, 10%); Croagunk (mire, 2.5%); Flamigo (mire, 5%); Gastly (southwold, 2.5%); Hariyama (frostpeak, 5%); Hitmonchan (frostpeak, 5%); Hitmonlee (frostpeak, 5%); Hitmontop (frostpeak, 5%); Mienshao (frostpeak, 5%); Primeape (frostpeak, 5%); Sneasler (frostpeak, 5%); Toxicroak (mire, 5%) | Break Payapa Berry; Wild berry trees in Cherry Grove, Deep Dark, Desert | Berry Juice, Candied Berries, Magenta Dye |
| Pecha Berry (`cobblemon:pecha_berry`) | Beautifly (button_isle, 5%); Bellossom (highlands, 10%); Cascoon (button_isle, 2.5%); Dragalge (deep_sea, 5%); Dustox (button_isle, 5%); Gloom (highlands, 5%); Mareanie (shallows, 2.5%); Mightyena (highlands, 5%); Oddish (highlands, 2.5%); Roselia (frostpeak, 5%); Roserade (frostpeak, 10%); Silcoon (button_isle, 2.5%); Skitty (button_isle, 2.5%); Skrelp (deep_sea, 2.5%); Stunky (westmarch, 2.5%); Trubbish (southwold, 2.5%); Venipede (lush_caves, 2.5%); Vileplume (highlands, 10%); Whirlipede (lush_caves, 5%); Wurmple (button_isle, 2.5%); Yungoos (southwold, 2.5%); Zangoose (highlands, 5%) | Break Pecha Berry; Wild berry trees in Jungle, Mangrove Swamp | Antidote, Berry Juice, Candied Berries, Pink Dye | | Pecha Berry (`cobblemon:pecha_berry`) | Beautifly (button_isle, 5%); Bellossom (highlands, 10%); Cascoon (button_isle, 2.5%); Dragalge (deep_sea, 5%); Dustox (button_isle, 5%); Gloom (highlands, 5%); Mareanie (shallows, 2.5%); Mightyena (highlands, 5%); Oddish (highlands, 2.5%); Roselia (frostpeak, 5%); Roserade (frostpeak, 10%); Silcoon (button_isle, 2.5%); Skitty (button_isle, 2.5%); Skrelp (deep_sea, 2.5%); Stunky (westmarch, 2.5%); Trubbish (lush_caves, 2.5%); Venipede (lush_caves, 2.5%); Vileplume (highlands, 10%); Whirlipede (lush_caves, 5%); Wurmple (button_isle, 2.5%); Yungoos (southwold, 2.5%); Zangoose (highlands, 5%) | Break Pecha Berry; Wild berry trees in Jungle, Mangrove Swamp | Antidote, Berry Juice, Candied Berries, Pink Dye |
| Persim Berry (`cobblemon:persim_berry`) | Bounsweet (jungle, 2.5%); Chatot (jungle, 5%); Chinchou (shallows, 2.5%); Drampa (sunscorch, 5%); Golbat (jungle, 5%); Kecleon (jungle, 5%); Lilligant (westmarch, 5%); Natu (jungle, 2.5%); Palpitoad (sunscorch, 5%); Petilil (westmarch, 2.5%); Seismitoad (sunscorch, 10%); Seviper (highlands, 5%); Solosis (southwold, 2.5%); Steenee (jungle, 5%); Tsareena (jungle, 10%); Venonat (southwold, 2.5%); Xatu (jungle, 5%); Zubat (jungle, 2.5%) | Break Persim Berry; Wild berry trees in Badlands, Beach, Cherry Grove, Deep Dark, Deep Lukewarm Ocean, Deep Ocean and 13 more | Berry Juice, Candied Berries, Pink Dye | | Persim Berry (`cobblemon:persim_berry`) | Bounsweet (jungle, 2.5%); Chatot (jungle, 5%); Chinchou (shallows, 2.5%); Crobat (deep_dark, 10%); Drampa (sunscorch, 5%); Duosion (dripstone, 5%); Golbat (deep_dark, 5%); Kecleon (jungle, 5%); Lilligant (westmarch, 5%); Natu (jungle, 2.5%); Palpitoad (sunscorch, 5%); Petilil (westmarch, 2.5%); Seismitoad (sunscorch, 10%); Seviper (highlands, 5%); Solosis (dripstone, 2.5%); Steenee (jungle, 5%); Tsareena (jungle, 10%); Venonat (southwold, 2.5%); Xatu (jungle, 5%) | Break Persim Berry; Wild berry trees in Badlands, Beach, Cherry Grove, Deep Dark, Deep Lukewarm Ocean, Deep Ocean and 13 more | Berry Juice, Candied Berries, Pink Dye |
| Phantom Membrane (`minecraft:phantom_membrane`) | Drakloak (deep_sea, 5%); Drifloon (westmarch, 2.5%); Dusclops (deep_dark, 5%); Dusknoir (deep_dark, 10%); Gliscor (basalt, 5%); Golbat (jungle, 5%); Misdreavus (mire, 2.5%); Noibat (jungle, 2.5%); Shuppet (southwold, 2.5%); Zubat (jungle, 2.5%) | Use c:tools/brush on your Dragapult; Use c:tools/brush on your Drakloak | brewing: Slow Falling, Air Balloon, Covert Cloak, Reaper Cloth, Smoke Ball | | Phantom Membrane (`minecraft:phantom_membrane`) | Crobat (deep_dark, 10%); Drakloak (deep_sea, 5%); Drifloon (southwold, 2.5%); Dusclops (deep_dark, 5%); Dusknoir (deep_dark, 10%); Gliscor (basalt, 5%); Golbat (deep_dark, 5%); Misdreavus (mire, 2.5%); Noibat (southwold, 2.5%); Shuppet (southwold, 2.5%) | Use c:tools/brush on your Dragapult; Use c:tools/brush on your Drakloak | brewing: Slow Falling, Air Balloon, Covert Cloak, Reaper Cloth, Smoke Ball |
| Pinap Berry (`cobblemon:pinap_berry`) | Beedrill (button_isle, 5%); Bellsprout (jungle, 2.5%); Clobbopus (shallows, 2.5%); Drilbur (westmarch, 2.5%); Kakuna (button_isle, 2.5%); Klawf (sunscorch, 5%); Krabby (shallows, 2.5%); Meowth (southwold, 2.5%); Pinsir (westmarch, 5%); Skarmory (sunscorch, 5%); Weedle (button_isle, 2.5%); Weepinbell (jungle, 5%) | Break Pinap Berry; Wild berry trees in Badlands, Desert | Berry Juice, Candied Berries, Yellow Dye | | Pinap Berry (`cobblemon:pinap_berry`) | Beedrill (button_isle, 5%); Bellsprout (jungle, 2.5%); Clobbopus (shallows, 2.5%); Excadrill (basalt, 5%); Kakuna (button_isle, 2.5%); Klawf (sunscorch, 5%); Krabby (shallows, 2.5%); Meowth (button_isle, 2.5%); Pinsir (southwold, 5%); Skarmory (sunscorch, 5%); Weedle (button_isle, 2.5%); Weepinbell (jungle, 5%) | Break Pinap Berry; Wild berry trees in Badlands, Desert | Berry Juice, Candied Berries, Yellow Dye |
| Pink Wool (`minecraft:pink_wool`) | – | Break Pink Wool; Crafting (shapeless); Use c:tools/brush on your Wigglytuff | Air Balloon, Black Wool, Blue Wool, Brown Wool, Choice Scarf, Covert Cloak, Cyan Wool, Destiny Knot … | | Pink Wool (`minecraft:pink_wool`) | – | Break Pink Wool; Crafting (shapeless); Use c:tools/brush on your Wigglytuff | Air Balloon, Black Wool, Blue Wool, Brown Wool, Choice Scarf, Covert Cloak, Cyan Wool, Destiny Knot … |
| Poppy (`minecraft:poppy`) | Flabébé (mire, ×1); Floette (mire, ×1); Florges (mire, ×0-3) | Break Poppy; Loot in Village Plains | Red Dye, Suspicious Stew | | Poppy (`minecraft:poppy`) | Flabébé (westmarch, ×1); Floette (westmarch, ×1) | Break Poppy; Loot in Village Plains | Red Dye, Suspicious Stew |
| Potato (`minecraft:potato`) | Diglett (button_isle, 2.5%) | Break Potatoes; Loot in Pillager Outpost; Loot in Shipwreck, Shipwreck Beached; Loot in Village Plains | Baked Potato, Old Gateau, Potato Mochi | | Potato (`minecraft:potato`) | Dugtrio (basalt, 5%) | Break Potatoes; Loot in Pillager Outpost; Loot in Shipwreck, Shipwreck Beached; Loot in Village Plains | Baked Potato, Old Gateau, Potato Mochi |
| Prismarine Crystals (`minecraft:prismarine_crystals`) | Chinchou (shallows, ×0-1) | Break Sea Lantern; Loot in Buried Treasure | Pokédex, Pokédex, Pokédex, Pokédex, Pokédex, Pokédex, Pokédex, Sea Lantern … | | Prismarine Crystals (`minecraft:prismarine_crystals`) | Chinchou (shallows, ×0-1) | Break Sea Lantern; Loot in Buried Treasure | Pokédex, Pokédex, Pokédex, Pokédex, Pokédex, Pokédex, Pokédex, Sea Lantern … |
| Prismarine Shard (`minecraft:prismarine_shard`) | Horsea (deep_sea, ×0-1); Kingdra (deep_sea, ×0-3); Qwilfish (shallows, ×0-1); Seadra (deep_sea, ×0-2) | – | Dark Prismarine, Prismarine, Prismarine Bricks, Sea Lantern, Smithing Template | | Prismarine Shard (`minecraft:prismarine_shard`) | Horsea (deep_sea, ×0-1); Kingdra (deep_sea, ×0-3); Qwilfish (shallows, ×0-1); Seadra (deep_sea, ×0-2) | – | Dark Prismarine, Prismarine, Prismarine Bricks, Sea Lantern, Smithing Template |
| Protector (`cobblemon:protector`) | Donphan (sunscorch, 5%); Rhydon (frostpeak, 5%); Rhyperior (frostpeak, 10%) | Brush suspicious blocks in Deserted Town Center Ruins (cobblemon); Brush suspicious blocks in Fallen Statue Ruins (cobblemon); Brush suspicious blocks in Mossy Oubliette Ruins (cobblemon); Brush suspicious blocks in Sunscorched Gimmi Tower (cobblemon); Crafting … | Assault Vest | | Protector (`cobblemon:protector`) | Donphan (sunscorch, 5%); Rhydon (frostpeak, 5%); Rhyperior (frostpeak, 10%) | Brush suspicious blocks in Deserted Town Center Ruins (cobblemon); Brush suspicious blocks in Fallen Statue Ruins (cobblemon); Brush suspicious blocks in Mossy Oubliette Ruins (cobblemon); Brush suspicious blocks in Sunscorched Gimmi Tower (cobblemon); Crafting … | Assault Vest |
| Psychic Seed (`cobblemon:psychic_seed`) | Exeggcute (jungle, 2.5%); Exeggutor (jungle, 5%) | Break Psychic Seed | Miracle Seed | | Psychic Seed (`cobblemon:psychic_seed`) | Exeggcute (jungle, 2.5%); Exeggutor (jungle, 5%) | Break Psychic Seed | Miracle Seed |
| Pufferfish (`minecraft:pufferfish`) | Qwilfish (shallows, ×1) | Fishing | brewing: Water Breathing | | Pufferfish (`minecraft:pufferfish`) | Qwilfish (shallows, ×1) | Fishing | brewing: Water Breathing |
| Pumpkin Seeds (`minecraft:pumpkin_seeds`) | Pumpkaboo (westmarch, ×0-1) | Craft from a pumpkin; Crafting (shapeless); Loot in Mineshaft, Mineshaft Mesa; Loot in Monster Room (worldgen feature) | Miracle Seed, Pewter Crunchies | | Pumpkin Seeds (`minecraft:pumpkin_seeds`) | Pumpkaboo (southwold, ×0-1) | Craft from a pumpkin; Crafting (shapeless); Loot in Mineshaft, Mineshaft Mesa; Loot in Monster Room (worldgen feature) | Miracle Seed, Pewter Crunchies |
| Purple Wool (`minecraft:purple_wool`) | – | Break Purple Wool; Crafting (shapeless) | Air Balloon, Black Wool, Blue Wool, Brown Wool, Choice Scarf, Covert Cloak, Cyan Wool, Destiny Knot … | | Purple Wool (`minecraft:purple_wool`) | – | Break Purple Wool; Crafting (shapeless) | Air Balloon, Black Wool, Blue Wool, Brown Wool, Choice Scarf, Covert Cloak, Cyan Wool, Destiny Knot … |
| Rabbit Hide (`minecraft:rabbit_hide`) | Buneary (westmarch, ×0-1); Bunnelby (southwold, ×0-1); Cinderace (highlands, ×0-3); Raboot (highlands, ×0-2); Scorbunny (highlands, ×0-1) | – | Leather, Protective Pads, Punching Glove, Sachet, Soft Sand, Terrain Extender | | Rabbit Hide (`minecraft:rabbit_hide`) | Buneary (westmarch, ×0-1); Bunnelby (southwold, ×0-1); Cinderace (highlands, ×0-3); Raboot (highlands, ×0-2); Scorbunny (highlands, ×0-1) | – | Leather, Protective Pads, Punching Glove, Sachet, Soft Sand, Terrain Extender |
| Rabbit's Foot (`minecraft:rabbit_foot`) | Buneary (westmarch, 2.5%); Bunnelby (southwold, 2.5%); Cinderace (highlands, 25%); Raboot (highlands, 10%); Scorbunny (highlands, 5%) | – | brewing: Leaping, Blunder Policy, Loaded Dice | | Rabbit's Foot (`minecraft:rabbit_foot`) | Buneary (westmarch, 2.5%); Bunnelby (southwold, 2.5%); Cinderace (highlands, 25%); Raboot (highlands, 10%); Scorbunny (highlands, 5%) | – | brewing: Leaping, Blunder Policy, Loaded Dice |
| Raw Beef (`minecraft:beef`) | Bouffalant (highlands, ×1-3); Miltank (highlands, ×1-3); Tauros (highlands, ×1-3) | – | Open-Faced Sandwich, Steak | | Raw Beef (`minecraft:beef`) | Bouffalant (highlands, ×1-3); Miltank (highlands, ×1-3); Tauros (highlands, ×1-3) | – | Open-Faced Sandwich, Steak |
| Raw Chicken (`minecraft:chicken`) | Braviary (frostpeak, ×1); Chatot (jungle, ×1); Combusken (highlands, ×1); Corviknight (deep_dark, ×1); Cramorant (shallows, ×1); Dartrix (frostpeak, ×1); Decidueye (frostpeak, ×1); Delibird (frostpeak, ×1); Ducklett (mire, ×1); Espathra (sunscorch, ×1); Farfetch'd (westmarch, ×1); Fearow (sunscorch, ×1); Flamigo (mire, ×1); Fletchinder (westmarch, ×1); Fletchling (westmarch, ×1); Golduck (highlands, ×1); Honchkrow (deep_dark, ×1); Hoothoot (button_isle, ×1); Kilowattrel (deep_sea, ×1); Natu (jungle, ×1); Pidgeotto (highlands, ×1); Pidgey (highlands, ×1); Pidove (southwold, ×1); Pikipek (jungle, ×1); Psyduck (highlands, ×1); Squawkabilly (southwold, ×1); Staraptor (frostpeak, ×1); Swablu (southwold, ×1); Swanna (mire, ×1); Taillow (southwold, ×1); Torchic (highlands, ×1); Toucannon (jungle, ×1); Trumbeak (jungle, ×1); Wingull (shallows, ×1); Xatu (jungle, ×1) | – | Cooked Chicken, Open-Faced Sandwich | | Raw Chicken (`minecraft:chicken`) | Braviary (frostpeak, ×1); Chatot (jungle, ×1); Combusken (highlands, ×1); Corviknight (deep_dark, ×1); Cramorant (shallows, ×1); Dartrix (frostpeak, ×1); Decidueye (frostpeak, ×1); Delibird (frostpeak, ×1); Ducklett (mire, ×1); Espathra (sunscorch, ×1); Farfetch'd (southwold, ×1); Fearow (sunscorch, ×1); Flamigo (mire, ×1); Fletchinder (highlands, ×1); Fletchling (highlands, ×1); Golduck (highlands, ×1); Honchkrow (deep_dark, ×1); Hoothoot (button_isle, ×1); Kilowattrel (deep_sea, ×1); Natu (jungle, ×1); Pidgeotto (highlands, ×1); Pidgey (highlands, ×1); Pidove (southwold, ×1); Pikipek (jungle, ×1); Psyduck (highlands, ×1); Squawkabilly (southwold, ×1); Staraptor (frostpeak, ×1); Swablu (southwold, ×1); Swanna (mire, ×1); Taillow (southwold, ×1); Talonflame (highlands, ×1); Torchic (highlands, ×1); Toucannon (jungle, ×1); Trumbeak (jungle, ×1); Wingull (shallows, ×1); Xatu (jungle, ×1) | – | Cooked Chicken, Open-Faced Sandwich |
| Raw Cod (`minecraft:cod`) | Alomomola (shallows, ×1); Bruxish (shallows, ×1); Cramorant (shallows, ×0-2); Finizen (shallows, ×0-1); Finneon (shallows, ×1); Mantine (deep_sea, ×0-2); Mantyke (deep_sea, ×0-1); Remoraid (deep_sea, ×1); Veluza (deep_sea, ×1-3); Wishiwashi (shallows, ×1) | Fishing; Loot in Beach (cobblemon), Deep Ocean (cobblemon), Warm Ocean (cobblemon); Loot in Village Plains | Cooked Cod | | Raw Cod (`minecraft:cod`) | Alomomola (shallows, ×1); Bruxish (shallows, ×1); Cramorant (shallows, ×0-2); Finizen (shallows, ×0-1); Finneon (shallows, ×1); Mantine (deep_sea, ×0-2); Mantyke (deep_sea, ×0-1); Remoraid (deep_sea, ×1); Veluza (deep_sea, ×1-3); Wishiwashi (shallows, ×1) | Fishing; Loot in Beach (cobblemon), Deep Ocean (cobblemon), Warm Ocean (cobblemon); Loot in Village Plains | Cooked Cod |
| Raw Copper (`minecraft:raw_copper`) | Boldore (westmarch, ×0-2); Copperajah (frostpeak, ×0-2); Roggenrola (westmarch, ×0-1) | Break Copper Ore; Brush suspicious blocks in Prehistoric Birch Tree (worldgen feature); Brush suspicious blocks in Prehistoric Dripstone Oasis (worldgen feature); Brush suspicious blocks in Prehistoric Enhydro Agate (worldgen feature); Brush suspicious blocks in Prehistoric Eroded Pillar (worldgen feature) … | Block of Raw Copper, Copper Ingot | | Raw Copper (`minecraft:raw_copper`) | Copperajah (frostpeak, ×0-2); Gigalith (deep_dark, ×0-3) | Break Copper Ore; Brush suspicious blocks in Prehistoric Birch Tree (worldgen feature); Brush suspicious blocks in Prehistoric Dripstone Oasis (worldgen feature); Brush suspicious blocks in Prehistoric Enhydro Agate (worldgen feature); Brush suspicious blocks in Prehistoric Eroded Pillar (worldgen feature) … | Block of Raw Copper, Copper Ingot |
| Raw Iron (`minecraft:raw_iron`) | Bronzor (westmarch, ×0-1); Dhelmise (deep_sea, ×0-2); Durant (basalt, ×0-1); Ferroseed (lush_caves, ×0-1); Klink (westmarch, ×0-1); Magnemite (jungle, ×0-1); Magneton (jungle, ×0-2); Tinkatink (highlands, ×0-1); Tinkatuff (highlands, ×0-2) | Brush suspicious blocks in Prehistoric Birch Tree (worldgen feature); Brush suspicious blocks in Prehistoric Dripstone Oasis (worldgen feature); Brush suspicious blocks in Prehistoric Enhydro Agate (worldgen feature); Brush suspicious blocks in Prehistoric Eroded Pillar (worldgen feature); Brush suspicious blocks in Prehistoric Hydrothermal Vents (worldgen feature) … | Block of Raw Iron, Iron Ingot | | Raw Iron (`minecraft:raw_iron`) | Bronzong (deep_dark, ×0-2); Dhelmise (deep_sea, ×0-2); Durant (basalt, ×0-1); Ferroseed (lush_caves, ×0-1); Klinklang (deep_dark, ×0-3); Magnemite (southwold, ×0-1); Steelix (deep_dark, ×2-4); Tinkatink (highlands, ×0-1); Tinkatuff (highlands, ×0-2) | Brush suspicious blocks in Prehistoric Birch Tree (worldgen feature); Brush suspicious blocks in Prehistoric Dripstone Oasis (worldgen feature); Brush suspicious blocks in Prehistoric Enhydro Agate (worldgen feature); Brush suspicious blocks in Prehistoric Eroded Pillar (worldgen feature); Brush suspicious blocks in Prehistoric Hydrothermal Vents (worldgen feature) … | Block of Raw Iron, Iron Ingot |
| Raw Mutton (`minecraft:mutton`) | Ampharos (highlands, ×2-4); Dubwool (frostpeak, ×1-3); Flaaffy (highlands, ×1-3); Gogoat (frostpeak, ×1-3); Mareep (highlands, ×1-2) | – | Cooked Mutton, Open-Faced Sandwich | | Raw Mutton (`minecraft:mutton`) | Ampharos (highlands, ×2-4); Dubwool (frostpeak, ×1-3); Flaaffy (highlands, ×1-3); Gogoat (frostpeak, ×1-3); Mareep (highlands, ×1-2) | – | Cooked Mutton, Open-Faced Sandwich |
| Raw Porkchop (`minecraft:porkchop`) | Grumpig (frostpeak, ×1-3); Lechonk (highlands, ×1-2); Oinkologne (highlands, ×1-3); Pignite (highlands, ×1-3); Tepig (highlands, ×1-2) | – | Cooked Porkchop, Open-Faced Sandwich | | Raw Porkchop (`minecraft:porkchop`) | Grumpig (frostpeak, ×1-3); Lechonk (highlands, ×1-2); Oinkologne (highlands, ×1-3); Pignite (highlands, ×1-3); Tepig (highlands, ×1-2) | – | Cooked Porkchop, Open-Faced Sandwich |
| Raw Rabbit (`minecraft:rabbit`) | Buneary (westmarch, ×1); Bunnelby (southwold, ×1); Cinderace (highlands, ×1); Raboot (highlands, ×1); Scorbunny (highlands, ×1) | – | Cooked Rabbit, Open-Faced Sandwich | | Raw Rabbit (`minecraft:rabbit`) | Buneary (westmarch, ×1); Bunnelby (southwold, ×1); Cinderace (highlands, ×1); Raboot (highlands, ×1); Scorbunny (highlands, ×1) | – | Cooked Rabbit, Open-Faced Sandwich |
| Raw Salmon (`minecraft:salmon`) | Arrokuda (mire, ×1); Barraskewda (mire, ×1); Basculegion (frostpeak, ×1); Basculin (frostpeak, ×1); Buizel (highlands, ×0-1); Dondozo (mire, ×1); Floatzel (highlands, ×0-2); Goldeen (southwold, ×1); Gyarados (jungle, ×1); Magikarp (jungle, ×1); Tatsugiri (mire, ×1) | Fishing; Loot in Village Plains | Cooked Salmon | | Raw Salmon (`minecraft:salmon`) | Arrokuda (mire, ×1); Barraskewda (mire, ×1); Basculegion (frostpeak, ×1); Basculin (frostpeak, ×1); Buizel (highlands, ×0-1); Dondozo (mire, ×1); Floatzel (highlands, ×0-2); Goldeen (southwold, ×1); Gyarados (westmarch, ×1); Magikarp (westmarch, ×1); Tatsugiri (mire, ×1) | Fishing; Loot in Village Plains | Cooked Salmon |
| Rawst Berry (`cobblemon:rawst_berry`) | Arcanine (mire, 5%); Camerupt (sunscorch, 5%); Capsakid (sunscorch, 2.5%); Darumaka (jungle, 2.5%); Fletchinder (westmarch, 5%); Fletchling (westmarch, 2.5%); Growlithe (mire, 2.5%); Heatmor (basalt, 5%); Houndoom (basalt, 5%); Magmortar (basalt, 10%); Ninetales (highlands, 5%); Numel (sunscorch, 2.5%); Phantump (westmarch, 2.5%); Poltchageist (sunscorch, 2.5%); Scovillain (sunscorch, 5%); Sinistcha (sunscorch, 5%); Vulpix (highlands, 2.5%) | Break Rawst Berry; Wild berry trees in Badlands, Desert | Berry Juice, Burn Heal, Candied Berries, Cyan Dye | | Rawst Berry (`cobblemon:rawst_berry`) | Arcanine (basalt, 5%); Camerupt (sunscorch, 5%); Capsakid (sunscorch, 2.5%); Darumaka (jungle, 2.5%); Fletchinder (highlands, 5%); Fletchling (highlands, 2.5%); Heatmor (basalt, 5%); Houndoom (basalt, 5%); Magmortar (basalt, 10%); Ninetales (highlands, 5%); Numel (sunscorch, 2.5%); Phantump (westmarch, 2.5%); Poltchageist (sunscorch, 2.5%); Scovillain (sunscorch, 5%); Sinistcha (sunscorch, 5%); Talonflame (highlands, 10%); Vulpix (highlands, 2.5%) | Break Rawst Berry; Wild berry trees in Badlands, Desert | Berry Juice, Burn Heal, Candied Berries, Cyan Dye |
| Razor Fang (`cobblemon:razor_fang`) | Arbok (sunscorch, 5%); Bruxish (shallows, 5%); Gliscor (basalt, 5%); Golbat (jungle, 5%); Mawile (button_isle, 5%); Seviper (highlands, 5%); Tyrunt (lush_caves, 5%); Zubat (jungle, 2.5%) | Brush suspicious blocks in Prehistoric Sandy Den (worldgen feature); Brush suspicious blocks in Prehistoric Sunscorched Den (worldgen feature); Brush suspicious blocks in Prehistoric Sunscorched Remains (worldgen feature) | Dragon Fang | | Razor Fang (`cobblemon:razor_fang`) | Arbok (sunscorch, 5%); Bruxish (shallows, 5%); Crobat (deep_dark, 10%); Gliscor (basalt, 5%); Golbat (deep_dark, 5%); Mawile (basalt, 5%); Seviper (highlands, 5%); Tyrunt (lush_caves, 5%) | Brush suspicious blocks in Prehistoric Sandy Den (worldgen feature); Brush suspicious blocks in Prehistoric Sunscorched Den (worldgen feature); Brush suspicious blocks in Prehistoric Sunscorched Remains (worldgen feature) | Dragon Fang |
| Razz Berry (`cobblemon:razz_berry`) | Braviary (frostpeak, 5%); Gurdurr (westmarch, 5%); Kilowattrel (deep_sea, 5%); Pidove (southwold, 2.5%); Throh (frostpeak, 5%); Timburr (westmarch, 2.5%); Tinkatink (highlands, 2.5%); Tinkatuff (highlands, 5%); Volbeat (mire, 5%) | Break Razz Berry; Wild berry trees in Cherry Grove, Forest | Berry Juice, Candied Berries, Red Dye | | Razz Berry (`cobblemon:razz_berry`) | Braviary (frostpeak, 5%); Kilowattrel (deep_sea, 5%); Pidove (southwold, 2.5%); Throh (frostpeak, 5%); Timburr (southwold, 2.5%); Tinkatink (highlands, 2.5%); Tinkatuff (highlands, 5%); Volbeat (mire, 5%) | Break Razz Berry; Wild berry trees in Cherry Grove, Forest | Berry Juice, Candied Berries, Red Dye |
| Red Mushroom (`minecraft:red_mushroom`) | Paras (lush_caves, ×0-2); Parasect (lush_caves, ×1) | Break Red Mushroom | Mushroom Stew, Poké Bait, Rabbit Stew, Suspicious Stew | | Red Mushroom (`minecraft:red_mushroom`) | Paras (lush_caves, ×0-2); Parasect (lush_caves, ×1) | Break Red Mushroom | Mushroom Stew, Poké Bait, Rabbit Stew, Suspicious Stew |
| Red Wool (`minecraft:red_wool`) | – | Break Red Wool; Crafting (shapeless) | Air Balloon, Black Wool, Blue Wool, Brown Wool, Choice Scarf, Covert Cloak, Cyan Wool, Destiny Knot … | | Red Wool (`minecraft:red_wool`) | – | Break Red Wool; Crafting (shapeless) | Air Balloon, Black Wool, Blue Wool, Brown Wool, Choice Scarf, Covert Cloak, Cyan Wool, Destiny Knot … |
| Redstone Dust (`minecraft:redstone`) | Electabuzz (frostpeak, ×0-2); Electivire (frostpeak, ×0-3) | Break Redstone Wire; Crafting (shapeless); Loot in Decaying Crypt Ruins (cobblemon), Mossy Oubliette Ruins (cobblemon), Unstable Cave Ruins (cobblemon); Loot in Mineshaft, Mineshaft Mesa; Loot in Monster Room (worldgen feature) … | brewing: longer potions, Block of Redstone, Cell Battery, Choice Band, Choice Specs, Clock, Compass, Copper Bulb … | | Redstone Dust (`minecraft:redstone`) | Electabuzz (frostpeak, ×0-2); Electivire (frostpeak, ×0-3) | Break Redstone Wire; Crafting (shapeless); Loot in Decaying Crypt Ruins (cobblemon), Mossy Oubliette Ruins (cobblemon), Unstable Cave Ruins (cobblemon); Loot in Mineshaft, Mineshaft Mesa; Loot in Monster Room (worldgen feature) … | brewing: longer potions, Block of Redstone, Cell Battery, Choice Band, Choice Specs, Clock, Compass, Copper Bulb … |
| Relic Coin (`cobblemon:relic_coin`) | Gimmighoul (button_isle, ×24-48) | Break Relic Coin Pouch; Break Relic Coin Sack; Brush suspicious blocks in Decaying Crypt Ruins (cobblemon); Brush suspicious blocks in Deep Crypt (worldgen feature); Brush suspicious blocks in Deserted Gimmi Tower (cobblemon) … | Gold Nugget, Relic Coin Pouch | | Relic Coin (`cobblemon:relic_coin`) | Gimmighoul (button_isle, ×24-48) | Break Relic Coin Pouch; Break Relic Coin Sack; Brush suspicious blocks in Decaying Crypt Ruins (cobblemon); Brush suspicious blocks in Deep Crypt (worldgen feature); Brush suspicious blocks in Deserted Gimmi Tower (cobblemon) … | Gold Nugget, Relic Coin Pouch |
| Revival Herb (`cobblemon:revival_herb`) | Leavanny (highlands, 10%); Lilligant (westmarch, 5%); Petilil (westmarch, 2.5%); Sewaddle (highlands, 2.5%); Swadloon (highlands, 5%) | Break Revival Herb; Loot in Crumbling Arch (worldgen feature); Loot in Decaying Crypt Ruins (cobblemon), Deep Crypt (worldgen feature), Deserted Gimmi Tower (cobblemon), Frozen Gimmi Tower (cobblemon), Lush Gimmi Tower (cobblemon), Reclaimed Deserted Monument (cobblemon) and 5 more; Loot in Decaying Crypt Ruins (cobblemon), Rooted Gimmi Tower (cobblemon); Loot in Deep Crypt (worldgen feature), Lush Gimmi Tower (cobblemon) … | Heal Powder | | Revival Herb (`cobblemon:revival_herb`) | Lilligant (westmarch, 5%); Petilil (westmarch, 2.5%); Sewaddle (westmarch, 2.5%); Swadloon (westmarch, 5%) | Break Revival Herb; Loot in Crumbling Arch (worldgen feature); Loot in Decaying Crypt Ruins (cobblemon), Deep Crypt (worldgen feature), Deserted Gimmi Tower (cobblemon), Frozen Gimmi Tower (cobblemon), Lush Gimmi Tower (cobblemon), Reclaimed Deserted Monument (cobblemon) and 5 more; Loot in Decaying Crypt Ruins (cobblemon), Rooted Gimmi Tower (cobblemon); Loot in Deep Crypt (worldgen feature), Lush Gimmi Tower (cobblemon) … | Heal Powder |
| Rindo Berry (`cobblemon:rindo_berry`) | Barbaracle (deep_sea, 5%); Barboach (southwold, 2.5%); Binacle (deep_sea, 2.5%); Chewtle (highlands, 2.5%); Corsola (westmarch, 5%); Drednaw (highlands, 5%); Finneon (shallows, 2.5%); Geodude (westmarch, 2.5%); Graveler (westmarch, 5%); Panpour (jungle, 2.5%); Relicanth (southwold, 5%); Shellos (shallows, 2.5%); Simipour (jungle, 5%); Wooper (button_isle, 2.5%) | Break Rindo Berry; Wild berry trees in Cherry Grove, Forest, Jungle, Lush Caves, Plains | Berry Juice, Candied Berries, Lime Dye | | Rindo Berry (`cobblemon:rindo_berry`) | Barbaracle (deep_sea, 5%); Barboach (lush_caves, 2.5%); Binacle (deep_sea, 2.5%); Chewtle (highlands, 2.5%); Corsola (southwold, 5%); Drednaw (highlands, 5%); Finneon (shallows, 2.5%); Geodude (dripstone, 2.5%); Golem (dripstone, 10%); Graveler (dripstone, 5%); Panpour (jungle, 2.5%); Relicanth (southwold, 5%); Shellos (shallows, 2.5%); Simipour (jungle, 5%); Wooper (button_isle, 2.5%) | Break Rindo Berry; Wild berry trees in Cherry Grove, Forest, Jungle, Lush Caves, Plains | Berry Juice, Candied Berries, Lime Dye |
| Roasted Leek (`cobblemon:roasted_leek`) | Capsakid (sunscorch, ×0-1); Scovillain (sunscorch, ×0-2) | Campfire; Smelting; Smoker | Leek and Potato Stew | | Roasted Leek (`cobblemon:roasted_leek`) | Capsakid (sunscorch, ×0-1); Scovillain (sunscorch, ×0-2) | Campfire; Smelting; Smoker | Leek and Potato Stew |
| Rose Bush (`minecraft:rose_bush`) | Roselia (frostpeak, ×0-1); Roserade (frostpeak, ×1-2) | Break Rose Bush; Use c:fertilizers on your Roselia; Use c:fertilizers on your Roserade | Red Dye | | Rose Bush (`minecraft:rose_bush`) | Roselia (frostpeak, ×0-1); Roserade (frostpeak, ×1-2) | Break Rose Bush; Use c:fertilizers on your Roselia; Use c:fertilizers on your Roserade | Red Dye |
| Roseli Berry (`cobblemon:roseli_berry`) | Absol (southwold, 5%); Deino (mire, 2.5%); Jangmo-o (jungle, 2.5%); Morpeko (southwold, 5%); Nickit (westmarch, 2.5%); Sableye (button_isle, 5%); Scrafty (sunscorch, 5%); Scraggy (sunscorch, 2.5%); Thievul (westmarch, 5%); Zoroark (highlands, 5%) | Break Roseli Berry; Wild berry trees in Cherry Grove | Berry Juice, Candied Berries, Red Dye | | Roseli Berry (`cobblemon:roseli_berry`) | Absol (basalt, 5%); Jangmo-o (jungle, 2.5%); Morpeko (button_isle, 5%); Nickit (westmarch, 2.5%); Sableye (button_isle, 5%); Scrafty (sunscorch, 5%); Scraggy (sunscorch, 2.5%); Thievul (westmarch, 5%); Zoroark (highlands, 5%); Zweilous (deep_dark, 5%) | Break Roseli Berry; Wild berry trees in Cherry Grove | Berry Juice, Candied Berries, Red Dye |
| Rotten Flesh (`minecraft:rotten_flesh`) | Electrike (highlands, ×0-1); Houndoom (basalt, ×0-2); Houndstone (deep_dark, ×0-2); Joltik (southwold, ×0-1); Lycanroc (frostpeak, ×0-2); Manectric (highlands, ×0-2); Maschiff (westmarch, ×0-1); Mightyena (highlands, ×0-2); Purrloin (southwold, ×0-1); Rattata (button_isle, ×0-1); Salandit (frostpeak, ×0-1); Spinarak (button_isle, ×0-1) | Fishing; Fishing with a Poké Rod; Loot in Desert Pyramid; Loot in Jungle Pyramid; Loot in Monster Room (worldgen feature) … | Mulch | | Rotten Flesh (`minecraft:rotten_flesh`) | Electrike (highlands, ×0-1); Houndoom (basalt, ×0-2); Houndstone (deep_dark, ×0-2); Joltik (lush_caves, ×0-1); Liepard (basalt, ×0-2); Lycanroc (frostpeak, ×0-2); Mabosstiff (deep_dark, ×0-2); Manectric (highlands, ×0-2); Mightyena (highlands, ×0-2); Rattata (button_isle, ×0-1); Salandit (frostpeak, ×0-1); Spinarak (button_isle, ×0-1) | Fishing; Fishing with a Poké Rod; Loot in Desert Pyramid; Loot in Jungle Pyramid; Loot in Monster Room (worldgen feature) … | Mulch |
| Sand (`minecraft:sand`) | Hippopotas (sunscorch, ×0-1); Hippowdon (sunscorch, ×0-2); Sandygast (shallows, ×0-1) | Break Sand; Loot in Desert Pyramid; Use c:tools/brush on your Hippopotas; Use c:tools/brush on your Hippowdon; Use c:tools/brush on your Palossand … | Black Concrete Powder, Blue Concrete Powder, Brown Concrete Powder, Cyan Concrete Powder, Glass, Gray Concrete Powder, Green Concrete Powder, Light Blue Concrete Powder … | | Sand (`minecraft:sand`) | Hippopotas (sunscorch, ×0-1); Hippowdon (sunscorch, ×0-2); Sandygast (shallows, ×0-1) | Break Sand; Loot in Desert Pyramid; Use c:tools/brush on your Hippopotas; Use c:tools/brush on your Hippowdon; Use c:tools/brush on your Palossand … | Black Concrete Powder, Blue Concrete Powder, Brown Concrete Powder, Cyan Concrete Powder, Glass, Gray Concrete Powder, Green Concrete Powder, Light Blue Concrete Powder … |
| Shiny Stone (`cobblemon:shiny_stone`) | Togekiss (frostpeak, 10%); Togetic (frostpeak, 5%) | Brush suspicious blocks in Deserted Gimmi Tower (cobblemon); Brush suspicious blocks in Deserted Gimmi Tower (cobblemon), Rooted Gimmi Tower (cobblemon), Temperate Gimmi Tower (cobblemon); Crafting (shapeless); Loot in Crumbling Arch (worldgen feature); Loot in Decaying Crypt Ruins (cobblemon), Deep Crypt (worldgen feature), Deserted Gimmi Tower (cobblemon), Frozen Gimmi Tower (cobblemon), Lush Gimmi Tower (cobblemon), Reclaimed Deserted Monument (cobblemon) and 5 more … | Shiny Stone Block | | Shiny Stone (`cobblemon:shiny_stone`) | Togekiss (frostpeak, 10%); Togetic (frostpeak, 5%) | Brush suspicious blocks in Deserted Gimmi Tower (cobblemon); Brush suspicious blocks in Deserted Gimmi Tower (cobblemon), Rooted Gimmi Tower (cobblemon), Temperate Gimmi Tower (cobblemon); Crafting (shapeless); Loot in Crumbling Arch (worldgen feature); Loot in Decaying Crypt Ruins (cobblemon), Deep Crypt (worldgen feature), Deserted Gimmi Tower (cobblemon), Frozen Gimmi Tower (cobblemon), Lush Gimmi Tower (cobblemon), Reclaimed Deserted Monument (cobblemon) and 5 more … | Shiny Stone Block |
| Shuca Berry (`cobblemon:shuca_berry`) | Glimmet (jungle, 2.5%); Luxio (sunscorch, 5%); Luxray (sunscorch, 10%); Magnemite (jungle, 2.5%); Magneton (jungle, 5%); Orthworm (southwold, 5%); Ponyta (highlands, 2.5%); Salandit (frostpeak, 2.5%); Togedemaru (frostpeak, 5%); Toxel (westmarch, 2.5%); Varoom (westmarch, 2.5%) | Break Shuca Berry; Wild berry trees in Badlands, Desert, Plains | Berry Juice, Brown Dye, Candied Berries | | Shuca Berry (`cobblemon:shuca_berry`) | Glimmora (deep_dark, 5%); Luxio (sunscorch, 5%); Luxray (sunscorch, 10%); Magnemite (southwold, 2.5%); Orthworm (dripstone, 5%); Ponyta (highlands, 2.5%); Revavroom (deep_dark, 5%); Salandit (frostpeak, 2.5%); Togedemaru (frostpeak, 5%); Toxel (southwold, 2.5%) | Break Shuca Berry; Wild berry trees in Badlands, Desert, Plains | Berry Juice, Brown Dye, Candied Berries |
| Shulker Shell (`minecraft:shulker_shell`) | Cloyster (deep_sea, 10%); Shuckle (lush_caves, 10%) | – | Master Ball, Shulker Box | | Shulker Shell (`minecraft:shulker_shell`) | Cloyster (deep_sea, 10%); Shuckle (lush_caves, 10%) | – | Master Ball, Shulker Box |
| Silk Scarf (`cobblemon:silk_scarf`) | Eevee (westmarch, 5%); Furfrou (southwold, 5%); Furret (southwold, 5%); Minccino (southwold, 2.5%); Sentret (southwold, 2.5%); Skitty (button_isle, 2.5%); Trubbish (southwold, 2.5%) | Crafting | Choice Scarf | | Silk Scarf (`cobblemon:silk_scarf`) | Eevee (southwold, 5%); Furfrou (southwold, 5%); Furret (southwold, 5%); Minccino (southwold, 2.5%); Sentret (southwold, 2.5%); Skitty (button_isle, 2.5%); Trubbish (lush_caves, 2.5%) | Crafting | Choice Scarf |
| Slimeball (`minecraft:slime_ball`) | Goomy (mire, ×0-1); Grimer (westmarch, ×0-1); Lickilicky (highlands, ×0-2); Lickitung (highlands, ×0-1); Mareanie (shallows, ×0-1); Pyukumuku (shallows, ×0-2); Solosis (southwold, ×0-1); Tynamo (westmarch, ×0-1) | Crafting (shapeless); Use c:tools/brush on your Goodra; Use c:tools/brush on your Goomy; Use c:tools/brush on your Sliggoo | Binding Band, Lead, Loaded Dice, Magma Cream, Slime Block, Sticky Piston | | Slimeball (`minecraft:slime_ball`) | Duosion (dripstone, ×0-2); Goomy (westmarch, ×0-1); Grimer (southwold, ×0-1); Lickilicky (highlands, ×0-2); Lickitung (highlands, ×0-1); Mareanie (shallows, ×0-1); Pyukumuku (shallows, ×0-2); Solosis (dripstone, ×0-1); Tynamo (southwold, ×0-1) | Crafting (shapeless); Use c:tools/brush on your Goodra; Use c:tools/brush on your Goomy; Use c:tools/brush on your Sliggoo | Binding Band, Lead, Loaded Dice, Magma Cream, Slime Block, Sticky Piston |
| Smithing Template (`minecraft:tide_armor_trim_smithing_template`) | none (cosmetic (an armour trim); elder guardians don't live on the island) | – | Smithing Template | | Smithing Template (`minecraft:tide_armor_trim_smithing_template`) | none (cosmetic (an armour trim); elder guardians don't live on the island) | – | Smithing Template |
| Snowball (`minecraft:snowball`) | Abomasnow (frostpeak, ×0-2); Froslass (frostpeak, ×0-2); Frosmoth (frostpeak, ×0-2); Glalie (frostpeak, ×0-2); Vanillish (frostpeak, ×0-2); Vanilluxe (frostpeak, ×0-3) | Break Snow; Break Snow Block; Loot in Ancient City; Loot in Trial Chambers; Use c:tools/brush on your Vanillish … | Casteliacone, Snow Block | | Snowball (`minecraft:snowball`) | Abomasnow (frostpeak, ×0-2); Froslass (frostpeak, ×0-2); Frosmoth (frostpeak, ×0-2); Glalie (frostpeak, ×0-2); Vanillish (frostpeak, ×0-2); Vanilluxe (frostpeak, ×0-3) | Break Snow; Break Snow Block; Loot in Ancient City; Loot in Trial Chambers; Use c:tools/brush on your Vanillish … | Casteliacone, Snow Block |
| Soft Sand (`cobblemon:soft_sand`) | Diglett (button_isle, 2.5%); Drilbur (westmarch, 2.5%); Flygon (sunscorch, 10%); Hippopotas (sunscorch, 2.5%); Hippowdon (sunscorch, 5%); Nincada (button_isle, 2.5%); Sandaconda (sunscorch, 5%); Sandshrew (sunscorch, 2.5%); Sandslash (sunscorch, 5%); Sandygast (shallows, 2.5%); Silicobra (sunscorch, 2.5%); Vibrava (sunscorch, 5%) | Break Soft Sand; Crafting | Smooth Rock | | Soft Sand (`cobblemon:soft_sand`) | Dugtrio (basalt, 5%); Excadrill (basalt, 5%); Flygon (sunscorch, 10%); Hippopotas (sunscorch, 2.5%); Hippowdon (sunscorch, 5%); Nincada (button_isle, 2.5%); Sandaconda (sunscorch, 5%); Sandshrew (sunscorch, 2.5%); Sandslash (sunscorch, 5%); Sandygast (shallows, 2.5%); Silicobra (sunscorch, 2.5%); Vibrava (sunscorch, 5%) | Break Soft Sand; Crafting | Smooth Rock |
| Spider Eye (`minecraft:spider_eye`) | Joltik (southwold, ×0-1); Spinarak (button_isle, ×0-1); Tarountula (button_isle, ×0-1) | Loot in Desert Pyramid | brewing: Poison, Fermented Spider Eye | | Spider Eye (`minecraft:spider_eye`) | Joltik (lush_caves, ×0-1); Spinarak (button_isle, ×0-1); Tarountula (button_isle, ×0-1) | Loot in Desert Pyramid | brewing: Poison, Fermented Spider Eye |
| Stick (`minecraft:stick`) | Bidoof (button_isle, ×0-1); Braixen (sunscorch, ×1); Brambleghast (sunscorch, ×0-2); Delphox (sunscorch, ×1); Grookey (jungle, ×0-1); Grovyle (jungle, ×0-2); Thwackey (jungle, ×0-2); Treecko (jungle, ×0-1) | Break Acacia Leaves; Break Apricorn Leaves; Break Azalea Leaves; Break Birch Leaves; Break Cherry Leaves … | Acacia Fence, Acacia Fence Gate, Acacia Sign, Activator Rail, Apricorn Fence, Apricorn Fence Gate, Apricorn Sign, Armor Stand … | | Stick (`minecraft:stick`) | Bidoof (button_isle, ×0-1); Braixen (sunscorch, ×1); Brambleghast (sunscorch, ×0-2); Delphox (sunscorch, ×1); Grookey (jungle, ×0-1); Grovyle (jungle, ×0-2); Thwackey (jungle, ×0-2); Treecko (jungle, ×0-1) | Break Acacia Leaves; Break Apricorn Leaves; Break Azalea Leaves; Break Birch Leaves; Break Cherry Leaves … | Acacia Fence, Acacia Fence Gate, Acacia Sign, Activator Rail, Apricorn Fence, Apricorn Fence Gate, Apricorn Sign, Armor Stand … |
| Stone (`minecraft:stone`) | Onix (westmarch, ×1-3); Stonjourner (highlands, ×2) | Break Infested Stone; Break Stone; Smelting | Chiseled Stone Bricks, Hard Stone, Quest Book, Redstone Comparator, Redstone Repeater, Smooth Stone, Stone Brick Slab, Stone Brick Stairs … | | Stone (`minecraft:stone`) | Stonjourner (highlands, ×2) | Break Infested Stone; Break Stone; Smelting | Chiseled Stone Bricks, Hard Stone, Quest Book, Redstone Comparator, Redstone Repeater, Smooth Stone, Stone Brick Slab, Stone Brick Stairs … |
| String (`minecraft:string`) | Burmy (southwold, ×0-1); Cascoon (button_isle, ×0-2); Caterpie (button_isle, ×0-1); Charjabug (westmarch, ×0-2); Grubbin (westmarch, ×0-1); Joltik (southwold, ×0-1); Kakuna (button_isle, ×0-2); Larvesta (sunscorch, ×0-1); Leavanny (highlands, ×0-3); Metapod (button_isle, ×0-2); Scatterbug (button_isle, ×0-1); Sewaddle (highlands, ×0-1); Silcoon (button_isle, ×0-2); Spewpa (button_isle, ×0-2); Spinarak (button_isle, ×0-1); Swadloon (highlands, ×0-2); Tarountula (button_isle, ×0-1); Venonat (southwold, ×0-1); Weedle (button_isle, ×0-1); Wurmple (button_isle, ×0-1) | Break Cobweb; Break Tripwire; Brush suspicious blocks in Trail Ruins; Fishing; Fishing with a Poké Rod … | Air Balloon, Binding Band, Bow, Candle, Clear Amulet, Crossbow, Destiny Knot, Fishing Rod … | | String (`minecraft:string`) | Burmy (southwold, ×0-1); Cascoon (button_isle, ×0-2); Caterpie (button_isle, ×0-1); Grubbin (southwold, ×0-1); Joltik (lush_caves, ×0-1); Kakuna (button_isle, ×0-2); Larvesta (sunscorch, ×0-1); Metapod (button_isle, ×0-2); Scatterbug (button_isle, ×0-1); Sewaddle (westmarch, ×0-1); Silcoon (button_isle, ×0-2); Spewpa (button_isle, ×0-2); Spinarak (button_isle, ×0-1); Swadloon (westmarch, ×0-2); Tarountula (button_isle, ×0-1); Venonat (southwold, ×0-1); Weedle (button_isle, ×0-1); Wurmple (button_isle, ×0-1) | Break Cobweb; Break Tripwire; Brush suspicious blocks in Trail Ruins; Fishing; Fishing with a Poké Rod … | Air Balloon, Binding Band, Bow, Candle, Clear Amulet, Crossbow, Destiny Knot, Fishing Rod … |
| Sugar (`minecraft:sugar`) | Alcremie (westmarch, ×0-2); Milcery (westmarch, ×0-1); Swirlix (southwold, ×0-1) | Crafting (shapeless); Use c:tools/brush on your Alcremie; Use c:tools/brush on your Slurpuff; Use c:tools/brush on your Swirlix | brewing: Swiftness, Berry Sweet, Big Malasada, Blunder Policy, Cake, Candied Apple, Candied Berries, Casteliacone … | | Sugar (`minecraft:sugar`) | Alcremie (dripstone, ×0-2); Milcery (dripstone, ×0-1); Slurpuff (dripstone, ×0-2); Swirlix (dripstone, ×0-1) | Crafting (shapeless); Use c:tools/brush on your Alcremie; Use c:tools/brush on your Slurpuff; Use c:tools/brush on your Swirlix | brewing: Swiftness, Berry Sweet, Big Malasada, Blunder Policy, Cake, Candied Apple, Candied Berries, Casteliacone … |
| Sun Stone (`cobblemon:sun_stone`) | Solrock (dripstone, 5%) | Brush suspicious blocks in Prehistoric Eroded Pillar (worldgen feature); Brush suspicious blocks in Prehistoric Sandy Den (worldgen feature); Brush suspicious blocks in Prehistoric Sunscorched Den (worldgen feature); Brush suspicious blocks in Prehistoric Sunscorched Remains (worldgen feature); Brush suspicious blocks in Sunscorched Gimmi Tower (cobblemon) … | Sun Stone Block | | Sun Stone (`cobblemon:sun_stone`) | Solrock (dripstone, 5%) | Brush suspicious blocks in Prehistoric Eroded Pillar (worldgen feature); Brush suspicious blocks in Prehistoric Sandy Den (worldgen feature); Brush suspicious blocks in Prehistoric Sunscorched Den (worldgen feature); Brush suspicious blocks in Prehistoric Sunscorched Remains (worldgen feature); Brush suspicious blocks in Sunscorched Gimmi Tower (cobblemon) … | Sun Stone Block |
| Sunflower (`minecraft:sunflower`) | – | Break Sunflower; Use c:fertilizers on your Sunflora | Yellow Dye | | Sunflower (`minecraft:sunflower`) | – | Break Sunflower; Use c:fertilizers on your Sunflora | Yellow Dye |
| Sweet Berries (`minecraft:sweet_berries`) | Abomasnow (frostpeak, ×2-4); Cherrim (frostpeak, ×2-4); Grotle (highlands, ×2-4); Nickit (westmarch, ×1-3); Ninetales (highlands, ×2-4); Teddiursa (mire, ×1-3); Thievul (westmarch, ×2-4); Ursaring (mire, ×2-4); Vulpix (highlands, ×1-3); Zoroark (highlands, ×2-4); Zorua (highlands, ×1-3) | Use c:fertilizers on your Grotle | Fine Remedy, Jubilife Muffin, Superb Remedy, Whipped Dream | | Sweet Berries (`minecraft:sweet_berries`) | Abomasnow (frostpeak, ×2-4); Cherrim (frostpeak, ×2-4); Grotle (highlands, ×2-4); Nickit (westmarch, ×1-3); Ninetales (highlands, ×2-4); Teddiursa (westmarch, ×1-3); Thievul (westmarch, ×2-4); Vulpix (highlands, ×1-3); Zoroark (highlands, ×2-4); Zorua (highlands, ×1-3) | Use c:fertilizers on your Grotle | Fine Remedy, Jubilife Muffin, Superb Remedy, Whipped Dream |
| Tanga Berry (`cobblemon:tanga_berry`) | Cacnea (sunscorch, 2.5%); Cacturne (sunscorch, 5%); Espathra (sunscorch, 5%); Exeggcute (jungle, 2.5%); Exeggutor (jungle, 5%); Fomantis (jungle, 2.5%); Grumpig (frostpeak, 5%); Inkay (shallows, 2.5%); Krokorok (sunscorch, 5%); Krookodile (sunscorch, 10%); Maschiff (westmarch, 2.5%); Nuzleaf (westmarch, 5%); Seedot (westmarch, 2.5%) | Break Tanga Berry; Wild berry trees in Cherry Grove, Forest, Jungle, Mangrove Swamp | Berry Juice, Candied Berries, Green Dye | | Tanga Berry (`cobblemon:tanga_berry`) | Cacnea (sunscorch, 2.5%); Cacturne (sunscorch, 5%); Espathra (sunscorch, 5%); Exeggcute (jungle, 2.5%); Exeggutor (jungle, 5%); Fomantis (jungle, 2.5%); Grumpig (frostpeak, 5%); Inkay (shallows, 2.5%); Krokorok (sunscorch, 5%); Krookodile (sunscorch, 10%); Mabosstiff (deep_dark, 5%); Nuzleaf (westmarch, 5%); Seedot (westmarch, 2.5%) | Break Tanga Berry; Wild berry trees in Cherry Grove, Forest, Jungle, Mangrove Swamp | Berry Juice, Candied Berries, Green Dye |
| Terracotta (`minecraft:terracotta`) | Crustle (sunscorch, ×0-2); Dwebble (sunscorch, ×0-1) | Break Terracotta; Smelting | Black Terracotta, Blue Terracotta, Brown Terracotta, Cyan Terracotta, Gray Terracotta, Green Terracotta, Light Blue Terracotta, Light Gray Terracotta … | | Terracotta (`minecraft:terracotta`) | Crustle (sunscorch, ×0-2); Dwebble (sunscorch, ×0-1) | Break Terracotta; Smelting | Black Terracotta, Blue Terracotta, Brown Terracotta, Cyan Terracotta, Gray Terracotta, Green Terracotta, Light Blue Terracotta, Light Gray Terracotta … |
| Thunder Stone (`cobblemon:thunder_stone`) | Pichu (westmarch, 2.5%); Pikachu (westmarch, 5%) | Crafting (shapeless); Loot in Crumbling Arch (worldgen feature); Loot in Decaying Crypt Ruins (cobblemon), Deep Crypt (worldgen feature), Deserted Gimmi Tower (cobblemon), Frozen Gimmi Tower (cobblemon), Lush Gimmi Tower (cobblemon), Reclaimed Deserted Monument (cobblemon) and 5 more; Loot in Decaying Crypt Ruins (cobblemon), Rooted Gimmi Tower (cobblemon); Loot in Deep Crypt (worldgen feature), Lush Gimmi Tower (cobblemon) … | Light Ball, Metal Alloy, Thunder Stone Block | | Thunder Stone (`cobblemon:thunder_stone`) | Pichu (westmarch, 2.5%); Pikachu (westmarch, 5%) | Crafting (shapeless); Loot in Crumbling Arch (worldgen feature); Loot in Decaying Crypt Ruins (cobblemon), Deep Crypt (worldgen feature), Deserted Gimmi Tower (cobblemon), Frozen Gimmi Tower (cobblemon), Lush Gimmi Tower (cobblemon), Reclaimed Deserted Monument (cobblemon) and 5 more; Loot in Decaying Crypt Ruins (cobblemon), Rooted Gimmi Tower (cobblemon); Loot in Deep Crypt (worldgen feature), Lush Gimmi Tower (cobblemon) … | Light Ball, Metal Alloy, Thunder Stone Block |
| Turtle Scute (`minecraft:turtle_scute`) | Chewtle (highlands, ×0-1); Drednaw (highlands, ×0-2); Squirtle (highlands, ×0-1); Tirtouga (lush_caves, ×0-2); Turtonator (basalt, ×0-2); Wartortle (highlands, ×0-2) | – | Rocky Helmet, Safety Goggles, Turtle Shell | | Turtle Scute (`minecraft:turtle_scute`) | Chewtle (highlands, ×0-1); Drednaw (highlands, ×0-2); Squirtle (highlands, ×0-1); Tirtouga (lush_caves, ×0-2); Turtonator (basalt, ×0-2); Wartortle (highlands, ×0-2) | – | Rocky Helmet, Safety Goggles, Turtle Shell |
| Vines (`minecraft:vine`) | Tangela (jungle, ×0-1); Tangrowth (jungle, ×0-2) | Break Vines; Use c:fertilizers on your Tangela; Use c:fertilizers on your Tangrowth | Mossy Cobblestone, Mossy Stone Bricks | | Vines (`minecraft:vine`) | Tangela (jungle, ×0-1); Tangrowth (jungle, ×0-2) | Break Vines; Use c:fertilizers on your Tangela; Use c:fertilizers on your Tangrowth | Mossy Cobblestone, Mossy Stone Bricks |
| Wacan Berry (`cobblemon:wacan_berry`) | Buizel (highlands, 2.5%); Corviknight (deep_dark, 10%); Cramorant (shallows, 5%); Ducklett (mire, 2.5%); Floatzel (highlands, 5%); Goldeen (southwold, 2.5%); Gyarados (jungle, 5%); Magikarp (jungle, 2.5%); Mantine (deep_sea, 5%); Mantyke (deep_sea, 2.5%); Masquerain (mire, 5%); Surskit (mire, 2.5%); Swanna (mire, 5%); Wingull (shallows, 2.5%) | Break Wacan Berry; Wild berry trees in Cherry Grove, Plains, Windswept Hills | Berry Juice, Candied Berries, Yellow Dye | | Wacan Berry (`cobblemon:wacan_berry`) | Buizel (highlands, 2.5%); Corviknight (deep_dark, 10%); Cramorant (shallows, 5%); Ducklett (mire, 2.5%); Floatzel (highlands, 5%); Goldeen (southwold, 2.5%); Gyarados (westmarch, 5%); Magikarp (westmarch, 2.5%); Mantine (deep_sea, 5%); Mantyke (deep_sea, 2.5%); Masquerain (mire, 5%); Surskit (mire, 2.5%); Swanna (mire, 5%); Wingull (shallows, 2.5%) | Break Wacan Berry; Wild berry trees in Cherry Grove, Plains, Windswept Hills | Berry Juice, Candied Berries, Yellow Dye |
| Water Stone (`cobblemon:water_stone`) | Panpour (jungle, 2.5%); Simipour (jungle, 5%) | Blast furnace; Break Water Stone Ore; Brush suspicious blocks in Prehistoric Dripstone Oasis (worldgen feature); Brush suspicious blocks in Prehistoric Enhydro Agate (worldgen feature); Brush suspicious blocks in Prehistoric Mossy Pond (worldgen feature) … | Damp Rock, Water Stone Block | | Water Stone (`cobblemon:water_stone`) | Panpour (jungle, 2.5%); Simipour (jungle, 5%) | Blast furnace; Break Water Stone Ore; Brush suspicious blocks in Prehistoric Dripstone Oasis (worldgen feature); Brush suspicious blocks in Prehistoric Enhydro Agate (worldgen feature); Brush suspicious blocks in Prehistoric Mossy Pond (worldgen feature) … | Damp Rock, Water Stone Block |
| Wepear Berry (`cobblemon:wepear_berry`) | Araquanid (westmarch, 5%); Bellibolt (mire, 5%); Boltund (westmarch, 5%); Bouffalant (highlands, 5%); Butterfree (button_isle, 5%); Caterpie (button_isle, 2.5%); Charjabug (westmarch, 5%); Dewpider (westmarch, 2.5%); Grubbin (westmarch, 2.5%); Machamp (frostpeak, 10%); Machoke (frostpeak, 5%); Metapod (button_isle, 2.5%); Scyther (westmarch, 2.5%); Tadbulb (mire, 2.5%); Yamper (westmarch, 2.5%) | Break Wepear Berry; Wild berry trees in Plains | Berry Juice, Candied Berries, Lime Dye | | Wepear Berry (`cobblemon:wepear_berry`) | Araquanid (westmarch, 5%); Bellibolt (mire, 5%); Bouffalant (highlands, 5%); Butterfree (button_isle, 5%); Caterpie (button_isle, 2.5%); Dewpider (westmarch, 2.5%); Grubbin (southwold, 2.5%); Machamp (frostpeak, 10%); Machoke (frostpeak, 5%); Metapod (button_isle, 2.5%); Scyther (westmarch, 2.5%); Tadbulb (mire, 2.5%); Yamper (southwold, 2.5%) | Break Wepear Berry; Wild berry trees in Plains | Berry Juice, Candied Berries, Lime Dye |
| Wet Sponge (`minecraft:wet_sponge`) | – | Break Wet Sponge | Sponge | | Wet Sponge (`minecraft:wet_sponge`) | – | Break Wet Sponge | Sponge |
| Wheat Seeds (`minecraft:wheat_seeds`) | Maushold (westmarch, ×0-2); Sunkern (button_isle, ×1); Tandemaus (westmarch, ×0-1) | Break Fern; Break Large Fern; Break Short Grass; Break Tall Grass; Break Wheat … | Miracle Seed | | Wheat Seeds (`minecraft:wheat_seeds`) | Maushold (westmarch, ×0-2); Sunkern (button_isle, ×1); Tandemaus (westmarch, ×0-1) | Break Fern; Break Large Fern; Break Short Grass; Break Tall Grass; Break Wheat … | Miracle Seed |
| White Wool (`minecraft:white_wool`) | Cottonee (highlands, ×1); Dubwool (frostpeak, ×1-2); Eldegoss (frostpeak, ×1-2); Flaaffy (highlands, ×1); Furfrou (southwold, ×1-2); Jumpluff (highlands, ×1-3); Mareep (highlands, ×1-2); Swablu (southwold, ×0-1); Whimsicott (highlands, ×1-2) | Break White Wool; Crafting; Crafting (shapeless); Use c:tools/brush on your Altaria; Use c:tools/brush on your Swablu | Air Balloon, Black Wool, Blue Wool, Brown Wool, Choice Scarf, Covert Cloak, Cyan Wool, Destiny Knot … | | White Wool (`minecraft:white_wool`) | Cottonee (highlands, ×1); Dubwool (frostpeak, ×1-2); Eldegoss (frostpeak, ×1-2); Flaaffy (highlands, ×1); Furfrou (southwold, ×1-2); Jumpluff (highlands, ×1-3); Mareep (highlands, ×1-2); Swablu (southwold, ×0-1); Whimsicott (highlands, ×1-2) | Break White Wool; Crafting; Crafting (shapeless); Use c:tools/brush on your Altaria; Use c:tools/brush on your Swablu | Air Balloon, Black Wool, Blue Wool, Brown Wool, Choice Scarf, Covert Cloak, Cyan Wool, Destiny Knot … |
| Wise Glasses (`cobblemon:wise_glasses`) | Hoothoot (button_isle, 2.5%); Meditite (button_isle, 2.5%); Natu (jungle, 2.5%); Xatu (jungle, 5%) | Crafting | Choice Specs | | Wise Glasses (`cobblemon:wise_glasses`) | Hoothoot (button_isle, 2.5%); Meditite (button_isle, 2.5%); Natu (jungle, 2.5%); Xatu (jungle, 5%) | Crafting | Choice Specs |
| Wither Skeleton Skull (`minecraft:wither_skeleton_skull`) | none (cosmetic here (the skull banner pattern); the Wither can't be built) | – | Banner Pattern | | Wither Skeleton Skull (`minecraft:wither_skeleton_skull`) | none (cosmetic here (the skull banner pattern); the Wither can't be built) | – | Banner Pattern |
| Yache Berry (`cobblemon:yache_berry`) | Appletun (mire, 10%); Applin (mire, 2.5%); Bagon (dripstone, 2.5%); Deerling (westmarch, 2.5%); Dragonair (mire, 5%); Dratini (mire, 2.5%); Flapple (mire, 5%); Flygon (sunscorch, 10%); Gliscor (basalt, 5%); Hoppip (highlands, 2.5%); Jumpluff (highlands, 10%); Noibat (jungle, 2.5%); Shelgon (dripstone, 5%); Skiploom (highlands, 5%); Staraptor (frostpeak, 10%); Swablu (southwold, 2.5%); Vibrava (sunscorch, 5%) | Break Yache Berry; Wild berry trees in Jagged Peaks | Berry Juice, Candied Berries, Cyan Dye | | Yache Berry (`cobblemon:yache_berry`) | Appletun (westmarch, 10%); Applin (westmarch, 2.5%); Bagon (dripstone, 2.5%); Deerling (westmarch, 2.5%); Dratini (westmarch, 2.5%); Flapple (westmarch, 5%); Flygon (sunscorch, 10%); Gliscor (basalt, 5%); Hoppip (highlands, 2.5%); Jumpluff (highlands, 10%); Noibat (southwold, 2.5%); Shelgon (dripstone, 5%); Skiploom (highlands, 5%); Staraptor (frostpeak, 10%); Swablu (southwold, 2.5%); Vibrava (sunscorch, 5%) | Break Yache Berry; Wild berry trees in Jagged Peaks | Berry Juice, Candied Berries, Cyan Dye |
| Yellow Wool (`minecraft:yellow_wool`) | – | Break Yellow Wool; Crafting (shapeless) | Air Balloon, Black Wool, Blue Wool, Brown Wool, Choice Scarf, Covert Cloak, Cyan Wool, Destiny Knot … | | Yellow Wool (`minecraft:yellow_wool`) | – | Break Yellow Wool; Crafting (shapeless) | Air Balloon, Black Wool, Blue Wool, Brown Wool, Choice Scarf, Covert Cloak, Cyan Wool, Destiny Knot … |
+22 -22
View File
@@ -4,7 +4,7 @@ Generated by `tools/zone_spawns.py` from Cobblemon's spawn data and `world/zones
## Button Isle (Lv 2–10, 26 lines) ## Button Isle (Lv 2–10, 26 lines)
Bidoof, Bonsly, Caterpie (Butterfree, Caterpie, Metapod), Combee, Diglett, Ditto, Gimmighoul, Hoothoot, Kricketot (Kricketot, Kricketune), Ledyba, Mawile, Meditite, Nincada, Pachirisu, Rattata, Sableye, Scatterbug (Scatterbug, Spewpa), Skitty, Smeargle, Spinarak, Sunkern, Tarountula, Weedle (Beedrill, Kakuna, Weedle), Wooper, Wurmple (Beautifly, Cascoon, Dustox, Silcoon, Wurmple), Wynaut Bidoof, Bonsly, Caterpie (Butterfree, Caterpie, Metapod), Combee, Ditto, Gimmighoul, Hoothoot, Kricketot (Kricketot, Kricketune), Ledyba, Meditite, Meowth, Morpeko, Nincada, Pachirisu, Rattata, Sableye, Scatterbug (Scatterbug, Spewpa), Skitty, Smeargle, Spinarak, Sunkern, Tarountula, Weedle (Beedrill, Kakuna, Weedle), Wooper, Wurmple (Beautifly, Cascoon, Dustox, Silcoon, Wurmple), Wynaut
## Frostpeak Range (Lv 40–55, 43 lines) ## Frostpeak Range (Lv 40–55, 43 lines)
@@ -14,25 +14,25 @@ Axew (Fraxure, Haxorus), Basculin (Basculegion, Basculin), Budew (Roselia, Roser
Bramblin (Brambleghast), Cacnea (Cacnea, Cacturne), Capsakid (Capsakid, Scovillain), Cubone (Cubone, Marowak), Drampa, Dwebble (Crustle, Dwebble), Ekans (Arbok), Falinks, Fennekin (Braixen, Delphox, Fennekin), Flittle (Espathra), Fuecoco (Crocalor, Fuecoco, Skeledirge), Helioptile (Heliolisk), Hippopotas (Hippopotas, Hippowdon), Klawf, Larvesta, Maractus, Nacli (Garganacl, Naclstack), Numel (Camerupt, Numel), Pawniard, Phanpy (Donphan, Phanpy), Poltchageist (Poltchageist, Sinistcha), Rellor (Rabsca), Sandile (Krokorok, Krookodile), Sandshrew (Sandshrew, Sandslash), Scraggy (Scrafty, Scraggy), Shinx (Luxio, Luxray), Silicobra (Sandaconda, Silicobra), Skarmory, Skorupi (Drapion, Skorupi), Spearow (Fearow), Totodile (Croconaw, Feraligatr, Totodile), Trapinch (Flygon, Vibrava), Tympole (Palpitoad, Seismitoad) Bramblin (Brambleghast), Cacnea (Cacnea, Cacturne), Capsakid (Capsakid, Scovillain), Cubone (Cubone, Marowak), Drampa, Dwebble (Crustle, Dwebble), Ekans (Arbok), Falinks, Fennekin (Braixen, Delphox, Fennekin), Flittle (Espathra), Fuecoco (Crocalor, Fuecoco, Skeledirge), Helioptile (Heliolisk), Hippopotas (Hippopotas, Hippowdon), Klawf, Larvesta, Maractus, Nacli (Garganacl, Naclstack), Numel (Camerupt, Numel), Pawniard, Phanpy (Donphan, Phanpy), Poltchageist (Poltchageist, Sinistcha), Rellor (Rabsca), Sandile (Krokorok, Krookodile), Sandshrew (Sandshrew, Sandslash), Scraggy (Scrafty, Scraggy), Shinx (Luxio, Luxray), Silicobra (Sandaconda, Silicobra), Skarmory, Skorupi (Drapion, Skorupi), Spearow (Fearow), Totodile (Croconaw, Feraligatr, Totodile), Trapinch (Flygon, Vibrava), Tympole (Palpitoad, Seismitoad)
## Mangrove Mire (Lv 25–38, 26 lines) ## Mangrove Mire (Lv 25–38, 18 lines)
Applin (Appletun, Applin, Dipplin, Flapple, Hydrapple), Arrokuda (Arrokuda, Barraskewda), Croagunk (Croagunk, Toxicroak), Deino, Dondozo, Dratini (Dragonair, Dratini), Ducklett (Ducklett, Swanna), Flabébé (Flabébé, Floette, Florges), Flamigo, Froakie (Froakie, Frogadier, Greninja), Gible (Gabite, Gible), Goomy, Growlithe (Arcanine, Growlithe), Illumise, Karrablast (Escavalier, Karrablast), Misdreavus, Mudkip (Marshtomp, Mudkip, Swampert), Shelmet (Accelgor, Shelmet), Slowpoke, Sobble (Drizzile, Inteleon, Sobble), Surskit (Masquerain, Surskit), Tadbulb (Bellibolt, Tadbulb), Tatsugiri, Teddiursa (Teddiursa, Ursaring), Volbeat, Yanma (Yanma, Yanmega) Arrokuda (Arrokuda, Barraskewda), Croagunk (Croagunk, Toxicroak), Dondozo, Ducklett (Ducklett, Swanna), Flamigo, Froakie (Froakie, Frogadier, Greninja), Illumise, Karrablast (Escavalier, Karrablast), Misdreavus, Mudkip (Marshtomp, Mudkip, Swampert), Shelmet (Accelgor, Shelmet), Slowpoke, Sobble (Drizzile, Inteleon, Sobble), Surskit (Masquerain, Surskit), Tadbulb (Bellibolt, Tadbulb), Tatsugiri, Volbeat, Yanma (Yanma, Yanmega)
## Verdant Jungle (Lv 18–30, 35 lines) ## Verdant Jungle (Lv 18–30, 26 lines)
Aipom, Bellsprout (Bellsprout, Weepinbell), Bounsweet (Bounsweet, Steenee, Tsareena), Bulbasaur (Bulbasaur, Ivysaur), Chatot, Darumaka, Exeggcute (Exeggcute, Exeggutor), Fomantis, Glimmet, Grookey (Grookey, Thwackey), Happiny (Chansey, Happiny), Jangmo-o, Kecleon, Litten (Litten, Torracat), Magikarp (Gyarados, Magikarp), Magnemite (Magnemite, Magneton), Munchlax, Natu (Natu, Xatu), Noibat, Panpour (Panpour, Simipour), Pansage (Pansage, Simisage), Pansear (Pansear, Simisear), Pikipek (Pikipek, Toucannon, Trumbeak), Porygon, Shroodle (Grafaiai, Shroodle), Slakoth (Slakoth, Vigoroth), Snivy (Servine, Snivy), Stunfisk, Tangela (Tangela, Tangrowth), Treecko (Grovyle, Treecko), Tropius, Unown, Wimpod (Golisopod, Wimpod), Woobat (Swoobat, Woobat), Zubat (Golbat, Zubat) Aipom, Bellsprout (Bellsprout, Weepinbell), Bounsweet (Bounsweet, Steenee, Tsareena), Bulbasaur (Bulbasaur, Ivysaur), Chatot, Darumaka, Exeggcute (Exeggcute, Exeggutor), Fomantis, Grookey (Grookey, Thwackey), Jangmo-o, Kecleon, Litten (Litten, Torracat), Natu (Natu, Xatu), Panpour (Panpour, Simipour), Pansage (Pansage, Simisage), Pansear (Pansear, Simisear), Pikipek (Pikipek, Toucannon, Trumbeak), Shroodle (Grafaiai, Shroodle), Slakoth (Slakoth, Vigoroth), Snivy (Servine, Snivy), Stunfisk, Tangela (Tangela, Tangrowth), Treecko (Grovyle, Treecko), Tropius, Unown, Woobat (Swoobat, Woobat)
## Highland Meadows (Lv 25–35, 39 lines) ## Highland Meadows (Lv 25–35, 39 lines)
Abra (Abra, Alakazam, Kadabra), Bouffalant, Buizel (Buizel, Floatzel), Chewtle (Chewtle, Drednaw), Cottonee (Cottonee, Whimsicott), Cyclizar, Cyndaquil (Cyndaquil, Quilava), Electrike (Electrike, Manectric), Golett, Hoppip (Hoppip, Jumpluff, Skiploom), Igglybuff (Jigglypuff, Wigglytuff), Lechonk (Lechonk, Oinkologne), Lickitung (Lickilicky, Lickitung), Mareep (Ampharos, Flaaffy, Mareep), Miltank, Mudbray (Mudbray, Mudsdale), Nymble (Lokix), Oddish (Bellossom, Gloom, Oddish, Vileplume), Pidgey (Pidgeotto, Pidgey), Poliwag (Politoed, Poliwag, Poliwhirl, Poliwrath), Ponyta, Poochyena (Mightyena), Psyduck (Golduck, Psyduck), Quaxly (Quaxly, Quaxwell), Scorbunny (Cinderace, Raboot, Scorbunny), Seviper, Sewaddle (Leavanny, Sewaddle, Swadloon), Sinistea (Polteageist, Sinistea), Spiritomb, Squirtle (Squirtle, Wartortle), Stonjourner, Tauros, Tepig (Pignite, Tepig), Tinkatink (Tinkatink, Tinkatuff), Torchic (Combusken, Torchic), Turtwig (Grotle, Torterra, Turtwig), Vulpix (Ninetales, Vulpix), Zangoose, Zorua (Zoroark, Zorua) Abra (Abra, Alakazam, Kadabra), Bouffalant, Buizel (Buizel, Floatzel), Chewtle (Chewtle, Drednaw), Cottonee (Cottonee, Whimsicott), Cyclizar, Cyndaquil (Cyndaquil, Quilava), Electrike (Electrike, Manectric), Fletchling (Fletchinder, Fletchling, Talonflame), Golett, Hoppip (Hoppip, Jumpluff, Skiploom), Igglybuff (Jigglypuff, Wigglytuff), Lechonk (Lechonk, Oinkologne), Lickitung (Lickilicky, Lickitung), Mareep (Ampharos, Flaaffy, Mareep), Miltank, Mudbray (Mudbray, Mudsdale), Nymble (Lokix), Oddish (Bellossom, Gloom, Oddish, Vileplume), Pidgey (Pidgeotto, Pidgey), Poliwag (Politoed, Poliwag, Poliwhirl, Poliwrath), Ponyta, Poochyena (Mightyena), Psyduck (Golduck, Psyduck), Quaxly (Quaxly, Quaxwell), Scorbunny (Cinderace, Raboot, Scorbunny), Seviper, Sinistea (Polteageist, Sinistea), Spiritomb, Squirtle (Squirtle, Wartortle), Stonjourner, Tauros, Tepig (Pignite, Tepig), Tinkatink (Tinkatink, Tinkatuff), Torchic (Combusken, Torchic), Turtwig (Grotle, Torterra, Turtwig), Vulpix (Ninetales, Vulpix), Zangoose, Zorua (Zoroark, Zorua)
## Westmarch (Lv 15–25, 49 lines) ## Westmarch (Lv 15–25, 23 lines)
Baltoy, Bronzor, Buneary, Carbink, Corphish, Corsola, Deerling, Dewpider (Araquanid, Dewpider), Drifloon, Drilbur, Dunsparce, Eevee, Farfetch'd, Fletchling (Fletchinder, Fletchling), Gastly (Gastly, Haunter), Geodude (Geodude, Graveler), Grimer, Grubbin (Charjabug, Grubbin), Hawlucha, Heracross, Honedge, Klink, Lillipup (Herdier, Lillipup), Maschiff, Milcery (Alcremie, Milcery), Mime Jr., Nickit (Nickit, Thievul), Nosepass, Onix, Petilil (Lilligant, Petilil), Phantump, Pichu (Pichu, Pikachu), Pinsir, Pumpkaboo, Ralts (Kirlia, Ralts), Roggenrola (Boldore, Roggenrola), Rolycoly (Carkol, Rolycoly), Scyther, Seedot (Nuzleaf, Seedot), Shroomish (Breloom, Shroomish), Skwovet (Greedent, Skwovet), Stunky, Tandemaus (Maushold, Tandemaus), Tentacool, Timburr (Gurdurr, Timburr), Toxel, Tynamo, Varoom, Yamper (Boltund, Yamper) Applin (Appletun, Applin, Dipplin, Flapple), Buneary, Corphish, Deerling, Dewpider (Araquanid, Dewpider), Dratini, Flabébé (Flabébé, Floette), Gible (Gabite, Gible), Goomy, Magikarp (Gyarados, Magikarp), Munchlax, Nickit (Nickit, Thievul), Petilil (Lilligant, Petilil), Phantump, Pichu (Pichu, Pikachu), Scyther, Seedot (Nuzleaf, Seedot), Sewaddle (Sewaddle, Swadloon), Shroomish (Breloom, Shroomish), Skwovet (Greedent, Skwovet), Stunky, Tandemaus (Maushold, Tandemaus), Teddiursa
## Southwold (Lv 8–18, 50 lines) ## Southwold (Lv 8–18, 50 lines)
Absol, Audino, Azurill (Azumarill, Azurill, Marill), Barboach, Bunnelby, Burmy, Chingling, Comfey, Cutiefly, Drowzee, Druddigon, Elgyem, Espurr, Fidough, Furfrou, Glameow, Goldeen, Indeedee, Joltik, Klefki, Koffing, Lotad (Lombre, Lotad), Meowth, Minccino, Minun, Morpeko, Munna, Orthworm, Patrat, Pidove, Plusle, Purrloin, Relicanth, Sentret (Furret, Sentret), Shuppet, Sigilyph, Slugma, Snubbull, Solosis, Squawkabilly, Swablu, Swirlix, Taillow, Trubbish, Venonat, Voltorb, Whismur, Yamask, Yungoos, Zigzagoon Audino, Azurill (Azumarill, Azurill, Marill), Bunnelby, Burmy, Chingling, Corsola, Drifloon, Dunsparce, Eevee, Farfetch'd, Furfrou, Gastly, Glameow, Goldeen, Grimer, Grubbin, Happiny (Chansey, Happiny), Hawlucha, Heracross, Koffing, Lillipup (Herdier, Lillipup), Lotad (Lombre, Lotad), Magnemite, Minccino, Minun, Noibat, Patrat, Pidove, Pinsir, Plusle, Porygon, Pumpkaboo, Relicanth, Sentret (Furret, Sentret), Shuppet, Squawkabilly, Swablu, Taillow, Tentacool, Timburr, Toxel, Tynamo, Venonat, Voltorb, Whismur, Wimpod, Yamask, Yamper, Yungoos, Zigzagoon
## Shallows (Lv 5–20, 21 lines) ## Shallows (Lv 5–20, 21 lines)
@@ -42,21 +42,21 @@ Alomomola, Bruxish, Carvanha, Chinchou, Clobbopus, Crabrawler, Cramorant, Finize
Binacle (Barbaracle, Binacle), Clamperl (Clamperl, Gorebyss, Huntail), Clauncher (Clauncher, Clawitzer), Dhelmise, Dreepy (Drakloak), Frillish (Frillish, Jellicent), Horsea (Horsea, Kingdra, Seadra), Lapras, Mantyke (Mantine, Mantyke), Oshawott (Dewott, Oshawott, Samurott), Popplio (Brionne, Popplio, Primarina), Remoraid (Octillery, Remoraid), Shellder (Cloyster, Shellder), Skrelp (Dragalge, Skrelp), Staryu (Starmie, Staryu), Veluza, Wailmer (Wailmer, Wailord), Wattrel (Kilowattrel) Binacle (Barbaracle, Binacle), Clamperl (Clamperl, Gorebyss, Huntail), Clauncher (Clauncher, Clawitzer), Dhelmise, Dreepy (Drakloak), Frillish (Frillish, Jellicent), Horsea (Horsea, Kingdra, Seadra), Lapras, Mantyke (Mantine, Mantyke), Oshawott (Dewott, Oshawott, Samurott), Popplio (Brionne, Popplio, Primarina), Remoraid (Octillery, Remoraid), Shellder (Cloyster, Shellder), Skrelp (Dragalge, Skrelp), Staryu (Starmie, Staryu), Veluza, Wailmer (Wailmer, Wailord), Wattrel (Kilowattrel)
## Lush Caves (Lv 12–28, 16 lines) ## Lush Caves (Lv 12–28, 21 lines)
Amaura, Anorith, Archen, Carnivine, Cranidos, Ferroseed, Kabuto, Lileep, Morelull (Morelull, Shiinotic), Omanyte, Paras (Paras, Parasect), Shieldon, Shuckle, Tirtouga, Tyrunt, Venipede (Venipede, Whirlipede) Amaura, Anorith, Archen, Barboach, Carnivine, Cranidos, Cutiefly (Cutiefly, Ribombee), Ferroseed, Joltik, Kabuto, Lileep, Morelull (Morelull, Shiinotic), Omanyte, Paras (Paras, Parasect), Shieldon, Shuckle, Snubbull (Granbull, Snubbull), Tirtouga, Trubbish, Tyrunt, Venipede (Venipede, Whirlipede)
## Dripstone Depths (Lv 22–38, 5 lines) ## Dripstone Depths (Lv 22–38, 21 lines)
Bagon (Bagon, Shelgon), Beldum (Beldum, Metang), Cleffa (Clefable, Clefairy, Cleffa), Lunatone, Solrock Bagon (Bagon, Shelgon), Baltoy (Baltoy, Claydol), Beldum (Beldum, Metang), Cleffa (Clefable, Clefairy, Cleffa), Comfey, Drowzee (Drowzee, Hypno), Druddigon, Elgyem, Espurr (Espurr, Meowstic), Fidough (Dachsbun, Fidough), Geodude (Geodude, Golem, Graveler), Indeedee, Klefki, Lunatone, Milcery (Alcremie, Milcery), Munna (Munna, Musharna), Orthworm, Sigilyph, Solosis (Duosion, Solosis), Solrock, Swirlix (Slurpuff, Swirlix)
## Deep Dark (Lv 45–60, 6 lines) ## Deep Dark (Lv 45–60, 21 lines)
Duskull (Dusclops, Dusknoir), Feebas (Milotic), Greavard (Houndstone), Mimikyu, Murkrow (Honchkrow), Rookidee (Corviknight) Bronzor (Bronzong), Carbink, Deino (Zweilous), Duskull (Dusclops, Dusknoir), Feebas (Milotic), Glimmet (Glimmora), Greavard (Houndstone), Honedge (Aegislash, Doublade), Klink (Klinklang), Maschiff (Mabosstiff), Mime Jr. (Mr. Mime, Mr. Rime), Mimikyu, Murkrow (Honchkrow), Nosepass (Probopass), Onix (Steelix), Ralts (Gallade, Gardevoir), Roggenrola (Gigalith), Rolycoly (Coalossal), Rookidee (Corviknight), Varoom (Revavroom), Zubat (Crobat, Golbat)
## Basalt Furnace (Lv 55–70, 9 lines) ## Basalt Furnace (Lv 55–70, 16 lines)
Charmander (Charizard), Durant, Gligar (Gliscor), Heatmor, Houndour (Houndoom), Magby (Magmortar), Sizzlipede (Centiskorch), Torkoal, Turtonator Absol, Charmander (Charizard), Diglett (Dugtrio), Drilbur (Excadrill), Durant, Gligar (Gliscor), Growlithe (Arcanine), Heatmor, Houndour (Houndoom), Magby (Magmortar), Mawile, Purrloin (Liepard), Sizzlipede (Centiskorch), Slugma (Magcargo), Torkoal, Turtonator
## Alpha guardians ## Alpha guardians
@@ -64,13 +64,13 @@ One per zone at its sample point, uncatchable, five levels above the band; it re
| Zone | Guardian | Level | Drops | | Zone | Guardian | Level | Drops |
| --- | --- | --- | --- | | --- | --- | --- | --- |
| Button Isle | Pachirisu | 15 | 10× poke_ball, 4× potion | | Button Isle | Morpeko | 15 | 10× poke_ball, 4× potion |
| Frostpeak Range | Archaludon | 60 | 3× icy_rock, 2× exp_candy_l | | Frostpeak Range | Tyranitar | 60 | 3× icy_rock, 2× exp_candy_l |
| Sunscorch | Delphox | 50 | 3× heat_rock, 2× exp_candy_l | | Sunscorch | Delphox | 50 | 3× heat_rock, 2× exp_candy_l |
| Mangrove Mire | Arcanine | 43 | 3× icy_rock, 4× super_potion | | Mangrove Mire | Swampert | 43 | 3× icy_rock, 4× super_potion |
| Verdant Jungle | Tangrowth | 35 | 1× mire_waders, 4× pecha_berry, 2× exp_candy_m | | Verdant Jungle | Tangrowth | 35 | 1× mire_waders, 4× pecha_berry, 2× exp_candy_m |
| Highland Meadows | Cinderace | 40 | 3× icy_rock, 4× super_potion | | Highland Meadows | Cinderace | 40 | 3× icy_rock, 4× super_potion |
| Westmarch | Scyther | 30 | 1× mire_waders, 4× pecha_berry, 2× exp_candy_m | | Westmarch | Scyther | 30 | 1× mire_waders, 4× pecha_berry, 2× exp_candy_m |
| Southwold | Sigilyph | 23 | 6× great_ball, 4× exp_candy_s | | Southwold | Pinsir | 23 | 6× great_ball, 4× exp_candy_s |
| Deep Sea | Kingdra | 55 | 1× mystic_water, 3× exp_candy_m | | Deep Sea | Kingdra | 55 | 1× mystic_water, 3× exp_candy_m |
| Deep Dark | Dusknoir | 65 | 3× icy_rock, 2× exp_candy_l | | Deep Dark | Crobat | 65 | 3× icy_rock, 2× exp_candy_l |
@@ -12,8 +12,10 @@ import dev.cobblesurvival.progress.Gates
import dev.cobblesurvival.progress.Progress import dev.cobblesurvival.progress.Progress
import dev.cobblesurvival.selftest.SelfTest import dev.cobblesurvival.selftest.SelfTest
import dev.cobblesurvival.world.OnlyPokemon import dev.cobblesurvival.world.OnlyPokemon
import dev.cobblesurvival.world.SharedLoot
import dev.cobblesurvival.zone.Guardians import dev.cobblesurvival.zone.Guardians
import dev.cobblesurvival.zone.LevelPressure import dev.cobblesurvival.zone.LevelPressure
import dev.cobblesurvival.zone.Wanderers
import dev.cobblesurvival.zone.ZoneCondition import dev.cobblesurvival.zone.ZoneCondition
import dev.cobblesurvival.zone.ZoneHazards import dev.cobblesurvival.zone.ZoneHazards
import dev.cobblesurvival.zone.Zones import dev.cobblesurvival.zone.Zones
@@ -68,6 +70,8 @@ class CobbleSurvival {
Gates.register() Gates.register()
OreNodes.register() OreNodes.register()
Catching.register() Catching.register()
Wanderers.register()
SharedLoot.register()
ZoneHazards.register() ZoneHazards.register()
LevelPressure.register() LevelPressure.register()
SelfTest.register() SelfTest.register()
@@ -3,6 +3,7 @@ package dev.cobblesurvival.selftest
import com.mojang.brigadier.builder.LiteralArgumentBuilder import com.mojang.brigadier.builder.LiteralArgumentBuilder
import dev.cobblesurvival.CobbleSurvival import dev.cobblesurvival.CobbleSurvival
import dev.cobblesurvival.catching.Catching import dev.cobblesurvival.catching.Catching
import dev.cobblesurvival.zone.Wanderers
import net.minecraft.commands.CommandSourceStack import net.minecraft.commands.CommandSourceStack
import net.minecraft.commands.Commands import net.minecraft.commands.Commands
import net.minecraft.core.BlockPos import net.minecraft.core.BlockPos
@@ -53,7 +54,7 @@ object SelfTest {
private val cases: List<SelfTestCase> get() = private val cases: List<SelfTestCase> get() =
PermadeathTests.all() + SurvivalRulesTests.all() + ZoneTests.all() + HazardTests.all() + GuardianTests.all() + PermadeathTests.all() + SurvivalRulesTests.all() + ZoneTests.all() + HazardTests.all() + GuardianTests.all() +
VeinTests.all() + OreNodeTests.all() + DropTests.all() + ProgressionTests.all() + VeinTests.all() + OreNodeTests.all() + DropTests.all() + ProgressionTests.all() +
CatchingTests.all() CatchingTests.all() + WorldRulesTests.all()
private var running: List<Scenario> = emptyList() private var running: List<Scenario> = emptyList()
private var forced: List<ChunkPos> = emptyList() private var forced: List<ChunkPos> = emptyList()
@@ -102,6 +103,7 @@ object SelfTest {
} }
running = scenarios running = scenarios
Catching.hostilityPaused = true Catching.hostilityPaused = true
Wanderers.paused = true
GameTestTicker.SINGLETON.clear() GameTestTicker.SINGLETON.clear()
GameTestRunner.Builder.fromInfo(infos, level) GameTestRunner.Builder.fromInfo(infos, level)
.newStructureSpawner(StructureGridSpawner(origin, TESTS_PER_ROW, false)) .newStructureSpawner(StructureGridSpawner(origin, TESTS_PER_ROW, false))
@@ -132,5 +134,6 @@ object SelfTest {
forced.forEach { level.setChunkForced(it.x, it.z, false) } forced.forEach { level.setChunkForced(it.x, it.z, false) }
running = emptyList() running = emptyList()
Catching.hostilityPaused = false Catching.hostilityPaused = false
Wanderers.paused = false
} }
} }
@@ -0,0 +1,81 @@
package dev.cobblesurvival.selftest
import dev.cobblesurvival.world.SharedLoot
import dev.cobblesurvival.zone.Wanderers
import dev.cobblesurvival.zone.Zones
import net.minecraft.core.BlockPos
import net.minecraft.core.Direction
import net.minecraft.core.registries.BuiltInRegistries
import net.minecraft.gametest.framework.GameTestAssertException
import net.minecraft.resources.ResourceLocation
import net.minecraft.server.level.ServerPlayer
import net.minecraft.world.InteractionHand
import net.minecraft.world.RandomizableContainer
import net.minecraft.world.inventory.ChestMenu
import net.minecraft.world.item.ItemStack
import net.minecraft.world.level.block.Blocks
import net.minecraft.world.level.storage.loot.BuiltInLootTables
import net.minecraft.world.phys.BlockHitResult
import net.minecraft.world.phys.Vec3
/**
* World rules from Adrian's play-test (2026-10-30): a wild Pokémon far above the band of the zone it wandered into
* despawns (one from the Basalt Furnace turned up in the Lush Caves), and loot containers are shared by all players.
* The stray case switches the stray rule on in a batch of its own.
*/
object WorldRulesTests {
private val LOOTR_CHEST = ResourceLocation.parse("lootr:lootr_chest")
fun all() = listOf(
SelfTestCase("strays_despawn", 400, ::straysDespawn, batch = "wanderers"),
SelfTestCase("loot_is_shared", 40, ::lootIsShared),
)
private fun straysDespawn(s: Scenario) {
Wanderers.paused = false
s.afterTest { Wanderers.paused = true }
val level = s.level
s.player() // the rule only looks near players
val zone = Zones.at(level, s.helper.absolutePos(BlockPos(7, 1, 7)))
?: throw GameTestAssertException("the test platform lies in no zone")
val grace = Zones.wanderGrace ?: throw GameTestAssertException("no wanderers grace in the zone layout")
val stray = s.wild(s.pokemon("geodude", zone.maxLevel + grace + 5), s.at(4.5, 1.0, 10.5))
val local = s.wild(s.pokemon("geodude", zone.maxLevel), s.at(10.5, 1.0, 10.5))
s.helper.startSequence()
.thenWaitUntil { s.check(stray.isRemoved) { "a Lv ${stray.pokemon.level} wild Pokémon stays in ${zone.name} (Lv ${zone.minLevel}–${zone.maxLevel})" } }
.thenExecute { s.check(!local.isRemoved) { "a Lv ${local.pokemon.level} wild Pokémon was removed from ${zone.name}, its own band" } }
.thenSucceed()
}
/** Player A empties a fresh Lootr chest; player B then finds it empty too. */
private fun lootIsShared(s: Scenario) {
val level = s.level
val chest = BuiltInRegistries.BLOCK.get(LOOTR_CHEST)
s.check(chest != Blocks.AIR) { "Lootr isn't installed" }
val a = s.player()
val b = s.player()
val team = level.scoreboard.getPlayerTeam(SharedLoot.TEAM)
s.check(team != null && a.team == team && b.team == team) { "the players aren't both in the team ${SharedLoot.TEAM}" }
val pos = s.helper.absolutePos(BlockPos(7, 2, 7))
level.setBlockAndUpdate(pos, chest.defaultBlockState())
val container = level.getBlockEntity(pos) as? RandomizableContainer
?: throw GameTestAssertException("the Lootr chest has no loot table to set")
container.setLootTable(BuiltInLootTables.SIMPLE_DUNGEON, 1234L)
val found = open(s, a, pos)
s.check(found > 0) { "the chest had no loot for the first player" }
(a.containerMenu as ChestMenu).container.clearContent()
a.closeContainer()
val left = open(s, b, pos)
b.closeContainer()
s.check(left == 0) { "the second player found $left stacks in a chest the first one emptied: loot is per player" }
s.helper.succeed()
}
private fun open(s: Scenario, player: ServerPlayer, pos: BlockPos): Int {
val hit = BlockHitResult(Vec3.atCenterOf(pos), Direction.UP, pos, false)
player.gameMode.useItemOn(player, s.level, ItemStack.EMPTY, InteractionHand.MAIN_HAND, hit)
val menu = player.containerMenu as? ChestMenu ?: throw GameTestAssertException("the Lootr chest didn't open for ${player.gameProfile.name}")
return (0 until menu.container.containerSize).count { !menu.container.getItem(it).isEmpty }
}
}
@@ -0,0 +1,25 @@
package dev.cobblesurvival.world
import net.minecraft.server.level.ServerPlayer
import net.neoforged.neoforge.common.NeoForge
import net.neoforged.neoforge.event.entity.player.PlayerEvent
/**
* Loot is shared, not per player (Adrian, 2026-10-30). Lootr gives every scoreboard team one inventory per loot
* container when its `team_loot` is on (pack/config/lootr-common.toml), so every player joins the one team [TEAM] when
* they log in: a container someone has emptied is empty for everyone until Lootr refills it (1 hour). The team keeps
* Minecraft's defaults (friendly fire on, name tags as usual).
*/
object SharedLoot {
const val TEAM = "islanders"
fun register() {
NeoForge.EVENT_BUS.addListener<PlayerEvent.PlayerLoggedInEvent> { event -> (event.entity as? ServerPlayer)?.let(::join) }
}
fun join(player: ServerPlayer) {
val scoreboard = player.server.scoreboard
val team = scoreboard.getPlayerTeam(TEAM) ?: scoreboard.addPlayerTeam(TEAM)
if (scoreboard.getPlayersTeam(player.scoreboardName) != team) scoreboard.addPlayerToTeam(player.scoreboardName, team)
}
}
@@ -0,0 +1,46 @@
package dev.cobblesurvival.zone
import com.cobblemon.mod.common.entity.pokemon.PokemonEntity
import net.minecraft.server.level.ServerLevel
import net.minecraft.world.entity.ai.memory.MemoryModuleType
import net.neoforged.neoforge.common.NeoForge
import net.neoforged.neoforge.event.tick.ServerTickEvent
import java.util.UUID
/**
* Wild Pokémon keep to their zone's levels (Adrian, 2026-10-30: a Lv 61 Pokémon from the Basalt Furnace turned up in the
* Lush Caves, Lv 12–28). Spawns follow the zones, but wild Pokémon wander and cave zones touch, so every few seconds a
* wild Pokémon near a player that stands in a zone whose band it tops by more than [Zones.wanderGrace] levels
* despawns, unless it is in a battle, angry at someone (it is chasing them) or a guardian. Grace: world/zones.json →
* `wanderers`.
*/
object Wanderers {
private const val EVERY_TICKS = 100
private const val RANGE = 64.0
/** The self-tests switch this off, except in their own batch: other tests put strong wild Pokémon on the platform. */
var paused = false
fun register() {
NeoForge.EVENT_BUS.addListener(::onServerTick)
}
private fun onServerTick(event: ServerTickEvent.Post) {
if (paused || event.server.tickCount % EVERY_TICKS != 0) return
val grace = Zones.wanderGrace ?: return
val checked = HashSet<UUID>()
for (player in event.server.playerList.players) {
val level = player.serverLevel()
level.getEntitiesOfClass(PokemonEntity::class.java, player.boundingBox.inflate(RANGE)) { it.pokemon.isWild() }
.filter { checked.add(it.uuid) && strayed(level, it, grace) }
.forEach { it.discard() }
}
}
fun strayed(level: ServerLevel, wild: PokemonEntity, grace: Int): Boolean {
if (wild.isBattling || wild.pokemon.persistentData.contains(Guardians.TAG)) return false
if (wild.brain.hasMemoryValue(MemoryModuleType.ATTACK_TARGET)) return false
val zone = Zones.at(level, wild.blockPosition()) ?: return false
return wild.pokemon.level > zone.maxLevel + grace
}
}
@@ -41,6 +41,9 @@ object Zones : SimpleJsonResourceReloadListener(Gson(), "zones") {
private set private set
var levelPressure = LevelPressureRules() var levelPressure = LevelPressureRules()
private set private set
/** How far above its zone's band a wild Pokémon may stray before it despawns ([Wanderers]); null: never. */
var wanderGrace: Int? = null
private set
/** For zones made of biomes: a point inside their own hazard biome (Frostpeak's jagged peaks, ...). */ /** For zones made of biomes: a point inside their own hazard biome (Frostpeak's jagged peaks, ...). */
var biomeSamples: Map<String, ZoneSample> = emptyMap() var biomeSamples: Map<String, ZoneSample> = emptyMap()
private set private set
@@ -70,6 +73,7 @@ object Zones : SimpleJsonResourceReloadListener(Gson(), "zones") {
minimum = rules.get("minimum")?.asDouble ?: 0.1, minimum = rules.get("minimum")?.asDouble ?: 0.1,
) )
} ?: LevelPressureRules() } ?: LevelPressureRules()
wanderGrace = json.getAsJsonObject("wanderers")?.get("grace_levels")?.asInt
samples = samplesOf(json, "samples") samples = samplesOf(json, "samples")
biomeSamples = samplesOf(json, "biome_samples") biomeSamples = samplesOf(json, "biome_samples")
radius = json.get("radius").asInt radius = json.get("radius").asInt
+5 -1
View File
@@ -1,6 +1,10 @@
# Only the values the pack changes; Lootr fills in the rest with its defaults. # Only the values the pack changes; Lootr fills in the rest with its defaults.
[refresh] [refresh]
# Every loot container refills with a new roll 1 hour (72,000 ticks of game time) after it is first opened # Every loot container refills with a new roll 1 hour (72,000 ticks of game time) after it is first opened
# (Adrian, 2026-10-29). Loot is per player, so each player gets their own roll. # (Adrian, 2026-10-29). Since 2026-10-30 the loot is shared (see [team] below), so it is one roll for everybody.
refresh_value = 72000 refresh_value = 72000
refresh_all = true refresh_all = true
[team]
#Cobblemon Survival (Adrian, 2026-10-30): loot is shared. Every player is in the team "islanders" (companion mod, world/SharedLoot.kt), so each container has one inventory for everybody.
team_loot = true
File diff suppressed because it is too large. Load diff
+80 -82
View File
@@ -283,14 +283,7 @@
"southwold_109", "southwold_109",
"southwold_110", "southwold_110",
"southwold_111", "southwold_111",
"southwold_112", "southwold_112"
"southwold_113",
"southwold_114",
"southwold_115",
"southwold_116",
"southwold_117",
"southwold_118",
"southwold_119"
], ],
"biome_blacklist": [ "biome_blacklist": [
"minecraft:basalt_deltas", "minecraft:basalt_deltas",
@@ -436,14 +429,7 @@
"southwold_109", "southwold_109",
"southwold_110", "southwold_110",
"southwold_111", "southwold_111",
"southwold_112", "southwold_112"
"southwold_113",
"southwold_114",
"southwold_115",
"southwold_116",
"southwold_117",
"southwold_118",
"southwold_119"
], ],
"biome_blacklist": [ "biome_blacklist": [
"minecraft:basalt_deltas", "minecraft:basalt_deltas",
@@ -558,7 +544,14 @@
"westmarch_50", "westmarch_50",
"westmarch_51", "westmarch_51",
"westmarch_52", "westmarch_52",
"westmarch_53" "westmarch_53",
"westmarch_54",
"westmarch_55",
"westmarch_56",
"westmarch_57",
"westmarch_58",
"westmarch_59",
"westmarch_60"
], ],
"biome_blacklist": [ "biome_blacklist": [
"minecraft:basalt_deltas", "minecraft:basalt_deltas",
@@ -645,7 +638,14 @@
"westmarch_50", "westmarch_50",
"westmarch_51", "westmarch_51",
"westmarch_52", "westmarch_52",
"westmarch_53" "westmarch_53",
"westmarch_54",
"westmarch_55",
"westmarch_56",
"westmarch_57",
"westmarch_58",
"westmarch_59",
"westmarch_60"
], ],
"biome_blacklist": [ "biome_blacklist": [
"minecraft:basalt_deltas", "minecraft:basalt_deltas",
@@ -773,11 +773,7 @@
"jungle_63", "jungle_63",
"jungle_64", "jungle_64",
"jungle_65", "jungle_65",
"jungle_66", "jungle_66"
"jungle_67",
"jungle_68",
"jungle_69",
"jungle_70"
], ],
"biome_blacklist": [ "biome_blacklist": [
"minecraft:basalt_deltas", "minecraft:basalt_deltas",
@@ -877,11 +873,7 @@
"jungle_63", "jungle_63",
"jungle_64", "jungle_64",
"jungle_65", "jungle_65",
"jungle_66", "jungle_66"
"jungle_67",
"jungle_68",
"jungle_69",
"jungle_70"
], ],
"biome_blacklist": [ "biome_blacklist": [
"minecraft:basalt_deltas", "minecraft:basalt_deltas",
@@ -1092,14 +1084,7 @@
"highlands_146", "highlands_146",
"highlands_147", "highlands_147",
"highlands_148", "highlands_148",
"highlands_149", "highlands_149"
"highlands_150",
"highlands_151",
"highlands_152",
"highlands_153",
"highlands_154",
"highlands_155",
"highlands_156"
], ],
"biome_blacklist": [ "biome_blacklist": [
"minecraft:basalt_deltas", "minecraft:basalt_deltas",
@@ -1282,14 +1267,7 @@
"highlands_146", "highlands_146",
"highlands_147", "highlands_147",
"highlands_148", "highlands_148",
"highlands_149", "highlands_149"
"highlands_150",
"highlands_151",
"highlands_152",
"highlands_153",
"highlands_154",
"highlands_155",
"highlands_156"
], ],
"biome_blacklist": [ "biome_blacklist": [
"minecraft:basalt_deltas", "minecraft:basalt_deltas",
@@ -1399,7 +1377,11 @@
"sunscorch_45", "sunscorch_45",
"sunscorch_46", "sunscorch_46",
"sunscorch_47", "sunscorch_47",
"sunscorch_48" "sunscorch_48",
"sunscorch_49",
"sunscorch_50",
"sunscorch_51",
"sunscorch_52"
], ],
"biome_blacklist": [ "biome_blacklist": [
"minecraft:basalt_deltas", "minecraft:basalt_deltas",
@@ -1481,7 +1463,11 @@
"sunscorch_45", "sunscorch_45",
"sunscorch_46", "sunscorch_46",
"sunscorch_47", "sunscorch_47",
"sunscorch_48" "sunscorch_48",
"sunscorch_49",
"sunscorch_50",
"sunscorch_51",
"sunscorch_52"
], ],
"biome_blacklist": [ "biome_blacklist": [
"minecraft:basalt_deltas", "minecraft:basalt_deltas",
@@ -1634,7 +1620,9 @@
"frostpeak_88", "frostpeak_88",
"frostpeak_89", "frostpeak_89",
"frostpeak_90", "frostpeak_90",
"frostpeak_91" "frostpeak_91",
"frostpeak_92",
"frostpeak_93"
], ],
"biome_blacklist": [ "biome_blacklist": [
"minecraft:basalt_deltas", "minecraft:basalt_deltas",
@@ -1759,7 +1747,9 @@
"frostpeak_88", "frostpeak_88",
"frostpeak_89", "frostpeak_89",
"frostpeak_90", "frostpeak_90",
"frostpeak_91" "frostpeak_91",
"frostpeak_92",
"frostpeak_93"
], ],
"biome_blacklist": [ "biome_blacklist": [
"minecraft:basalt_deltas", "minecraft:basalt_deltas",
@@ -1988,7 +1978,14 @@
"westmarch_50", "westmarch_50",
"westmarch_51", "westmarch_51",
"westmarch_52", "westmarch_52",
"westmarch_53" "westmarch_53",
"westmarch_54",
"westmarch_55",
"westmarch_56",
"westmarch_57",
"westmarch_58",
"westmarch_59",
"westmarch_60"
], ],
"biome_blacklist": [ "biome_blacklist": [
"minecraft:basalt_deltas", "minecraft:basalt_deltas",
@@ -2075,7 +2072,14 @@
"westmarch_50", "westmarch_50",
"westmarch_51", "westmarch_51",
"westmarch_52", "westmarch_52",
"westmarch_53" "westmarch_53",
"westmarch_54",
"westmarch_55",
"westmarch_56",
"westmarch_57",
"westmarch_58",
"westmarch_59",
"westmarch_60"
], ],
"biome_blacklist": [ "biome_blacklist": [
"minecraft:basalt_deltas", "minecraft:basalt_deltas",
@@ -2231,11 +2235,7 @@
"jungle_63", "jungle_63",
"jungle_64", "jungle_64",
"jungle_65", "jungle_65",
"jungle_66", "jungle_66"
"jungle_67",
"jungle_68",
"jungle_69",
"jungle_70"
], ],
"biome_blacklist": [ "biome_blacklist": [
"minecraft:basalt_deltas", "minecraft:basalt_deltas",
@@ -2335,11 +2335,7 @@
"jungle_63", "jungle_63",
"jungle_64", "jungle_64",
"jungle_65", "jungle_65",
"jungle_66", "jungle_66"
"jungle_67",
"jungle_68",
"jungle_69",
"jungle_70"
], ],
"biome_blacklist": [ "biome_blacklist": [
"minecraft:basalt_deltas", "minecraft:basalt_deltas",
@@ -2786,14 +2782,7 @@
"highlands_146", "highlands_146",
"highlands_147", "highlands_147",
"highlands_148", "highlands_148",
"highlands_149", "highlands_149"
"highlands_150",
"highlands_151",
"highlands_152",
"highlands_153",
"highlands_154",
"highlands_155",
"highlands_156"
], ],
"biome_blacklist": [ "biome_blacklist": [
"minecraft:basalt_deltas", "minecraft:basalt_deltas",
@@ -2976,14 +2965,7 @@
"highlands_146", "highlands_146",
"highlands_147", "highlands_147",
"highlands_148", "highlands_148",
"highlands_149", "highlands_149"
"highlands_150",
"highlands_151",
"highlands_152",
"highlands_153",
"highlands_154",
"highlands_155",
"highlands_156"
], ],
"biome_blacklist": [ "biome_blacklist": [
"minecraft:basalt_deltas", "minecraft:basalt_deltas",
@@ -3093,7 +3075,11 @@
"sunscorch_45", "sunscorch_45",
"sunscorch_46", "sunscorch_46",
"sunscorch_47", "sunscorch_47",
"sunscorch_48" "sunscorch_48",
"sunscorch_49",
"sunscorch_50",
"sunscorch_51",
"sunscorch_52"
], ],
"biome_blacklist": [ "biome_blacklist": [
"minecraft:basalt_deltas", "minecraft:basalt_deltas",
@@ -3175,7 +3161,11 @@
"sunscorch_45", "sunscorch_45",
"sunscorch_46", "sunscorch_46",
"sunscorch_47", "sunscorch_47",
"sunscorch_48" "sunscorch_48",
"sunscorch_49",
"sunscorch_50",
"sunscorch_51",
"sunscorch_52"
], ],
"biome_blacklist": [ "biome_blacklist": [
"minecraft:basalt_deltas", "minecraft:basalt_deltas",
@@ -3328,7 +3318,9 @@
"frostpeak_88", "frostpeak_88",
"frostpeak_89", "frostpeak_89",
"frostpeak_90", "frostpeak_90",
"frostpeak_91" "frostpeak_91",
"frostpeak_92",
"frostpeak_93"
], ],
"biome_blacklist": [ "biome_blacklist": [
"minecraft:basalt_deltas", "minecraft:basalt_deltas",
@@ -3453,7 +3445,9 @@
"frostpeak_88", "frostpeak_88",
"frostpeak_89", "frostpeak_89",
"frostpeak_90", "frostpeak_90",
"frostpeak_91" "frostpeak_91",
"frostpeak_92",
"frostpeak_93"
], ],
"biome_blacklist": [ "biome_blacklist": [
"minecraft:basalt_deltas", "minecraft:basalt_deltas",
@@ -3606,7 +3600,9 @@
"frostpeak_88", "frostpeak_88",
"frostpeak_89", "frostpeak_89",
"frostpeak_90", "frostpeak_90",
"frostpeak_91" "frostpeak_91",
"frostpeak_92",
"frostpeak_93"
], ],
"biome_blacklist": [ "biome_blacklist": [
"minecraft:basalt_deltas", "minecraft:basalt_deltas",
@@ -3731,7 +3727,9 @@
"frostpeak_88", "frostpeak_88",
"frostpeak_89", "frostpeak_89",
"frostpeak_90", "frostpeak_90",
"frostpeak_91" "frostpeak_91",
"frostpeak_92",
"frostpeak_93"
], ],
"biome_blacklist": [ "biome_blacklist": [
"minecraft:basalt_deltas", "minecraft:basalt_deltas",
+3 -3
View File
@@ -30,7 +30,7 @@ hash = "d1f8daadc8e34c41950e8f439ca089e8820142e57767459cbe1eb2a250ee4441"
[[files]] [[files]]
file = "config/lootr-common.toml" file = "config/lootr-common.toml"
hash = "ca348d022ad97e74ec51a896060e8fcfc079cf0d34ef116a967e72f60bdb3381" hash = "b13f8c4e4211b698b9e680c99dcdd2b77ab06806dd597ad94dd8e753b6f571de"
[[files]] [[files]]
file = "config/matthiesen_core/metrics.properties" file = "config/matthiesen_core/metrics.properties"
@@ -42,7 +42,7 @@ hash = "5fa46ca93c0f7e243ed1af1093e9663e1cccfb4c0ab0ba64911b5a8b7e60acee"
[[files]] [[files]]
file = "config/regenerating_ore_veins/areas.json" file = "config/regenerating_ore_veins/areas.json"
hash = "79a3e379b5d9a142930acc1b599f3bf773c2dd6ee578239181f9720676f876ad" hash = "66dc4fcd0edaeae12406b0fa9834dd5674cd87e2cc6cc84a6189e21d89d2fc46"
[[files]] [[files]]
file = "config/regenerating_ore_veins/global.json" file = "config/regenerating_ore_veins/global.json"
@@ -54,7 +54,7 @@ hash = "a6e9d717e2f73e463b25b1eacfbff43304fd8993937d8c002f9629f24ebcc221"
[[files]] [[files]]
file = "config/regenerating_ore_veins/veins.json" file = "config/regenerating_ore_veins/veins.json"
hash = "d68a080ec5b881d6af1c5f06fbc2ca0d275b8898fc251f96ad3c1471394a8bd3" hash = "64053793b807d0376d14d418c35aadad712fa19c0c7e626620006047149106dc"
[[files]] [[files]]
file = "config/worldgen_editor/presets/cobblesurvival_island.json" file = "config/worldgen_editor/presets/cobblesurvival_island.json"
+1 -1
View File
@@ -6,7 +6,7 @@ pack-format = "packwiz:1.1.0"
[index] [index]
file = "index.toml" file = "index.toml"
hash-format = "sha256" hash-format = "sha256"
hash = "90997231a86493a8e7488c2c295b314d3bfcfcfc670fb3f7699e827054b5823c" hash = "36704b01cdb1201d353d8987ebaa4ecb8b1bee8a4ea5352dfc9c14e9472f764a"
[versions] [versions]
minecraft = "1.21.1" minecraft = "1.21.1"
+1
View File
@@ -313,6 +313,7 @@ def write_datapack(zone, plan, preview):
"zones": [{k: z[k] for k in keep} for z in plan["zones"]], "zones": [{k: z[k] for k in keep} for z in plan["zones"]],
"caves": [{**{k: c[k] for k in keep}, "biome": c["biome"]} for c in plan["caves"]], "caves": [{**{k: c[k] for k in keep}, "biome": c["biome"]} for c in plan["caves"]],
"level_pressure": plan.get("level_pressure", {}), "level_pressure": plan.get("level_pressure", {}),
"wanderers": plan.get("wanderers", {}),
"samples": samples(zone, plan, preview), "samples": samples(zone, plan, preview),
"biome_samples": biome_samples(zone, plan, preview), "biome_samples": biome_samples(zone, plan, preview),
"grid_rle": runs, "grid_rle": runs,
+44 -8
View File
@@ -13,14 +13,18 @@ datapacks/core/data/cobblesurvival/spawn_pool_world/<zone>.json:
level band, divided by how full the zone already is against its "lines" target. So strong level band, divided by how full the zone already is against its "lines" target. So strong
lines (pseudo-legendaries) end up in high-level zones. Legendary, mythical, Ultra Beast lines (pseudo-legendaries) end up in high-level zones. Legendary, mythical, Ultra Beast
and Paradox Pokémon are left out. Lines that can spawn in nearly every biome (Cobblemon's and Paradox Pokémon are left out. Lines that can spawn in nearly every biome (Cobblemon's
catch-all tags) are placed last: by strength into the land zones, weakest first, filling catch-all tags) are placed last: first into the cave zones, which take those whose first stage's
each zone up to its target. primary type fits the cave (world/zones.json → caves → "types") up to their target, the ones closest to the
cave's level first; the rest by strength into the land zones, weakest first, filling each zone
up to its target.
2. In its home zone a line keeps Cobblemon's spawn entries (bucket, weight, time, light, 2. In its home zone a line keeps Cobblemon's spawn entries (bucket, weight, time, light,
presets) for the biomes the zone has, plus "zone": "<id>". Levels are clamped into the presets) for the biomes the zone has, plus "zone": "<id>". Levels are clamped into the
zone's band, so the band picks the evolution stages: a stage whose levels miss the band zone's band, so the band picks the evolution stages: a stage whose levels miss the band
doesn't spawn there. If no stage fits, the closest one spawns across the whole band. doesn't spawn there. If no stage fits, the closest one spawns across the whole band. The
line's top stage spawns up to the top of the band (Cobblemon's own ranges stop earlier).
3. world/zones.json → "species" pins a line to a zone by hand: {"pikachu": "southwold"}. 3. world/zones.json → "species" pins a line to a zone by hand: {"pikachu": "southwold"}.
4. In cave zones, sky-light minimums, "can see sky" and the "natural" ground preset are dropped. 4. In cave zones every entry spawns in the cave's biome, and sky-light minimums, "can see sky", time
of day, excluded biomes and the "natural" ground preset are dropped (there's no sky or day underground).
5. Strong flyers (STRONG_FLYER_*) only spawn in zones whose band starts at HIGH_ZONE_LEVEL or more. 5. Strong flyers (STRONG_FLYER_*) only spawn in zones whose band starts at HIGH_ZONE_LEVEL or more.
6. Each zone with a "guardian" gets datapacks/core/data/cobblesurvival/guardians/<zone>.json: the 6. Each zone with a "guardian" gets datapacks/core/data/cobblesurvival/guardians/<zone>.json: the
strongest Pokémon spawning in the zone (or "species"), uncatchable, half again as big, five levels strongest Pokémon spawning in the zone (or "species"), uncatchable, half again as big, five levels
@@ -215,14 +219,28 @@ def main():
home[root] = max(candidates, key=score) home[root] = max(candidates, key=score)
load[home[root]] += 1 load[home[root]] += 1
# 2. All-rounders fill the land zones up to their targets, weakest lines into the lowest zones. # 2. Cave zones take the all-rounders of the types that fit them, up to their targets, the ones closest
# to the cave's level first (Adrian, 2026-10-30: the deep caves' tables were too small).
# A line's type here is its first stage's primary type (a line of many types, like Eevee's, shouldn't count as all of them).
primary_type = {root: (species.get(root, {}).get("types") or [None])[0] for root in lines}
for zid in sorted(cave_zones, key=lambda z: tier[z]):
fits = set(zones[zid].get("types", []))
while load[zid] < target[zid]:
pool = [r for r in all_rounders if r not in home and primary_type[r] in fits and allowed(r, zid)]
if not pool:
break
root = min(pool, key=lambda r: (abs(rank[r] - tier[zid]), r))
home[root] = zid
load[zid] += 1
# 3. The other all-rounders fill the land zones up to their targets, weakest lines into the lowest zones.
by_tier = sorted(land_zones, key=lambda z: tier[z]) by_tier = sorted(land_zones, key=lambda z: tier[z])
room = {z: max(0.0, target[z] - load[z]) for z in by_tier} room = {z: max(0.0, target[z] - load[z]) for z in by_tier}
total_room = sum(room.values()) or 1 total_room = sum(room.values()) or 1
stretch = max(1.0, len(all_rounders) / total_room) stretch = max(1.0, len(all_rounders) / total_room)
zone_iter = iter(by_tier) zone_iter = iter(by_tier)
current = next(zone_iter) current = next(zone_iter)
for root in sorted(all_rounders, key=lambda r: rank[r]): for root in sorted((r for r in all_rounders if r not in home), key=lambda r: rank[r]):
while load[current] >= load_before(current, room, stretch, target) and current != by_tier[-1]: while load[current] >= load_before(current, room, stretch, target) and current != by_tier[-1]:
current = next(zone_iter) current = next(zone_iter)
# A strong flyer skips ahead to the first high zone. # A strong flyer skips ahead to the first high zone.
@@ -234,17 +252,24 @@ def main():
pools = collections.defaultdict(list) pools = collections.defaultdict(list)
report = collections.defaultdict(list) report = collections.defaultdict(list)
cave_biome = {c["id"]: c["biome"] for c in plan["caves"]}
for root, zid in home.items(): for root, zid in home.items():
lo, hi = zones[zid]["levels"] lo, hi = zones[zid]["levels"]
high = zones[zid]["levels"][0] >= HIGH_ZONE_LEVEL high = zones[zid]["levels"][0] >= HIGH_ZONE_LEVEL
usable = [(e, b, m, lv) for e, b, m, lv in lines[root] if b & biomes_of[zid] and (high or m not in strong_flyers)] # Underground every entry gets the cave's biome below, so any of the line's entries will do.
usable = [(e, b, m, lv) for e, b, m, lv in lines[root]
if (zid in cave_zones or b & biomes_of[zid]) and (high or m not in strong_flyers)]
if not usable: if not usable:
continue continue
fitting = [(e, m, max(lv[0], lo), min(lv[1], hi)) for e, b, m, lv in usable if lv[0] <= hi and lv[1] >= lo] reaching = [u for u in usable if u[3][0] <= hi and u[3][1] >= lo]
top = max(reaching, key=lambda u: u[3][1])[2] if reaching else None
# The top stage spawns up to the band's top; Cobblemon's own ranges often stop well below it.
fitting = [(e, m, max(lv[0], lo), hi if m == top else min(lv[1], hi)) for e, b, m, lv in reaching]
if not fitting: if not fitting:
# No stage reaches the band: the closest stage spawns across all of it. # No stage reaches the band: the closest stage spawns across all of it.
e, b, m, lv = min(usable, key=lambda u: min(abs(u[3][0] - hi), abs(u[3][1] - lo))) e, b, m, lv = min(usable, key=lambda u: min(abs(u[3][0] - hi), abs(u[3][1] - lo)))
fitting = [(e, m, lo, hi)] fitting = [(e, m, lo, hi)]
seen = set()
for entry, member, a, b in fitting: for entry, member, a, b in fitting:
spawn = copy.deepcopy(entry) spawn = copy.deepcopy(entry)
spawn["id"] = f"{zid}-{entry.get('id') or member.split(':')[1]}-{len(pools[zid])}" spawn["id"] = f"{zid}-{entry.get('id') or member.split(':')[1]}-{len(pools[zid])}"
@@ -260,6 +285,17 @@ def main():
# "natural" only allows natural ground; cave floors (basalt deltas: magma, smooth basalt) often aren't. # "natural" only allows natural ground; cave floors (basalt deltas: magma, smooth basalt) often aren't.
if "natural" in spawn.get("presets", []): if "natural" in spawn.get("presets", []):
spawn["presets"] = [x for x in spawn["presets"] if x != "natural"] spawn["presets"] = [x for x in spawn["presets"] if x != "natural"]
# The zone condition places it; the cave's biome stands in for Cobblemon's surface biomes, and
# there's no day or night underground.
condition["biomes"] = [cave_biome[zid]]
condition.pop("timeRange", None)
spawn.get("anticondition", {}).pop("biomes", None)
if spawn.get("anticondition") == {}:
del spawn["anticondition"]
key = (spawn["pokemon"], spawn.get("spawnablePositionType"), spawn.get("bucket"), spawn["level"])
if key in seen:
continue
seen.add(key)
pools[zid].append(spawn) pools[zid].append(spawn)
names = sorted({species[m]["name"] for _, m, _, _ in fitting}) names = sorted({species[m]["name"] for _, m, _, _ in fitting})
report[zid].append((species.get(root, {}).get("name", root), names)) report[zid].append((species.get(root, {}).get("name", root), names))
+5 -4
View File
@@ -1,9 +1,10 @@
{ {
"_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 (tools/zone_ores.py writes Regenerating Ore Veins' config and the companion mod's node table from them). Each tier lives in exactly one zone, higher tiers in higher zones; Cobblemon's evolution stones are tiers too. Adrian (2026-10-30): small nodes on the surface, larger veins underground that are harder to find, and the cave zones' ores as nodes on the cave floor, not in the walls. 'nodes': 'chance' per chunk, 'radius' in blocks (0 = one block); cave tiers also 'tries' (columns searched per chunk) and 'y' (where their cave biome lies). 'veins' (surface tiers only, underground): 'radius', 'y', 'spacing' in chunks between candidate chunks, 'attempts'; 'stone'/'deepslate' split them into an upper vein (y >= 0) and a lower one, 'blocks' is a weighted list. 'regen_minutes' of real time, plus 'jitter', 'fill' (veins) and 'node_fill' (nodes bigger than one block) from 'ore_defaults'. '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 (tools/zone_ores.py writes Regenerating Ore Veins' config and the companion mod's node table from them). Each tier lives in exactly one zone, higher tiers in higher zones; Cobblemon's evolution stones are tiers too. Adrian (2026-10-30): small nodes on the surface, larger veins underground that are harder to find, and the cave zones' ores as nodes on the cave floor, not in the walls. 'nodes': 'chance' per chunk, 'radius' in blocks (0 = one block); cave tiers also 'tries' (columns searched per chunk) and 'y' (where their cave biome lies). 'veins' (surface tiers only, underground): 'radius', 'y', 'spacing' in chunks between candidate chunks, 'attempts'; 'stone'/'deepslate' split them into an upper vein (y >= 0) and a lower one, 'blocks' is a weighted list. 'regen_minutes' of real time, plus 'jitter', 'fill' (veins) and 'node_fill' (nodes bigger than one block) from 'ore_defaults'. 'wanderers': a wild Pokémon more than 'grace_levels' above the band of the zone it stands in despawns (Adrian, 2026-10-30: a Lv 61 from the Basalt Furnace turned up in the Lush Caves); not in battles, not while angry at someone, never a guardian. '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, "min_cells": 6,
"inherit": ["minecraft:river"], "inherit": ["minecraft:river"],
"guardian_respawn_hours": 5, "guardian_respawn_hours": 5,
"level_pressure": {"grace_levels": 5, "per_level": 0.1, "minimum": 0.1}, "level_pressure": {"grace_levels": 5, "per_level": 0.1, "minimum": 0.1},
"wanderers": {"grace_levels": 10},
"ore_defaults": {"fill": 0.7, "node_fill": 0.8, "attempts": 1, "jitter": 0.1}, "ore_defaults": {"fill": 0.7, "node_fill": 0.8, "attempts": 1, "jitter": 0.1},
"ores": { "ores": {
"coal": {"zone": "button_isle", "stone": "minecraft:coal_ore", "deepslate": "minecraft:deepslate_coal_ore", "regen_minutes": 20, "nodes": {"chance": 0.5, "radius": [0, 1]}, "veins": {"radius": [2, 4], "y": [-32, 100], "spacing": 6, "attempts": 2}}, "coal": {"zone": "button_isle", "stone": "minecraft:coal_ore", "deepslate": "minecraft:deepslate_coal_ore", "regen_minutes": 20, "nodes": {"chance": 0.5, "radius": [0, 1]}, "veins": {"radius": [2, 4], "y": [-32, 100], "spacing": 6, "attempts": 2}},
@@ -15,8 +16,8 @@
"emerald": {"zone": "frostpeak", "stone": "minecraft:emerald_ore", "deepslate": "minecraft:deepslate_emerald_ore", "regen_minutes": 75, "nodes": {"chance": 0.15, "radius": [0, 1]}, "veins": {"radius": [1, 2], "y": [-16, 320], "spacing": 8, "attempts": 2}}, "emerald": {"zone": "frostpeak", "stone": "minecraft:emerald_ore", "deepslate": "minecraft:deepslate_emerald_ore", "regen_minutes": 75, "nodes": {"chance": 0.15, "radius": [0, 1]}, "veins": {"radius": [1, 2], "y": [-16, 320], "spacing": 8, "attempts": 2}},
"amethyst": {"zone": "dripstone", "blocks": [["minecraft:amethyst_block", 3], ["minecraft:budding_amethyst", 1]], "regen_minutes": 120, "nodes": {"chance": 0.5, "tries": 8, "radius": [1, 1], "y": [0, 40]}}, "amethyst": {"zone": "dripstone", "blocks": [["minecraft:amethyst_block", 3], ["minecraft:budding_amethyst", 1]], "regen_minutes": 120, "nodes": {"chance": 0.5, "tries": 8, "radius": [1, 1], "y": [0, 40]}},
"diamond": {"zone": "deep_dark", "deepslate": "minecraft:deepslate_diamond_ore", "regen_minutes": 90, "nodes": {"chance": 0.15, "tries": 8, "radius": [1, 1], "y": [-64, -24]}}, "diamond": {"zone": "deep_dark", "deepslate": "minecraft:deepslate_diamond_ore", "regen_minutes": 90, "nodes": {"chance": 0.15, "tries": 8, "radius": [1, 1], "y": [-64, -24]}},
"quartz": {"zone": "basalt", "blocks": [["minecraft:nether_quartz_ore", 1]], "regen_minutes": 60, "nodes": {"chance": 0.5, "tries": 8, "radius": [1, 1], "y": [0, 40]}}, "quartz": {"zone": "basalt", "blocks": [["minecraft:nether_quartz_ore", 1]], "regen_minutes": 60, "nodes": {"chance": 0.5, "tries": 8, "radius": [1, 1], "y": [-64, 40]}},
"netherite": {"zone": "basalt", "blocks": [["minecraft:ancient_debris", 1]], "regen_minutes": 180, "nodes": {"chance": 0.06, "tries": 8, "radius": [0, 0], "y": [0, 40]}}, "netherite": {"zone": "basalt", "blocks": [["minecraft:ancient_debris", 1]], "regen_minutes": 180, "nodes": {"chance": 0.06, "tries": 8, "radius": [0, 0], "y": [-64, 40]}},
"thunder_stone": {"zone": "westmarch", "stone": "cobblemon:thunder_stone_ore", "deepslate": "cobblemon:deepslate_thunder_stone_ore", "regen_minutes": 60, "nodes": {"chance": 0.03, "radius": [0, 0]}, "veins": {"radius": [1, 2], "y": [-48, 100], "spacing": 11, "attempts": 1}}, "thunder_stone": {"zone": "westmarch", "stone": "cobblemon:thunder_stone_ore", "deepslate": "cobblemon:deepslate_thunder_stone_ore", "regen_minutes": 60, "nodes": {"chance": 0.03, "radius": [0, 0]}, "veins": {"radius": [1, 2], "y": [-48, 100], "spacing": 11, "attempts": 1}},
"shiny_stone": {"zone": "lush_caves", "stone": "cobblemon:shiny_stone_ore", "deepslate": "cobblemon:deepslate_shiny_stone_ore", "regen_minutes": 60, "nodes": {"chance": 0.15, "tries": 8, "radius": [0, 1], "y": [-16, 40]}}, "shiny_stone": {"zone": "lush_caves", "stone": "cobblemon:shiny_stone_ore", "deepslate": "cobblemon:deepslate_shiny_stone_ore", "regen_minutes": 60, "nodes": {"chance": 0.15, "tries": 8, "radius": [0, 1], "y": [-16, 40]}},
"leaf_stone": {"zone": "jungle", "stone": "cobblemon:leaf_stone_ore", "deepslate": "cobblemon:deepslate_leaf_stone_ore", "regen_minutes": 60, "nodes": {"chance": 0.04, "radius": [0, 0]}, "veins": {"radius": [1, 2], "y": [-48, 100], "spacing": 11, "attempts": 1}}, "leaf_stone": {"zone": "jungle", "stone": "cobblemon:leaf_stone_ore", "deepslate": "cobblemon:deepslate_leaf_stone_ore", "regen_minutes": 60, "nodes": {"chance": 0.04, "radius": [0, 0]}, "veins": {"radius": [1, 2], "y": [-48, 100], "spacing": 11, "attempts": 1}},
@@ -75,6 +76,6 @@
{"id": "lush_caves", "types": ["grass", "bug", "fairy", "poison", "water"], "lines": 20, "name": "Lush Caves", "biome": "minecraft:lush_caves", "levels": [12, 28], "hazard": "none"}, {"id": "lush_caves", "types": ["grass", "bug", "fairy", "poison", "water"], "lines": 20, "name": "Lush Caves", "biome": "minecraft:lush_caves", "levels": [12, 28], "hazard": "none"},
{"id": "dripstone", "types": ["rock", "ground", "steel", "fairy", "psychic", "dragon"], "lines": 20, "name": "Dripstone Depths", "biome": "minecraft:dripstone_caves", "levels": [22, 38], "hazard": "none"}, {"id": "dripstone", "types": ["rock", "ground", "steel", "fairy", "psychic", "dragon"], "lines": 20, "name": "Dripstone Depths", "biome": "minecraft:dripstone_caves", "levels": [22, 38], "hazard": "none"},
{"id": "deep_dark", "types": ["ghost", "dark", "steel", "poison", "psychic", "rock"], "guardian": {"drops": [["cobblemon:icy_rock", 3], ["cobblemon:exp_candy_l", 2]]}, "lines": 20, "name": "Deep Dark", "biome": "minecraft:deep_dark", "levels": [45, 60], "hazard": "darkness (vanilla sculk; no Warden)"}, {"id": "deep_dark", "types": ["ghost", "dark", "steel", "poison", "psychic", "rock"], "guardian": {"drops": [["cobblemon:icy_rock", 3], ["cobblemon:exp_candy_l", 2]]}, "lines": 20, "name": "Deep Dark", "biome": "minecraft:deep_dark", "levels": [45, 60], "hazard": "darkness (vanilla sculk; no Warden)"},
{"id": "basalt", "types": ["fire", "rock", "ground", "steel", "dragon", "dark"], "lines": 15, "name": "Basalt Furnace", "biome": "minecraft:basalt_deltas", "levels": [55, 70], "hazard": "heat (Cold Sweat)"} {"id": "basalt", "types": ["fire", "rock", "ground", "steel", "dark"], "lines": 15, "name": "Basalt Furnace", "biome": "minecraft:basalt_deltas", "levels": [55, 70], "hazard": "heat (Cold Sweat)"}
] ]
} }