WBP_HUDController — Widget (Root HUD)
Parent Class: UUserWidget (created via HUD Blueprint)
Dependencies: SS_UIManager, BPC_InteractionDetector, BPC_HealthSystem, BPC_StressSystem, BPC_StaminaSystem, BPC_NarrativeStateSystem, BPC_ObjectiveSystem, BPC_DialoguePlaybackSystem
File: WBP_HUDController
Purpose
The master HUD container. Owns all in-world HUD sub-widgets and manages their visibility based on game phase and player state. Does NOT own full-screen menus — those are managed by SS_UIManager.
Responsibilities
- Create and manage all HUD sub-widgets (diegetic display, interaction prompt, subtitles, notifications, objective overlay, screen effects)
- React to
E_GamePhase changes (hide HUD during cutscenes, show during play)
- Route visibility of individual HUD elements via gameplay tags
- Never display raw data — always delegates to child widgets
- Handle fade-to-black transitions for death/loading
Variables
| Name |
Type |
Description |
DiegeticHUDWidget |
WBP_DiegeticHUDFrame |
The diegetic UI element (watch/visor/etc) |
InteractionPromptWidget |
WBP_InteractionPromptDisplay |
Interaction cues |
SubtitleWidget |
WBP_SubtitleDisplay |
Dialogue/event subtitles |
NotificationWidget |
WBP_NotificationToast |
Toast messages |
ObjectiveWidget |
WBP_ObjectiveDisplay |
Objective overlay |
ScreenEffectWidget |
WBP_ScreenEffectController |
Full-screen effects |
MinimapWidget |
Widget |
Optional minimap/compass |
bHUDVisible |
Bool |
Master visibility flag |
FadeWidget |
Image |
Black full-screen image for fades |
Sub-Widget Class References
| Variable Name |
Default Class |
DiegeticHUDClass |
WBP_DiegeticHUDFrame (subclass per project) |
InteractionPromptClass |
WBP_InteractionPromptDisplay |
SubtitleClass |
WBP_SubtitleDisplay |
NotificationClass |
WBP_NotificationToast |
ObjectiveClass |
WBP_ObjectiveDisplay |
ScreenEffectClass |
WBP_ScreenEffectController |
Functions / Events
| Name |
Inputs |
Outputs |
Description |
ConstructChildren |
— |
— |
Spawns all sub-widgets, adds as children |
SetHUDVisibility |
bVisible: Bool |
— |
Master show/hide (for cutscenes) |
FadeToBlack |
Duration: Float |
— |
Lerps FadeWidget opacity to 1 |
FadeFromBlack |
Duration: Float |
— |
Lerps FadeWidget opacity to 0 |
TriggerDamageVignette |
Intensity: Float |
— |
Calls ScreenEffectWidget.TriggerDamageFlash |
TriggerJumpScareFlash |
— |
— |
Calls ScreenEffectWidget.TriggerJumpScareFlash |
SetStressDistortion |
Amount: Float |
— |
Routes to ScreenEffectWidget |
OnPhaseChanged |
NewPhase: E_GamePhase |
— |
Listen from GI_GameFramework; hide/show HUD |
Event Dispatchers
| Name |
Parameters |
Fired When |
OnHUDHidden |
— |
HUD hidden (cutscene/loading) |
OnHUDShown |
— |
HUD restored |
OnFadeComplete |
bFadedIn: Bool |
Fade animation completes |
Blueprint Flow — Phase Change Reaction
Communications With
Reuse Notes
The HUD class references are configurable so each project can override DiegeticHUDClass with a themed skin (watch, visor, bracelet, etc.) without modifying any logic. The fade system is used by death handling, chapter transitions, and loading screens interchangeably.
- Renamed from
WBP_HUD to WBP_HUDController per Master naming convention.