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

+262
View File
@@ -0,0 +1,262 @@
# Cobblemon Survival Pack (Phase 3): only Cold Sweat's fur and hide sets really insulate, and their materials
# need boss drops (kubejs/server_scripts/insulation.js). Changed from Cold Sweat's defaults:
# - leather armour no longer insulates by itself (it made every hazard free);
# - sewn-in leather 0.5/0.5 and wool 0.5 cold instead of 1/1 and 1.5;
# - rabbit hide removed (no rabbits on the island).
# Values: docs/balance.md.
#─────────────────────────────────────────────────────────────────────────
# Anywhere that uses item IDs also supports:
# • Tags (e.g. "#minecraft:planks")
# • Comma-separated lists (e.g. "minecraft:blaze_powder,#forge:rods/blaze")
# Applies the setting to all listed IDs. Can use tags, regular IDs, and negation interchangeably
# • Negation (e.g. "!minecraft:black_dye")
# Useful with lists/tags. Excludes the listed IDs from the setting
# i.e. "#forge:dyes,!minecraft:black_dye" (all dyes EXCEPT black dye)
# Settings with "//v" will list elements vertically. Removing "//v" will list elements in one line
#─────────────────────────────────────────────────────────────────────────
#─────────────────────────────────────────────────────────────────────────
# Defines items that can be used as fuel
# └── Format: [["item_id", amount], [...], etc]
# • item_id: The item's ID (i.e. "minecraft:coal").
# • amount: The amount of fuel the item provides. Higher values mean the item burns longer
# ⌄
["Fuel Items"]
#─────────────────────────────────//v
Boiler = [
["#minecraft:planks", 10],
["#minecraft:coals", 55],
["#minecraft:logs_that_burn", 40],
["minecraft:dried_kelp_block", 40],
["minecraft:coal_block", 500],
["minecraft:magma_block", 333],
["minecraft:lava_bucket", 1000]
]
#─────────────────────────────────//v
Icebox = [
["minecraft:snowball", 10],
["minecraft:clay_ball", 37],
["minecraft:snow_block", 40],
["minecraft:ice", 250],
["minecraft:clay", 333],
["minecraft:powder_snow_bucket", 100],
["minecraft:packed_ice", 1000]
]
#─────────────────────────────────//v
# (Negative values indicate cold fuel
Hearth = [
["#minecraft:planks", 10],
["#minecraft:coals", 55],
["#minecraft:logs_that_burn", 40],
["minecraft:dried_kelp_block", 40],
["minecraft:coal_block", 500],
["minecraft:magma_block", 333],
["minecraft:lava_bucket", 1000],
["minecraft:snowball", -10],
["minecraft:clay_ball", -37],
["minecraft:snow_block", -40],
["minecraft:ice", -250],
["minecraft:clay", -333],
["minecraft:powder_snow_bucket", -100],
["minecraft:packed_ice", -1000]
]
["Hearth Extras"]
#─────────────────────────────────────────────────────────────────────────//v
# Potions containing any of these effects will not be allowed in the hearth
# └── Format: ["effect_id", "effect_id", ...etc]
# ⌄
"Blacklisted Hearth Potions" = [
"minecraft:instant_damage",
"minecraft:poison",
"minecraft:wither",
"minecraft:weakness",
"minecraft:mining_fatigue",
"minecraft:slowness"
]
#─────────────────────────────────────────────────────────────────────────
# If true, potions can be used in the hearth to give all players in range the potion effect
# ⌄
"Allow Potions in Hearth" = true
["Soulspring Lamp"]
#─────────────────────────────────────────────────────────────────────────//v
# Defines items that the Soulspring Lamp can use as fuel
# └── Format: [["item_id", amount], [...], etc]
# • item_id: The item's ID (i.e. "cold_sweat:soul_sprout").
# • amount: The amount of fuel the item provides. Higher values mean the item burns longer
# ⌄
"Fuel Items" = [
["cold_sweat:soul_sprout", 4]
]
#─────────────────────────────────────────────────────────────────────────//v
# Defines the dimensions that the Soulspring Lamp can be used in
# └── Format: ["dimension_id", "dimension_id", ...etc]
# ⌄
"Valid Dimensions" = [
"minecraft:the_nether"
]
[Insulation]
#─────────────────────────────────────────────────────────────────────────//v
# Defines the items that can be used for insulating armor in the Sewing Table
# ├── Format (Static): [["item_id", cold, heat, *"static", *"{nbt}", *fillSlots], [...], etc]
# ├── Format (Adaptive): [["item_id", amount, adaptSpeed, "adaptive", *"{nbt}", *fillSlots], [...], etc]
# └── [* = optional]
# • item_id: The item's ID (i.e. "minecraft:iron_ingot").
# • cold: The cold insulation the item provides.
# • heat: The heat insulation the item provides.
# • amount: The amount of insulation the item provides.
# • adaptSpeed: The speed at which the insulation adapts to the environment.
# • *static/adaptive: The type of insulation the item provides. Defaults to "static" if unset
# • *nbt: If set, the item will only provide insulation if it has the specified NBT tag.
# • *fillSlots: If true, the item will fill 1 slot per 2 insulation points. Otherwise, the item will fill 1 slot.
# ⌄
"Insulation Ingredients" = [
["minecraft:leather", 0.5, 0.5],
["cold_sweat:chameleon_molt", 2, 0.0085, "adaptive"],
["cold_sweat:hoglin_hide", 0, 2],
["cold_sweat:goat_fur", 2, 0],
["#minecraft:wool", 0.5, 0]
]
#─────────────────────────────────────────────────────────────────────────//v
# Defines the items that provide insulation when worn
# ** See Insulation Ingredients for formatting.
# Enabling "fillSlots" will cause the armor's built-in insulation to consume the available insulation slots
# i.e. if an item has 5 insulation slots and gives one slot of cold insulation by default, it will only have 4 free slots left
# ⌄
"Insulating Armor" = [
["cold_sweat:hoglin_helmet", 0, 10],
["cold_sweat:hoglin_chestplate", 0, 14],
["cold_sweat:hoglin_leggings", 0, 12],
["cold_sweat:hoglin_boots", 0, 10],
["cold_sweat:goat_fur_helmet", 10, 0],
["cold_sweat:goat_fur_chestplate", 14, 0],
["cold_sweat:goat_fur_leggings", 12, 0],
["cold_sweat:goat_fur_boots", 10, 0],
["cold_sweat:chameleon_helmet", 10, 0.0085, "adaptive"],
["cold_sweat:chameleon_chestplate", 14, 0.0085, "adaptive"],
["cold_sweat:chameleon_leggings", 12, 0.0085, "adaptive"],
["cold_sweat:chameleon_boots", 10, 0.0085, "adaptive"]
]
#─────────────────────────────────────────────────────────────────────────
# Defines how many insulation slots armor pieces have
# There are 4 modes for this setting:
# ┌ Static: Each armor slot (head, body, legs, feet) has a fixed number of insulation slots
# └─── Format: [head, body, legs, feet]
# • head/body/legs/feet: The number of insulation slots for that armor slot
# ┌ Linear: Number of slots increases steadily with protection
# ├ Exponential: Number of slots increases exponentially with protection
# ├ Logarithmic: Number of slots increases with protection, with diminishing returns
# └─── Format: [multiplier, max-slots]
# • multiplier: Multiplied by the armor's protection value to get the number of insulation slots
# • max-slots: The maximum number of insulation slots an armor piece can have
# ⌄
"Insulation Slots" = ["static", 4, 6, 5, 4]
#─────────────────────────────────────────────────────────────────────────//v
# Allows for overriding the number of insulation slots for specific items
# └── Format: [["item_id", slotCount, *"{nbt}"], ["item_id", slotCount, *"{nbt}"], [...], etc]
# • item_id: The item's ID (i.e. "minecraft:iron_helmet").
# • slot_count: The number of insulation slots the item should have.
# • *nbt: If set, the item will only have the specified number of insulation slots if it has the specified NBT tag.
# ⌄
"Insulation Slot Overrides" = []
#─────────────────────────────────────────────────────────────────────────
# Defines the effectiveness of insulating items in protecting against temperature
# ⌄
# Default: 1.0
# Range: 0.0 ~ Infinity
"Insulation Strength" = 1.0
#─────────────────────────────────────────────────────────────────────────//v
# Defines wearable items that cannot be insulated
# └── Format: ["item_id", "item_id", ...etc]
# ⌄
"Insulation Blacklist" = []
[Consumables]
#─────────────────────────────────────────────────────────────────────────//v
# Defines items that affect the player's temperature when consumed
# ├── Format: [["item_id", amount, *"{nbt}", *duration, *stack_limit], [...], etc]
# └── [* = optional]
# • item_id: The item's ID (i.e. "minecraft:apple").
# • amount: The amount to change the player's temperature by. Negative values are cold, positive values are hot
# • *nbt: If set, the item will only affect the player's temperature if it has the specified NBT tag.
# • *duration: If set, the player's temperature will remain increased/decreased for this amount of time (in ticks).
# • *stack_limit: If set, consuming multiple of the same item will apply stacking effects up to this limit.
# ⌄
"Temperature-Affecting Foods" = [
["cold_sweat:soul_sprout", -20, "{}", 1200],
["cold_sweat:filled_waterskin", "{item:cold_sweat:temperature}"]
]
#─────────────────────────────────────────────────────────────────────────
# Defines how much a waterskin will change the player's body temperature when used
# ⌄
# Default: 50
# Range: > 0
"Waterskin Strength" = 50
#─────────────────────────────────────────────────────────────────────────
# A multiplier for how effective a waterskin's over-time effect is, when held in the player's hotbar
# ⌄
# Default: 1.0
# Range: 0.0 ~ Infinity
"Waterskin Hotbar Strength" = 1.0
#─────────────────────────────────────────────────────────────────────────
# A multiplier for how quickly a waterskin will return to its neutral temperature when being used in the hotbar
# ⌄
# Default: 1.0
# Range: 0.0 ~ Infinity
"Waterskin Neutralize Speed" = 1.0
#─────────────────────────────────────────────────────────────────────────
# Defines how many times a waterskin can be used before becoming empty
# ⌄
# Default: 1
# Range: > 1
"Waterskin Uses" = 1
#─────────────────────────────────────────────────────────────────────────
# Determines the strength of the Soulspring Lamp's effect before it is overwhelmed
# A value of 1 means it will never be overwhelmed
# ⌄
# Default: 0.6
# Range: 0.0 ~ 1.0
"Soulspring Lamp Strength" = 0.6
#─────────────────────────────────────────────────────────────────────────//v
# Defines items that can be used to dry the player
# └── Format: [["item_id", "turns_into"], [...], etc]
# • item_id: The item's ID (i.e. "minecraft:sponge").
# • turns_into: The item to be turned into when the item is used (i.e. "minecraft:wet_sponge").
# ⌄
"Drying Items" = [
["minecraft:sponge", "minecraft:wet_sponge"]
]
[Misc]
#─────────────────────────────────────────────────────────────────────────//v
# Defines items that affect the player's temperature when in the inventory
# ├── Format: [["item_id", temperature, "slotRange", "trait", *"{nbt}", *maxEffect, *hide_if_unmet], [...], etc]
# └── [* = optional]
# • item_id: The item's ID (i.e. "minecraft:lava_bucket").
# • temperature: The temperature change the item will apply to the entity. For core temperature, this is applied every tick
# • slot_range: Either "inventory", "hotbar", or "hand". Defines what slots the item must be in to apply to the entity (inventory includes hotbar)
# • trait: The temperature trait to apply the effect to. Typical values are "core" for body temperature or "world" for ambient temperature. More on the mod documentation page.
# • *nbt: The NBT data the item must have to apply to the entity.
# • *max_effect: The maximum temperature effect the item can apply to the entity.
# (Based on the given trait. Represents the minimum temp if the item temp is negative)
# • *hide_if_unmet: Only show the tooltip if the NBT check passes. Default to false.
# ⌄
"Item Temperatures" = [
["cold_sweat:filled_waterskin", 0.025, "hand,hotbar", "core", "{'cold_sweat:temperature':'0.1:'}", 999, true],
["cold_sweat:filled_waterskin", -0.025, "hand,hotbar", "core", "{'cold_sweat:temperature':':-0.1'}", 999, true]
]
["Item Functions"]
#─────────────────────────────────────────────────────────────────────────
# Allow fire resistance to block overheating damage
# ⌄
"Fire Resistance Immunity" = true
#─────────────────────────────────────────────────────────────────────────
# Allow ice resistance to block freezing damage
# ⌄
"Ice Resistance Immunity" = true
#─────────────────────────────────────────────────────────────────────────
# Whether a thermometer is required to see exact world and body temperature
# ⌄
"Require Thermometer" = true