diff --git a/Assets/Prefabs/Character/Crow.prefab b/Assets/Prefabs/Character/Crow.prefab
index b9ba4c53..92604e26 100644
--- a/Assets/Prefabs/Character/Crow.prefab
+++ b/Assets/Prefabs/Character/Crow.prefab
@@ -9,6 +9,7 @@ GameObject:
   serializedVersion: 6
   m_Component:
   - component: {fileID: 1914257455311964169}
+  - component: {fileID: 5109095020609682098}
   m_Layer: 0
   m_Name: Crow
   m_TagString: Untagged
@@ -33,6 +34,27 @@ Transform:
   - {fileID: 1652797526898234972}
   m_Father: {fileID: 0}
   m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+--- !u!114 &5109095020609682098
+MonoBehaviour:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 5935320730402577130}
+  m_Enabled: 1
+  m_EditorHideFlags: 0
+  m_Script: {fileID: 11500000, guid: d5a57f767e5e46a458fc5d3c628d0cbb, type: 3}
+  m_Name: 
+  m_EditorClassIdentifier: 
+  GlobalObjectIdHash: 0
+  InScenePlacedSourceGlobalObjectIdHash: 0
+  AlwaysReplicateAsRoot: 0
+  SynchronizeTransform: 1
+  ActiveSceneSynchronization: 0
+  SceneMigrationSynchronization: 1
+  SpawnWithObservers: 1
+  DontDestroyWithOwner: 0
+  AutoObjectParentSync: 1
 --- !u!1001 &1822549030716984768
 PrefabInstance:
   m_ObjectHideFlags: 0
diff --git a/Assets/Prefabs/Character/PlayerAvatar.prefab b/Assets/Prefabs/Character/PlayerAvatar.prefab
index 8da911a6..13cc0d58 100644
--- a/Assets/Prefabs/Character/PlayerAvatar.prefab
+++ b/Assets/Prefabs/Character/PlayerAvatar.prefab
@@ -450,7 +450,7 @@ PrefabInstance:
       objectReference: {fileID: 0}
     - target: {fileID: 4600110157238723790, guid: 0d2d836e2e83b754fa1a1c4022d6d65d, type: 3}
       propertyPath: GlobalObjectIdHash
-      value: 3177087589
+      value: 3737985212
       objectReference: {fileID: 0}
     - target: {fileID: 4600110157238723790, guid: 0d2d836e2e83b754fa1a1c4022d6d65d, type: 3}
       propertyPath: PrefabHashGenerator
diff --git a/Assets/Scenes/MainMenu.unity b/Assets/Scenes/MainMenu.unity
index a398ff05..94b91250 100644
--- a/Assets/Scenes/MainMenu.unity
+++ b/Assets/Scenes/MainMenu.unity
@@ -38,7 +38,7 @@ RenderSettings:
   m_ReflectionIntensity: 1
   m_CustomReflection: {fileID: 0}
   m_Sun: {fileID: 0}
-  m_IndirectSpecularColor: {r: 0.17726853, g: 0.22192088, b: 0.30416295, a: 1}
+  m_IndirectSpecularColor: {r: 0, g: 0, b: 0, a: 1}
   m_UseRadianceAmbientProbe: 0
 --- !u!157 &3
 LightmapSettings:
@@ -2112,6 +2112,10 @@ PrefabInstance:
     serializedVersion: 3
     m_TransformParent: {fileID: 0}
     m_Modifications:
+    - target: {fileID: 119282041915070026, guid: 2ecb76f53a4cb994eb9a7c9d30aa68ec, type: 3}
+      propertyPath: m_IsActive
+      value: 0
+      objectReference: {fileID: 0}
     - target: {fileID: 140949569889967664, guid: 2ecb76f53a4cb994eb9a7c9d30aa68ec, type: 3}
       propertyPath: m_AnchorMax.y
       value: 0
@@ -2160,6 +2164,10 @@ PrefabInstance:
       propertyPath: m_AnchoredPosition.y
       value: 0
       objectReference: {fileID: 0}
+    - target: {fileID: 1039067170141175843, guid: 2ecb76f53a4cb994eb9a7c9d30aa68ec, type: 3}
+      propertyPath: m_IsActive
+      value: 1
+      objectReference: {fileID: 0}
     - target: {fileID: 1423095582044164126, guid: 2ecb76f53a4cb994eb9a7c9d30aa68ec, type: 3}
       propertyPath: m_IsActive
       value: 1
