Files
realms-in-ruin-dev/Documentation/Phase2/00-Phase2A-RuntimeBaseline.md
T
tedwardsandCursor 9919faab4a Document Phase 2A1 runtime baseline evidence and open decisions.
Capture bounded PIE observations for ASC/legacy divergence, HUD, and blocked ability/multiplayer paths without implementing fixes.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-07-17 06:22:50 -07:00

13 KiB
Raw Blame History

Phase 2A1 — Runtime Baseline

Field Value
Status Draft
Date 2026-07-17
Engine Unreal Engine 5.8
Git commit aa0058a0
Map /Game/_Main/Levels/Testing/Test01
Primary PIE mode PlayMode_InEditorFloating (required for Slate UMG drive)
Authorization Phase 2A1 evidence-only; no asset/config/source mutation; no commit

Continuity gate

Check Result
git rev-parse --short HEAD aa0058a0
git status --short empty
git diff --name-only empty
git diff --cached --name-only empty
IsPIERunning (start) false
Current level /Game/_Main/Levels/Testing/Test01
Selection empty (Pass 11 continuity; not restored)
Test01 dirty false

Entry path

PIE on loaded Test01WBP_CharacterSelect → character button → Start.

  • In-viewport PIE: Slate cannot see UMG character-select buttons.
  • Floating PIE: Slate sees PALADIN / WIZARD / CLERIC / AMAZON / Start.
  • Start click produces Blueprint runtime warning on GM_Dungeoneer.PlayerFirstSpawn (Accessed None on K2Node_Event_PlayerController) but pawn still spawns and is possessed.

1. Test execution summary

Test ID Mode Character Players Result Confidence Blocking issue
RT-001 1P Floating PIE Amazonian 1 Observed Runtime Behavior High None
RT-002 1P Floating PIE Paladin 1 Partial — init divergence observed; ability cost path not exercised High (init) / Tool Limitation (activation) Enhanced Input not injectable via Slate PressKey
RT-003 1P Floating PIE Paladin (session) 1 Blocked by Test Environment / Tool Limitation High No movement/ability input injection; cannot reach pickups without moving actors
RT-004A 1P Floating PIE Amazonian 1 Tool Limitation High Enhanced Input activation unreachable via available tools
RT-004B Amazonian Blocked by Test Environment High No non-mutating interrupt action available without ability input
RT-005 1P Floating PIE Paladin 1 Tool Limitation High Same Enhanced Input limitation
RT-006 1P Floating PIE Prefer Amazonian 1 Blocked by Missing Implementation / Test Environment High Enemy attack Missing; no connected player-damage source without ability input
RT-007 2P listen PIE Blocked by Test Environment / Tool Limitation High playNumberOfClients=1; StartPIE has no player-count; config save unauthorized
RT-008 2P Blocked by Test Environment / Tool Limitation High Depends on RT-007
RT-009 2P Blocked by Test Environment / Tool Limitation High Depends on RT-007
RT-010 2P Blocked by Test Environment / Tool Limitation High Depends on RT-007
RT-011 1P Floating PIE Paladin session / enemy actors 1 Observed Runtime Behavior (boundary) MediumHigh Ability damage path not exercised (input limitation)

2. Initialization matrix

Role/character ASC H/MaxH ASC M/MaxM ASC S/MaxS Legacy health Legacy mana Legacy stamina Active GEs Granted GAs
Authority / Amazonian (RT-001) 75 / 100 25 / 50 0 / 0 DEPRECATED_CurrentHealth=0 / MaxHealth=0 CurrentMana=0 / MaxMana=0 CurrentStamina=85 / MaxStamina=100 none none
Authority / Paladin (RT-002 init) 75 / 100 25 / 50 0 / 0 CurrentHealth=0 / MaxHealth=0 CurrentMana=100 / MaxMana=100 CurrentStamina=0 / MaxStamina=0 none none
Remote client Not applicable Not applicable Not applicable Not applicable Not applicable Not applicable Not applicable Not applicable

RT-001 detail (Amazonian)

