diff --git a/osu.Game/Overlays/Mods/ModSelectOverlay.cs b/osu.Game/Overlays/Mods/ModSelectOverlay.cs
index 7f07ce620c..cdc4a42b33 100644
--- a/osu.Game/Overlays/Mods/ModSelectOverlay.cs
+++ b/osu.Game/Overlays/Mods/ModSelectOverlay.cs
@@ -474,6 +474,7 @@ namespace osu.Game.Overlays.Mods
{
if (State.Value == Visibility.Visible) sampleOn?.Play();
DeselectTypes(selectedMod.IncompatibleMods, true);
+ if (selectedMod.RequiresConfiguration) ModSettingsContainer.Alpha = 1;
}
else
{
diff --git a/osu.Game/Rulesets/Mods/Mod.cs b/osu.Game/Rulesets/Mods/Mod.cs
index e168171186..9ee19a433b 100644
--- a/osu.Game/Rulesets/Mods/Mod.cs
+++ b/osu.Game/Rulesets/Mods/Mod.cs
@@ -60,6 +60,12 @@ namespace osu.Game.Rulesets.Mods
[JsonIgnore]
public virtual bool Ranked => false;
+ ///
+ /// Returns true if this mod requires configuration. If true, opens mod customisation menu every time user enables mod.
+ ///
+ [JsonIgnore]
+ public virtual bool RequiresConfiguration => false;
+
///
/// The mods this mod cannot be enabled with.
///
diff --git a/osu.Game/Rulesets/Mods/ModDifficultyAdjust.cs b/osu.Game/Rulesets/Mods/ModDifficultyAdjust.cs
index b74bf01d1b..d74e2ce2bc 100644
--- a/osu.Game/Rulesets/Mods/ModDifficultyAdjust.cs
+++ b/osu.Game/Rulesets/Mods/ModDifficultyAdjust.cs
@@ -24,6 +24,8 @@ namespace osu.Game.Rulesets.Mods
public override double ScoreMultiplier => 1.0;
+ public override bool RequiresConfiguration => true;
+
public override Type[] IncompatibleMods => new[] { typeof(ModEasy), typeof(ModHardRock) };
[SettingSource("Drain Rate", "Override a beatmap's set HP.")]