Skip to content

Conversation

@smoogipoo
Copy link
Contributor

@smoogipoo smoogipoo commented Dec 6, 2025

RFC. Want to see if this structure is agreeable, or if we need a more common "ResetStatesForGameplay" method.

There's two compounding issues with the current skip implementation that I didn't consider:

  1. Skip can be triggered after Player has loaded and before all other players have finished loading, or in other words before the room is in a Playing state. This results in a client-side error because the server rejects this call. The button gets disabled so the user can no longer skip.
  2. The server cannot simply allow skips in the leadup states, because both it and the client independently reset the state.

... The result of which leads to this broken interaction:

2025-12-06.13-40-54.mp4

So the primary idea of these changes is to reset (or rather, set) the states exactly as the server requires us to do. That will then allow the server to move this wherever is appropriate - see ppy/osu-server-spectator#388

@smoogipoo
Copy link
Contributor Author

smoogipoo commented Dec 6, 2025

Old Server New Server
Old Client 🟢 🟠 1
New Client 🟠 2 🟢

I would suggest a server-side deployment first as that fixes the actual issues. Vote to skip seems to continue to work either way, but the client won't display the vote count until both are deployed.

Footnotes

  1. Vote to skip continues to work and includes fixes for the two issues mentioned. Client will not display vote count.

  2. Vote to skip continues to work as it already does. Client will not display vote count.

@smoogipoo smoogipoo requested a review from a team December 6, 2025 05:16
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

Status: Pending Review

Development

Successfully merging this pull request may close these issues.

1 participant