Build: every tool pinned (JDK, packwiz, Gradle plugins, Python packages), exports
normalised, tools/check_reproducible.py proves two clean builds are byte-identical.
Server-side balance: a server can load config/cobblesurvival/datapack.zip in place of
the jar's data, /reload applies it, tools/server_update.py packages it and refuses
when a client change is needed. JEI drop pages are sent by the server. Code-held
balance numbers moved to tuning/server.json.
Performance: spark in the pack (server only), tools/perf_test.py with fake players
whose chunks really are active, docs/performance.md.
Adrian's feedback: default keys R, U, J, §; drop pages link to Cobblemon Info and show
real chances; bosses only hurt in battles; battle XP halved; channels between the
islands low level; temperature ×3 with insulation doubled; hazards start at once; no
item dots on the map; a wild attack starts a battle; the starter only faints; quest
book on join with a basics page and an HMs page; regional forms obtainable.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Adrian, 2026-11-09: set up the shader but keep it disabled by default. Iris
1.8.14-beta.1 (built for the pack's Sodium 0.8.13) and Complementary Reimagined
r5.9.3, both client only and fetched from Modrinth. Default Options' extra
folder ships config/iris.properties with shaders off and Complementary
preselected, copied only when a player has none. Toggle Shaders is on M, the
only free letter; Iris's other keys are unbound. tools/build.py fails if the
settings name a shader file the pack doesn't install.
Smoke test passes; client dependencies are satisfied. Not launched on a client.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Phase 8 approved (2026-11-09). Adrian's Phase 9 answers: left-out Pokemon rare
in fitting zones; legendaries from crafted summons; no public release.
- Ore veins more sporadic but bigger: nodes about 40 % rarer, veins about 30 %
further apart, each one block larger in radius. 1.5-3x the ore overall; a
new island is needed to see it. World check on the regenerated island passes.
- The respawn block (Regenerating Ore Veins' regenerator): the aim passes
through it unless sneaking (mixin, the pack's first), so ore behind it can be
mined; much fainter glass through KubeJS assets. Self-test
regenerator_lets_the_aim_through casts a real ray.
- 31 lines (67 species) with no matching island biome, or no spawn data
(Rotom), get rare homes in fitting zones (world/zones.json -> homeless).
Existing spawns and guardians don't change. JEI data and quests regenerated.
- surface_nodes_lie_in_the_ground checks the node's centre column: a wider
node's edge can lie under a tree or a slope.
- Roadmap: every implemented Pokemon obtainable; Iris and Complementary
Reimagined as the default shader.
Self-tests and the island check pass.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Adrian, 2026-11-09, after testing: he likes having both drop pages, but they
should look alike. Our JEI pages now use Cobblemon Info's look: its dark
panel and border, header with icon, title, accent tag and divider, its text
colours and spacing. Long text wraps instead of being cut off (a zone's
levels were lost). Shorter page names (Island Drops, Boss Rewards, Ore
Veins, Pasture Finds), since JEI cut the long title too. The line about the
Drop Synthesizer is gone; its core is the page's catalyst.
Roadmap Phase 9: every implemented Pokemon must be obtainable without
commands, even if rarely or through crafting. 95 of 905 implemented species
aren't reachable by a wild spawn or by evolving a wild line today. The
roster-size default changes to match.
Self-tests pass (drop_sources_match_the_server, jei_pages_build).
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Bosses (Adrian, 2026-11-02: Eternatus too small and too easy; guardians way
bigger and tougher; only defensive stats up; no attack takes more than 25 %):
- Guardians scale to about 8 blocks tall (1.5x-12x), Eternatus to 15 blocks
(2.5x, was 0.2x). Cave guardians look for a spot with room above them.
Bosses already in a world grow on the next check outside battle.
- Perfect IVs and 170 EVs each in HP, Defense and Sp. Def, nothing offensive.
- The Guardian's Ward, a Showdown-only held item (held_items/guardiansward.js)
handed to every boss by a HeldItemProvider: Defense and Sp. Def x2 while
defending, and one attack (all hits together) takes at most 25 % of max HP.
- Area attacks that start at the boss reach half its width further.
Machines (Adrian, 2026-11-02): a working core is active: it glows, its front
animates (flickering fire on the furnace core, pulsing emblems elsewhere), and
particles show in the chamber and at the core (client side). The Pokemon
inside flinches about every 15 s (red flash, Cobblemon's hit sound, no damage).
Roadmap Phase 8: every item that can drop gets a JEI page naming its sources.
Self-tests: practice_bosses_spawn checks size and training,
boss_takes_a_quarter_per_attack runs a real battle (each Lv 100 Bullet Seed
takes exactly a quarter), heat_core_cooks_with_hoppers checks the active state
and the flinch. Self-tests and the island check pass.
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>
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>