@@ -2240,6 +2248,10 @@ PrefabInstance:
       propertyPath: m_AnchoredPosition.y
       value: 0
       objectReference: {fileID: 0}
+    - target: {fileID: 2510815617631294485, guid: 2ecb76f53a4cb994eb9a7c9d30aa68ec, type: 3}
+      propertyPath: m_IsActive
+      value: 1
+      objectReference: {fileID: 0}
     - target: {fileID: 2510815617631294491, guid: 2ecb76f53a4cb994eb9a7c9d30aa68ec, type: 3}
       propertyPath: m_OnClick.m_PersistentCalls.m_Calls.Array.data[0].m_Target
       value: 
@@ -2380,6 +2392,10 @@ PrefabInstance:
       propertyPath: m_AnchoredPosition.y
       value: 0
       objectReference: {fileID: 0}
+    - target: {fileID: 5347345741702605565, guid: 2ecb76f53a4cb994eb9a7c9d30aa68ec, type: 3}
+      propertyPath: m_IsActive
+      value: 1
+      objectReference: {fileID: 0}
     - target: {fileID: 5603249645742956311, guid: 2ecb76f53a4cb994eb9a7c9d30aa68ec, type: 3}
       propertyPath: m_AnchorMax.y
       value: 0
@@ -2512,6 +2528,34 @@ PrefabInstance:
       propertyPath: m_AnchorMin.y
       value: 0
       objectReference: {fileID: 0}
+    - target: {fileID: 6932283184235991320, guid: 2ecb76f53a4cb994eb9a7c9d30aa68ec, type: 3}
+      propertyPath: m_Sprite
+      value: 
+      objectReference: {fileID: 21300000, guid: 23e8ffa9a1c7699498ea9f30fc08daef, type: 3}
+    - target: {fileID: 6932283184235991323, guid: 2ecb76f53a4cb994eb9a7c9d30aa68ec, type: 3}
+      propertyPath: m_AnchorMax.y
+      value: 1
+      objectReference: {fileID: 0}
+    - target: {fileID: 6932283184235991323, guid: 2ecb76f53a4cb994eb9a7c9d30aa68ec, type: 3}
+      propertyPath: m_AnchorMin.y
+      value: 1
+      objectReference: {fileID: 0}
+    - target: {fileID: 6932283184235991323, guid: 2ecb76f53a4cb994eb9a7c9d30aa68ec, type: 3}
+      propertyPath: m_SizeDelta.x
+      value: 814.8219
+      objectReference: {fileID: 0}
+    - target: {fileID: 6932283184235991323, guid: 2ecb76f53a4cb994eb9a7c9d30aa68ec, type: 3}
+      propertyPath: m_SizeDelta.y
+      value: 814.82007
+      objectReference: {fileID: 0}
+    - target: {fileID: 6932283184235991323, guid: 2ecb76f53a4cb994eb9a7c9d30aa68ec, type: 3}
+      propertyPath: m_AnchoredPosition.x
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 6932283184235991323, guid: 2ecb76f53a4cb994eb9a7c9d30aa68ec, type: 3}
+      propertyPath: m_AnchoredPosition.y
+      value: 187
+      objectReference: {fileID: 0}
     - target: {fileID: 7260140681816280963, guid: 2ecb76f53a4cb994eb9a7c9d30aa68ec, type: 3}
       propertyPath: m_IsActive
       value: 1
@@ -2584,6 +2628,10 @@ PrefabInstance:
       propertyPath: m_AnchoredPosition.y
       value: 0
       objectReference: {fileID: 0}
+    - target: {fileID: 8941352775669677347, guid: 2ecb76f53a4cb994eb9a7c9d30aa68ec, type: 3}
+      propertyPath: m_IsActive
+      value: 1
+      objectReference: {fileID: 0}
     - target: {fileID: 8941352775669677357, guid: 2ecb76f53a4cb994eb9a7c9d30aa68ec, type: 3}
       propertyPath: m_OnClick.m_PersistentCalls.m_Calls.Array.data[0].m_Target
       value: 
