Skip to content

Add server-side support for slots in multiplayer rooms#513

Open
bdach wants to merge 7 commits into
ppy:masterfrom
bdach:slots
Open

Add server-side support for slots in multiplayer rooms#513
bdach wants to merge 7 commits into
ppy:masterfrom
bdach:slots

Conversation

@bdach
Copy link
Copy Markdown
Collaborator

@bdach bdach commented May 22, 2026

This includes:

  • Enforcement of maximum participant count limit
  • Maintenance of slots in room and implementation of related operations (changing slots, locking room)
  • New referee API operations for manipulating slots

The best specification for how the slots were intended to work is probably the test suite added here (MaxParticipantsAndSlotsTest) so I'd rather recommend reading that instead than restate the tests here.

peppy pushed a commit to ppy/osu that referenced this pull request May 24, 2026
Fell out of full-stack testing with
ppy/osu-server-spectator#513.

- **Fix missing property copy in multiplayer client**
Would cause the participant count limit to not update on the multiplayer
match screen.
  

- **Fix hard crash when user is kicked from a room with slots active**
The kicked user is unsubscribed from receiving room state updates before
their slot is vacated, which then would lead this code to attempt to
look the local, kicked user via the unvacated slot and thus fail because
`client.Room.Users` does *not* contain the user anymore.
  
This is a bit of a dicey change but I think it's less dicey than to try
to wiggle ordering server-side.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

Status: Pending Review

Development

Successfully merging this pull request may close these issues.

Add back support for slots in multiplayer rooms Add better support for tournament management

1 participant