# 11 — UI, HUD, and Sessions **Status: Draft** - **Scope:** Native HUD / widget-controller path (Batch 1); Pass 3 resolution of `WBP_PlayerHUD` and GM/PC framework ties. Full frontend/session graphs deferred to Batch 4. - **Inspection method:** Native C++ read; Batch 2 AssetTools class/tags/deps/refs; ObjectTools GM_Dungeoneer CDO; BlueprintTools PC_Character. - **Last updated:** 2026-07-16 - **Current phase:** Phase 1 — Static Architecture - **Last completed pass:** Pass 3 (Batch 2) - **Next pass expected to contribute:** Batch 4 Passes 4 + 10 ## 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 ### Pending sections - Main menu / browser / character-select widget flow - Production vs Example Advanced Sessions Blueprints - WBP_Overlay / progress bar bindings 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/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`. Relationship to `ARIRHUD`: direct Blueprint child that supplies OverlayWidgetClass / OverlayWidgetControllerClass via deps to `WBP_Overlay` + `BP_OverlayWidgetController`. --- ## HUD init (Observed Implementation) ### Native GAS path `ARIRPlayerCharacter::InitAbilityActorInfo` → `ARIRHUD::InitOverlay(PC, PS, ASC, AS)` → create `OverlayWidgetClass` → `UOverlayWidgetController` binds ASC attribute delegates → `BroadcastInitialInitialValues` → `AddToViewport`. ### Legacy BP path (still connected) `BP_PlayerCharacterBase` EventPossessed → Delay 0.4 → `Server_UpdateHUD` → compute DEPRECATED health/mana percentages → `BPI_PlayerController.UpdatePlayerHUD`. **Technical Debt:** Dual attribute UI; Stamina delegates reuse Mana signature types in OverlayWidgetController.h. --- ## 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. **Unknown:** Live menu usage vs Example Advanced Sessions Blueprints — Batch 4 Pass 4. **Unknown:** OnlineSubsystem INI location — Requires Broader Filesystem/Configuration Inspection.