# 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 1. Phase 2A design: canonical attribute/authority/cleanup contracts (**do not skip**) 2. Controlled PIE — menu→Test01 spawn, Overlay, potion GE, gold no-op, enemy idle, Amazonian 001 3. Interrupt cleanup + dual-resource divergence 4. Multiplayer PIE — host Dev_Island, join travel, remote char-select, EffectActor authority 5. Manual Editor — collision templates, AnimGraph pins, notify times **Do not begin Phase 2 implementation until Phase 2A contracts are approved.**