diff --git a/osu.Game/Screens/Play/HUD/SoloGameplayLeaderboard.cs b/osu.Game/Screens/Play/HUD/SoloGameplayLeaderboard.cs
index fb7e2ff00f..471aaf9a6d 100644
--- a/osu.Game/Screens/Play/HUD/SoloGameplayLeaderboard.cs
+++ b/osu.Game/Screens/Play/HUD/SoloGameplayLeaderboard.cs
@@ -31,6 +31,12 @@ namespace osu.Game.Screens.Play.HUD
[Resolved]
private ScoreManager scoreManager { get; set; } = null!;
+ ///
+ /// Whether the leaderboard should be visible regardless of the configuration value.
+ /// This is true by default, but can be changed.
+ ///
+ public readonly Bindable AlwaysVisible = new Bindable(true);
+
public SoloGameplayLeaderboard(IUser trackingUser)
{
this.trackingUser = trackingUser;
@@ -47,6 +53,7 @@ namespace osu.Game.Screens.Play.HUD
base.LoadComplete();
Scores.BindCollectionChanged((_, _) => Scheduler.AddOnce(showScores), true);
+ AlwaysVisible.BindValueChanged(_ => updateVisibility());
configVisibility.BindValueChanged(_ => updateVisibility(), true);
}
@@ -84,6 +91,6 @@ namespace osu.Game.Screens.Play.HUD
}
private void updateVisibility() =>
- Flow.FadeTo(configVisibility.Value ? 1 : 0, duration);
+ this.FadeTo(AlwaysVisible.Value || configVisibility.Value ? 1 : 0, duration);
}
}
diff --git a/osu.Game/Screens/Play/ReplayPlayer.cs b/osu.Game/Screens/Play/ReplayPlayer.cs
index 163b9c593f..5382e283e0 100644
--- a/osu.Game/Screens/Play/ReplayPlayer.cs
+++ b/osu.Game/Screens/Play/ReplayPlayer.cs
@@ -62,6 +62,7 @@ namespace osu.Game.Screens.Play
protected override GameplayLeaderboard CreateGameplayLeaderboard() =>
new SoloGameplayLeaderboard(Score.ScoreInfo.User)
{
+ AlwaysVisible = { Value = true },
Scores = { BindTarget = LeaderboardScores }
};
diff --git a/osu.Game/Screens/Play/SoloPlayer.cs b/osu.Game/Screens/Play/SoloPlayer.cs
index d7730737d6..ee19391b89 100644
--- a/osu.Game/Screens/Play/SoloPlayer.cs
+++ b/osu.Game/Screens/Play/SoloPlayer.cs
@@ -48,6 +48,7 @@ namespace osu.Game.Screens.Play
protected override GameplayLeaderboard CreateGameplayLeaderboard() =>
new SoloGameplayLeaderboard(Score.ScoreInfo.User)
{
+ AlwaysVisible = { Value = false },
Scores = { BindTarget = LeaderboardScores }
};