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>
This commit is contained in:
@@ -5,39 +5,56 @@
|
||||
- **Scope:** Compact cross-model index of material findings. Full analysis lives in linked docs.
|
||||
- **Last updated:** 2026-07-16
|
||||
- **Current phase:** Phase 1 — Static Architecture
|
||||
- **Last completed pass:** Pass 2 (Batch 1)
|
||||
- **Last completed pass:** Pass 6 (Batch 3)
|
||||
- **Next pass expected to contribute:** Every batch
|
||||
|
||||
## Draft tracking
|
||||
|
||||
### Completed sections
|
||||
- Batch 1 evidence rows (modules, native hierarchy, GAS ownership, plugins, config)
|
||||
- Batch 2 evidence rows (BP hierarchy, legacy abilities, WBP_PlayerHUD, BP_PlayerState)
|
||||
- Batch 3 evidence rows (per-character Ability 001–004 paths, RPCs, resources, montages)
|
||||
|
||||
### Pending sections
|
||||
- Blueprint graph/RPC/ability rows (Batch 2+)
|
||||
- GE/cue referencer rows (Pass 7)
|
||||
- AnimNotify → UseAbility rows (Pass 8)
|
||||
|
||||
---
|
||||
|
||||
| System | Subsystem | Finding | Evidence type | Classification | Exact source | Exact symbol | Blueprint path | Graph | Node/event | Asset/config | Doc | Confidence | Remaining verification |
|
||||
|--------|-----------|---------|---------------|----------------|--------------|--------------|----------------|-------|------------|--------------|-----|------------|------------------------|
|
||||
| Module | Descriptor | Single runtime module REALMSINRUIN; Engine 5.8 | Observed Implementation | Intended Behavior | REALMSINRUIN_DEV.uproject | Modules[REALMSINRUIN] | — | — | — | REALMSINRUIN_DEV.uproject | 02 | High | — |
|
||||
| Module | Build | Public deps include GAS + EnhancedInput; no UMG | Observed Implementation | Technical Debt | REALMSINRUIN.Build.cs | PublicDependencyModuleNames | — | — | — | — | 02 | High | Confirm link |
|
||||
| Plugins | Project | AdvancedSessions enabled under Plugins/ | Observed Implementation | Intended Behavior | AdvancedSessions.uplugin | AdvancedSessions module | — | — | — | Plugins/AdvancedSessions | 02,11 | High | Live BP usage Batch 4 |
|
||||
| Plugins | Project | AdvancedSteamSessions enabled | Observed Implementation | Intended Behavior | AdvancedSteamSessions.uplugin | — | — | — | — | Plugins/AdvancedSteamSessions | 02,11 | High | Steam config location |
|
||||
| Config | Maps | GameDefaultMap=MainMenu; EditorStartupMap=Test01 | Observed Implementation | Intended Behavior | DefaultEngine.ini | GameMapsSettings | — | — | — | Config/DefaultEngine.ini | 02 | High | Per-map GameMode |
|
||||
| Config | Redirects | GAS* classes redirected to RIR* | Observed Implementation | Incomplete Refactor | DefaultEngine.ini | CoreRedirects | — | — | — | Config/DefaultEngine.ini | 02,03 | High | — |
|
||||
| Config | Tags | State/Disable/Effect project tags | Observed Implementation | Partially Implemented | DefaultGameplayTags.ini | GameplayTagList | — | — | — | Config/DefaultGameplayTags.ini | 02,06 | High | Referencers Pass 7 |
|
||||
| Config | Input | Enhanced Input defaults + legacy Jump/Move axes | Observed Implementation | Partially Implemented | DefaultInput.ini | DefaultPlayerInputClass | — | — | — | Config/DefaultInput.ini | 02 | High | Ability IMCs |
|
||||
| Character | Player ASC | ASC owned by PlayerState; Mixed replication | Observed Implementation | Intended Behavior | RIRPlayerState.cpp | CreateDefaultSubobject ASC | BP_PlayerState (seed) | — | — | — | 03,06,08 | High | Default GE apply |
|
||||
| Character | Player init | InitAbilityActorInfo on PossessedBy/OnRep | Observed Implementation | Intended Behavior | RIRPlayerCharacter.cpp | InitAbilityActorInfo | — | — | — | — | 03,06 | High | Runtime HUD init |
|
||||
| Character | Enemy ASC | ASC on enemy; Minimal replication | Observed Implementation | Intended Behavior | RIRBaseEnemyCharacter.cpp | CreateDefaultSubobject ASC | BP_Enemy_* (seed) | — | — | — | 03,06,09 | High | Interface GetASC |
|
||||
| Character | Player ASC | ASC owned by PlayerState; Mixed replication | Observed Implementation | Intended Behavior | RIRPlayerState.cpp | CreateDefaultSubobject ASC | BP_PlayerState | — | — | — | 03,06,08 | High | Runtime values |
|
||||
| Character | GetASC | Base GetASC reads PlayerState only | Observed Implementation | Incomplete Refactor | RIRBaseCharacter.cpp | GetAbilitySystemComponent | — | — | — | — | 03,06,13 | High | PIE on enemy |
|
||||
| GAS | Ability class | URIRGameplayAbility empty; no subclasses | Observed Implementation | Partially Implemented | RIRGameplayAbility.* | InstancingPolicy | — | — | — | — | 03,06 | High | Reconfirm GA assets Pass 7 |
|
||||
| GAS | Attributes | Health/Mana/Stamina set; ctor inits H/M only | Observed Implementation | Partially Implemented | RIRAttributeSet.* | InitHealth etc. | — | — | — | — | 03,06 | High | GE overrides |
|
||||
| GAS | Default GE prop | DefaultAttributesGameplayEffect unused in cpp | Observed Implementation | Partially Implemented | RIRPlayerState.h | DefaultAttributesGameplayEffect | BP_PlayerState | — | — | — | 03,06,13 | High | BP apply path |
|
||||
| Effects | Apply | EffectActor applies GE via ASC library | Observed Implementation | Partially Implemented | RIREffectActor.cpp | ApplyEffectToTarget | BP_HealthPotion etc. | — | — | — | 03,12 | High | Overlap graphs |
|
||||
| UI | HUD | InitOverlay from player init; attribute delegates | Observed Implementation | Partially Implemented | RIRHUD.cpp, OverlayWidgetController.cpp | InitOverlay, BindCallbacks | WBP_Overlay (seed) | — | — | — | 03,11 | High | Widget bindings |
|
||||
| UI | Delegates | Stamina delegates use Mana signature types | Observed Implementation | Technical Debt | OverlayWidgetController.h | OnStaminaChanged | — | — | — | — | 03,11 | High | — |
|
||||
| Enemy | AI native | No MoveTo/chase/attack in native | Observed Implementation | Existing Baseline Defect | RIRBaseEnemyCharacter.* | — | BP_Enemy_* | — | — | — | 09 | High | BP Pass 9 |
|
||||
| Framework | Seeds | GI_Dungeoneer, GM_Dungeoneer, GM_MainMenu | Observed Implementation | — | search_subclasses | — | those paths | — | — | — | 02,03 | High | BP internals |
|
||||
| Continuity | Editor | PIE=false; level Test01; sel Skeleton_C_1 | Observed Implementation | — | EditorApp/SceneTools | IsPIERunning | — | — | — | Test01 | 15 | High | — |
|
||||
| GAS | Ability class | URIRGameplayAbility empty; no subclasses | Observed Implementation | Partially Implemented | RIRGameplayAbility.* | InstancingPolicy | — | — | — | — | 03,06 | High | Pass 7 |
|
||||
| GAS | Default GE | BP_PlayerState DefaultAttributesGameplayEffect=None | Observed Implementation | Partially Implemented | ObjectTools CDO | defaultAttributesGameplayEffect | BP_PlayerState | — | — | — | 03,06,13 | High | Other apply sites |
|
||||
| GAS | Orphan GE | GE_Cleric/Wizard_DefaultAttributes unwired; 0 referencers | Observed Implementation | Present but Unconnected | AssetTools refs | — | Player_Cleric / Wizard | — | — | GE_*_DefaultAttributes | 06 | High | Pass 7 |
|
||||
| Ability | Input | IA_Ability_001–004 Started→Server_Ability_*_Begin | Observed Implementation | Intended Behavior | BlueprintTools | EnhancedInputAction | BP_PlayerCharacterBase | EventGraph | IA_Ability_* | IA_Ability_* | 05,08 | High | — |
|
||||
| Ability | Base stub | Server_Ability_*_Begin PrintString Override | Observed Implementation | Partially Implemented | get_connected_subgraph | PrintString | BP_PlayerCharacterBase | EventGraph | Server_Ability_001_Begin | — | 05 | High | — |
|
||||
| Ability | Paladin 001 | Begin montage + UseAbility001 Authority BoxOverlap ApplyDamage | Observed Implementation | Implemented | get_connected_subgraph | ApplyDamage | Player_Paladin | EventGraph | UseAbility001 | Ability001Montages | 05,08 | High | Notify caller Pass 8 |
|
||||
| Ability | Paladin 002 | Block state Begin/End; no ApplyDamage in Begin | Observed Implementation | Partial | get_connected_subgraph | IsBlocking | Player_Paladin | EventGraph | Server_Ability_002_* | — | 05 | High | Hit absorb Pass 8 |
|
||||
| Ability | Paladin 003 | Mana + ChargeTimeline + ChargeBox ApplyDamage | Observed Implementation | Implemented | get_connected_subgraph | ChargeBox | Player_Paladin | EventGraph | Charge / Client_Charge | — | 05 | High | — |
|
||||
| Ability | Paladin 004 | Mana + montage + SphereOverlap ApplyDamage; empty particle | Observed Implementation | Implemented / Partial FX | get_connected_subgraph | UseAbility004 | Player_Paladin | EventGraph | UseAbility004 | Paladin_Ability004_Montage | 05,10 | High | — |
|
||||
| Ability | Amazonian 001 | Same pattern as Paladin melee; known working runtime | Observed Implementation + Observed Runtime Behavior | Implemented | get_connected_subgraph | UseAbility001 | Player_Amazonian | EventGraph | Server_Ability_001_Begin | Amazon Attack montages | 05,08 | High | — |
|
||||
| Ability | Amazonian 002–004 | Inherited PrintString only | Observed Implementation | Stub | list_events | bIsImplemented | Player_Amazonian | — | — | — | 05 | High | — |
|
||||
| Ability | Amazonian death | AnyDamage → DEPRECATED_CurrentHealth → PlayerDeath | Observed Implementation | Partial (legacy health) | get_connected_subgraph | ReceiveAnyDamage | Player_Amazonian | EventGraph | ReceiveAnyDamage | — | 05 | High | — |
|
||||
| Ability | Cleric 001 | Montage only; no UseAbility001 | Observed Implementation | Partial | get_connected_subgraph | Multicast_PlayMontage | Player_Cleric | EventGraph | Server_Ability_001_Begin | — | 05 | High | — |
|
||||
| Ability | Cleric 002 | Heal Players via RecoverPlayerHealth; empty particle | Observed Implementation | Partial | get_connected_subgraph | UseAbility002 | Player_Cleric | EventGraph | UseAbility002 | — | 05 | High | — |
|
||||
| Ability | Cleric 003 | DivineCircle timer ConcentrateHandle ApplyDamage; End cleans | Observed Implementation | Implemented | get_connected_subgraph | ConcentrateHandle | Player_Cleric | EventGraph | Server_Ability_003_* | — | 05 | High | — |
|
||||
| Ability | Cleric 004 | Mana CanUse unwired; SpawnActor Class empty | Observed Implementation | Existing Baseline Defect | get_connected_subgraph | SpawnActor | Player_Cleric | EventGraph | UseAbility004 | BP_PlayerProjectile unwired | 05,13 | High | PIE |
|
||||
| Ability | Wizard | No Server_Ability_* / UseAbility*; inherit stubs | Observed Implementation | Stub | list_events + EventGraph | — | Player_Wizard | EventGraph | — | NS_Wizard_Ability001 unwired | 05,08 | High | — |
|
||||
| Ability | Gunslinger | IsDataOnly; only base deps; inherit stubs | Observed Implementation | Stub / Existing Baseline Defect | get_asset_tags | IsDataOnly | Player_Gunslinger | — | — | — | 05,08 | High | — |
|
||||
| Ability | Parent call | Paladin/Amazonian/Cleric ability overrides skip Parent | Observed Implementation | Incomplete Refactor | get_connected_subgraph | Parent call absent | Player_* | EventGraph | Server_Ability_*_Begin | — | 05 | High | — |
|
||||
| Ability | Multicast | Multicast_PlayMontage→PlayMontage | Observed Implementation | Intended Behavior | get_connected_subgraph | PlayMontage | BP_PlayerCharacterBase | EventGraph | Multicast_PlayMontage | — | 05 | High | — |
|
||||
| Ability | End stubs | Most child Ends missing; base End empty | Observed Implementation | Partially Implemented | list_events | Server_Ability_*_End | children | EventGraph | — | — | 05 | High | Pass 8 cleanup |
|
||||
| Anim | Montages | Per-class Attack/Ability montages seeded | Observed Implementation | — | Multicast pins / deps | Ability001Montages | Player_* | EventGraph | Multicast_PlayMontage | /Game/.../AnimMontages/... | 10 | High | Pass 8 notifies |
|
||||
| HUD | Legacy | Server_UpdateHUD uses DEPRECATED health/mana % | Observed Implementation | Incomplete Refactor | get_connected_subgraph | UpdatePlayerHUD | BP_PlayerCharacterBase | EventGraph | Server_UpdateHUD | DEPRECATED_* | 05,06,11 | High | PIE dual HUD |
|
||||
| HUD | Native | InitOverlay ASC delegates | Observed Implementation | Partially Implemented | RIRHUD.cpp | InitOverlay | WBP_PlayerHUD | — | — | WBP_Overlay | 03,11 | High | Widget bindings |
|
||||
| HUD | Class | WBP_PlayerHUD parent RIRHUD (AHUD) | Observed Implementation | Technical Debt (naming) | get_asset_tags | ParentClass | WBP_PlayerHUD | — | — | — | 03,11,13 | High | — |
|
||||
| Framework | GM | HUDClass=WBP_PlayerHUD; PC=PC_Character; PS=BP_PlayerState | Observed Implementation | Intended Behavior | ObjectTools CDO | HUDClass | GM_Dungeoneer | — | — | — | 03,11 | High | — |
|
||||
| Framework | PC | IMC_PlayerDefault + IA_Movement | Observed Implementation | Intended Behavior | ObjectTools CDO | PlayerMappingContext | PC_Character | — | — | IMC_PlayerDefault | 03,08 | High | Ability IMC add |
|
||||
| Character | Death | PlayerDeath→IsDead→respawn destroy→PlayerRespawn | Observed Implementation | Partially Implemented | get_connected_subgraph | Server_RespawnPlayer | BP_PlayerCharacterBase | EventGraph | PlayerDeath | — | 05 | High | Other callers |
|
||||
| Enemy | BP structure | Base+Skeleton Tick/Overlap only; BPI GetEnemyREF | Observed Implementation | — | list_events | ReceiveTick | BP_Enemy_* | EventGraph | — | — | 09 | Medium | Pass 9 graphs |
|
||||
| Interface | BPI set | Four BPIs: PlayerCharacter, EnemyCharacter, PlayerController, GameMode | Observed Implementation | — | find_assets | BPI_ | Interfaces/ | — | — | — | 03 | High | — |
|
||||
| Continuity | Editor | PIE=false; level Test01; sel Skeleton_C_1 | Observed Implementation | — | EditorApp/SceneTools | IsPIERunning | — | — | — | Test01 | 15 | High | Batch 3 close |
|
||||
| Repo | Git | Archaeology Markdown only dirty after Batch 3 | Observed Implementation | — | git status | — | — | — | — | — | 15 | High | — |
|
||||
|
||||
Reference in New Issue
Block a user