diff --git a/Assets/Scripts/Gameplay/GameState/PersistentGameState.cs b/Assets/Scripts/Gameplay/GameState/PersistentGameState.cs
index 0f48b780..8266b9f8 100644
--- a/Assets/Scripts/Gameplay/GameState/PersistentGameState.cs
+++ b/Assets/Scripts/Gameplay/GameState/PersistentGameState.cs
@@ -21,7 +21,11 @@ namespace Unity.BossRoom.Gameplay.GameState
         {
             WinState = winState;
         }
-
+        // public void ResetGameState()
+        // {
+        //     Debug.Log("[PersistentGameState] Resetting game state for new session.");
+        //     m_PlayerData.Clear();
+        // }
         public void Reset()
         {
             WinState = WinState.Invalid;
diff --git a/Assets/Scripts/Gameplay/GameState/ServerBossRoomState.cs b/Assets/Scripts/Gameplay/GameState/ServerBossRoomState.cs
index f296693e..61089e3a 100644
--- a/Assets/Scripts/Gameplay/GameState/ServerBossRoomState.cs
+++ b/Assets/Scripts/Gameplay/GameState/ServerBossRoomState.cs
@@ -142,9 +142,14 @@ namespace Unity.BossRoom.Gameplay.GameState
         {
             if (clientId != NetworkManager.Singleton.LocalClientId)
             {
-                // If a client disconnects, check for game over in case all other players are already down
                 StartCoroutine(WaitToCheckForGameOver());
             }
+            if (NetworkManager.Singleton.ConnectedClients.Count == 1) // Only server remains
+            {
+                Debug.Log("[Server] All players disconnected. Resetting game.");
+                // PersistentGameState.Instance.ResetGameState();
+                NetworkManager.Singleton.SceneManager.LoadScene("CharSelect", UnityEngine.SceneManagement.LoadSceneMode.Single);
+            }
         }
 
         IEnumerator WaitToCheckForGameOver()
diff --git a/Assets/Scripts/Gameplay/GameState/ServerPostGameState.cs b/Assets/Scripts/Gameplay/GameState/ServerPostGameState.cs
index 9f2c47c8..9986a398 100644
--- a/Assets/Scripts/Gameplay/GameState/ServerPostGameState.cs
+++ b/Assets/Scripts/Gameplay/GameState/ServerPostGameState.cs
@@ -20,8 +20,8 @@ namespace Unity.BossRoom.Gameplay.GameState
         [SerializeField]
         NetworkPostGame networkPostGame;
         public NetworkPostGame NetworkPostGame => networkPostGame;
-
         public override GameState ActiveState { get { return GameState.PostGame; } }
+        [SerializeField] private float resetDelay = 5f;
 
         [Inject]
         ConnectionManager m_ConnectionManager;
@@ -35,7 +35,21 @@ namespace Unity.BossRoom.Gameplay.GameState
 
             m_NetcodeHooks.OnNetworkSpawnHook += OnNetworkSpawn;
         }
-
+        protected override void Start()
+        {
+            base.Start();
+            Debug.Log("[ServerPostGameState] Game Over! Transitioning back to Character Selection after delay...");
+            Invoke(nameof(ReturnToLobby), resetDelay);
+        }
+        
+        private void ReturnToLobby()
+        {
+            if (NetworkManager.Singleton.IsServer)
+            {
+                Debug.Log("[ServerPostGameState] Resetting game and returning to character selection...");
+                NetworkManager.Singleton.SceneManager.LoadScene("CharSelect", UnityEngine.SceneManagement.LoadSceneMode.Single);
+            }
+        }
         void OnNetworkSpawn()
         {
             if (!NetworkManager.Singleton.IsServer)
diff --git a/Assets/Scripts/Gameplay/UserInput/ClientInputSender.cs b/Assets/Scripts/Gameplay/UserInput/ClientInputSender.cs
index b43bee26..708711ea 100644
--- a/Assets/Scripts/Gameplay/UserInput/ClientInputSender.cs
+++ b/Assets/Scripts/Gameplay/UserInput/ClientInputSender.cs
@@ -547,6 +547,7 @@ namespace Unity.BossRoom.Gameplay.UserInput
 
         private void HandleSprint()
         {
+            if(m_ServerCharacter.IsCrow) return;
             if (Input.GetKey(KeyCode.LeftShift))
             {
                 float staminaCost = 50f * Time.deltaTime;