Add executive summary and ability migration matrix; finalize evidence index, runtime validation plan, and Phase 1 handoff. Co-authored-by: Cursor <cursoragent@cursor.com>
200 lines
12 KiB
Markdown
200 lines
12 KiB
Markdown
# 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.**
|