Field Actual
ASC Owner actor BP_PlayerState_C_0 (ASC component on PlayerState)
ASC Avatar Player pawn resolves same ASC via character GetASC path (inspector accepts pawn)
Active Gameplay Effects []
Granted Gameplay Abilities []
IsDead false
CurrentlyAttacking false
Net role ROLE_Authority
HUD actor WBP_PlayerHUD_C_0 present
Overlay classes on HUD WBP_Overlay, BP_OverlayWidgetController assigned
Overlay instances (Slate) Two progress bars visible after spawn; no stamina widget text/bar observed
Legacy HUD receiver Not observed to display values (no visible numeric legacy HUD)
Expected static ASC Health=75, MaxHealth=100, Mana=25, MaxMana=50, Stamina possibly zero — Confirmed
Expected legacy sync Potentially differ — Confirmed diverge; Amazonian legacy health/mana are 0

CDO defaults (read-only; explains runtime zeros)

Class CurrentHealth MaxHealth CurrentMana MaxMana CurrentStamina MaxStamina
BP_PlayerCharacterBase CDO 0 0 0 0 0 0
Player_Amazonian CDO 0 0 0 0 85 100
Player_Paladin CDO 0 0 100 100 0 0
Paladin Ability004ManaCost CDO cost 0

3. HUD matrix

Role/character Overlay instances Health display Mana display Stamina display Legacy HUD behavior Respawn behavior
Amazonian SP 2 progress bars observed in floating PIE Present (ASC Overlay path) Present (ASC Overlay path) None observed No visible legacy numeric HUD; UpdatePlayerHUD not validated by value change Not observed (RT-006 blocked)
Paladin SP 2 progress bars observed Present Present None observed Same Not observed
Remote client Not applicable Not applicable Not applicable Not applicable Not applicable Not applicable

4. Ability execution matrix

Test Input role Server RPC Multicast Notify execution roles Gameplay execution role Cost role Cleanup result
RT-002 Paladin 004 Attempted Slate PressKey Four + LMB; CurrentlyAttacking remained false Not observed Not observed Not observed Not observed Not observed (CDO cost=0 anyway) Not applicable
RT-004 Amazonian 001 Tool Limitation — Enhanced Input not driven by Slate Not observed Not observed Not observed Not observed Not applicable (no mana cost) Not observed
RT-005 Paladin 001 Tool Limitation Not observed Not observed Not observed Not observed Not observed Not observed
RT-008 remote Blocked (no 2P) Not applicable Not applicable Not applicable Not applicable Not applicable Not applicable

Input tooling note: IA_Ability_001 = LeftMouseButton; IA_Ability_004 = Four. Slate PressKey returns true but does not change CurrentlyAttacking or resources. OS-level input injection was blocked by environment policy. Classified Tool Limitation.


5. Damage/death matrix

Source Target Damage receiver Health source changed Death trigger Replication Respawn Result
Enemy attack Player Not applicable Not observed Not observed Not observed Not observed Blocked by Missing Implementation (enemy attack Missing per Phase 1)
Player ability ApplyDamage Enemy / other player Not observed Not observed Not observed Not observed Not observed Tool Limitation (ability input) + RT-009 blocked (no 2P)
Debug / temporary damage actor Not authorized

6. Pickup matrix

Pickup Present in Test01 Overlap role GE applications Server destruction Client destruction ASC change Legacy change Result
BP_HealthPotion Yes (1) Not observed Not observed Not observed Not applicable (1P) Not observed Not observed Blocked — cannot walk to overlap without input / cannot move actors
BP_ManaPotion Yes (1) Not observed Not observed Not observed Not applicable Not observed Not observed Blocked (same)
BP_ManaCrystal Yes (1) Not observed Not observed Not observed Not applicable Not observed Not observed Blocked (same)
BP_OrangeSlice Yes (1) Not observed Not observed Not observed Not applicable Not observed Not observed Blocked (same)
BP_SmallGoldPickUp Yes (3) Not observed Not applicable (AddGold no-op) Not observed Not applicable Not applicable Not applicable Blocked (same)
Runtime bReplicates (HealthPotion) false (Observed Runtime Behavior; confirms Phase 1)

7. Static-versus-runtime reconciliation

