authored-breeding-recipes #3

Merged
brian merged 4 commits from authored-breeding-recipes into main 2026-08-15 19:10:13 +00:00
Owner
No description provided.
read_table assumed every property in the UDataTable object's own block was a
single object index. That holds for a plain DataTable, whose only present
property is RowStruct, but DT_PalMonsterParameter is a CompositeDataTable and
leads with ParentTables -- an array. Reading that as a bare index put every
later offset out by the length of the array, so the composite failed to decode
at all ("consumed 20 bytes but export is 186033").

Look the class up from the export's class import and walk the real schema
instead, skipping each present property by its own type.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
IgnoreCombi looked like the breeding gate and is not one. Clearing it was
proven ineffective in game five times: from Lua, from a pak, mounted early via
~mods and late via ~WorkshopMods. The game reads the flag once while building
its breeding pool into UPalCombiMonsterParameter -- a native class with no
reflected properties and no functions -- and never consults the row again. The
loaded table reports the flag clear while breeding carries on unchanged.

DT_PalCombiUnique is a different code path and it works. It maps a parent pair
to a specific child and overrides the ladder for Pals the ladder excludes:
Frostallion + Helzephyr produces Frostallion Noct in an unmodded game, and
Frostallion Noct carries IgnoreCombi. Confirmed by breeding: an authored row
hatched a Jetragon.

So the mod authors 19 pairings for the Pals the formula cannot reach, in
recipes.py, tiered by how the player is meant to arrive at them. tools/closure.py
proves the result: seeds from vanilla egg pools, then ordinary breeding, then
the recipes, to a fixpoint -- and build_mod.py refuses to write a pak unless all
289 counted Pals fall inside it. The check also models area access, since the
World Tree transporter needs a bred BOSS_KingWhale_otomo in the party, so a gate
can never be opened by something living behind it.

World egg pools come out entirely. Vanilla's fourteen spawners already hatch 237
Pals, which is every seed the sheet needs, and seeding the legendaries into egg
pools let a lucky egg skip the whole tree. That also removes the one route never
confirmed in game and the only part of the build that rewrote whole packages.

The per-Pal config goes with the two routes it drove.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Read-only, disabled by default, and kept for the same reason the other probes
are: it is the thing that answered the question, and the next surprise in this
area will want it again.

It reports whether the loaded Pal table still carries the flag we wrote, then
dumps the functions and properties of PalCombiMonsterParameter,
PalMasterDataTables and friends. That dump is the finding: the combi class has
no reflected members at all, so the pool is native and no data edit reaches it.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
The docs still promised per-Pal switches in a TOML that is gone, an eggs pak
that no longer ships, and breeding by a flag that never worked.

README: Configuration is now the recipe sheet and the closure check, with the
tier rules and the World Tree access gate written down. The egg-placement
chapter goes with the feature it documented. Confirmed in-game lists what was
actually hatched, and says plainly that sixteen of the recipes are verified in
the pak but not yet in an incubator.

INSTALL.md: explains the three routes a player has -- vanilla eggs seed it,
ordinary breeding reaches 270, authored recipes finish the last 21 -- instead
of describing options they cannot edit.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
brian merged commit 0262721e20 into main 2026-08-15 19:10:13 +00:00
brian deleted branch authored-breeding-recipes 2026-08-15 19:10:13 +00:00
Sign in to join this conversation.
No reviewers
No labels
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set

Reference
brian/PacifistPal!3
No description provided.