diff --git a/BepInEx5Plugins.Ash.Alisa.ResizeTextForBestFit/BepInEx5Plugins.Ash.Alisa.ResizeTextForBestFit.csproj b/BepInEx5Plugins.Ash.Alisa.ResizeTextForBestFit/BepInEx5Plugins.Ash.Alisa.ResizeTextForBestFit.csproj
new file mode 100644
index 0000000..6a042c7
--- /dev/null
+++ b/BepInEx5Plugins.Ash.Alisa.ResizeTextForBestFit/BepInEx5Plugins.Ash.Alisa.ResizeTextForBestFit.csproj
@@ -0,0 +1,37 @@
+
+
+
+ net35
+ BepInEx5Plugins.Ash.Alisa.ResizeTextForBestFit
+ ResizeTextForBestFit
+ 1.0.0
+ true
+ 9.0
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ ..\lib\SteamRelease\Assembly-CSharp.dll
+ false
+
+
+ ..\lib\UnityEngine\UnityEngine.UI.dll
+ false
+
+
+
+
+
+
+
diff --git a/BepInEx5Plugins.Ash.Alisa.ResizeTextForBestFit/HarmonyPatches/KeyBindScript_Start.cs b/BepInEx5Plugins.Ash.Alisa.ResizeTextForBestFit/HarmonyPatches/KeyBindScript_Start.cs
new file mode 100644
index 0000000..56f6f68
--- /dev/null
+++ b/BepInEx5Plugins.Ash.Alisa.ResizeTextForBestFit/HarmonyPatches/KeyBindScript_Start.cs
@@ -0,0 +1,35 @@
+using HarmonyLib;
+using UnityEngine.UI;
+
+namespace BepInEx5Plugins.Ash.Alisa.ResizeTextForBestFit.HarmonyPatches
+{
+ [HarmonyPatch(typeof(KeyBindScript), "Start")]
+ public class KeyBindScript_Start
+ {
+ public static int maxSize = 18;
+
+ public static bool singleOutline = true;
+
+ // Set every text child components to fit automatically.
+ public static void Postfix(KeyBindScript __instance)
+ {
+ foreach (var text in __instance.GetComponentsInChildren())
+ {
+ text.resizeTextForBestFit = true;
+ text.resizeTextMaxSize = maxSize;
+
+ if (singleOutline)
+ {
+ var outlines = text.GetComponents();
+
+ for (var i = 1; i < outlines.Length; ++i)
+ {
+ var outline = outlines[i];
+
+ outline.enabled = false;
+ }
+ }
+ }
+ }
+ }
+}
diff --git a/BepInEx5Plugins.Ash.Alisa.ResizeTextForBestFit/NuGet.Config b/BepInEx5Plugins.Ash.Alisa.ResizeTextForBestFit/NuGet.Config
new file mode 100644
index 0000000..1864ded
--- /dev/null
+++ b/BepInEx5Plugins.Ash.Alisa.ResizeTextForBestFit/NuGet.Config
@@ -0,0 +1,6 @@
+
+
+
+
+
+
\ No newline at end of file
diff --git a/BepInEx5Plugins.Ash.Alisa.ResizeTextForBestFit/Plugin.cs b/BepInEx5Plugins.Ash.Alisa.ResizeTextForBestFit/Plugin.cs
new file mode 100644
index 0000000..b17b7d3
--- /dev/null
+++ b/BepInEx5Plugins.Ash.Alisa.ResizeTextForBestFit/Plugin.cs
@@ -0,0 +1,52 @@
+using BepInEx;
+using BepInEx.Configuration;
+using HarmonyLib;
+using System;
+
+namespace BepInEx5Plugins.Ash.Alisa.ResizeTextForBestFit
+{
+ [BepInPlugin(PluginInfo.PLUGIN_GUID, PluginInfo.PLUGIN_NAME, PluginInfo.PLUGIN_VERSION)]
+ public class Plugin : BaseUnityPlugin
+ {
+ private readonly ConfigEntry maxSize;
+
+ private readonly ConfigEntry singleOutline;
+
+ private Plugin()
+ {
+ maxSize = Config.Bind("ResizeTextForBestFit", "Max Size", 18);
+ singleOutline = Config.Bind("ResizeTextForBestFit", "Single Outline", true);
+
+ Config.SettingChanged += Config_SettingChanged;
+
+ ApplySettings();
+ }
+
+ private void Config_SettingChanged(object sender, EventArgs e)
+ {
+ ApplySettings();
+ }
+
+ private void ApplySettings()
+ {
+ HarmonyPatches.KeyBindScript_Start.maxSize = maxSize.Value;
+ HarmonyPatches.KeyBindScript_Start.singleOutline = singleOutline.Value;
+ }
+
+ private void Awake()
+ {
+ try
+ {
+ Logger.LogInfo($"Plugin {PluginInfo.PLUGIN_GUID} is loaded!");
+
+ var harmony = new Harmony(Info.Metadata.GUID);
+
+ harmony.PatchAll();
+ }
+ catch (Exception exception)
+ {
+ Console.WriteLine(exception);
+ }
+ }
+ }
+}