Room Structure
Rooms are the foundation of online play, containing all the information about a play session:Room Properties
Core Room Properties
Core Room Properties
Identity
Identity
- RoomID: Online identifier (null until created)
- Name: Display name for the room
- ChannelId: Associated chat channel ID
Access Control
Access Control
- Password: Room password (only set during creation)
- HasPassword: Indicates if password is required
- Availability: Who can join (public, friends only, etc.)
- Pinned: Whether the room appears at the top of listings
Participants
Participants
- Host: Room creator/host user
- MaxParticipants: Maximum allowed players
- ParticipantCount: Current number of players
- RecentParticipants: List of recent players
Timing
Timing
- StartDate: When the room was created
- EndDate: When the room will close
- Duration: How long the room stays open
The
Password property is write-only after creation for security. Use HasPassword to check if a password is required.Room Categories
Rooms are organized into categories:Room Categories
- Normal: Standard user-created rooms
- Spotlight: Featured/promoted rooms
- Featured Artist: Rooms featuring official content
- Lazer: osu!lazer-specific rooms
Playlist System
Rooms contain playlists of beatmaps to be played:Playlist Items
Each playlist item represents a beatmap with specific settings:PlaylistItem Properties
- Beatmap: The beatmap to be played
- RequiredMods: Mods that all players must use
- AllowedMods: Mods that players can optionally enable
- RulesetID: Which game mode to use
- Expired: Whether this item is no longer playable
Playlist Statistics
Rooms track statistics about their playlists:Difficulty Range
The room displays its difficulty range:This helps players quickly assess if a room matches their skill level.
Room Settings
Different room types support different settings:Playlist-Specific Settings
Playlist Room Settings
Multiplayer-Specific Settings
Multiplayer Room Settings
Multiplayer Room Settings
Queue Mode
Queue Mode
Controls who can add songs to the playlist:
- Host Only
- All Players
- All Players (Round Robin)
Auto-Start
Auto-Start
Automatically start matches after a delay:Set to zero to disable auto-start.
Auto-Skip
Auto-Skip
Automatically skip beatmap intros:
Creating and Managing Rooms
Creating a Room
Joining a Room
Join Room Process
Leaving a Room
Room Status
Rooms have different statuses throughout their lifecycle:Room Availability
Controls who can see and join the room:Availability options include public, friends-only, and invite-only modes.
Scoring and Leaderboards
Rooms maintain leaderboards for competitive play:Room Leaderboard
Leaderboard Request
Playlist Item Scores
Each playlist item has its own leaderboard:Score Retrieval
Score Query Methods
Score Query Methods
Show Playlist Score
Show Playlist Score
Retrieve a specific score by ID:
Show User Score
Show User Score
Get the current user’s score on a playlist item:
Scores Around User
Scores Around User
Retrieve scores near the user’s ranking:
User Score Tracking
The room tracks aggregate scoring for each user:Aggregate Score
Combines performance across all playlist items to show overall user performance in the room.
Score Submission
When playing in a room, scores are submitted to the server:Room Listing
Retrieve available rooms from the server:Filtering Rooms
Rooms can be filtered by:
- Category (Normal, Spotlight, etc.)
- Game mode
- Status (Open, Playing)
- Search terms
Room Updates
Room properties update in real-time:Current Playlist Item
For room listings, a current item is tracked:This property is primarily used in the lounge screen and may not be accurate inside the room.
Attempt Tracking
The system tracks how many times each user has attempted each playlist item:MaxAttempts limits in playlist rooms.