# WBP_PauseMenu — Widget (Pause Menu)

**Parent:** `UUserWidget`
**Used by:** `SS_UIManager.PushMenu("PauseMenu")`
**Depends On:** `SS_UIManager`, `SS_SaveManager`, `GI_GameFramework`

---

### Purpose
In-game pause overlay with Resume, Save, Load, Settings, Return to Main Menu.

### Variables

| Name | Type | Description |
|------|------|-------------|
| `ResumeButton` | `Button` | Closes menu, resumes game |
| `SaveButton` | `Button` | Manual save |
| `LoadButton` | `Button` | Load a different save |
| `SettingsButton` | `Button` | Opens settings |
| `QuitToMenuButton` | `Button` | Confirm quit to main menu |

### Functions

| Name | Inputs | Outputs | Description |
|------|--------|---------|-------------|
| `OnResume` | — | — | SS_UIManager.CloseTopMenu, set game phase back to InGame |
| `OnSave` | — | — | SS_SaveManager.CreateManualSave, show notification |
| `OnLoad` | — | — | Push load slot selection via SS_UIManager |
| `OnSettings` | — | — | SS_UIManager.PushMenu "SettingsMenu" |
| `OnQuitToMenu` | — | — | Show confirmation, confirm calls OpenMainMenu |

### Blueprint Flow — Pause Menu Open

```mermaid
sequenceDiagram
    participant Player as Player
    participant UIMgr as SS_UIManager
    participant GM as GI_GameFramework
    participant HUD as WBP_HUDController

    Player->>UIMgr: Press ESC
    UIMgr->>GM: SetGamePhase Paused
    GM->>HUD: OnPhaseChanged Paused
    HUD->>HUD: Hide diegetic elements
    UIMgr->>UIMgr: PushMenu PauseMenu
    Note over UIMgr: Show mouse cursor
    Note over UIMgr: Input mode = UI Only
```

### Communications With

| Target System | Method | Why |
|--------------|--------|-----|
| [`SS_UIManager`](44_SS_UIManager.md) | Push/Pop/Close/Open | Menu lifecycle |
| [`GI_GameFramework`](../01-core/04_GI_GameFramework.md) | SetGamePhase, dispatchers | Phase transitions |
| [`SS_SaveManager`](../05-saveload/28_SS_SaveManager.md) | Save/Load functions | Save slots |

### Reuse Notes
- Split from original bundled `36_WBP_MenuWidgets.md` per Clean Slate refactoring plan