Match Types
Multiplayer supports several different match formats to suit different playstyles:Available Match Types
Head-to-Head
Head-to-Head
Players compete individually for the highest score. Each player’s performance is tracked separately.
Team Versus
Team Versus
Players are divided into teams (typically Red vs Blue). Team scores are combined to determine the winner.
Matchmaking (Quick Play)
Matchmaking (Quick Play)
Automated matchmaking system that pairs players of similar skill levels.
Ranked Play
Ranked Play
Competitive ranked matchmaking with skill-based ratings.
Room Settings
Multiplayer rooms are configured with various settings that control gameplay and user permissions:Queue Modes
Queue modes determine who can add beatmaps to the playlist:Room Server Interface
TheIMultiplayerRoomServer interface defines all operations available to players in a multiplayer room:
Basic Room Operations
Room Management
Player State Management
Players can change their state within the room:The system tracks whether each player has the required beatmap downloaded. Players without the beatmap cannot participate until the download completes.
Playlist Management
Depending on the queue mode, players can manage the playlist:Playlist Operations
Playlist Operations
Add Playlist Item
Add Playlist Item
Add a new beatmap to the room’s playlist:The item includes the beatmap, required mods, and allowed mods.
Edit Playlist Item
Edit Playlist Item
Modify an existing playlist item:The item must have a valid ID to be edited.
Remove Playlist Item
Remove Playlist Item
Remove a beatmap from the playlist:
Match Control
The host controls when matches start and can abort ongoing matches:Match State Control
Countdown System
Rooms support countdown timers for automatic match starts:Match Start Countdown
Force Gameplay Start
A special
ForceGameplayStartCountdown can override player ready states and force the match to begin after the countdown expires.Player Invitations
Players can invite others to join their room:Skip Voting
Players can vote to skip the beatmap intro:Auto-Skip Behavior
When enabled, beatmap intros are automatically skipped for all players without requiring votes.
Match-Specific Requests
Different match types support custom request types:Team Versus
In Team Versus mode, players can change teams:Ranked Play
Ranked play includes additional features:Ranked Play Features
- Damage System: Card-based damage dealing
- Stages: Progressive difficulty stages
- User Rankings: Skill-based ratings
Matchmaking
Quick play matchmaking tracks:Error Handling
The multiplayer system uses specific exceptions to communicate errors:Exception Types
Exception Types
NotHostException
NotHostException
Thrown when a non-host player attempts a host-only operation.
NotJoinedRoomException
NotJoinedRoomException
Thrown when attempting room operations while not in a room.
InvalidStateException
InvalidStateException
Thrown when an operation is invalid given the current game/room state.
InvalidStateChangeException
InvalidStateChangeException
Thrown when a requested state change is not permitted.
InvalidPasswordException
InvalidPasswordException
Thrown when attempting to join a password-protected room with incorrect password.
Best Practices
Implementation Tips
- Always check host status before attempting host-only operations
- Handle exceptions gracefully to provide good user feedback
- Track player states to ensure smooth match flow
- Validate beatmap availability before starting matches
- Use appropriate queue modes for your use case