Add executive summary and ability migration matrix; finalize evidence index, runtime validation plan, and Phase 1 handoff. Co-authored-by: Cursor <cursoragent@cursor.com>
12 KiB
12 KiB
13 — Unknowns and Runtime Questions
Status: Draft
- Scope: Unresolved questions after Phase 1 static archaeology (Batches 1–5). Static defects are recorded; runtime validation is planned but not executed.
- Inspection method: Consolidation through Pass 11 synthesis.
- Evidence classifications used: Observed Implementation, Documented Intent, Observed Runtime Behavior, Inferred, Unknown.
- Tool or visibility limitations: Semantic Search unavailable; AnimGraph transition DSL empty; Sphere CDO collision unreadable; CustomEvent Reliability unreadable; no PIE in Phase 1.
- Last updated: 2026-07-16
- Current phase: Phase 1 — Static Architecture (complete); runtime validation deferred
- Last completed pass: Pass 11 (Batch 5 synthesis)
- Next pass expected to contribute: Phase 2A runtime-baseline when explicitly authorized
Draft tracking
Completed sections
- Batch 1–4D resolutions (Passes 0–10)
- Pass 11: bounded runtime validation plan (groups 1–12)
- Static vs runtime boundary clarified
Pending sections
- All runtime test execution (not authorized in Phase 1)
- Manual Editor notify trigger times / ABP Death pins / sphere GenerateOverlapEvents
Evidence still required
- All rows in Runtime validation plan below
- FCanUseMana implementation body detail
- Client_Charge numeric timeline details
Why Draft remains
Runtime execution has not begun. Static scope for Phase 1 unknowns is fully inventoried.
Static vs runtime boundary
| Category | Examples | Phase 1 status |
|---|---|---|
| Confirmed static defects | Enemy chase missing; GetASC nullptr; AddGold unimplemented; Cleric 004 mana bypass | Closed as static findings |
| Active but Unverified connected paths | Overlay bars; EffectActor apply; session host/find | Require runtime |
| Unknown — Tool Limitation | CustomEvent Reliability; montage notify times | Manual Editor or MCP gap |
| Design decisions | Wizard orphan intent; whirlwind; Gunslinger kit | Defer pending design |
Do not treat runtime questions as confirmed defects until tested.
Resolved in prior passes (summary)
| Pass/Batch | Examples resolved statically |
|---|---|
| Batch 4D | Sessions in PC_MainMenu not GI; OSS INI Missing; char-select spawn; UpdatePlayerHUD/AddGold unimplemented; EffectActor authority risk; Overlay Health/Mana only |
| Pass 9 | Chase/attack Implementation Missing independent of GetASC |
| Pass 8 | UseAbility* callers = AN_Ability_*; AN_AttackComplete cleanup; montage pins unwired |
| Pass 7 | Dual resource boundary; no GA grant/activate; orphan default GEs |
| Pass 6 | Per-character ability statuses |
Full tables remain in docs 02–12.
Confirmed static defects with runtime questions
| Confirmed finding | Issue | Runtime question |
|---|---|---|
| Chase/attack Implementation Missing | Existing Baseline Defect | Confirm idle forever when possessed |
| No navmesh in Test01 | External Dependency Missing (secondary) | Would MoveTo work after mesh bake alone? |
| AutoPossessAI PlacedInWorld | Possession Configuration Conflict for spawned enemies | Do spawners create uncontrolled pawns? |
| ABP SetIsDead(false) | Connected but Incomplete | Death state ever entered? |
| No enemy damage reception | Existing Baseline Defect | Player hits show nothing? |
| Enemy GetASC nullptr | Incomplete Refactor | EffectActor on enemy destroys loot without heal? |
| UpdatePlayerHUD unimplemented | Incomplete Refactor | Does Server_UpdateHUD no-op? |
| AddGold unimplemented | Incomplete Refactor | Gold SFX+destroy without score? |
| EffectActor no authority | Authority Risk | Client/server double-destroy or missed GE? |
| JoinSession no OnSuccess pin | Partial | Does join travel occur? |
| OnlineSubsystem INI Missing | Missing | LAN/Steam sessions fail silently? |
| Char-select server-only create | Partial | Remote clients stuck without pawn UI? |
| Orphan default GEs / dual resources | Incomplete Refactor | Spawn Health/Mana vs Overlay |
| Montage completion pins unwired | Networking Risk | Interrupt leaves CurrentlyAttacking stuck? |
| Cleric 004 mana bypass + empty SpawnActor | Existing Baseline Defect | Confirm free cast + no projectile |
Runtime validation plan (do not execute in Phase 1)
For each test: distinguish PIE, Listen-server, Dedicated-server, Two-client, Standalone, Manual Editor.
1. Player attributes and HUD
| Test | Static prerequisite | Setup | Observation | Pass condition | Failure implication | Mode |
|---|---|---|---|---|---|---|
| Spawn ASC Init values | Dual SoT documented | Standalone NewGame→Test01→select Paladin | Overlay Health/Mana at spawn | Match native Init (75/100, 25/50) or documented policy | Orphan GE / Init mismatch | Standalone / PIE |
| Potion updates Overlay | EffectActor path | Overlap HealthPotion | Overlay Health rises +25 | ASC Health changed; bar updates | Overlay or apply broken | PIE |
| Combat vs potion divergence | Dual resources | Take legacy damage then potion | DEPRECATED vs ASC values | Divergence documented or SoT enforced | Confirms P0 dual-resource risk | PIE |
2. Ability authority and replication
| Test | Static prerequisite | Setup | Observation | Pass condition | Failure implication | Mode |
|---|---|---|---|---|---|---|
| Amazonian 001 listen-server | Implemented path | Host+client; Amazonian melee | Damage Authority; montage both | Authority damage once; clients see montage | Authority/replication defect | Listen-server + Two-client |
| Wizard stub | Stub | Activate Ability 001 | PrintString / no combat | Stub only | Unexpected child override | PIE |
3. Animation callback execution
| Test | Static prerequisite | Setup | Observation | Pass condition | Failure implication | Mode |
|---|---|---|---|---|---|---|
| AN_Ability_001 fires UseAbility | AN wiring | Paladin/Amazonian 001 | Hit window applies damage | Damage at notify time | Notify not evaluated on server | PIE / Listen-server |
| Cleric 001 dead receiver | Unimplemented UseAbility001 | Cleric 001 | Montage plays; no hit | Partial confirmed | Unexpected hit path | PIE |
4. Ability interruption and cleanup
| Test | Static prerequisite | Setup | Observation | Pass condition | Failure implication | Mode |
|---|---|---|---|---|---|---|
| Interrupt mid-montage | Pins unwired | Cancel/stun/move cancel mid-001 | CurrentlyAttacking state | Clears or stuck documented | P1 cleanup risk confirmed | PIE |
| AN_AttackComplete path | Connected notify | Complete full montage | CurrentlyAttacking false | Lockout released | Cleanup broken even on complete | PIE |
5. Player damage and death
| Test | Static prerequisite | Setup | Observation | Pass condition | Failure implication | Mode |
|---|---|---|---|---|---|---|
| Amazonian AnyDamage death | Partial death path | Reduce health to ≤0 | PlayerDeath; ABP Death | Death reached | Death unreachable | PIE |
| Paladin lethal path | Inherited death | Apply lethal damage source | Death or no-op | Path documented | Missing inbound damage | PIE |
6. Enemy ASC compatibility
| Test | Static prerequisite | Setup | Observation | Pass condition | Failure implication | Mode |
|---|---|---|---|---|---|---|
| Potion on enemy | GetASC nullptr | Overlap potion on skeleton | GE apply + destroy | Early-out no heal; actor may destroy | Confirms destroy-without-heal | PIE |
| Direct enemy ASC Health | ASC on self | Inspect ASC after spawn | Health Init present | Component alive despite GetASC defect | ASC missing entirely | PIE / Manual Editor |
7. Enemy damage reception and death
| Test | Static prerequisite | Setup | Observation | Pass condition | Failure implication | Mode |
|---|---|---|---|---|---|---|
| Player hit skeleton | No ReceiveAnyDamage | Amazonian 001 on skeleton | Health/death response | No health change (expected today) | Unexpected consumer found | PIE |
| IsDead forced false | ABP Update | Force IsDead true then tick | Death state | Forced false prevents Death | Or Death somehow reachable | PIE / Manual Editor |
| AIController possession | PlacedInWorld | PIE possess check | Controller class | Possessed by AIController | Unpossessed | PIE |
8. Pickup authority and replication
| Test | Static prerequisite | Setup | Observation | Pass condition | Failure implication | Mode |
|---|---|---|---|---|---|---|
| EffectActor listen-server | Authority Risk | Host+client overlap potion | GE apply count; destroy | Single authoritative apply | Double apply/destroy | Listen-server + Two-client |
| Gold authority | Authority gated | Overlap gold | SFX+destroy; AddGold | No score change (unimplemented) | Unexpected score store | PIE |
9. Character-selection networking
| Test | Static prerequisite | Setup | Observation | Pass condition | Failure implication | Mode |
|---|---|---|---|---|---|---|
| Remote client select UI | Server-only create | Listen-server two clients | Widget on client | Client has UI and can spawn | Client stuck — P1 confirmed | Listen-server + Two-client |
| Gunslinger absence | Not in UI | Open select | Class buttons | No Gunslinger | Unexpected button | Standalone |
10. Session create/find/join/travel/destroy
| Test | Static prerequisite | Setup | Observation | Pass condition | Failure implication | Mode |
|---|---|---|---|---|---|---|
| Host create | Partial host path | HostGame | Session + travel Dev_Island | Lands listen-server | OSS/config failure | Listen-server |
| Find sessions | Find connected | Refresh | Slot list | Rows appear | Find broken | Two-client |
| Join travel | No OnSuccess pin | JoinGame | Travel to host map | Client travels | Join travel broken | Two-client |
| Destroy/leave | Missing DestroySession | Return MainMenu mid-session | Session state | Document leak/orphan session | Confirms Missing cleanup | Listen-server |
11. Gold and currency
| Test | Static prerequisite | Setup | Observation | Pass condition | Failure implication | Mode |
|---|---|---|---|---|---|---|
| AddGold no-op | Unimplemented | Pick gold | Score/UI | No persistent gold | Unexpected implementation elsewhere | PIE |
| No stamina pickup | Negative inventory | Search/play | No stamina collectible | Confirmed Missing | Asset found | Standalone |
12. Respawn and HUD recreation
| Test | Static prerequisite | Setup | Observation | Pass condition | Failure implication | Mode |
|---|---|---|---|---|---|---|
| Respawn Overlay | Server_RespawnPlayer | Die → respawn | Overlay bars | HUD recreated; attrs reset per policy | HUD/attr stuck | PIE |
| Possessed Server_UpdateHUD | Delay 0.4 path | Possess | Legacy HUD call | No-op (expected) | Unexpected UpdatePlayerHUD impl | PIE |
Requires Manual Editor Inspection
| Question | Priority |
|---|---|
| AnimNotify trigger times / track indices | Medium |
| Montage section / blend / root-motion flags | Low |
| ABP_Skeleton Death transition pin wiring | Low |
| Sphere GenerateOverlapEvents / collision profile on EffectActors | Medium |
| FCanUseMana function body | Medium |
| CommonUI content usage | Low |
Priority order for later verification
- Phase 2A design: canonical attribute/authority/cleanup contracts (do not skip)
- Controlled PIE — menu→Test01 spawn, Overlay, potion GE, gold no-op, enemy idle, Amazonian 001
- Interrupt cleanup + dual-resource divergence
- Multiplayer PIE — host Dev_Island, join travel, remote char-select, EffectActor authority
- Manual Editor — collision templates, AnimGraph pins, notify times
Do not begin Phase 2 implementation until Phase 2A contracts are approved.