- 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>
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-11-02): the cores should be transparent so the Pokémon
shows; the Pokémon's death sound when a sacrifice is made or a rebirth
ends; then start the next phase (Phase 6 approved).
- Cores drawn as a solid frame around tinted glass, rendered
translucent, no occlusion (tools/machine_assets.py).
- The shown Pokémon plays Cobblemon's faint animation and its cry
pitched down (Cobblemon has no death sounds), vanishes after 2 s; a
reborn Pokémon then shows in its new form. Tests check the new form.
- Phase 7 decisions (every guardian gets area attacks, Groudon for the
Basalt Furnace, Giratina replaces the Ender Dragon, dying or leaving
the arena loses) and design in docs/design.md; README status.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
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>