Cobblemon Survival Pack: phases 0-2 and Phase 3 zones and hazards

Free NeoForge 1.21.1 modpack on Cobblemon 1.8.4 built with packwiz, plus
the Kotlin companion mod (cobblesurvival) and its built-in data pack.

- Phase 0: packwiz pack with Modrinth/CurseForge cross-links, build and
  export tooling, Prism instance sync, test server with smoke checks.
- Phase 1: Poke Ball shaped island (WorldGen Editor preset, seed isle-26),
  Adrian's biome list, no natural ore, structures without ore or vanilla
  mobs, no Nether portals, world template builder and world report.
- Phase 2: permadeath (CobbleHardcoreMon plus the companion mod's gap
  fixes), Revival Charm, expensive Healing Machine, Lootr refreshing
  loot, in-game self-tests on Minecraft's GameTest framework.
- Phase 3 so far: 14 zones with their own spawn pools and level bands
  (tools/zone_layout.py, tools/zone_spawns.py, "zone" spawn condition),
  Cold Sweat heat and cold as gates with boss-drop insulation recipes,
  spawn survey and hazard self-tests in tools/quick_check.py.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
claudeandClaude Opus 5.5 committed 2026-10-29 19:01:21 +01:00
commit 398301f0be
232 files changed
+72665

No files matched your search

