Files
realms-in-ruin-dev/Documentation/Archaeology/13-Unknowns-And-RuntimeQuestions.md
T
tedwardsandCursor aa0058a018 Document Pass 11 Phase 1 synthesis and close static archaeology.
Add executive summary and ability migration matrix; finalize evidence index, runtime validation plan, and Phase 1 handoff.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-07-16 23:40:52 -07:00

200 lines
12 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# 13 — Unknowns and Runtime Questions
**Status: Draft**
- **Scope:** Unresolved questions after Phase 1 static archaeology (Batches 15). 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 14D resolutions (Passes 010)
- Pass 11: bounded runtime validation plan (groups 112)
- 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.**