# 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