diff --git a/Assets/Scripts/Managers/GameOverManager.cs b/Assets/Scripts/Managers/GameOverManager.cs
index 97acf057982d6aa98312634b02139fcfbab096f0..37bc7de3ae6c270609976970a1345a4a07465857 100644
--- a/Assets/Scripts/Managers/GameOverManager.cs
+++ b/Assets/Scripts/Managers/GameOverManager.cs
@@ -58,6 +58,7 @@ namespace Nightmare
             LevelManager.Instance.Exit();
             isGameOver = false;
             statsManager.SaveStats();
+            SceneManager.LoadScene("MainMenu", LoadSceneMode.Single);
         }
 
         public void ShowGameOverButtons()
diff --git a/Assets/Scripts/Managers/LevelManager.cs b/Assets/Scripts/Managers/LevelManager.cs
index cadf0f6db285e03a42a364ffcfdc38b9a9a105c4..fcb5fc786c758ba17032913f249389d6e90e52f4 100644
--- a/Assets/Scripts/Managers/LevelManager.cs
+++ b/Assets/Scripts/Managers/LevelManager.cs
@@ -608,10 +608,41 @@ namespace Nightmare
 
         public void Exit()
         {
-            currentIndex = 0;
-            currentQuest = 0;
-            ResetAtt();
-            SceneManager.LoadScene(levels[currentIndex], LoadSceneMode.Single);
+            // Kill Player
+            GameObject player = GameObject.FindGameObjectWithTag("Player");
+            PlayerHealth health = player.GetComponent<PlayerHealth>();
+            health.currentHealth = 0;
+            health.Death();
+
+            Scene currentLevel = SceneManager.GetSceneAt(0);
+            for (int i = 0; i < SceneManager.sceneCount; i++)
+            {
+                Scene scene = SceneManager.GetSceneAt(i);
+                if (!scene.name.StartsWith("Cutscene"))
+                {
+                    currentLevel = scene;
+                }
+                else if (SceneManager.sceneCount > 1)
+                {
+                    SceneManager.UnloadSceneAsync(scene);
+                }
+            }
+
+            var audioSources = new List<AudioSource>();
+
+            foreach (var root in currentLevel.GetRootGameObjects())
+            {
+                audioSources.AddRange(root.GetComponentsInChildren<AudioSource>(true));
+            }
+
+            foreach (var source in audioSources)
+            {
+                source.mute = false;
+            }
+
+            isCinematic = false;
+
+            EventManager.TriggerEvent("GameOver");
         }
 
         public void ResetLevel()