diff --git a/osu.Game/OsuGame.cs b/osu.Game/OsuGame.cs
index f9e080a93c..a7ed7fedf5 100644
--- a/osu.Game/OsuGame.cs
+++ b/osu.Game/OsuGame.cs
@@ -436,11 +436,15 @@ namespace osu.Game
/// - first beatmap from any ruleset.
///
///
- public void PresentBeatmap(BeatmapSetInfo beatmap, Predicate difficultyCriteria = null)
+ public void PresentBeatmap(IBeatmapSetInfo beatmap, Predicate difficultyCriteria = null)
{
- var databasedSet = beatmap.OnlineBeatmapSetID != null
- ? BeatmapManager.QueryBeatmapSet(s => s.OnlineBeatmapSetID == beatmap.OnlineBeatmapSetID)
- : BeatmapManager.QueryBeatmapSet(s => s.Hash == beatmap.Hash);
+ BeatmapSetInfo databasedSet = null;
+
+ if (beatmap.OnlineID > 0)
+ databasedSet = BeatmapManager.QueryBeatmapSet(s => s.OnlineBeatmapSetID == beatmap.OnlineID);
+
+ if (beatmap is BeatmapSetInfo localBeatmap)
+ databasedSet ??= BeatmapManager.QueryBeatmapSet(s => s.Hash == localBeatmap.Hash);
if (databasedSet == null)
{