Establish UE 5.8 known-good baseline with Batch 1 archaeology docs.

Initialize Git with LFS for binary assets and add standard Unreal Engine .gitignore/.gitattributes.

Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
2026-07-16 19:40:19 -07:00
co-authored by Cursor
commit ff5640a020
17216 changed files with 62362 additions and 0 deletions
@@ -0,0 +1,90 @@
# 06 — Partial GAS Architecture
**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.
- **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
## Draft tracking
### Completed sections
- ASC ownership split (player PlayerState vs enemy character)
- Replication modes
- Actor-info initialization
- Attribute inventory + constructor defaults
- URIRGameplayAbility empty + no subclasses
- EffectActor ApplyEffectToTarget mechanism
- Project gameplay tags from config
### Pending sections
- Default attribute GE CDO modifiers per character
- 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
---
## Distinctions (Batch 1)
| 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 |
---
## Ownership and init
**Player (Observed Implementation):**
- ASC + AttributeSet created on `ARIRPlayerState`
- ReplicationMode **Mixed**; NetUpdateFrequency 100
- `ARIRPlayerCharacter::InitAbilityActorInfo`: Owner=PlayerState, Avatar=Character; called from PossessedBy and OnRep_PlayerState
**Enemy (Observed Implementation):**
- ASC + AttributeSet created on `ARIRBaseEnemyCharacter`
- ReplicationMode **Minimal**
- BeginPlay: InitAbilityActorInfo(this, this)
**Interface contradiction:** `ARIRBaseCharacter::GetAbilitySystemComponent` always uses PlayerState — enemies may not expose ASC through `IAbilitySystemInterface` / `UAbilitySystemBlueprintLibrary::GetAbilitySystemComponent`. **Issue:** Incomplete Refactor; **Requires Runtime Inspection**.
---
## Attributes
`URIRAttributeSet`: Health, MaxHealth, Mana, MaxMana, Stamina, MaxStamina — all replicated with OnRep notify.
Constructor inits Health/MaxHealth/Mana/MaxMana only; Stamina/MaxStamina not Init'd in native.
`DefaultAttributesGameplayEffect` on PlayerState: declared, **not applied in native**.
---
## 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.
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.
---
## Effects
`ARIREffectActor::ApplyEffectToTarget` applies Instant/Duration class via ASC MakeOutgoingSpec + ApplyGameplayEffectSpecToSelf. Overlap/authority logic expected in Blueprint children (Batch 4 Pass 10 / doc 12).