Phase 1 finding Runtime result Confirmed Refined Contradicted New limitation
ASC Health 75 / Max 100 / Mana 25 / Max 50 Amazonian + Paladin match Yes
Stamina ASC may be zero ASC Stamina/MaxStamina = 0/0 Yes
No granted project GAs / no default GE Empty granted + active effects Yes
Legacy and ASC not synchronized Amazonian legacy H/M=0 vs ASC 75/25; Paladin legacy Mana 100 vs ASC 25 Yes Amazonian combat legacy health starts at 0 (CDO) Death/combat using legacy health is immediately at death threshold risk
Overlay Health/Mana present; no stamina widget Two progress bars; no stamina UI Yes
Pickup bReplicates=false HealthPotion runtime false Yes
Enemy ASC on character Component present (AbilitySystemComponent, AttributeSet) Yes AbilitySystemInspector cannot query attributes (does not have an AbilitySystemComponent) — likely InitAbilityActorInfo / interface exposure gap Inspector Tool Limitation vs true missing ASC
Enemy chase/attack Missing No outbound enemy damage available for RT-006 Yes
AnimNotify-driven gameplay authority Not exercised Enhanced Input injection Tool Limitation
Char-select server spawn path Floating PIE Start → spawn + possess works Yes GM PlayerFirstSpawn emits Accessed None warning
2-client PIE via editor playNumberOfClients=1, Standalone Cannot raise clients without unauthorized config save

Per-test records (abbrev)

RT-001 — Single-player initialization (Amazonian)

  • Date: 2026-07-17
  • PIE mode: Floating, 1 player, Standalone
  • Actions: StartPIE → AMAZON → Start
  • Pass/fail: Observed Runtime Behavior (matches ASC expected; legacy divergence stronger than “may differ”)
  • Cleanup: StopPIE

RT-002 — Legacy vs ASC divergence (Paladin)

  • Actions: Restart PIE → PALADIN → Start; record resources; attempt Ability 004 via Slate key
  • Actual: Init divergence confirmed (ASC Mana 25 vs legacy Mana 100). Ability activation not achieved. Paladin Ability004ManaCost CDO = 0.
  • Classification: Observed Runtime Behavior (init) + Tool Limitation (cost mutation path)
  • Cleanup: session continued then StopPIE

RT-003 — Consumables

  • Classification: Blocked by Test Environment / Tool Limitation
  • Note: All four GE pickups + three gold pickups exist in map; overlap not reachable without movement input or unauthorized actor moves.

RT-004 / RT-005 — Ability chains

  • Classification: Tool Limitation (Enhanced Input)

RT-006 — Damage/death/respawn

  • Classification: Blocked by Missing Implementation (enemy attack) and Tool Limitation (player ability damage)

RT-007RT-010 — Two-player

  • Read: playNumberOfClients=1, playNetMode=PIE_Standalone
  • Attempt: Non-persisting UI set not achieved via available Slate surface during session
  • Classification: Blocked by Test Environment / Tool Limitation
  • Open environment decision: how to enable 2-client PIE without config persistence (see 02-Phase2A-OpenDecisions.md)

RT-011 — Enemy boundary

  • Observed: Enemy actors present; ASC + AttributeSet components present; bCanBeDamaged=true; AbilitySystemInspector attribute query fails; no player→enemy damage exercised
  • Classification: Observed Runtime Behavior (component presence / inspector failure) + incomplete damage-path validation

Tool limitations (session)

  1. In-viewport PIE: Slate cannot drive WBP_CharacterSelect.
  2. Floating PIE required for UMG button clicks.
  3. Slate PressKey / Click on viewport does not trigger Enhanced Input actions.
  4. OS-level input injection blocked by environment policy.
  5. StartPIE has no NumberOfPlayers; raising clients requires Play settings mutation that saves (unauthorized).
  6. Enemy ASC component exists but AbilitySystemInspector rejects actor as having no ASC.
  7. Enemy IsDead property not readable via ObjectTools on runtime instance (name/exposure).

Mutation confirmation

No Unreal assets, source, configuration, maps, plugins, or persistent editor settings were modified. Only new Markdown under Documentation/Phase2/ is intended to change.