+354
View File
@@ -0,0 +1,354 @@
# Cobblemon Survival Pack (Phase 3): windswept hills are 45-72 F instead of 24-58 F. They lie in the starter
# lowlands too, and only Frostpeak should be cold. docs/balance.md.
#─────────────────────────────────────────────────────────────────────────
# Anywhere that uses IDs, such as blocks, biomes, dimensions, and structures, also supports:
# • Tags (e.g. "#minecraft:is_underground")
# • Comma-separated lists (e.g. "minecraft:desert,#minecraft:is_badlands")
# Applies the setting to all listed IDs. Can use tags, regular IDs, and negation interchangeably
# • Negation (e.g. "!minecraft:jungle_leaves")
# Useful with lists/tags. Excludes the listed IDs from the setting
# i.e. "#minecraft:leaves,!minecraft:jungle_leaves" (all leaves EXCEPT jungle leaves)
# Settings with "//v" will list elements vertically. Removing "//v" will list elements in one line
#─────────────────────────────────────────────────────────────────────────
[General]
#─────────────────────────────────────────────────────────────────────────//v
# The time of day when the world is at its hottest, in ticks
# └── 0 = sunrise, 6000 = noon, 12000 = sunset, 18000 = midnight
# Default: 6000
# Range: 0 ~ 24000
"Hottest Time" = 6000
#─────────────────────────────────────────────────────────────────────────//v
# The time of day when the world is at its coldest, in ticks
# └── 0 = sunrise, 6000 = noon, 12000 = sunset, 18000 = midnight
# Default: 18000
# Range: 0 ~ 24000
"Coldest Time" = 18000
[Dimensions]
#─────────────────────────────────────────────────────────────────────────//v
# Applies an offset to the world's temperature across an entire dimension
# ├── Format: [["dimension_id", temperature, *units], [...], etc]
# └── [* = optional]
# • dimension_id: The ID of the dimension (e.g. "minecraft:the_nether")
# • temperature: The temperature offset to apply to the dimension
# • *units: The units of the temperature ("f", "c", or "mc"). Defaults to Minecraft units (mc))
"Dimension Temperature Offsets" = [
["minecraft:the_nether", 32, "f"],
["minecraft:the_end", -5, "f"]
]
#─────────────────────────────────────────────────────────────────────────//v
# Defines the temperature of a dimension, overriding biome and elevation temperature
# ├── Format: [["dimension_id", temperature, *units], [...], etc]
# └── [* = optional]
# • dimension_id: The ID of the dimension (e.g. "minecraft:the_nether")
# • temperature: The temperature of the dimension
# • *units: The units of the temperature ("f", "c", or "mc"). Defaults to Minecraft units (mc))
"Dimension Temperatures" = []
[Biomes]
#─────────────────────────────────────────────────────────────────────────//v
# Applies an offset to the temperature of a biome
# ├── Format: [["biome_id", lowTemp, highTemp, *units, *waterTemp, *freezingPoint], [...], etc]
# └── [* = optional]
# • biome_id: The ID of the biome (e.g. "minecraft:desert")
# • lowTemp: The temperature offset at midnight
# • highTemp: The temperature offset at noon
# • *units: The units of the temperature ("f", "c", or "mc"). Defaults to Minecraft units (mc))
# • *waterTemp: Offsets the temperature of water in the biome
# • *freezingPoint: Offsets the temperature at which water freezes in the biome
"Biome Temperature Offsets" = []
#─────────────────────────────────────────────────────────────────────────//v
# Defines the temperature of a biome, overriding the biome's default temperature
# ├── Format: [["biome_id", lowTemp, highTemp, *units, *waterTemp, *freezingPoint], [...], etc]
# └── [* = optional]
# • biome_id: The ID of the biome (e.g. "minecraft:desert")
# • lowTemp: The temperature of the biome at midnight
# • highTemp: The temperature of the biome at noon
# • *units: The units of the temperature ("f", "c", or "mc"). Defaults to Minecraft units (mc))
# • *waterTemp: The temperature of water in the biome
# • *freezingPoint: The temperature at which water freezes in the biome
"Biome Temperatures" = [
["minecraft:badlands", 84, 120, "F", 90],
["minecraft:bamboo_jungle", 76, 87, "F"],
["minecraft:beach", 52, 84, "F"],
["minecraft:birch_forest", 47, 77, "F"],
["minecraft:cherry_grove", 42, 67, "F"],
["minecraft:cold_ocean", 39, 70, "F"],
["minecraft:dark_forest", 53, 80, "F"],
["minecraft:deep_cold_ocean", 39, 70, "F"],
["minecraft:deep_dark", 63, 63, "F"],
["minecraft:deep_frozen_ocean", 8, 31, "F"],
["minecraft:deep_lukewarm_ocean", 39, 70, "F"],
["minecraft:deep_ocean", 39, 70, "F"],
["minecraft:desert", 48, 115, "F"],
["minecraft:dripstone_caves", "disable"],
["minecraft:eroded_badlands", 88, 120, "F", 90],
["minecraft:flower_forest", 51, 76, "F"],
["minecraft:forest", 51, 76, "F"],
["minecraft:frozen_ocean", 15, 31, "F"],
["minecraft:frozen_peaks", 8, 31, "F"],
["minecraft:frozen_river", 15, 31, "F"],
["minecraft:grove", 10, 36, "F"],
["minecraft:ice_spikes", 17, 47, "F"],
["minecraft:jagged_peaks", -11, 12, "F"],
["minecraft:jungle", 76, 89, "F"],
["minecraft:lukewarm_ocean", 39, 70, "F"],
["minecraft:lush_caves", 39, 70, "F"],
["minecraft:mangrove_swamp", 56, 80, "F"],
["minecraft:meadow", 42, 67, "F"],
["minecraft:mushroom_fields", 61, 84, "F"],
["minecraft:ocean", 39, 70, "F"],
["minecraft:old_growth_birch_forest", 58, 72, "F"],
["minecraft:old_growth_pine_taiga", 48, 62, "F"],
["minecraft:old_growth_spruce_taiga", 48, 62, "F"],
["minecraft:plains", 52, 84, "F"],
["minecraft:river", "disable"],
["minecraft:savanna", 70, 95, "F"],
["minecraft:savanna_plateau", 76, 98, "F"],
["minecraft:small_end_islands", 39, 70, "F"],
["minecraft:snowy_beach", 8, 30, "F"],
["minecraft:snowy_plains", 8, 30, "F"],
["minecraft:snowy_slopes", 24, 32, "F"],
["minecraft:snowy_taiga", 8, 30, "F"],
["minecraft:soul_sand_valley", 53, 53, "F"],
["minecraft:sparse_jungle", 62, 87, "F"],
["minecraft:stony_peaks", 60, 94, "F"],
["minecraft:stony_shore", 50, 64, "F"],
["minecraft:sunflower_plains", 52, 84, "F"],
["minecraft:swamp", 72, 84, "F", 78],
["minecraft:taiga", 44, 62, "F"],
["minecraft:warm_ocean", 67, 76, "F", 82],
["minecraft:windswept_forest", 48, 66, "F"],
["minecraft:windswept_gravelly_hills", 24, 58, "F"],
["minecraft:windswept_hills", 45, 72, "F"],
["minecraft:windswept_savanna", 67, 90, "F"],
["minecraft:wooded_badlands", 80, 108, "F", 90]
]
[Blocks]
#─────────────────────────────────────────────────────────────────────────//v
# Applies temperature-emitting properties to blocks
# ├── Format: [["block_id", temperature, range, *units, *maxEffect, *"predicates", *"{nbt}", *tempLimit], [...], etc]
# └── [* = optional]
# • block_id: The ID of the block (i.e. "minecraft:lava")
# • temperature: The temperature of the block, in Minecraft units
# • range: The radius of the block's temperature effect, in blocks
# • *units: The units of the temperature ("f", "c", or "mc"). Defaults to Minecraft units (mc))
# • *maxEffect: The maximum cumulative temperature change this block can cause to a player (even with multiple blocks)
# • *predicates: The state that the block must have for the temperature to be applied (i.e. "lit=true").
# (Define multiple predicates by separating them with commas [i.e. "lit=true,waterlogged=false"])
# • *nbt: The NBT data that the block must have for the temperature to be applied.
# • *tempLimit: The maximum world temperature at which this block temp will have any effect.
# (Represents the minimum temp if the block temp is negative)
"Block Temperatures" = [
["cold_sweat:boiler", 15, 7, "f", 36, "lit=true", "", 212],
["cold_sweat:icebox", -15, 7, "f", 36, "frosted=true", "", 32],
["minecraft:lava", 30, 7, "f", 200, "", "", 1000, true],
["#minecraft:fire", 25, 7, "f", 50, "", "", 400],
["#minecraft:campfires", 25, 7, "f", 50, "lit=true", " ", 400],
["minecraft:magma_block", 20, 3, "f", 48],
["minecraft:lava_cauldron", 30, 7, "f", 200, "", "", 1000, true],
["minecraft:ice", -10, 4, "f", 24, "", "", 33],
["minecraft:packed_ice", -15, 4, "f", 48, "", "", 16],
["minecraft:blue_ice", -20, 4, "f", 64, "", "", 0],
["#minecraft:ice", -6, 4, "f", 27, "", "", 33]
]
#─────────────────────────────────────────────────────────────────────────
# The maximum range of blocks' area of effect
# - Note: This will not change anything unless blocks are configured to utilize the expanded range
# - This value is limited to 16 for performance reasons
# Default: 7
# Range: 1 ~ 16
"Block Range" = 7
#─────────────────────────────────────────────────────────────────────────
# When set to true, uses Cold Sweat's temperature system to determine water freezing behavior
"Custom Freezing Behavior" = true
#─────────────────────────────────────────────────────────────────────────
# When set to true, modifies ice blocks to be harvestable with a pickaxe and tweaks its mining speed
"Custom Ice Drops" = true
#─────────────────────────────────────────────────────────────────────────
# The speed at which wet players dry off
# Default: 0.0015
# Range: 0.0 ~ Infinity
"Dryoff Speed" = 0.0015
#─────────────────────────────────────────────────────────────────────────
# The speed at which players become soaked when in water
# Default: 0.1
# Range: 0.0 ~ Infinity
"Water Soak Speed" = 0.1
#─────────────────────────────────────────────────────────────────────────
# The speed at which players become soaked when in rain
# Default: 0.0125
# Range: 0.0 ~ Infinity
"Rain Soak Speed" = 0.0125
#─────────────────────────────────────────────────────────────────────────
# The default temperature of water
# └── Format: [temperature, *units]
"Default Water Temperature" = [-10, "f"]
#─────────────────────────────────────────────────────────────────────────
# The maximum temperature effect of rain soaking on the player, in MC units
# Default: 0.2
# Range: 0.0 ~ Infinity
"Max Rain Soak" = 0.2
[Structures]
#─────────────────────────────────────────────────────────────────────────
# Overrides the world temperature when the player is within this structure
# ├── Format: [["structure_id", temperature, *units], [...], etc]
# └── [* = optional]
# • structure_id: The ID of the structure (i.e. "minecraft:stronghold")
# • temperature: The temperature of the structure, in Minecraft units
# • *units: The units of the temperature ("f" for Fahrenheit, "c" for Celsius, "mc" for Minecraft units)
"Structure Temperatures" = []
#─────────────────────────────────────────────────────────────────────────
# Offsets the world temperature when the player is within this structure
# ├── Format: [["structure_id", offset, *units], [...], etc]
# └── [* = optional]
# • structure_id: The ID of the structure (i.e. "minecraft:igloo")
# • offset: The temperature offset of the structure, in Minecraft units
# • *units: The units of the temperature ("f" for Fahrenheit, "c" for Celsius, "mc" for Minecraft units)
"Structure Temperature Offsets" = []
[Misc]
#─────────────────────────────────────────────────────────────────────────
# A temperature offset applied when in complete shade or when the sky is overcast
# └── Format: [offset, *units]
"Shade Temperature Offset" = [-9, "f"]
#─────────────────────────────────────────────────────────────────────────
# List of blocks that will allow the player to sleep on them, regardless of the "Prevent Sleep When in Danger" setting
# Use this list if the player is not getting the temperature effect from sleeping on particular blocks
"Sleep Check Override Blocks" = []
#─────────────────────────────────────────────────────────────────────────
# When set to true, players cannot sleep if they are cold or hot enough to die
"Check Sleeping Conditions" = true
#─────────────────────────────────────────────────────────────────────────
# Converts damage dealt by Soul Fire to cold damage (default: true)
# Does not affect the block's temperature
"Cold Soul Fire" = true
#"Thermal sources" are blocks that have a smokestack and give frigidness/warmth. like the hearth, boiler, and iceobx
["Thermal Sources"]
#─────────────────────────────────────────────────────────────────────────
# How effective thermal sources are at normalizing temperature
# Default: 0.75
# Range: 0.0 ~ 1.0
"Thermal Source Strength" = 0.75
#─────────────────────────────────────────────────────────────────────────
# List of additional blocks that thermal sources can spread through
# Use this list if thermal sources aren't spreading through particular blocks that they should
"Thermal Source Spread Whitelist" = ["minecraft:iron_bars", "#minecraft:leaves"]
#─────────────────────────────────────────────────────────────────────────
# List of additional blocks that thermal sources spread through
# Use this list if thermal sources are spreading through particular blocks that they shouldn't
"Thermal Source Spread Blacklist" = ["minecraft:water"]
["Thermal Sources".Hearth]
#─────────────────────────────────────────────────────────────────────────
# Allows the hearth to automatically turn on/off based on nearby players' temperature
# If false, it turns on/off by redstone signal instead
"Automatic Hearth" = false
#─────────────────────────────────────────────────────────────────────────
# The distance the hearth's air will travel from a source, like the hearth itself or the end of a pipe
# Default: 20
# Range: > 0
"Hearth Range" = 20
#─────────────────────────────────────────────────────────────────────────
# The maximum distance that air can be piped away from the hearth
# Default: 96
# Range: > 0
"Max Hearth Range" = 96
#─────────────────────────────────────────────────────────────────────────
# The maximum volume of the hearth's area of effect
# Default: 12000
# Range: > 1
"Hearth Volume" = 12000
#─────────────────────────────────────────────────────────────────────────
# The time it takes for the hearth to be fully functional after being placed
# Default: 1200
# Range: > 0
"Hearth Warm-Up Time" = 1200
#─────────────────────────────────────────────────────────────────────────
# The maximum amount of insulation that the hearth can provide
# Default: 10
# Range: 0 ~ 10
"Hearth Effect Strength" = 10
#─────────────────────────────────────────────────────────────────────────
# How often the hearth consumes fuel (in ticks)
# Lower numbers cause fuel to be consumed faster. Setting to 0 disables fuel consumption
# Default: 40
# Range: > 0
"Hearth Fuel Consumption Interval" = 40
["Thermal Sources".Boiler]
#─────────────────────────────────────────────────────────────────────────
# Allows the boiler to automatically turn on/off based on nearby players' temperature
# If false, it turns on/off by redstone signal instead
"Automatic Boiler" = false
#─────────────────────────────────────────────────────────────────────────
# The distance the boiler's air will travel from a source, like the boiler itself or the end of a pipe
# Default: 16
# Range: > 0
"Boiler Range" = 16
#─────────────────────────────────────────────────────────────────────────
# The maximum distance that air can be piped away from the boiler
# Default: 96
# Range: > 0
"Max Boiler Range" = 96
#─────────────────────────────────────────────────────────────────────────
# The maximum volume of the boiler's area of effect
# Default: 2000
# Range: > 1
"Boiler Volume" = 2000
#─────────────────────────────────────────────────────────────────────────
# The time it takes for the boiler to be fully functional after being placed
# Default: 1200
# Range: > 0
"Boiler Warm-Up Time" = 1200
#─────────────────────────────────────────────────────────────────────────
# The maximum amount of insulation that the boiler can provide
# Default: 5
# Range: 0 ~ 10
"Boiler Warmth Strength" = 5
#─────────────────────────────────────────────────────────────────────────
# How often the boiler consumes fuel (in ticks)
# Lower numbers cause fuel to be consumed faster. Setting to 0 disables fuel consumption
# Default: 40
# Range: > 0
"Boiler Fuel Consumption Interval" = 40
["Thermal Sources".Icebox]
#─────────────────────────────────────────────────────────────────────────
# Allows the icebox to automatically turn on/off based on nearby players' temperature
# If false, it turns on/off by redstone signal instead
"Automatic Icebox" = false
#─────────────────────────────────────────────────────────────────────────
# The distance the icebox's air will travel from a source, like the icebox itself or the end of a pipe
# Default: 16
# Range: > 0
"Icebox Range" = 16
#─────────────────────────────────────────────────────────────────────────
# The maximum distance that air can be piped away from the icebox
# Default: 96
# Range: > 0
"Max Icebox Range" = 96
#─────────────────────────────────────────────────────────────────────────
# The maximum volume of the icebox's area of effect
# Default: 2000
# Range: > 1
"Icebox Volume" = 2000
#─────────────────────────────────────────────────────────────────────────
# The time it takes for the icebox to be fully functional after being placed
# Default: 1200
# Range: > 0
"Icebox Warm-Up Time" = 1200
#─────────────────────────────────────────────────────────────────────────
# The maximum amount of insulation that the icebox can provide
# Default: 5
# Range: 0 ~ 10
"Icebox Chill Strength" = 5
#─────────────────────────────────────────────────────────────────────────
# How often the icebox consumes fuel (in ticks)
# Lower numbers cause fuel to be consumed faster. Setting to 0 disables fuel consumption
# Default: 40
# Range: > 0
"Icebox Fuel Consumption Interval" = 40