# WBP_ScreenEffectController — Widget (Screen Effects) **Parent:** `UUserWidget` **Used by:** `WBP_HUDController`, `BPC_HealthSystem`, `BPC_StressSystem` **Depends On:** `WBP_HUDController` --- ### Purpose Full-screen overlay for damage vignettes, jump scare flashes, stress distortion, and post-process material effects. ### Variables | Name | Type | Description | |------|------|-------------| | `DamageVignetteImage` | `Image` | Red vignette overlay | | `FlashImage` | `Image` | White flash for jump scares | | `StressDistortionMaterial` | `MaterialInstanceDynamic` | Screen distortion MID | | `DamageAnim` | `WidgetAnimation` | Fade in/out damage vignette | | `JumpScareAnim` | `WidgetAnimation` | Quick white flash + fade | | `StressAnim` | `WidgetAnimation` | Distortion intensity pulse | | `bIsFlashing` | Bool | Prevent double-trigger | ### Functions | Name | Inputs | Outputs | Description | |------|--------|---------|-------------| | `TriggerDamageFlash` | Intensity: Float (0-1) | — | Set DamageVignette opacity, play DamageAnim | | `TriggerJumpScareFlash` | — | — | Play JumpScareAnim, prevent re-trigger during flash | | `SetStressDistortion` | Amount: Float (0-1) | — | Set scalar param on StressDistortionMaterial | | `ClearEffects` | — | — | Reset all overlays to 0 opacity | ### Communications With | Target System | Method | Why | |--------------|--------|-----| | [`WBP_HUDController`](WBP_HUDController.md) | Parent reference | Routing damage/stress events | | [`BPC_HealthSystem`](../02-player/08_BPC_HealthSystem.md) | Dispatcher | Damage flash triggers | | [`BPC_StressSystem`](../02-player/10_BPC_StressSystem.md) | Dispatcher | Stress distortion | ### Reuse Notes - Reusable VFX overlay; the same widget handles damage, stress, and jump scares without duplication - Split from original bundled `36_WBP_MenuWidgets.md` per Clean Slate refactoring plan