diff --git a/BepInEx5Plugins.Ash.Alisa.PauseMenuFix/BepInEx5Plugins.Ash.Alisa.PauseMenuFix.csproj b/BepInEx5Plugins.Ash.Alisa.PauseMenuFix/BepInEx5Plugins.Ash.Alisa.PauseMenuFix.csproj
new file mode 100644
index 0000000..2667e15
--- /dev/null
+++ b/BepInEx5Plugins.Ash.Alisa.PauseMenuFix/BepInEx5Plugins.Ash.Alisa.PauseMenuFix.csproj
@@ -0,0 +1,33 @@
+
+
+
+ net35
+ BepInEx5Plugins.Ash.Alisa.PauseMenuFix
+ PauseMenuFix
+ 1.0.0
+ true
+ 9.0
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ ..\lib\SteamRelease\Assembly-CSharp.dll
+ false
+
+
+
+
+
+
+
diff --git a/BepInEx5Plugins.Ash.Alisa.PauseMenuFix/HarmonyPatches/PauzeGame_HardPauzeOn.cs b/BepInEx5Plugins.Ash.Alisa.PauseMenuFix/HarmonyPatches/PauzeGame_HardPauzeOn.cs
new file mode 100644
index 0000000..83d9a87
--- /dev/null
+++ b/BepInEx5Plugins.Ash.Alisa.PauseMenuFix/HarmonyPatches/PauzeGame_HardPauzeOn.cs
@@ -0,0 +1,85 @@
+using HarmonyLib;
+using System;
+using UnityEngine;
+
+namespace BepInEx5Plugins.Ash.Alisa.PauseMenuFix.HarmonyPatches
+{
+ [HarmonyPatch(typeof(PauzeGame), "HardPauzeOn")]
+ public class PauzeGame_HardPauzeOn
+ {
+ // Move playerWeapon and playerMovement assignments to prevent causing null reference exceptions.
+ public static bool Prefix(PauzeGame __instance
+ , ref AlisaAttributes ___attributes
+ )
+ {
+ __instance.pauzed = true;
+
+ var enemies = GameObject.FindGameObjectsWithTag("Enemy");
+
+ __instance.enemyControllers = new EnemyController[enemies.Length];
+
+ for (var i = 0; i < enemies.Length; ++i)
+ {
+ __instance.enemyControllers[i] = enemies[i].GetComponent();
+ __instance.enemyControllers[i].pauzed = true;
+ }
+
+ __instance.player = GameObject.FindWithTag("Player");
+ __instance.interact = GameObject.FindWithTag("RayCastPoint").GetComponent();
+
+ if (!__instance.menu)
+ {
+ __instance.menu = GameObject.FindWithTag("PlayerUI").GetComponent();
+ }
+
+ if (__instance.menu)
+ {
+ __instance.menu.canOpenMenu = false;
+ }
+
+ if (__instance.player)
+ {
+ __instance.playerWeapon = __instance.player.GetComponent();
+ __instance.playerMovement = __instance.player.GetComponent();
+
+ if (__instance.playerWeapon)
+ {
+ __instance.playerWeapon.disabled = true;
+ }
+
+ if (__instance.playerMovement)
+ {
+ __instance.playerMovement.disabled = true;
+ }
+
+ if (__instance.interact)
+ {
+ __instance.interact.disabled = true;
+ }
+
+ ___attributes = __instance.player.GetComponent();
+ ___attributes.animPaused = true;
+ }
+ else
+ {
+ Console.WriteLine("PauzeGame_HardPauzeOn.Prefix: player is null!");
+
+ __instance.playerWeapon = null;
+ __instance.playerMovement = null;
+ ___attributes = null;
+ }
+
+ if (__instance.player && !__instance.quickUi)
+ {
+ __instance.quickUi = GameObject.Find("/PlayerUIHolder/PlayerUI/QuickUI/UI_Base").GetComponent();
+ }
+
+ if (__instance.quickUi)
+ {
+ __instance.quickUi.returningPos = true;
+ }
+
+ return false;
+ }
+ }
+}
\ No newline at end of file
diff --git a/BepInEx5Plugins.Ash.Alisa.PauseMenuFix/NuGet.Config b/BepInEx5Plugins.Ash.Alisa.PauseMenuFix/NuGet.Config
new file mode 100644
index 0000000..1864ded
--- /dev/null
+++ b/BepInEx5Plugins.Ash.Alisa.PauseMenuFix/NuGet.Config
@@ -0,0 +1,6 @@
+
+
+
+
+
+
\ No newline at end of file
diff --git a/BepInEx5Plugins.Ash.Alisa.PauseMenuFix/Plugin.cs b/BepInEx5Plugins.Ash.Alisa.PauseMenuFix/Plugin.cs
new file mode 100644
index 0000000..fcd268b
--- /dev/null
+++ b/BepInEx5Plugins.Ash.Alisa.PauseMenuFix/Plugin.cs
@@ -0,0 +1,26 @@
+using BepInEx;
+using HarmonyLib;
+using System;
+
+namespace BepInEx5Plugins.Ash.Alisa.PauseMenuFix
+{
+ [BepInPlugin(PluginInfo.PLUGIN_GUID, PluginInfo.PLUGIN_NAME, PluginInfo.PLUGIN_VERSION)]
+ public class Plugin : BaseUnityPlugin
+ {
+ 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);
+ }
+ }
+ }
+}