Files
realms-in-ruin-dev/Documentation/Archaeology/13-Unknowns-And-RuntimeQuestions.md
T
tedwardsandCursor 0d045d142f Document Batch 2–3 Phase 1 archaeology: shared player-base architecture and per-character ability inventories.
Captures Blueprint hierarchy, legacy ability/RPC paths, animation dependency seeds, and handoff state without modifying Unreal assets.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-07-16 20:29:10 -07:00

154 lines
8.1 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 Batches 13. Separates confirmed static findings from questions needing further Blueprint, runtime, or config inspection.
- **Inspection method:** Consolidation of Batches 13; Batch 3 resolved per-character ability path unknowns.
- **Evidence classifications used:** Observed Implementation, Documented Intent, Observed Runtime Behavior, Inferred, Unknown.
- **Tool or visibility limitations:** Semantic Search unavailable; CustomEvent FunctionFlags not readable; comment-box membership limited; no PIE this batch.
- **Last updated:** 2026-07-16
- **Current phase:** Phase 1 — Static Architecture
- **Last completed pass:** Pass 6 (Batch 3)
- **Next pass expected to contribute:** Batch 4 (Pass 4 / 7 / 8 / 9 — only when authorized)
## Draft tracking
### Completed sections
- Batch 1 unknowns grouped by verification method
- Batch 2 resolutions: WBP_PlayerHUD class; BP_PlayerState DefaultAttributes=None; legacy ability routing documented
- Batch 3 resolutions: per-character Ability 001004 connected paths; Wizard/Gunslinger stub confirmation; UseAbility* presence matrix
- Enemy ASC accessor defect still confirmed static
### Pending sections
- Frontend/session/enemy AI/animation unknowns (Batch 4)
- Runtime test procedures after static ability archaeology
### Evidence still required
- AnimNotify → UseAbility* wiring (Pass 8)
- Live ASC vs DEPRECATED HUD coexistence in PIE
- Enemy BP AI connected graphs (Pass 9)
- GE/cue referencer map (Pass 7)
---
## Resolved in Batch 2 (no longer Unknown)
| Question | Resolution | Classification | Doc |
|---|---|---|---|
| Is `WBP_PlayerHUD` a Widget or AHUD? | Parent is `RIRHUD`; AHUD Blueprint; `WBP_` name misleading | Observed Implementation | 03, 11 |
| Does `BP_PlayerState` assign DefaultAttributes GE? | CDO `defaultAttributesGameplayEffect` = **None** | Observed Implementation | 03, 06 |
| How are abilities routed/networked on base? | IA_Ability_* → Server_Ability_* stubs/overrides; Multicast FX helpers | Observed Implementation | 05, 08 |
---
## Resolved in Batch 3 (Pass 6)
| Question | Resolution | Classification | Doc |
|---|---|---|---|
| Full Ability 001004 paths per playable | Documented per character in tables | Observed Implementation | 05, 08 |
| Does Wizard implement Server_Ability_*? | No local implementations; inherit PrintString stubs | Observed Implementation | 05, 08 |
| Is Gunslinger data-only? | IsDataOnly=True; deps only base; inherited stubs | Observed Implementation | 05, 08 |
| Amazonian working melee path | Ability 001 Begin → Multicast montage → UseAbility001 Authority BoxOverlap ApplyDamage | Observed Implementation + Observed Runtime Behavior | 05 |
| Are UseAbility* still invoked? | Present and connected on Paladin 001/004, Amazonian 001, Cleric 002/004; caller of UseAbility* itself Unknown (likely AnimNotify) | Observed Implementation / Unknown caller | 05, 10 |
| Who calls PlayerDeath from Amazonian? | ReceiveAnyDamage → DEPRECATED_CurrentHealth ≤0 → PlayerDeath | Observed Implementation | 05, 08 |
| Parent calls on ability overrides? | Paladin/Amazonian/Cleric: **No** | Observed Implementation | 05 |
---
## Confirmed static defects with runtime questions
| Confirmed finding | Evidence classification | Issue classification | Exact evidence | Runtime question |
|---|---|---|---|---|
| Enemy ASC on self vs GetASC from PlayerState | Observed Implementation | Incomplete Refactor | RIRBaseEnemyCharacter.cpp; RIRBaseCharacter.cpp | Which systems fail when interface ASC lookup is null for enemies? |
| Dual HUD attribute paths (ASC Overlay vs DEPRECATED floats) | Observed Implementation | Incomplete Refactor | RIRHUD InitOverlay; BP Server_UpdateHUD | Do both run? Which drives visible bars in PIE? |
| DefaultAttributesGameplayEffect unused (C++ and BP_PlayerState=None) | Observed Implementation | Partially Implemented | RIRPlayerState.h; BP_PlayerState CDO | What sets initial Health/Mana at spawn? |
| Cleric Ability 004 SpawnActor Class empty + mana CanUse unwired | Observed Implementation | Existing Baseline Defect | Player_Cleric UseAbility004 / Begin | Does 004 appear to fire but do nothing in PIE? |
| Multi_SpawnParticle empty EmitterTemplate (Paladin 004, Cleric 002) | Observed Implementation | Partially Implemented | UseAbility graphs | Visible missing VFX only? |
---
## Requires Blueprint / animation inspection (remaining)
| Question | Why insufficient | Paths | Method | Priority | Dependency |
|---|---|---|---|---|---|
| Who calls UseAbility*? | Events connected; callers not in EventGraph | Character AnimMontages / AnimBP | Pass 8 notify walk | High | Pass 6 bodies done |
| Enemy chase/attack Blueprint logic | Structural only in Pass 3 | BP_EnemyCharacterBase, BP_Enemy_Skeleton, BPI_EnemyCharacter | Pass 9 connected graphs | High | Pass 3 structure |
| Do EffectActor children call ApplyEffectToTarget? | Native mechanism only | BP_HealthPotion etc. | Pass 10 | Medium | Batch 1 |
| Is CommonUI used by live content? | Plugin enabled; no native refs | /Game/_Main/UI | Widget parent inspection | Low | Batch 1 |
| Paladin Ability 002 block absorb | IsBlocking set; no damage absorb path traced | ABP_Paladin / PlayerHitCheck | Pass 8 + hit graphs | Medium | Pass 6 |
| Amazonian PerformingWhirlwind | Get without Set | Player_Amazonian | Search all graphs / macros | Low | Pass 6 |
---
## Requires runtime inspection / PIE
| Question | Why | Method | Priority |
|---|---|---|---|
| Enemy ASC accessor impact | Static mismatch; need consumers | PIE + AbilitySystemInspector | High |
| Default attribute values after spawn | No apply path found | PIE attribute values after possess | High |
| Dual HUD coexistence | Two static paths | Observe both overlay and UpdatePlayerHUD | Medium |
| Session create/find/join | Latent online ops | Network test after Pass 4 | Medium |
| Ability Server RPC reliability / prediction feel | Flags unread | Multi-client ability press | Medium |
| Wizard BeginPlay skipping Parent | May leave InitialSpawnLocation unset | Spawn Wizard → death/respawn location | Medium |
---
## Requires broader filesystem/configuration inspection
| Question | Search | Priority |
|---|---|---|
| OnlineSubsystem / Steam settings location | Config/**, Plugins/**/Config, Saved/Config | Medium |
| GameInstance class assignment outside DefaultEngine sample | INI + referencers of GI_Dungeoneer | Medium |
---
## Requires manual editor inspection
| Question | Why | Paths |
|---|---|---|
| Montage notify timings | Registry tags limited | Character montages |
| DEPRECATED comment-box visual regions | find_nodes Comment returned [] | BP_PlayerCharacterBase / children EventGraphs |
| CustomEvent Reliable vs Unreliable | ObjectTools on node failed | Server_/Multicast_ events |
---
## Tool and environment limitations
| Item | Detail | Impact |
|---|---|---|
| Semantic Search | HTTP 401 / no API key | No semantic discovery |
| CustomEvent FunctionFlags | list_properties failed on event nodes | RPC reliability Unknown |
| Comment boxes | find_nodes(title=Comment) empty | Visual DEPRECATED regions Unknown |
| Git | Available (baseline commit exists) | Dirty-tree gate works |
| No PIE in Batch 3 | Constraint honored | Runtime questions deferred |
---
## Naming ambiguities
| Item | Status |
|---|---|
| Amazon vs Amazonian | Still open for GE folder naming (Pass 7) |
| WBP_PlayerHUD | **Resolved** — AHUD named like a widget |
---
## Conflicting evidence
| Conflict | Current resolution | Remaining |
|---|---|---|
| Enemy ASC ownership vs accessor | Confirmed static defect | PIE impact |
| Default attributes present vs unused | BP_PlayerState=None; C++ unused; character GEs orphaned | Who applies GEs if anyone |
| URIRGameplayAbility "all abilities" vs legacy BP | Legacy active; GA scaffolding only | Pass 7 reconfirm |
| Dual HUD systems | Both connected | PIE which is authoritative for bars |
---
## Priority order for later verification
1. Batch 4 Pass 7 — GE/cue/tag inventory
2. Pass 8 — AnimNotify → UseAbility wiring
3. Pass 9 — enemy Blueprint AI
4. Pass 4 — sessions / frontend
5. Controlled PIE for ASC, attributes, dual HUD, enemy GetASC, Cleric 004 / Wizard spawn