Rocket Rumble Menus, Settings and Lifecycle¶
This guide covers the shared behavior of Rocket Rumble 2D and Rocket Rumble 3D, optional 2–4-player sample games. Keep this folder when using either sample. Begin with Quick Start for framework setup; these menus and match rules are sample content.
Main Menu and lobby¶
Open the chosen sample's Main Menu scene and enter Play Mode. PLAY opens its lobby; SETTINGS contains Audio and Controls; QUIT exits a standalone build and leaves Editor Play Mode running. Main Menu creates no joined players.
Join with Q, P, gamepad Start or a matched joystick's Join control. Browse and confirm Cobalt, Ember, Mint or Orchid, then move focus down to START GAME. At least two joined players must be Ready with available input. Moving focus does not clear Ready. The default lobby controls are independent of gameplay bindings.
Menu panels support mouse, keyboard, gamepad and configured joystick navigation. Keyboard A uses WASD/F, Keyboard B arrows/Enter; gamepads use stick/D-pad/South; the supplied DragonRise profile uses stick/button2. Visible Back controls and keyboard G/Backspace/Escape or controller/profile Cancel return to the preceding panel. Smart UI Focus & Navigation manages selection recovery, scopes and modals. Release held controls before the next fresh menu press.
Audio settings¶
Master, Music, SFX and UI sliders apply immediately to the included sample mixer. Zero mutes; 100% is 0 dB. Defaults are Master 100%, Music about 25%, SFX about 56% and UI about 45%. RESET AUDIO DEFAULTS restores and saves them. Sample audio preferences use PlayerPrefs and survive scene changes/restarts; they are separate from input profiles.
One persistent sample audio service carries lobby music through menu/settings/lobby. Countdown has no arena music; GO starts arena music; victory stops it; lobby return restores lobby music. Jump, death, respawn, rocket launch, countdown, winner and UI feedback use included sample audio. The service releases itself when leaving Rocket Rumble scenes. This is sample audio integration, not a required framework audio system.
Controls settings¶
Choose Keyboard A, Keyboard B, a connected gamepad family or a configured Joystick profile. The device-less gamepad placeholder can show/reset defaults but CHANGE needs connected hardware. Gameplay rows cover Move, Jump, Fire, Shield and Pause / Winner Return. Lobby Confirm/Back/Leave are fixed, separate controls; Join is not offered for rebinding.
Bindings belong to Input Binding Profiles, never P1–P4 seats. KeyboardA/KeyboardB follow their logical roles; controller settings follow the resolved family/profile. Identical controllers without verified unique identity share settings, while keeping separate actions, sessions and InputUsers. Seat reuse cannot transfer another source's profile. See Input Binding Profiles for the storage abstraction and honest identity fallback.
Select CHANGE, then provide a control from the chosen device. Its keyboard Escape, gamepad East or joystick Cancel can abort; the visible Cancel control and timeout also work. Other devices cannot choose/cancel that capture. After capture, release held controls; focus returns to the Change button. Conflicting different actions in one gameplay map and Keyboard A/B overlap are rejected without changing the save. Separate controller devices may reuse equivalent buttons; lobby/UI maps may reuse gameplay controls.
- A row's RESET resets that profile/action; a Move reset restores all its parts.
- RESET PROFILE resets the selected source's profile after confirmation.
- RESET ALL CONTROLS clears all saved framework profiles after separate confirmation.
The sample uses the framework JSON store at Application.persistentDataPath/CouchCoopBuilder/input-bindings.json; customers can substitute IInputBindingProfileStore. Unreadable saves disable editing rather than silently overwriting data. Overrides conflicting with changed defaults require correction/reset; unmatched old binding addresses remain unapplied. Settings previews create no fake players or InputUsers.
Pause and Device Lost¶
The shared Pause panel reads each player's owned Pause action: defaults T / Y / Start / DragonRise button11. Joined players with available input can navigate using their existing lobby controls; mouse also works. Pause is available during countdown and gameplay; the Winner screen owns its separate return flow.
Pause sets Time.timeScale to zero, freezing physics, projectiles, scoring, countdown and respawn timers. Music/gameplay SFX pause; UI audio continues. Resume restores the same voices and timers. Movement, Jump, Fire and Shield require neutral controls followed by fresh input; shield cooldown is retained. Scene exit restores time.
Physical Device Lost auto-pauses and retains the session, representation and score. The panel identifies unavailable seats. Device regain/reclaim clears the warning but does not resume automatically; Resume remains blocked while required input is missing. Replacement-device ambiguity follows the framework's reserved-controller recovery policy, with no invented cross-launch identity.
RETURN TO LOBBY keeps sessions, Player Index values and selected characters, including disconnected reservations. Ready and match score reset for the next round. MAIN MENU permanently ends all sessions; the next PLAY begins with zero joined players. Saved audio preferences and input profiles remain.
Drop Out and Rejoin¶
In an active match, the owned Leave control (G / Backspace / Select / DragonRise button12) requests reversible Drop Out. The session, Player Index, character, score, InputUser and profile remain reserved. The sample releases the representation and gameplay action clone, removes that player's rockets, and displays DROPPED OUT / PRESS JOIN TO RETURN. Survivors continue; Drop Out causes no death/score or automatic win.
The same role/controller's normal Join restores that session with a new selected-character representation at a safe authored spawn. Shield resets Ready; held gameplay controls need fresh input. Dropping out while dead cancels pending respawn. If everyone voluntarily drops out, ALL PLAYERS LEFT / PRESS JOIN TO RETURN pauses the arena; the first valid Join restores play. DeviceRegained alone does not reverse voluntary Drop Out.
This differs from Device Lost, which keeps the representation, and explicit permanent TryLeave, which releases the session/seat. See framework lifecycle APIs when integrating your own game.
What to study and adapt¶
Shared components implement authored menu panels, audio preferences, profile editing, Pause, lobby feedback and safe-point selection. They consume public framework APIs without creating another ownership model. Both games use Gameplay Player Setup for spawning and Gameplay Player Binding for isolated owned actions. Movement, combat, score, respawn, camera follow and match policy belong to the samples.
Test your copy with supported hardware: navigate settings without mouse, edit/reset a profile, return lobby/game, Drop Out/Rejoin a middle player, and test actual Device Lost separately. Surviving Player Index/session mappings should stay stable. These examples are local sample games, not networking, arbitrary-game camera controllers or performance guarantees.