diff --git a/Osu.Patcher.Hook/Patches/LivePerformance/AddPerformanceToUi.cs b/Osu.Patcher.Hook/Patches/LivePerformance/AddPerformanceToUi.cs
index 7fd7a15..08c3473 100644
--- a/Osu.Patcher.Hook/Patches/LivePerformance/AddPerformanceToUi.cs
+++ b/Osu.Patcher.Hook/Patches/LivePerformance/AddPerformanceToUi.cs
@@ -38,6 +38,9 @@ private static void After(
[HarmonyArgument(3)] float scale
)
{
+ if (!PerformanceOptions.ShowPerformanceInGame.Value)
+ return;
+
Debug.WriteLine("Adding Performance Counter to ScoreDisplay", nameof(AddPerformanceToUi));
var currentSkin = SkinManager.Current.Get();
diff --git a/Osu.Patcher.Hook/Patches/LivePerformance/PerformanceCalculator.cs b/Osu.Patcher.Hook/Patches/LivePerformance/PerformanceCalculator.cs
index 6eda314..b9f9bb8 100644
--- a/Osu.Patcher.Hook/Patches/LivePerformance/PerformanceCalculator.cs
+++ b/Osu.Patcher.Hook/Patches/LivePerformance/PerformanceCalculator.cs
@@ -14,7 +14,7 @@ namespace Osu.Patcher.Hook.Patches.LivePerformance;
internal static class PerformanceCalculator
{
private static readonly Obfuscated ObfuscatedModsStub = new(Stubs.Root.Mods.Type.Reference);
-
+
public static OsuPerformance? Calculator { get; private set; }
public static bool IsInitialized => Calculator != null;
diff --git a/Osu.Patcher.Hook/Patches/LivePerformance/PerformanceCalculatorType.cs b/Osu.Patcher.Hook/Patches/LivePerformance/PerformanceCalculatorType.cs
new file mode 100644
index 0000000..5df9415
--- /dev/null
+++ b/Osu.Patcher.Hook/Patches/LivePerformance/PerformanceCalculatorType.cs
@@ -0,0 +1,25 @@
+using System;
+
+namespace Osu.Patcher.Hook.Patches.LivePerformance;
+
+///
+/// The type of performance counter display to show in UI.
+///
+[Serializable]
+public enum PerformanceCalculatorType
+{
+ ///
+ /// Use Bancho pp calculations.
+ ///
+ Bancho,
+
+ ///
+ /// Use Akatsuki pp calculations.
+ ///
+ Akatsuki,
+
+ ///
+ /// Use Akatsuki pp calculations when either Relax or Autopilot is enabled, and Bancho otherwise.
+ ///
+ AkatsukiLimited,
+}
\ No newline at end of file
diff --git a/Osu.Patcher.Hook/Patches/LivePerformance/PerformanceOptions.cs b/Osu.Patcher.Hook/Patches/LivePerformance/PerformanceOptions.cs
new file mode 100644
index 0000000..2df0263
--- /dev/null
+++ b/Osu.Patcher.Hook/Patches/LivePerformance/PerformanceOptions.cs
@@ -0,0 +1,90 @@
+using System.Collections.Generic;
+using JetBrains.Annotations;
+using Osu.Stubs.GameModes.Options;
+using Osu.Stubs.Graphics;
+using Osu.Stubs.Wrappers;
+using Osu.Utils.Extensions;
+using static Osu.Patcher.Hook.Patches.CustomStrings.CustomStrings;
+
+namespace Osu.Patcher.Hook.Patches.LivePerformance;
+
+[UsedImplicitly]
+internal class PerformanceOptions : PatchOptions
+{
+ private static readonly OptionDropdown OptionDropdownStub = new(typeof(PerformanceCalculatorType));
+
+ public override IEnumerable