diff --git a/osu.Game/Rulesets/Timing/SpeedAdjustmentContainer.cs b/osu.Game/Rulesets/Timing/SpeedAdjustmentContainer.cs
index 6be721f6e7..c7249d5b84 100644
--- a/osu.Game/Rulesets/Timing/SpeedAdjustmentContainer.cs
+++ b/osu.Game/Rulesets/Timing/SpeedAdjustmentContainer.cs
@@ -48,7 +48,7 @@ namespace osu.Game.Rulesets.Timing
/// Creates a new .
///
/// The which provides the speed adjustments for this container.
- protected SpeedAdjustmentContainer(MultiplierControlPoint controlPoint)
+ public SpeedAdjustmentContainer(MultiplierControlPoint controlPoint)
{
ControlPoint = controlPoint;
diff --git a/osu.Game/Rulesets/UI/SpeedAdjustedHitRenderer.cs b/osu.Game/Rulesets/UI/SpeedAdjustedHitRenderer.cs
index 4a560748c1..5f8bebc213 100644
--- a/osu.Game/Rulesets/UI/SpeedAdjustedHitRenderer.cs
+++ b/osu.Game/Rulesets/UI/SpeedAdjustedHitRenderer.cs
@@ -86,6 +86,9 @@ namespace osu.Game.Rulesets.UI
.GroupBy(s => s.TimingPoint.BeatLength * s.DifficultyPoint.SpeedMultiplier).Select(g => g.First());
DefaultControlPoints.AddRange(timingChanges);
+
+ if (DefaultControlPoints.Count == 0)
+ DefaultControlPoints.Add(new MultiplierControlPoint());
}
///
@@ -105,6 +108,6 @@ namespace osu.Game.Rulesets.UI
return new MultiplierControlPoint(time, DefaultControlPoints[index].DeepClone());
}
- protected abstract SpeedAdjustmentContainer CreateSpeedAdjustmentContainer(MultiplierControlPoint controlPoint);
+ protected virtual SpeedAdjustmentContainer CreateSpeedAdjustmentContainer(MultiplierControlPoint controlPoint) => new SpeedAdjustmentContainer(controlPoint);
}
}