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:
@@ -2,152 +2,101 @@
|
||||
|
||||
**Status: Draft**
|
||||
|
||||
- **Scope:** Unresolved questions after Batches 1–3. Separates confirmed static findings from questions needing further Blueprint, runtime, or config inspection.
|
||||
- **Inspection method:** Consolidation of Batches 1–3; Batch 3 resolved per-character ability path unknowns.
|
||||
- **Scope:** Unresolved questions after Batches 1–3 and Batch 4A Pass 8.
|
||||
- **Inspection method:** Consolidation of Batches 1–3 + Pass 8 animation archaeology.
|
||||
- **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.
|
||||
- **Tool or visibility limitations:** Semantic Search unavailable; CustomEvent FunctionFlags unread; Montage Notifies array / times unreadable; AnimGraph DSL empty; no PIE.
|
||||
- **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)
|
||||
- **Last completed pass:** Pass 8 (Batch 4A)
|
||||
- **Next pass expected to contribute:** Pass 7 / 4 / 9 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 001–004 connected paths; Wizard/Gunslinger stub confirmation; UseAbility* presence matrix
|
||||
- Enemy ASC accessor defect still confirmed static
|
||||
- Batch 1–3 unknowns and resolutions
|
||||
- **Pass 8 resolutions:** UseAbility* callers; Amazonian melee anim path; Cleric dead notifies; cleanup via AN_AttackComplete; PerformingWhirlwind not animation-driven
|
||||
|
||||
### Pending sections
|
||||
- Frontend/session/enemy AI/animation unknowns (Batch 4)
|
||||
- Runtime test procedures after static ability archaeology
|
||||
- Frontend/session/enemy AI (Pass 4 / 9)
|
||||
- GE/cue inventory (Pass 7)
|
||||
- Runtime test procedures
|
||||
|
||||
### 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)
|
||||
- Notify trigger times (Manual Editor)
|
||||
- Interrupt vs AN_AttackComplete behavior (PIE)
|
||||
- Live ASC vs DEPRECATED HUD coexistence (PIE)
|
||||
|
||||
---
|
||||
|
||||
## Resolved in Batch 2 (no longer Unknown)
|
||||
## Resolved in Batch 2–3 (unchanged)
|
||||
|
||||
| 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 |
|
||||
See prior tables in git history / Batch 3 handoff. Key: legacy IA→Server_Ability_*; DefaultAttributes=None; WBP_PlayerHUD is AHUD.
|
||||
|
||||
---
|
||||
|
||||
## Resolved in Batch 3 (Pass 6)
|
||||
## Resolved in Batch 4A (Pass 8)
|
||||
|
||||
| Question | Resolution | Classification | Doc |
|
||||
|---|---|---|---|
|
||||
| Full Ability 001–004 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 |
|
||||
| Who calls UseAbility*? | `AN_Ability_001–004` AnimNotify BPs → BPI interface on montage owner | Observed Implementation | 10, 05 |
|
||||
| Paladin 001 damage via anim callback? | Yes — `AN_Ability_001` during Attack_* montages | Observed Implementation | 10 |
|
||||
| Paladin block Montage/notify? | No Montage; ABP Block from `IsBlocking`; End clears | Observed Implementation | 10 |
|
||||
| Paladin charge Montage cleanup? | No — ChargeTimeline / ability logic | Observed Implementation | 10 |
|
||||
| Amazonian working melee anim path? | Begin → Multicast → `AN_Ability_001` → UseAbility001 → Authority damage; `AN_AttackComplete` clears | Observed Implementation + Observed Runtime Behavior | 10 |
|
||||
| Weapon collision notify windows? | Not observed — overlaps inside UseAbility* | Observed Implementation (absence) | 10 |
|
||||
| PerformingWhirlwind set by anim? | No — not in ABP/montages; still Get-only | Observed Implementation | 10 |
|
||||
| Cleric 001 hidden notify gameplay? | Notify present; `UseAbility001` unimplemented — dead | Observed Implementation | 10 |
|
||||
| Cleric 002/003/004 anim dependency? | 002/004 notify-driven; 003 timer + vestigial AN_Ability_003; ABP Divine Circle | Observed Implementation | 10 |
|
||||
| Wizard spell via anim callbacks? | No Wizard montages; ABP locomotion only | Observed Implementation | 10 |
|
||||
| Gunslinger shared AnimBP/Montage? | No AnimBP dependency | Observed Implementation | 10 |
|
||||
| CurrentlyAttacking clear on montage complete? | Via `AN_AttackComplete` → SetIsAttacking; interrupt Unknown | Observed Implementation / Unknown interrupt | 10 |
|
||||
| Death anim invoke destroy/respawn? | No — ABP Death presentation; PlayerDeath on character | Observed Implementation | 10 |
|
||||
|
||||
---
|
||||
|
||||
## 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 |
|
||||
| Confirmed finding | Issue | Runtime question |
|
||||
|---|---|---|
|
||||
| OnlineSubsystem / Steam settings location | Config/**, Plugins/**/Config, Saved/Config | Medium |
|
||||
| GameInstance class assignment outside DefaultEngine sample | INI + referencers of GI_Dungeoneer | Medium |
|
||||
| Enemy ASC vs GetASC | Incomplete Refactor | PIE impact |
|
||||
| Dual HUD paths | Incomplete Refactor | Which drives bars? |
|
||||
| DefaultAttributes unused | Partially Implemented | Spawn attribute source? |
|
||||
| Cleric 004 empty SpawnActor + mana bypass | Existing Baseline Defect | PIE behavior |
|
||||
| Gameplay hit windows depend on Multicast montage notify eval on server | Technical Debt / static risk | Does server always evaluate notifies? |
|
||||
| Interrupt may skip AN_AttackComplete | Incomplete Refactor | Stuck CurrentlyAttacking? |
|
||||
| Cleric AN_Ability_001 / 003 dead receivers | Existing Baseline Defect / Technical Debt | Cosmetic-only primary attack? |
|
||||
|
||||
---
|
||||
|
||||
## Requires manual editor inspection
|
||||
## Requires further inspection
|
||||
|
||||
| Question | Why | Paths |
|
||||
| Question | Method | Priority |
|
||||
|---|---|---|
|
||||
| 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 |
|
||||
| Notify trigger times / sections | Manual Editor | Medium |
|
||||
| Interrupt cleanup | PIE | High |
|
||||
| GE/cue referencers | Pass 7 | High |
|
||||
| Enemy BP AI | Pass 9 | High |
|
||||
| Sessions / frontend | Pass 4 | Medium |
|
||||
| Paladin block absorb (PlayerHitCheck) | Graph walk (non-anim) | Medium |
|
||||
|
||||
---
|
||||
|
||||
## 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 |
|
||||
| Item | Impact |
|
||||
|---|---|
|
||||
| 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 |
|
||||
| Montage `Notifies` property unreadable | Times Unknown; presence via deps |
|
||||
| AnimNotifyList registry tag empty for BP notifies | Do not trust tag alone |
|
||||
| AnimGraph / transition DSL empty | State drivers via EventGraph + VariableGet |
|
||||
| CustomEvent Reliable flags | Unknown |
|
||||
| No PIE in Batch 4A | Runtime deferred |
|
||||
|
||||
---
|
||||
|
||||
## 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
|
||||
1. Pass 7 — GE/cue/tag inventory
|
||||
2. Pass 9 — enemy Blueprint AI
|
||||
3. Pass 4 — sessions / frontend
|
||||
4. Controlled PIE — dual HUD, notify interrupt, server montage eval, Cleric 001/004
|
||||
|
||||
Reference in New Issue
Block a user