Adrian (2026-11-02): double the furnace speed; there must be a way in
game to see how a machine is built; a test world with the machines.
- Large Furnace speed doubled (2 + 0.08 x level + 0.02 x SpA).
- Ghost preview: placing a core, using it with an incomplete shell, or
sneak-using it empty shows every wrong spot as a small glowing block
display for 10 s (never saved), in the core's orientation, with a
chat line counting what's missing.
- Core tooltips: what the machine does, what its shell is made of.
- /cobblesurvival machines showcase builds every machine three times
(working with a Showcase-owned Pokemon, empty, bare core) with signs,
hoppers, chests and cables; tools/make_machine_world.py makes a
superflat creative world from it (level.dat via tools/nbtfile.py)
and --prism installs it as "Machine Test (Phase 6)".
- Self-tests machine_preview_shows_the_shell and
machine_showcase_builds_every_machine; docs and checklist.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Adrian (2026-10-31): a Large Furnace where a Fire Pokémon heats real
furnaces (hoppers in and out), our own Electric generator, no upkeep;
then a drop synthesizer (FE into full drop rolls, looting tiers), a
sacrifice altar (level tiers, rare candies only from Lv 80) and a
rebirth chamber (Lv 100 -> shiny Lv 1 first stage, three perfect IVs,
moves kept, Ability Patch so the hidden ability is optional).
- machine/: data-driven 3x3x3 shells (window spots for glass, free
spot under the core), checked in four rotations; the Pokémon walks in
from the party and lives in the core; breaking core or shell sends it
home (party, else PC, offline too); a real Cobblemon entity copy is
shown in the chamber (no AI, invulnerable, uncatchable, never saved).
- Heat Core keeps vanilla furnaces lit and faster; Dynamo Core makes
and pushes FE; Synthesis Core takes FE and rolls drops into a hopper-
extractable buffer; Altar Core sacrifices on a confirmed sneak-use;
Rebirth Core runs on server time.
- Recipes, casing tags, block loot, textures (tools/machine_assets.py),
models, blockstates, names.
- Self-tests: in/out, refusal, shell and core breaks (PC when full),
chunk unload, server restart, and each machine's work.
- Docs: design, balance table, Phase 6 checklist; Phase 5 approved.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Adrian (2026-10-31): add Cobbreeding without a gate; only Ditto should
be rare, in an endgame area or gated behind something else.
- Cobbreeding 2.4.1 (Modrinth only) and Cloth Config (client) in the
pack; Cobblebase's hatchery takes Cobbreeding's eggs.
- Ditto moved from Button Isle to the Deep Dark with both of Cobblemon's
entries (rare in slime chunks, ultra-rare elsewhere): zone_spawns.py
pins take {"zone", "all_entries"}; Deep Dark target +1, Button Isle -1
so no other line moved; Southwold and Frostpeak guardians pinned (they
tie on base stats and flipped between runs).
- HMs' Trainer Ditto is made uncatchable; it still trades.
- check_deps.py skips other-side dependencies; Cobbreeding's harmless
client-mixin log line allowlisted.
- Self-tests cobbreeding_eggs_fit_the_hatchery, trainer_ditto_cant_be_caught;
docs, balance table, Phase 5 checklist.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
From Adrian's Mining test (2026-10-31):
- A gated job assigned to a pastured Pokemon that doesn't pass its gate
is taken back at once (BaseManager assignment cleared, Cobblebase's
assignment sync sent, owner told what the Pokemon needs), so it no
longer sticks or shows under Buffs -> Active.
- Mining, Ore Finder and Evolution-item Finder only give the ores and
evolution stones of the pasture's zone: new loot condition
cobblesurvival:in_zone, the pack's versions of the 12 Cobblebase
tables (tools/cobblebase_loot.py), Cobblebase's built-in copies
removed at server start (ore/BaseLoot.kt). Mining adds quartz and the
evolution stones, drops the type gems.
- Mining's loot reaching the chest needs an Item Gatherer in the same
pasture (Cobblebase's design); documented, not changed.
- Self-tests gated_jobs_are_taken_back, base_jobs_dig_their_zones_ores;
docs, balance table, licenses, Phase 5 checklist.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Adrian (2026-10-31): HMs abilities stay open; the ones that get around
zone hazards get soft gates (materials or a high-level Pokemon, never
flags; gifted Pokemon and materials count the same); party passives from
shoulder Pokemon; Cobblebase skills and the Power Block move to soft
gates too.
- Gates: a zone gate passes at the top of the zone's band or while the
Pokemon holds the zone's material (or a harder zone's). Cobblebase
skills check the pastured Pokemon and tell the owner once what it needs.
- Progress record, guardian unlock messages, the Power Block placement
gate and /cobblesurvival progress removed; the Power Block's recipe
already needs Jungle redstone.
- HmsGate: switches off gated HMs auras (Flash, Dive, Mist, Rock Climb,
Magnet Rise, Lucky Chant, Lava Plume) whose Pokemon doesn't pass.
- ShoulderPassives: type-based effects from shoulder Pokemon, hazard
ones (warmth, frigidness, water breathing, night vision) gated.
- Self-tests for all of it; docs, balance table, Phase 5 checklist.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Adrian (2026-10-31): use Cobblemon HMs; mining ore is the one hard
requirement, furnaces get lit by a Pokemon inside a Phase 6 machine.
- Cobblemon HMs 4.1.0 in the pack (Modrinth), default config.
- Self-test rock_smash_mines_veins: HMs' Rock Smash breaks a
regenerating vein, the ore drops and the vein becomes a regenerator.
- HMs' Trainer Ditto (a wild Ditto underneath) is exempt from the
hostility scan and the stray despawn (world/SpecialPokemon.kt).
- Docs: licenses, addon status, design, balance, roadmap note,
Phase 5 checklist with the open questions for Adrian.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
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>
Done and checked: surface and cave-floor ore nodes (companion mod
ore/OreNodes.kt), bigger and rarer underground veins; template with nodes
passed the world check and the island quick check (node self-tests).
Built, not yet tested: catching rules (catch rate falls with the level
gap to the trainer's strongest Pokemon, failed catch enrages, strong wild
Pokemon hunt weaker trainers; catching/, Fight or Flight config), bee
nests emptied when their bee is turned away.
In progress: the Deep Dark no longer fills the deepslate layer (split by
temperature: cold = Deep Dark, hot = basalt deltas, warm = ordinary caves;
world/biomes.json), zone layout regenerated; cave zone types added to
world/zones.json but tools/zone_spawns.py doesn't use them yet; template
not rebuilt for the new caves.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Adrian (2026-10-30): Cobblebase's skills stay in but gated behind
progression, power from an existing mod (Poke Power) also gated,
evolution stones as ores fine for now, balance fine and configurable.
Progression is the zones whose Alpha guardian a player helped beat
(Progress saved data; a guardian win records it and lists the unlocks).
The gate table is data (progression_gates/base.json): each of
Cobblebase's 44 skills needs a zone (or none), the Power Block needs the
Verdant Jungle. The companion mod wraps every Cobblebase skill executor
in a gate by reflection; a skill missing from the table stays off.
Operator command /cobblesurvival progress. Cobblebase's and Poke Power's
configs ship in the pack. Self-tests: gate coverage, a locked skill only
runs after its guardian, the Power Block waits for the Jungle guardian,
a guardian win counts as progress.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Ore veins: make_world.py loads the island again row by row until
Regenerating Ore Veins has filled every chunk (/cobblesurvival veins
unfilled), cave tiers sit at their biome's depths, small zones get denser
veins, showcase veins are full size. The world report checks surface
tiers against the zone grid, cave tiers within two biome cells of their
cave, and fails on unfilled chunks; the template passes (37,689 chunks).
Drops: tools/drop_audit.py checks every creature drop a recipe or brewing
needs (docs/pokemon-drops.md). Blaze rods, ghast tears, breeze rods,
shulker shells and nether stars now drop from Pokemon through species
additions (self-test drop_additions_apply). The field guide counts vanilla
mobs as absent, applies species additions and reads the veins as sources.
Cobblebase tried (loads, self-tests pass) and left out until Adrian
decides its scope. Phase 4 checklist with the open questions.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
A push that started .github/workflows/ci.yml crashed the server (Adrian,
2026-10-30). The smoke test, self-tests and quick check run locally.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
- tools/zone_spawns.py: a species ridable through the air with top
speed >= 60 or top stamina >= 85 never spawns in a zone whose band
starts below Lv 30; lines that start as one are only placed in such
zones, and the tool refuses to write pools that break the rule.
Drampa moves to Sunscorch; Aerodactyl is fossil-only; Salamence never
spawns wild (Bagon and Shelgon stay in the Dripstone caves).
- Ride stats stay Cobblemon's until play-tested (species_additions can
override riding later).
- Phase 3 checklist: all steps in, approval checkpoint for Adrian.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
- Companion mod (zone/LevelPressure.kt): a Pokemon more than 5 levels
above the band of the zone its trainer is in gets 10% less experience
per extra level, down to 10%. Exp. Candy and commands are exempt; no
hard level caps (roadmap).
- Rules in world/zones.json -> level_pressure, shipped in the zone layout.
- Self-test level_pressure_cuts_xp.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
- Companion mod zone hazards (zone/ZoneHazards.kt, data in
data/cobblesurvival/zone_hazards/): in the Mire a player without an
item from #cobblesurvival:mire_protection gets Poison every 5 seconds,
with a one-time warning. Potions, milk and golden apples still help.
- Mire Waders: KubeJS leather boots, dropped by the Westmarch and Verdant
Jungle guardians (the zones before the Mire), per Adrian's boss rule.
- Self-test mire_poisons_without_waders.
- Allow-list Cobblemon's misspelt jigsaw state in
habitats/parched_peat_bog7.nbt, which test players now reach.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
- Companion mod (zone/Guardians.kt): each zone's guardian stands at the
zone's sample point, appears when a player is within 96 blocks, stays
within 24 blocks, is uncatchable and half again as big. Beating it in a
battle gives every player in the battle its drops; it returns after 5
hours of game time (Adrian: fixed spots, 5 hours). State lives in the
world save; /cobblesurvival guardians lists it.
- tools/zone_spawns.py writes data/cobblesurvival/guardians/<zone>.json:
the strongest walking (or swimming) Pokemon of the zone at band top + 5,
with the drops from world/zones.json. Boss drops follow Adrian's rule:
Icy Rocks before Sunscorch, Heat Rocks before Frostpeak.
- Goat Fur and Hoglin Hide recipes make 8 per rock, so one guardian's 3
rocks pay for one full insulating set.
- Self-test guardian_appears_and_returns; hazard tests cleaned up; the
zone generator reads Cobblemon's own entries from the field guide's
hidden_spawns.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
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>