[title: "MainMenu Class"] ← Back to index

The main menu state with navigation to all game features including character system, editor, and jukebox.

[heading: "Description"]

MainMenu provides access to all major game features including song selection, character management, chart editor, jukebox, settings, addon management, achievements, and extras.

[heading: "Key Responsibilities"] [list] * Provide navigation to all game modes * Display and manage settings * Handle addon management * Play background music * Manage UI windows and menus * Show feedback dialogs (rating, feature requests, community) * Handle crash recovery prompts [/list] [heading: "Methods"] [table header] [ Method | Parameters | Description ] [ create | () | Initializes main menu elements and checks dialogs ] [ checkInitialDialogs | () | Shows crash report, rating, feature request, or community dialogs ] [ showBugReportDialog | () | Prompts user to report a crash ] [ showRatingDialog | () | Asks user to rate the game ] [ showFeatureRequestDialog | () | Asks for feature suggestions ] [ showCommunityDialog | () | Prompts to join community ] [ menu | () | Creates the main navigation menu ] [ showHomeMenu | () | Displays home menu with main options ] [ startGame | () | Shows game mode selection (Free Play, Extra Songs) ] [ showExtraSongs | () | Shows external song loading options ] [ showExtras | () | Shows extras menu (Addons, Jukebox, Achievements, Stats, etc.) ] [ showFeedback | () | Shows feedback options (Review, Feature Request, Bug Report) ] [ showCommunity | () | Opens community homepage ] [ showAddonManager | () | Launches addon management interface ] [ showSettings | () | Launches settings menu ] [ freePlay | () | Starts free play song selection ] [ startOffsetAssistant | () | Launches offset calibration tool ] [ loadExternalSongs | () | Loads user-added songs ] [ loadSingleSong | () | Loads single song from folder ] [ startJukebox | () | Launches jukebox music player ] [ openEditor | () | Opens chart editor ] [ showAchievements | () | Shows achievements menu ] [ showStats | () | Shows player statistics ] [ showCredits | () | Shows credits screen ] [ confirmDialog | (message, onConfirm, onCancel, confirmText, cancelText) | Shows confirmation dialog ] [ confirmExit | () | Confirms game exit ] [ update | () | Handles input and UI updates ] [ shutdown | () | Cleans up resources when leaving state ] [/table] [heading: "Feedback Dialogs"]

MainMenu automatically shows feedback dialogs based on playtime:

[table header] [ Dialog | Trigger | Purpose ] [ Bug Report | After crash | Collect crash information ] [ Rating | 15 minutes playtime | Ask for game rating ] [ Feature Request | 30 minutes playtime | Collect feature suggestions ] [ Community | 1 hour playtime | Promote community joining ] [/table] [heading: "Example Usage (Modding)"] [codeblock javascript] // Add custom menu item to home menu game.onMenuIn.add(function(menuName, menu) { if (menuName === 'home') { menu.addItem("My Custom Feature", () => { notifications.show("Custom feature activated!"); }); } }); [/codeblock] [footer: "© Retora 2026"]