# 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