Skip to content

Disable presenting scores in online song selects#36826

Merged
peppy merged 1 commit intoppy:masterfrom
bdach:fix-multi-leaderboard
Mar 5, 2026
Merged

Disable presenting scores in online song selects#36826
peppy merged 1 commit intoppy:masterfrom
bdach:fix-multi-leaderboard

Conversation

@bdach
Copy link
Collaborator

@bdach bdach commented Mar 5, 2026

RFC. Closes #36815 I guess.

Song select V1 completely disabled the ability to view a score outside of solo play in ways that are very easy to let fly under the radar:

public Action<ScoreInfo>? ScoreSelected;
playBeatmapDetailArea = new PlayBeatmapDetailArea
{
Leaderboard =
{
ScoreSelected = PresentScore
}
};

therefore the issue this is trying to close would never even manifest there.

The direct cause of the issue is that the results screen is pushed to the relevant online screen's substack of screens rather than the game-global parent stack. That means that when the back button is pressed, the following logic fires:

public override bool OnBackButton()
{
if (!(screenStack.CurrentScreen is IOnlinePlaySubScreen onlineSubScreen))
return false;
if (((Drawable)onlineSubScreen).IsLoaded && onlineSubScreen.AllowUserExit && onlineSubScreen.OnBackButton())
return true;
if (screenStack.CurrentScreen != null && !(screenStack.CurrentScreen is LoungeSubScreen))
{
screenStack.Exit();
return true;
}
return false;
}

This logic fires on the parent screen even though the child screen is the one the user is attempting to back out of. And none of the exemptions for the screen substack inside of the above method fire because the subscreen is not an IOnlinePlaySubScreen (it's SoloResultsScreen in this case).

Now the direct cause here is probably fixable, although possibly not without some significant pulling of footer-shaped teeth. However, I kind of question as to why viewing scores should be permitted on online song selects in the first place - it kind of distracts from the primary purpose of the screens which is to just pick a map already.

Closes ppy#36815 I guess.

Song select V1 completely disabled the ability to view a score in ways
that are very easy to let fly under the radar:

https://github.com/ppy/osu/blob/5fc836d1f09cebf983313c9b91a5c252890c607a/osu.Game/Screens/Select/Leaderboards/BeatmapLeaderboard.cs#L26
https://github.com/ppy/osu/blob/46db3ad96d0e1cd6ba4176b9b474cb79a338965d/osu.Game/Screens/Select/PlaySongSelect.cs#L47-L53

therefore the issue this is trying to close would never even manifest
there.

The direct cause of the issue is that the results screen is pushed to
the relevant online screen's *substack* of screens rather than the
game-global parent stack. That means that when the back button is
pressed, the following logic fires:

https://github.com/ppy/osu/blob/6fa4a7152f144ed2524f20ecf7cfd26492bbe61d/osu.Game/Screens/OnlinePlay/OnlinePlayScreen.cs#L174-L189

This logic fires *on the parent screen* even though *the child screen*
is the one the user is attempting to back out of. And none of the
exemptions for the screen substack inside of the above method fire
because the subscreen is not an `IOnlinePlaySubScreen` (it's
`SoloResultsScreen` in this case).

Now the direct cause here is probably fixable, although possibly not
without some significant pulling of footer-shaped teeth. *However*, I
kind of question as to why viewing scores should be permitted on online
song selects in the first place - it kind of distracts from the primary
purpose of the screens which is to *just pick a map already*.
@peppy peppy merged commit 6b10ef8 into ppy:master Mar 5, 2026
9 checks passed
@github-project-automation github-project-automation bot moved this from Inbox to Done in osu! team task tracker Mar 5, 2026
@bdach bdach deleted the fix-multi-leaderboard branch March 5, 2026 18:44
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

Archived in project

Development

Successfully merging this pull request may close these issues.

Back button takes the user to the main menu on multiplayer and playlist SSV2 expanded leaderboards.

2 participants