5.0 KiB
FFGO CW resource reference, 2026-10-26
The updated reference executable was inspected offline. It was not launched,
and its saves/configuration were not modified. Its SHA256 is
235f5c3567f281cc99613ed84694ef23f492c15298dc868a8e78e6529f0cda86.
Reproducible extraction
tools/export_ffgo_embedded_resources.py --binary <reference executable> --output <evidence directory> extracts bounded gzip members and decodes the
Excel resource through the executable's own generated protobuf descriptors.
It requires Python protobuf and the sibling dump_embedded_proto.py.
No executable code from the reference is run.
Evidence is retained under battle_diagnostics/ffgo-20261026/:
resource-manifest.json: binary identity, descriptor identities, exact gzip offsets/lengths, compressed and uncompressed hashes.excel-data.json: full decodedexcel.ExcelData, including NPC monsters, challenge/Peak data, activities, shops and CW tables.gridfight-excel-data.json: CW-only subset, 72 tables.gridfight-custom-data.json: 1,253 reference-authored config files and two action schemas. These are not original Client level JSON.resource-inventory.json: table counts and the exact currently blocked Tea Break event/options/custom rule.challenge_peak_extra_data.json: separate embedded JSON supplement, 11 groups/44 Peak entries, file offset0x114c212, 9,101 decoded bytes.load-excel.asm: static loader evidence.LoadExcelat RVA0xb79160reads embeddedresources/excel.gz, creates a gzip reader, reads all bytes, and unmarshals the protobuf into the global Excel data object.
The Excel gzip member starts at file offset 0x11c9fef, compressed size
962,600 bytes, uncompressed size 6,008,625. The CW custom JSON gzip member
starts at 0x1153105, compressed size 25,684, uncompressed size 267,251.
The extractor preserves protobuf int64 values as decimal strings in JSON.
New usable CW evidence
The extracted tables include 38 Bonfire events, 72 Bonfire options, 3 Bonfire heal rows, 110 bonus pools, 1,120 basic bonuses, 480 combination bonuses, 532 Orbs, 493 node templates/routes, 629 special avatars and 411 augments. This supplies the previously missing reference bonus-pool recipes. It does not by itself establish current Client response bindings or packet order.
For the blocked event 10200601, the reference Excel row states PetPalID 2
and DialogID 1020060101. Its option 1 states:
- JsonPath:
Config/Level/GridFight/petpal/bonfire/GridFightBonfire102006011.json - DialogID:
1020060102 - EffectParamList:
[40] - OptionShowType:
None
The corresponding reference-authored custom rule is
petpal/bonfire/GridFightBonfire102006011.json: TeaBreakOption, immediate
SetRule action, rule name PetPalStarDown, value #1 (the parameter 40).
It must not be replaced with a generic healing reward. Separate Bonfire heal
rows specify 20 for each of chapters 1, 2 and 3.
Basic bonus, random pool and combination bonus IDs are separate lookup namespaces. For example basic BonusID 1 is Gold with amount parameter 1; there is no random pool row with RandomBonusID 1. The existing captured Orb 197 points to BonusID 1, so trying to resolve every Orb through the random pool table would fail for this legitimate direct basic bonus.
Saved state is supporting evidence, not reusable configuration
The reference's external data-in-game.json contains an active season 2,
route 1800 run at node 1-2, 23 pregenerated nodes and one completed battle.
Its first two nodes retain per-monster drop_orb_ids, and its saved effect
state contains OrbsOpened = 5. This shows the reference persists those
concepts, but does not capture the packets that awarded/opened them.
That run must not replace this project's route 2801 run or player save.
No avatar snapshots or player inventory from the reference were imported.
The reference's static route 2801 chapter 1 section 5 points to node template
280115, whose row is Monster, StageID 70000008, ParamList [902], penalty
92204 and basic gold 10. The captured live Client run is instead a Tea Break
with event 10200601 at that position. A PetPal/dynamic node override may explain
this; static route data must not overwrite the active run. The reference does
explicitly link PetPal 2 to effect 102006, whose parameter is event 10200601.
Compatibility and limits
The reference supports multiple Client revision dispatches; a table's presence in its embedded Excel is not independent proof that it matches the connected Client's revision. Compare relevant rows with captured Client data and retain this binary's provenance before importing a compatible subset. Resolve CmdIDs through the current named command table; never transplant historical numbers.
The custom files label 822 entries Implemented, 42 Partial, 116
NotImplemented, 93 BattleOnly, 129 Code and 51 Excel. These are labels
inside the reference's own authored data, not verification that those
features work in this project or even a runtime verification of the reference.
Gameplay integration and Client verification remain separate work.