diff --git a/osu.Game.Tests/Gameplay/TestSceneStoryboardSamples.cs b/osu.Game.Tests/Gameplay/TestSceneStoryboardSamples.cs
index 18ae2cb7c8..afdcedb485 100644
--- a/osu.Game.Tests/Gameplay/TestSceneStoryboardSamples.cs
+++ b/osu.Game.Tests/Gameplay/TestSceneStoryboardSamples.cs
@@ -90,6 +90,9 @@ namespace osu.Game.Tests.Gameplay
AddUntilStep("sample has lifetime end", () => sample.LifetimeEnd < double.MaxValue);
}
+ ///
+ /// Sample at 0ms, start time at 1000ms (so the sample should not be played).
+ ///
[Test]
public void TestSampleHasLifetimeEndWithInitialClockTime()
{
diff --git a/osu.Game/Screens/Play/GameplayClockContainer.cs b/osu.Game/Screens/Play/GameplayClockContainer.cs
index 33f4f26dfb..ae9779434d 100644
--- a/osu.Game/Screens/Play/GameplayClockContainer.cs
+++ b/osu.Game/Screens/Play/GameplayClockContainer.cs
@@ -38,12 +38,23 @@ namespace osu.Game.Screens.Play
///
/// The time from which the clock should start. Will be seeked to on calling .
+ /// Settting a start time will to the new value.
///
///
/// By default, a value of zero will be used.
/// Importantly, the value will be inferred from the current beatmap in by default.
///
- public double StartTime { get; set; } = 0;
+ public double StartTime
+ {
+ get => startTime;
+ set
+ {
+ startTime = value;
+ Reset();
+ }
+ }
+
+ private double startTime;
public virtual IEnumerable NonGameplayAdjustments => Enumerable.Empty();