# WBP_MainMenu — Widget (Main Menu)

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

---

### Purpose
Title screen with New Game, Continue, Load, Settings, Credits, Quit.

### Variables

| Name | Type | Description |
|------|------|-------------|
| `bContinueAvailable` | Bool | Set by SaveManager check on Construct |
| `AnimatedTitle` | `Image` or `TextBlock` | Animated game title |
| `ContinueButton` | `Button` | Highlights if save exists |
| `NewGameButton` | `Button` | Starts new game |
| `LoadGameButton` | `Button` | Opens load slot list |
| `SettingsButton` | `Button` | Opens settings menu |
| `CreditsButton` | `Button` | Opens credits |
| `QuitButton` | `Button` | Quit confirmation |

### Functions

| Name | Inputs | Outputs | Description |
|------|--------|---------|-------------|
| `OnConstruct` | — | — | Check SS_SaveManager.HasAnySave for continue availability |
| `OnNewGame` | — | — | Call SS_SaveManager.ResetGameState, then OpenLevel "FirstLevel" |
| `OnContinue` | — | — | Call SS_SaveManager.LoadLatestSave, then OpenLevel from save header |
| `OnLoadGame` | — | — | Pushes load slot selection UI via SS_UIManager |
| `OnSettings` | — | — | SS_UIManager.PushMenu "SettingsMenu" |
| `OnCredits` | — | — | SS_UIManager.PushMenu "Credits" |
| `OnQuit` | — | — | Show quit confirmation dialog |
| `OnConfirmQuit` | — | — | `UKismetSystemLibrary.QuitGame` |

### Communications With

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

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