Document Batch 4A Pass 8 animation archaeology: AnimNotify callbacks and ability cleanup wiring.
Resolves UseAbility* callers via shared AN_Ability notifies, qualifies Pass 6 ability statuses, and records AnimBP/Montage dependencies without modifying Unreal assets. Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
@@ -5,56 +5,36 @@
|
||||
- **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 6 (Batch 3)
|
||||
- **Last completed pass:** Pass 8 (Batch 4A)
|
||||
- **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)
|
||||
- Batch 1–3 evidence rows
|
||||
- Batch 4A Pass 8 AnimBP / Montage / AnimNotify rows
|
||||
|
||||
### Pending sections
|
||||
- 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 | — |
|
||||
| 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 | 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 | — |
|
||||
| Anim | Caller | UseAbility001 called by AN_Ability_001 | Observed Implementation | Intended Behavior | read_graph_dsl | UseAbility001 | AN_Ability_001 | Received_Notify | Received_Notify | .../PlayerCharacterRelated/AN_Ability_001 | 10,05 | High | Notify times |
|
||||
| Anim | Caller | UseAbility004 called by AN_Ability_004 | Observed Implementation | Intended Behavior | deps + notify body | UseAbility004 | AN_Ability_004 | Received_Notify | — | .../AN_Ability_004 | 10 | High | Times |
|
||||
| Anim | Cleanup | AN_AttackComplete → SetIsAttacking clears CurrentlyAttacking | Observed Implementation | Intended Behavior | read_graph_dsl | SetIsAttacking | AN_AttackComplete | Received_Notify | — | .../AN_AttackComplete | 10,05 | High | Interrupt PIE |
|
||||
| Anim | Paladin ABP | Locomotion Idle/WalkRun/Charge/Block/Death; reads IsBlocking/IsCharging/IsDead | Observed Implementation | Intended Behavior | list_graphs + EventGraph | IsBlocking | ABP_Paladin | EventGraph / Locomotion | BlueprintUpdateAnimation | .../Paladin/ABP_Paladin | 10,08 | High | — |
|
||||
| Anim | Amazon ABP | Locomotion Idle/WalkRun/Death only | Observed Implementation | — | list_graphs | — | ABP_Amazon | Locomotion | — | .../Amazon/ABP_Amazon | 10 | High | — |
|
||||
| Anim | Cleric ABP | Divine Circle state; DivineCircleActive? from Cleric | Observed Implementation | Intended Behavior | list_graphs + EventGraph DSL | DivineCircleActive? | ABP_Cleric | EventGraph | BlueprintUpdateAnimation | .../Cleric/ABP_Cleric | 10 | High | — |
|
||||
| Anim | Wizard ABP | Locomotion only; no class montages | Observed Implementation | Stub context | find_assets + deps | — | ABP_Wizard | Locomotion | — | .../Wizard/ABP_Wizard | 10 | High | — |
|
||||
| Anim | Gunslinger | No AnimBP dependency | Observed Implementation | Existing Baseline Defect | get_dependencies | IsDataOnly | Player_Gunslinger | — | — | — | 10,08 | High | — |
|
||||
| Anim | Cleric 001 | AN_Ability_001 present; UseAbility001 unimplemented | Observed Implementation | Existing Baseline Defect | list_events + deps | UseAbility001 | Player_Cleric | — | AN_Ability_001 | Cleric_PrimaryAttack_* | 10,05 | High | — |
|
||||
| Anim | Cleric 003 | AN_Ability_003 vestigial; damage in ConcentrateHandle | Observed Implementation | Technical Debt | Pass 6+8 | UseAbility003 | Player_Cleric | EventGraph | ConcentrateHandle | Cleric_Ability003_Montage | 10,05 | High | — |
|
||||
| Anim | Unconnected | Cleric_Hu_M_Spell_Staff_Up_Impact_Montage 0 referencers | Observed Implementation | Present but Unconnected | get_referencers | — | — | — | — | .../Cleric_Hu_M_Spell_Staff_Up_Impact_Montage | 10 | High | — |
|
||||
| Anim | Tool limit | Montage Notifies array unreadable; AnimNotifyList empty for BP notifies | Unknown — Tool Limitation | — | ObjectTools | Notifies | AnimMontage | — | — | — | 10,13 | High | Manual Editor |
|
||||
| Ability | Multicast risk | Hit windows depend on server montage notify evaluation | Inferred | Technical Debt | architecture | Multicast_PlayMontage | BP_PlayerCharacterBase | EventGraph | Multicast_PlayMontage | — | 10,13 | Medium | PIE |
|
||||
| Ability | Paladin 001 | Pass 6 Implemented; Pass 8 no status change (qualified) | Observed Implementation | Implemented | — | AN_Ability_001 | Player_Paladin | — | — | Attack_*_Fast_Montage | 05,10 | High | — |
|
||||
| GAS | Default GE | BP_PlayerState DefaultAttributes=None | Observed Implementation | Partially Implemented | ObjectTools CDO | defaultAttributesGameplayEffect | BP_PlayerState | — | — | — | 06 | High | Pass 7 |
|
||||
| Continuity | Editor | PIE=false; Test01; sel Skeleton_C_1 | Observed Implementation | — | EditorApp/SceneTools | IsPIERunning | — | — | — | Test01 | 15 | High | — |
|
||||
| Repo | Git | Clean at Batch 4A start; Archaeology md only after | Observed Implementation | — | git status | — | — | — | — | — | 15 | High | — |
|
||||
|
||||
Reference in New Issue
Block a user