# 01 — Executive Summary **Status: Complete** - **Scope:** Phase 1 synthesis — evidence-grounded description of the project as it currently exists after static archaeology (Batches 1–4; Passes 0–10). No implementation, repair, or runtime testing. - **Inspection method:** Cross-document synthesis of archaeology docs `00`, `00A`, `02`–`06`, `08`–`15`; read-only continuity MCP only. - **Evidence classifications used:** Observed Implementation, Documented Intent, Observed Runtime Behavior, Inferred, Unknown. - **Tool or visibility limitations:** CustomEvent Reliability flags unreadable via MCP; AnimGraph/transition DSL empty; montage notify trigger times require Manual Editor; no PIE executed in Phase 1. - **Last updated:** 2026-07-16 - **Current phase:** Phase 1 — Static Architecture (complete) - **Last completed pass:** Pass 11 (Batch 5 synthesis) - **Next pass expected to contribute:** Phase 2A when explicitly authorized --- ## 1. Purpose and scope This document closes Phase 1 Static Architecture. It synthesizes recovered evidence into a coherent picture of: - What exists, is connected, is active but unverified, is partial, is missing - What is deprecated but still active, scaffolding only, or present but unreferenced - What requires runtime verification vs what can be reconstructed or replaced in Phase 2 It does **not** authorize implementation, asset modification, or Phase 2 work. --- ## 2. Methodology and evidence model | Classification | Meaning | |----------------|---------| | Observed Implementation | Static graph, CDO, source, or config evidence | | Documented Intent | Comments, interface stubs, orphan assets suggesting design | | Observed Runtime Behavior | Project-supplied baseline brief only (not re-tested in Phase 1) | | Inferred | Reasonable conclusion from static structure without direct proof | | Unknown | Not resolvable with approved static tools | Implementation statuses and issue classifications follow Pass 11 authorization vocabulary (Active, Partial, Stub, Missing, Deprecated but Connected, Scaffolding Only, Authority Risk, Requires Runtime Inspection, etc.). **Rule:** Presence ≠ reachability ≠ runtime correctness. Later exact evidence supersedes earlier preliminary statements. --- ## 3. Project recovery and UE 5.8 migration status | Fact | Classification | |------|----------------| | Recovered and migrated from UE 5.4.4 → UE 5.8 | Established baseline | | UE 5.8 runtime parity vs known pre-migration baseline | Passed (project brief) | | Known gameplay defects | Existing Baseline Defects, not established migration regressions | | AdvancedSessions / AdvancedSteamSessions | Replaced with UE 5.8–compatible project plugins | | Remaining NetUpdateFrequency warning | Outside Phase 1 scope | --- ## 4. Current architecture at a glance ```mermaid flowchart TD MainMenu[MainMenu_GM_MainMenu] --> Sessions[PC_MainMenu_AdvancedSessions] Sessions -->|Host_listen| DevIsland[Dev_Island] MainMenu -->|NewGame| Test01[Test01] Test01 --> CharSelect[WBP_CharacterSelect] CharSelect --> Spawn[PC_SpawnActor_Possess] Spawn --> Player[BP_PlayerCharacterBase_children] Player -->|Legacy_Server_Ability| Montage[Multicast_PlayMontage] Montage --> AN[AN_Ability_plus_AN_AttackComplete] Player -->|ASC_on| PS[ARIRPlayerState] PS --> Overlay[WBP_Overlay_Health_Mana] Potions[EffectActor_pickups] -->|GE_only_path| PS Enemy[BP_Enemy_Skeleton] -->|ASC_on_self| EnemyASC[Enemy_ASC] Enemy -->|Combat| MissingAI[Chase_Attack_Damage_Missing] ``` **Native player:** `ARIRBaseCharacter` → `ARIRPlayerCharacter` → `BP_PlayerCharacterBase` → five `Player_*` children. **Player ASC / AttributeSet:** on `ARIRPlayerState`. **Combat:** legacy Blueprint abilities via Enhanced Input → `Server_Ability_*` → Multicast montage → AnimNotify `UseAbility*` — **no** connected Gameplay Ability grant/activation. --- ## 5. What currently exists - Playable hierarchy and shared ability input/RPC scaffolding - Paladin / Amazonian / Cleric substantive ability graphs (varying completeness) - Wizard / Gunslinger character assets (stubs / data-only) - Player and enemy ASC + AttributeSet with replication - Eight Gameplay Effect assets (four consumable, four orphan defaults) - Project Gameplay Tags in INI (unused) - Main menu, session create/find/join graphs, character select, Overlay HUD - Four GE pickups + gold pickup path - Enemy highlight (`ITargetInterface`) and empty combat EventGraphs - AnimNotifies `AN_Ability_001–004`, `AN_AttackComplete` --- ## 6. What is currently connected | Path | Status | |------|--------| | IA → Server_Ability_* → child overrides (where present) | Connected | | Multicast_PlayMontage → AnimNotifies → Authority UseAbility* / SetIsAttacking | Connected (notify-driven) | | Char-select (server) → SpawnActor+Possess | Connected (SP/server path) | | Host CreateAdvancedSession → OpenLevel Dev_Island `?listen` | Connected (static) | | FindSessions → WBP_GameSlot presentation | Connected (static) | | ASC Overlay Health/Mana bar bindings | Connected (static) | | EffectActor overlap → ApplyGameplayEffectSpecToSelf → Destroy | Connected (static) | | Gold overlap → AddGold call | Connected caller; receiver unimplemented | | Enemy GetASC via interface | Connected call path → nullptr on enemies | --- ## 7. What is known to work | Item | Evidence | |------|----------| | Amazonian Ability 001 / melee | Observed Runtime Behavior (supplied baseline brief) | | UE 5.8 parity vs pre-migration baseline | Project recovery brief | | Enemy highlight on/off | Observed Implementation (native) | All other gameplay paths remain **Active but Unverified** or **Requires Runtime Inspection** until Phase 2 validation. --- ## 8. What is partial - Paladin Ability 002 (block presentation); Paladin 004 FX hole - Cleric 001 (montage, dead notify), 002 (heal + FX hole), 004 (mana bypass + empty SpawnActor) - Amazonian death (legacy health); whirlwind setter unconnected - Sessions (no DestroySession; Join lacks explicit success travel; OSS INI Missing) - Character select (server-only widget create; Gunslinger absent) - Gold (SFX+destroy without score mutation) - Dual HUD (Overlay connected; legacy UpdatePlayerHUD unimplemented) - Enemy death ABP (Death state exists; `IsDead` forced false every Update) --- ## 9. What is missing - Project Gameplay Ability assets, grant, activation, costs/cooldowns, cues, MMCs - Connected enemy target acquisition, chase, attack, outbound damage, inbound damage - Behavior Tree / Blackboard / custom AIController / perception - OnlineSubsystem / Steam project INI configuration - DestroySession / EndSession paths - Stamina Overlay widget and stamina pickups - Gunslinger combat, AnimBP, GE, and select-UI entry - Default attribute GE application (`BP_PlayerState.DefaultAttributesGameplayEffect` = None) - Most `Server_Ability_*_End` bodies - NavMeshBoundsVolume / RecastNavMesh in Test01 (secondary to missing MoveTo) --- ## 10. Major static defects | Defect | Issue classification | Doc | |--------|----------------------|-----| | Dual DEPRECATED vs ASC resources with no sync | Incomplete Refactor | 05, 06 | | Enemy chase/attack/damage reception absent | Existing Baseline Defect / Implementation Missing | 09 | | Enemy GetASC → PlayerState → nullptr | Incomplete Refactor | 06, 09, 12 | | ABP_Skeleton forces `IsDead` false | Connected but Incomplete | 09, 10 | | Cleric 004 mana Branch = literal true; SpawnActor Class empty | Existing Baseline Defect | 05 | | Multicast montage completion pins unwired | Networking Risk / Incomplete Refactor | 05, 10 | | EffectActor no authority; `bReplicates=false` | Authority Risk | 12 | | AddGold / UpdatePlayerHUD unimplemented | Incomplete Refactor | 11, 12, 03 | | OnlineSubsystem project INI absent | Configuration Gap | 02, 11 | | Player ApplyDamage with no enemy health consumer | Existing Baseline Defect (enemy side) | 05, 09 | --- ## 11. Major authority / network risks 1. **Gameplay on Multicast notify evaluation** — hit windows require server montage notify evaluation; interrupt may skip `AN_AttackComplete`. 2. **EffectActor pickups** — no `SwitchHasAuthority`; non-replicating actors. 3. **Character select** — widget created only on Authority∧IsServer; remote clients may lack UI. 4. **JoinSession** — no explicit OnSuccess / ClientTravel in DSL. 5. **CustomEvent Reliability** — Unknown — Tool Limitation for all ability RPCs. 6. **Gold** — authority-gated pickup calling unimplemented AddGold (cosmetic-only result today). --- ## 12. GAS migration state | Layer | Status | |-------|--------| | ASC ownership + actor-info init | Active (player PS; enemy self) | | AttributeSet replication | Active | | DefaultAttributes GE apply | Scaffolding Only / Present but Unreferenced | | Consumable GEs | Partially Integrated (only confirmed GE apply path) | | Gameplay Abilities | Scaffolding Only (`URIRGameplayAbility`); grant/activate Missing | | Gameplay Tags | Present but Unreferenced | | Gameplay Cues | Missing | | Legacy↔ASC sync | Missing | **Disposition:** Stabilize canonical attributes/authority in Phase 2A before migrating abilities into GAS. Do not treat orphan default GEs or unconnected Wizard FX as final ability design. --- ## 13. Playable-character status | Character | Combat status | Notes | |-----------|---------------|-------| | Paladin | Broadest Implemented set after Cleric richness | 001/003/004 Implemented; 002 Partial; no parent calls | | Amazonian | 001 Implemented + runtime-confirmed melee | 002–004 Stub; whirlwind unconnected | | Cleric | Richest event surface; highest duplication risk | 003 Implemented; 001/002/004 Partial; vestigial AN_003 | | Wizard | Stub PrintString only | Unconnected NS/GE/projectile — Documented Intent only | | Gunslinger | Data-only Stub | Absent from character select; no AnimBP/GE | --- ## 14. Enemy-system status | Concern | Status | |---------|--------| | Control | Stock AIController; AutoPossessAI=PlacedInWorld | | Target / chase / attack | Implementation Missing | | Damage reception / ApplyDamage bridge | Implementation Missing | | Death | Connected but Incomplete (ABP forced false) | | GAS GetASC | Existing Baseline Defect (nullptr) | | Navmesh Test01 | Missing (secondary) | --- ## 15. Frontend / session status | Concern | Status | |---------|--------| | GameDefaultMap | MainMenu — Active | | Main menu path | PC_MainMenu + WBP_MainMenu — Active but Unverified | | GI_Dungeoneer | Present but Unconnected | | Host / Find | Partial / Active but Unverified | | Join travel | Partial | | DestroySession | Missing | | OnlineSubsystem INI | Missing | --- ## 16. HUD / UI status | Path | Status | |------|--------| | WBP_PlayerHUD (AHUD despite WBP_ prefix) | Overlay classes assigned | | ASC Overlay Health/Mana | Active but Unverified | | Stamina widget | Missing | | Legacy Server_UpdateHUD → UpdatePlayerHUD | Present but Unconnected (receiver unimplemented) | --- ## 17. Pickup / currency status | Path | Status | |------|--------| | Four EffectActor GE pickups | Active but Unverified / Authority Risk | | Gold | Partial (AddGold unimplemented) | | Stamina / other currency | Missing | --- ## 18. Runtime validation still required Full bounded plan: [`13-Unknowns-And-RuntimeQuestions.md`](13-Unknowns-And-RuntimeQuestions.md). Priority groups: attributes/HUD; ability authority/replication; AnimNotify execution; interruption/cleanup; player damage/death; enemy ASC; enemy damage/death; pickup authority; char-select networking; sessions; gold; respawn/HUD recreation. **Phase 1 did not execute any of these tests.** --- ## 19. Recommended Phase 2 reconstruction order Evidence supports the default dependency order: ### Phase 2A — Baseline framework stabilization | Field | Content | |-------|---------| | Objective | Canonical health/mana/stamina SoT; default attribute init; legacy↔ASC policy; shared death/damage; server-authoritative rules; reliable cleanup; validation harness | | Dependencies | Phase 1 complete | | Static evidence | Docs 05, 06, 08, 11, 12 | | Required runtime tests | Groups 1, 5, 12 (doc 13) | | Exit criteria | Written SoT + authority + cleanup contracts approved; harness defined | | Principal risk | Migrating abilities atop dual resources locks in divergence | ### Phase 2B — Shared player ability framework | Field | Content | |-------|---------| | Objective | Replace PrintString stubs; shared input→activation; cost/cooldown/targeting/cleanup contracts; remove gameplay dependence on cosmetic multicast evaluation | | Dependencies | 2A contracts | | Static evidence | Docs 05, 07, 10 | | Required runtime tests | Groups 2–4 | | Exit criteria | Shared activation path proven in harness without per-character redesign | | Principal risk | Preserving notify-timed hit windows while moving authority | ### Phase 2C — Character reconstruction Order: **Amazonian 001 → Paladin → Cleric → Wizard → Gunslinger**. | Why this order | Evidence | |----------------|----------| | Amazonian 001 | Known-working behavioral reference (Observed Runtime Behavior) | | Paladin | Largest Implemented legacy set to preserve | | Cleric | Richest surface + known defects; reconstruct before migrate | | Wizard | Stub + unconnected content; replace after framework | | Gunslinger | Data-only + missing select UI; last | | Field | Content | |-------|---------| | Dependencies | 2A + 2B | | Static evidence | Docs 05, 07, 08, 10 | | Required runtime tests | Per-slot ability tests; interruption | | Exit criteria | Selected slots match preserved legacy behavior under harness | | Principal risk | Over-inferring Wizard/Gunslinger from orphan assets | ### Phase 2D — Enemy baseline Damage reception → health/death → target → chase → attack → anim callbacks → drops → enemy GAS compatibility. | Dependencies | 2A damage/death contracts; navmesh when MoveTo added | | Static evidence | Doc 09 | | Required runtime tests | Groups 6–7 | | Exit criteria | Placed skeleton can take damage, die, and perform one attack loop | | Principal risk | Treating GetASC defect as root of chase/attack (it is independent) | ### Phase 2E — Supporting systems HUD consolidation; pickup authority/replication; gold; char-select networking; session join/travel/destroy; OnlineSubsystem config; stamina UI/collectibles. | Dependencies | 2A SoT; preferably 2B+ partial 2C | | Static evidence | Docs 02, 11, 12 | | Required runtime tests | Groups 8–11 | | Exit criteria | SP Overlay+pickups+gold correct; listen-server select+join documented | | Principal risk | Claiming MP sessions work without OSS config + runtime | **Reconstruct before modernization:** dual resources, death/damage, notify cleanup, Implemented/Partial abilities with clear intent, enemy damage reception. **Replace during modernization:** pure stubs, PrintString bases, unconnected orphans (after design decision), dead unimplemented receivers where no behavior exists. --- ## 20. Phase 1 completion statement Phase 1 Static Architecture is **complete**. All authorized static archaeology passes (0–10) and synthesis (Pass 11) are finished. Remaining unknowns are explicitly runtime or Manual Editor items documented in doc 13. No Unreal assets, source, configuration, maps, plugins, or editor state were modified during Phase 1 archaeology. **Exact next action:** Begin Phase 2A with a bounded runtime-baseline and shared resource-authority design pass. Do not begin per-character implementation until the canonical attribute, damage, death, authority, and cleanup contracts are approved. --- ## System-status table | System | Current status | Evidence confidence | Principal gap | Phase 2 disposition | |--------|----------------|---------------------|---------------|---------------------| | Project startup | Active | High | Runtime map/session proof | Preserve; configure OSS in 2E | | Main menu | Active but Unverified | High | PIE menu flows | Preserve behavior | | Character selection | Partial | High | Server-only create; no Gunslinger | Reconstruct networking + selection | | Pawn spawning and possession | Connected / Partial | High | Remote-client path | Reconstruct MP path | | Sessions | Partial | High | Join travel; Destroy; OSS INI | Reconstruct + configure | | Player base | Active | High | Dual resources; stub Ends | Reconstruct SoT then framework | | Paladin | Implemented (mixed slots) | High | 002 Partial; FX hole; notify authority | Preserve behavior, migrate | | Amazonian | Implemented (001) + Stubs | High | 002–004 stubs; whirlwind | Preserve 001; replace stubs | | Cleric | Partial / Implemented mix | High | 001/004 defects; duplication | Reconstruct then migrate | | Wizard | Stub | High | No Server_Ability bodies | Replace with shared framework | | Gunslinger | Stub / data-only | High | No combat; not selectable | Reconstruct select + replace | | Animation callbacks | Active / Incomplete | High | Completion pins unwired | Replace cleanup contract | | Player GAS ownership | Active | High | No GA grant/activate | Preserve ASC; build abilities later | | Attributes | Partially Integrated | High | Defaults orphaned; dual sources | Reconstruct SoT (2A) | | Gameplay Effects | Partially Integrated | High | Consumables only | Preserve consumables; wire defaults | | Gameplay Abilities | Scaffolding Only / Missing | High | No GA assets | Replace stubs with GAS later | | Gameplay Tags | Present but Unreferenced | High | Unused | Defer pending design | | Gameplay Cues | Missing | High | No cues | Defer / add with abilities | | Enemy control | Scaffolding Only | High | Empty graphs | Reconstruct (2D) | | Enemy chase | Missing | High | No MoveTo/target | Reconstruct (2D) | | Enemy attack | Missing | High | Stub + orphan montage | Reconstruct (2D) | | Enemy damage reception | Missing | High | No ReceiveAnyDamage | Reconstruct first (2D) | | Enemy death | Connected but Incomplete | High | IsDead forced false | Reconstruct (2D) | | ASC Overlay | Active but Unverified | High | No stamina; PIE | Preserve; consolidate HUD | | Legacy HUD | Present but Unconnected | High | UpdatePlayerHUD missing | Remove or implement after SoT | | Pickups | Active but Unverified / Authority Risk | High | No authority gate | Reconstruct authority (2E) | | Gold/currency | Partial | High | AddGold no-op | Reconstruct AddGold (2E) | --- ## Top-risk register | Priority | Risk | Static consequence | Runtime consequence to verify | Dependency | |----------|------|--------------------|-------------------------------|------------| | P0 | Dual health/mana (DEPRECATED vs ASC) unsynchronized | Combat and potions mutate different stores | Death vs Overlay/potion divergence | 2A SoT | | P0 | Enemy damage reception / death missing | Player ApplyDamage has no health consumer | Hits appear to do nothing | 2D after 2A | | P0 | Enemy chase/attack Implementation Missing | No PvE combat loop | Enemies idle forever | 2D | | P1 | Gameplay depends on Multicast AnimNotify evaluation | Interrupt may skip AN_AttackComplete | Stuck CurrentlyAttacking; missed hits | 2B cleanup | | P1 | EffectActor Authority Risk | Non-replicating; no authority switch | Double destroy / missed GE in MP | 2E | | P1 | Enemy GetASC nullptr | Effects skip enemies; destroy still runs | Loot destroy without heal | 2A/2D/2E | | P1 | Char-select server-only + Join Session Partial | Remote clients / join travel fragile | Clients stuck; join fails | 2E | | P1 | OnlineSubsystem INI Missing | Sessions may use unknown defaults | Host/find/join silent failure | 2E | | P1 | AddGold / UpdatePlayerHUD unimplemented | Callers connected; receivers dead | Gold/HUD no-ops | 2E after 2A | | P2 | Cleric 004 mana bypass + empty SpawnActor | Ability defective | No projectile; free cast | 2C Cleric | | P2 | Orphan default GEs; no Gunslinger GE | Spawn uses native Init only | Wrong class balances | 2A | | P2 | Stamina scaffolding unused | Attribute/UI/pickup incomplete | Dead stamina surface | 2A/2E | | P3 | WBP_PlayerHUD is AHUD; Amazon vs Amazonian naming | Maintainability / confusion | None functional | Defer polish | | P3 | Tags/cues unused; GI unwired; pause missing | Dead scaffolding | None until used | Defer | --- ## Cross-document reconciliation notes (Pass 11) | Topic | Resolution | |-------|------------| | Stale “next pass = Pass 4/10” in docs 09/10 | Superseded: Batch 4D complete; Pass 11 is synthesis close | | Death/HUD labels differ slightly in 05 vs 08 | Prefer 05 slot labels; Amazonian death = Partial (local AnyDamage); HUD “Active” on Amazonian = local call sites of shared legacy HUD | | Implemented abilities vs no enemy damage sink | Player statuses unchanged; enemy reception is separate Existing Baseline Defect | | Preliminary Batch 1 “sessions deferred” | Superseded by Pass 4 matrices in docs 11/02 | | Preliminary “pickups unknown” | Superseded by Pass 10 matrices in docs 12/06 | --- ## Evidence sources Primary: `02`–`06`, `08`–`12`, `14`. Ability detail: `05`, `07`, `08`, `10`. Runtime boundary: `13`. Handoff: `15`.