Runtime: pending
Gameplay relevance: persistence only
MNEHMOS - FNV RESEARCH
Encounter-zone work is split at the evidence boundary: persistence/rebinding is one subsystem slice; gameplay consumption is a separate open investigation.
H1 SPLIT
A successful runtime test of ExtraEncounterZone +0x0C will validate save/load rebinding only. It will not validate encounter selection, leveled lists, actor levels, or spawn generation.
Runtime: pending
Gameplay relevance: persistence only
Runtime: not ready
Gameplay relevance: encounter-zone consumption and spawning
The static chain is recovered from the plaintext GOG analysis artifact. The Steam runtime remains the verification target.
serialized zone ID
-> 0x00428150 ExtraDataList::LoadGame
-> extra-data type 0x74
-> 0x00432E60 ExtraEncounterZone construction/reuse
-> 0x0040FF60 BaseExtraList::AddExtra candidate
-> 0x008648A0 form-ID/load-buffer path candidate
-> 0x004839C0 opaque form/handle lookup
-> TESForm -> BGSEncounterZone cast
-> ExtraEncounterZone +0x0C
-> 0x00416BE0 rebind or remove on failure
The receiver is a BaseExtraList/ExtraDataList load context with a save-game buffer. The cast result is stored at the extra-data object's +0x0C; 0x00428150 returns void.
No evidence from this chain reaches CELL encounter selection, leveled-list evaluation, actor level selection, or spawn generation. The exact 0x004839C0 return semantics remain open.
With an available ECZN, the saved identifier should resolve to a non-null BGSEncounterZone* in +0x0C. With the ECZN unavailable, lookup/cast should fail and the existing cleanup path should remove the extra data. The test is deliberately a persistence test.
OPEN INVESTIGATION
Find the separate path that turns a CELL/reference context into an effective encounter zone, reads zone properties, selects leveled actors/lists, and makes a spawn decision.
BGSEncounterZone readers ---------+
+--> shared consumer/context
spawn and leveled-list callers ----+
Search from both ends. On the ECZN side, follow non-save/load reads of BGSEncounterZone +0x18 and uses of ExtraEncounterZone +0x0C. On the spawn side, work backward from leveled-actor/list selection and actor-level functions. Promote names only when the evidence supports them.
First pass: form-type and string anchors identify the search frontier, but the recovered artifacts do not yet expose a verified ECZN-reader/leveled-selection intersection. This is an open coverage gap, not evidence that no gameplay consumer exists.
Known ECZN record parsing at 0x00525D40, owner-form initialization at 0x00525F00, worldspace initialization at 0x005845E0, and the 0x00432E90 comparator are useful anchors, but none is currently a proven gameplay-spawn consumer.
The detailed correction ledger remains available in the original H1 source notebook ->.
H1-SL save/load lifecycle -> runtime verification
H1-GP gameplay consumption -> static discovery
BUG-001 VATS projectile 0% -> causal runtime experiment