Files
realms-in-ruin-dev/Documentation/Archaeology/11-UI-HUD-And-Sessions.md
T
tedwardsandCursor e50c8032ef Document Batch 4B Pass 7 partial GAS archaeology: effects, tags, and legacy boundaries.
Inventories Gameplay Effects, orphan default attributes, missing abilities/cues, and consumable EffectActor wiring without modifying Unreal assets.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-07-16 21:29:19 -07:00

4.0 KiB

11 — UI, HUD, and Sessions

Status: Draft

  • Scope: Native HUD / widget-controller path (Batch 1); Pass 3 resolution of WBP_PlayerHUD; Pass 7 GAS attribute UI binding confirmation. Full frontend/session graphs deferred to Pass 4.
  • Inspection method: Native C++ read; AssetTools class/tags/deps/refs; ObjectTools; Pass 7 Overlay path verification.
  • Last updated: 2026-07-16
  • Current phase: Phase 1 — Static Architecture
  • Last completed pass: Pass 7 (Batch 4B) — GAS attribute UI portion
  • Next pass expected to contribute: Pass 4 (sessions/frontend)

Draft tracking

Completed sections

  • InitOverlay call chain from player InitAbilityActorInfo
  • OverlayWidgetController attribute broadcasts/bindings
  • AdvancedSessions / AdvancedSteamSessions enabled + descriptor paths
  • Widget subclass path seeds
  • WBP_PlayerHUD resolved as AHUD (RIRHUD child)
  • GM_Dungeoneer assigns HUDClass / PC / PS
  • Pass 7: Exact Overlay paths; stamina delegate type reuse confirmed; dual HUD vs ASC still unsynchronized

Pending sections

  • Main menu / browser / character-select widget flow
  • Production vs Example Advanced Sessions Blueprints
  • WBP_Overlay progress-bar Blueprint binding deep dive
  • CommonUI usage
  • BPI_PlayerController.UpdatePlayerHUD widget targets

Evidence still required

  • Whether both Overlay ASC HUD and DEPRECATED UpdatePlayerHUD run in PIE
  • Session create/find/join graphs

WBP_PlayerHUD resolution (Pass 3)

Field Value
Path /Game/_Main/UI/Widgets/HUD/WBP_PlayerHUD
Asset class WBP_PlayerHUD_C
Generated parent /Script/REALMSINRUIN.RIRHUD
Type AHUD Blueprint (not UserWidget)
IsDataOnly True
Referencers /Game/_Main/Blueprints/Game/GameMode/GM_Dungeoneer
Dependencies REALMSINRUIN, /Game/_Main/UI/Widgets/Overlay/WBP_Overlay, /Game/_Main/UI/Widgets/WidgetController/BP_OverlayWidgetController

Observed Implementation: Naming WBP_ is misleading Documented Intent; asset is the game HUD class assigned on GM_Dungeoneer.

Pass 7 path correction: Overlay widget exact path is /Game/_Main/UI/Widgets/Overlay/WBP_Overlay (not /Game/_Main/UI/Widgets/WBP_Overlay).


HUD init (Observed Implementation)

Native GAS path

ARIRPlayerCharacter::InitAbilityActorInfoARIRHUD::InitOverlay(PC, PS, ASC, AS) → create OverlayWidgetClassUOverlayWidgetController binds ASC attribute delegates → BroadcastInitialInitialValuesAddToViewport.

Controller asset: /Game/_Main/UI/Widgets/WidgetController/BP_OverlayWidgetController (Blueprintable subclass of native UOverlayWidgetController).

Broadcasts: Health, MaxHealth, Mana, MaxMana, Stamina, MaxStamina from URIRAttributeSet.

Legacy BP path (still connected)

BP_PlayerCharacterBase EventPossessed → Delay 0.4 → Server_UpdateHUD → compute DEPRECATED health/mana percentages → BPI_PlayerController.UpdatePlayerHUD.

Technical Debt / Incomplete Refactor: Dual attribute UI — no synchronization observed (Pass 7).

Technical Debt (Pass 7 confirmed): In OverlayWidgetController.h, OnStaminaChanged is typed FOnManaChangedSignature and OnMaxStaminaChanged is typed FOnMaxManaChangedSignature (stamina delegates reuse mana signature types). Dedicated FOnStaminaChangedSignature / FOnMaxStaminaChangedSignature are declared but unused for those properties.


Framework assignments (GM_Dungeoneer CDO)

Property Value
HUDClass WBP_PlayerHUD_C
PlayerControllerClass PC_Character_C
PlayerStateClass BP_PlayerState_C
DefaultPawnClass None

PC_Character implements BPI_PlayerController; holds CharacterSelectHUD; Enhanced Input IMC IMC_PlayerDefault + IA_Movement.


Sessions (Observed Implementation)

Project plugins AdvancedSessions + AdvancedSteamSessions enabled (VersionName 5.8). GM_Dungeoneer deps include AdvancedSessions.

Full session create/find/join graph archaeology → Pass 4.