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>
- tools/quests.py writes pack/config/ftbquests/quests/ in FTB Quests 2101's
format (data.snbt, chapters/*.snbt, texts in lang/en_us.snbt) with ids
derived from the YAML names, so progress survives regeneration. Flexible
progression, no lock icons, no rewards (Adrian, 2026-11-03). tools/build.py
runs it.
- docs/quests.yaml: 18 chapters, 74 quests. Getting Started; one chapter per
zone and the End from a zone template (reach it, catch three of its
Pokemon, mine its ores, beat its guardian) plus chapter extras (Mire
Waders, Eyes of Ender, Eternatus); Pokemon Machines; Base and Jobs.
- Node positions: --pull reads them from an FTB Quests folder into the
layout block (only moved nodes); tools/prism_instance.py pulls from the
instance before each sync and rebuilds if something moved.
- The pack's own events as hidden advancements (cobblesurvival:events/...),
granted by QuestEvents: zone reached, guardian beaten, machine filled, End
boss beaten.
- Self-tests quest_book_loads and quest_events_mark_zones; the guardian and
furnace tests check their events. Self-tests and island check pass.
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>