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:
2026-07-16 20:29:10 -07:00
co-authored by Cursor
parent ff5640a020
commit 0d045d142f
11 changed files with 1106 additions and 463 deletions
@@ -2,12 +2,12 @@
**Status: Draft**
- **Scope (Batch 1 seed):** Native GAS scaffolding — ASC ownership, AttributeSet, empty GameplayAbility base, EffectActor GE application, default-attribute property, tags from config. Full GE CDO / cue / grant-path inventory deferred.
- **Inspection method:** Native C++ read; AttributeSetToolset not re-run this batch (calibration prior); GameplayTags from DefaultGameplayTags.ini; subclass search for URIRGameplayAbility.
- **Scope:** Native GAS scaffolding (Batch 1) plus Batch 2 Blueprint seeds: BP_PlayerState defaults, legacy ability confirmation, dual HUD attribute paths.
- **Inspection method:** Native C++ read; Batch 2 ObjectTools on `BP_PlayerState` CDO; BlueprintTools on `BP_PlayerCharacterBase` for ASC/GA absence in ability graphs.
- **Last updated:** 2026-07-16
- **Current phase:** Phase 1 — Static Architecture
- **Last completed pass:** Pass 2 (Batch 1)
- **Next pass expected to contribute:** Batch 4 Pass 7
- **Last completed pass:** Pass 6 (Batch 3)
- **Next pass expected to contribute:** Batch 4 Pass 7 (GE/cue inventory)
## Draft tracking
@@ -19,28 +19,31 @@
- URIRGameplayAbility empty + no subclasses
- EffectActor ApplyEffectToTarget mechanism
- Project gameplay tags from config
- **BP_PlayerState `DefaultAttributesGameplayEffect` = None** (Pass 3)
- Confirmation: abilities remain legacy BP `Server_Ability_*` (Pass 56 / doc 05)
- **Pass 6:** No ASC activate/grant/GameplayEffect apply in any connected ability path on five playables
### Pending sections
- Default attribute GE CDO modifiers per character
- Default attribute GE CDO modifiers per character (Pass 7)
- Gameplay Cue inventory
- Ability granting paths in Blueprints
- Tag referencers
- Runtime ASC state (PIE-gated)
### Evidence still required
- Whether BP_PlayerState assigns/applies `DefaultAttributesGameplayEffect`
- Whether any Blueprint grants `URIRGameplayAbility` or engine GA classes
- Whether any other actor/BP applies default-attribute GEs at spawn
- Whether OverlayWidgetController path and DEPRECATED HUD path both run in PIE
- Full GE asset inventory and referencer map (Pass 7)
---
## Distinctions (Batch 1)
## Distinctions
| Layer | Status | Evidence |
|-------|--------|----------|
| GAS infrastructure | Present | ASC, AttributeSet, IAbilitySystemInterface, EffectActor |
| GAS data | Partially present | Tags in INI; GE assets exist (calibration); DefaultAttributes property |
| GAS runtime abilities | Not observed | No URIRGameplayAbility subclasses; calibration: no GA assets |
| Legacy BP abilities | Not inspected this batch | Calibration: Server_Ability_*, UseAbility* on Paladin |
| GAS runtime abilities | Not observed | No URIRGameplayAbility subclasses; no GA assets; base EventGraph has no ASC activate |
| Legacy BP abilities | **Documented (Batch 2)** | `05-LegacyAbilityArchitecture.md`: IA → Server_Ability_* → Multicast montage |
---
@@ -70,21 +73,45 @@ Constructor inits Health/MaxHealth/Mana/MaxMana only; Stamina/MaxStamina not Ini
`DefaultAttributesGameplayEffect` on PlayerState: declared, **not applied in native**.
**Batch 2 Observed Implementation:** `/Game/_Main/Blueprints/Player/BP_PlayerState` CDO property `defaultAttributesGameplayEffect` = **None**. Assignment/application path remains missing at both C++ and this BP.
---
## Abilities
`URIRGameplayAbility`: InstancedPerActor only. **No project subclasses** (search_subclasses).
**Conclusion (Observed Implementation):** No project-defined UGameplayAbility subclasses, Gameplay Ability assets, or
static ability-granting paths have been observed so far.
**Conclusion (Observed Implementation):** No project-defined UGameplayAbility subclasses, Gameplay Ability assets, or static ability-granting paths observed. Playable abilities are legacy Blueprint custom events (`Server_Ability_*`) with Enhanced Input on `BP_PlayerCharacterBase` — see `05-LegacyAbilityArchitecture.md`.
Current evidence supports that the playable abilities have not yet been
converted into discrete Gameplay Ability implementations. This must be
reconfirmed during the dedicated GAS and Blueprint passes.
---
## Dual attribute UI paths (Batch 2)
| Path | Source | Consumer |
|------|--------|----------|
| Native GAS | `InitAbilityActorInfo``ARIRHUD::InitOverlay` → OverlayWidgetController ASC delegates | `WBP_Overlay` via `WBP_PlayerHUD` (AHUD) deps |
| Legacy BP | `Server_UpdateHUD` / `InitializeHUD` using `DEPRECATED_Current/Max Health/Mana` | `BPI_PlayerController.UpdatePlayerHUD` |
Both are Observed Implementation. Incomplete Refactor — legacy path still active.
---
## Effects
`ARIREffectActor::ApplyEffectToTarget` applies Instant/Duration class via ASC MakeOutgoingSpec + ApplyGameplayEffectSpecToSelf. Overlap/authority logic expected in Blueprint children (Batch 4 Pass 10 / doc 12).
---
## Pass 6 — GAS interactions encountered on playables
| Asset / interaction | Character | Status | Classification |
|---|---|---|---|
| ASC ActivateAbility / GrantAbility | All five | Not found in ability graphs | Observed Implementation (absence) |
| ApplyGameplayEffect / GE Spec | All five ability paths | Not found | Observed Implementation (absence) |
| `GE_Cleric_DefaultAttributes` | Cleric | Asset exists; 0 referencers; not in ability graphs | Present but Unconnected |
| `GE_Wizard_DefaultAttributes` | Wizard | Asset exists; unwired | Present but Unconnected |
| `GE_Gunslinger_*` | Gunslinger | Not found | Missing |
| `NS_Wizard_Ability001` | Wizard | Niagara present; unwired | Present but Unconnected |
| Damage / heal | Paladin / Amazonian / Cleric | `ApplyDamage` / `DEPRECATED_RecoverPlayerHealth`**not** GE | Observed Implementation |
**Conclusion (Observed Implementation):** Pass 6 reconfirms playable combat is legacy Blueprint. Character-named DefaultAttributes GE assets are orphaned relative to ability graphs and `BP_PlayerState.DefaultAttributesGameplayEffect=None`. Systemwide GE/cue archaeology remains Pass 7.