diff --git a/osu.Game/Beatmaps/BeatmapInfo.cs b/osu.Game/Beatmaps/BeatmapInfo.cs
index c53c2f67dd..c0d72fdf8c 100644
--- a/osu.Game/Beatmaps/BeatmapInfo.cs
+++ b/osu.Game/Beatmaps/BeatmapInfo.cs
@@ -102,6 +102,14 @@ namespace osu.Game.Beatmaps
public string OnlineMD5Hash { get; set; } = string.Empty;
+ ///
+ /// The last time of a local modification (via the editor).
+ ///
+ public DateTimeOffset? LastUpdated { get; set; }
+
+ ///
+ /// The last time online metadata was applied to this beatmap.
+ ///
public DateTimeOffset? LastOnlineUpdate { get; set; }
///
diff --git a/osu.Game/Beatmaps/BeatmapManager.cs b/osu.Game/Beatmaps/BeatmapManager.cs
index 8ce4e4c2fb..b457fcb387 100644
--- a/osu.Game/Beatmaps/BeatmapManager.cs
+++ b/osu.Game/Beatmaps/BeatmapManager.cs
@@ -314,6 +314,7 @@ namespace osu.Game.Beatmaps
beatmapInfo.MD5Hash = stream.ComputeMD5Hash();
beatmapInfo.Hash = stream.ComputeSHA2Hash();
beatmapInfo.Status = BeatmapOnlineStatus.LocallyModified;
+ beatmapInfo.LastUpdated = DateTimeOffset.Now;
if (setInfo.Beatmaps.All(b => b.Status == BeatmapOnlineStatus.LocallyModified))
setInfo.Status = BeatmapOnlineStatus.LocallyModified;
diff --git a/osu.Game/Database/RealmAccess.cs b/osu.Game/Database/RealmAccess.cs
index 5f0ec67c71..c073415547 100644
--- a/osu.Game/Database/RealmAccess.cs
+++ b/osu.Game/Database/RealmAccess.cs
@@ -67,8 +67,9 @@ namespace osu.Game.Database
/// 20 2022-07-21 Added LastAppliedDifficultyVersion to RulesetInfo, changed default value of BeatmapInfo.StarRating to -1.
/// 21 2022-07-27 Migrate collections to realm (BeatmapCollection).
/// 22 2022-07-31 Added ModPreset.
+ /// 23 2022-08-01 Added LastUpdated to BeatmapInfo.
///
- private const int schema_version = 22;
+ private const int schema_version = 23;
///
/// Lock object which is held during sections, blocking realm retrieval during blocking periods.