diff --git a/Assets/Audio/Music/Safehouse.mp3 b/Assets/Audio/Music/Safehouse.mp3
new file mode 100644
index 0000000000000000000000000000000000000000..0f1d32965c4244c03d27f24af110831f2b51bf9d
--- /dev/null
+++ b/Assets/Audio/Music/Safehouse.mp3
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:4f106a1a2af2cfda4d1db13b3a4eee881a2e35f5f2071e31e3972aad0e930d7b
+size 2554706
diff --git a/Assets/Audio/Music/Safehouse.mp3.meta b/Assets/Audio/Music/Safehouse.mp3.meta
new file mode 100644
index 0000000000000000000000000000000000000000..7f7f68d9321cecfaba3def61dca5417d2d649ce8
--- /dev/null
+++ b/Assets/Audio/Music/Safehouse.mp3.meta
@@ -0,0 +1,23 @@
+fileFormatVersion: 2
+guid: a0d8574371bc61745828d0d989d84525
+AudioImporter:
+  externalObjects: {}
+  serializedVersion: 7
+  defaultSettings:
+    serializedVersion: 2
+    loadType: 0
+    sampleRateSetting: 0
+    sampleRateOverride: 44100
+    compressionFormat: 1
+    quality: 1
+    conversionMode: 0
+    preloadAudioData: 0
+  platformSettingOverrides: {}
+  forceToMono: 0
+  normalize: 1
+  loadInBackground: 0
+  ambisonic: 0
+  3D: 1
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 
diff --git a/Assets/Scenes/EntranceIntro/EntranceIntro.unity b/Assets/Scenes/EntranceIntro/EntranceIntro.unity
index e2fbb51f8528d657111232f3f05d7a0d2ecc9c04..7ba920a8121ad8ca38ebfb8149733068a198e71e 100644
--- a/Assets/Scenes/EntranceIntro/EntranceIntro.unity
+++ b/Assets/Scenes/EntranceIntro/EntranceIntro.unity
@@ -4583,7 +4583,7 @@ Transform:
   m_GameObject: {fileID: 322265032}
   serializedVersion: 2
   m_LocalRotation: {x: -0.09861505, y: 0.80913347, z: 0.1420819, w: 0.5615967}
-  m_LocalPosition: {x: 10.599443, y: 3.380136, z: 15.979986}
+  m_LocalPosition: {x: 46.4119, y: 3.35, z: 21.89056}
   m_LocalScale: {x: 1, y: 1, z: 1}
   m_ConstrainProportionsScale: 0
   m_Children:
diff --git a/Assets/Scenes/InitialStage.unity b/Assets/Scenes/InitialStage.unity
index fbc370aaf58bdb5cf44bcef4ea71aa75ea7b21f5..e779deb8fccfe2faba5b1f49b6fcd082bd4db9ba 100644
--- a/Assets/Scenes/InitialStage.unity
+++ b/Assets/Scenes/InitialStage.unity
@@ -2709,7 +2709,7 @@ GameObject:
   m_Icon: {fileID: 0}
   m_NavMeshLayer: 0
   m_StaticEditorFlags: 0
-  m_IsActive: 0
+  m_IsActive: 1
 --- !u!114 &211348305
 MonoBehaviour:
   m_ObjectHideFlags: 0
@@ -5705,6 +5705,11 @@ PrefabInstance:
       propertyPath: weapon3
       value: 
       objectReference: {fileID: 1865389150}
+    - target: {fileID: 5459010658768178930, guid: da6f8a21a762b8b449958966637f7373,
+        type: 3}
+      propertyPath: currentWeapon
+      value: 
+      objectReference: {fileID: 1956890867}
     - target: {fileID: 5459010658768178930, guid: da6f8a21a762b8b449958966637f7373,
         type: 3}
       propertyPath: currentWeaponName
@@ -5801,7 +5806,7 @@ PrefabInstance:
     - target: {fileID: 8801761984308425835, guid: da6f8a21a762b8b449958966637f7373,
         type: 3}
       propertyPath: cooldown
-      value: 10
+      value: 20
       objectReference: {fileID: 0}
     - target: {fileID: 8801761984308425835, guid: da6f8a21a762b8b449958966637f7373,
         type: 3}
diff --git a/Assets/Scenes/MainMenu.unity b/Assets/Scenes/MainMenu.unity
index 8ad359f8ee15f1d25fe3241e0df0e3d46b409a3b..f35c8d39cdc8731482e235082b0be7b3a3ddce88 100644
--- a/Assets/Scenes/MainMenu.unity
+++ b/Assets/Scenes/MainMenu.unity
@@ -6935,6 +6935,8 @@ MonoBehaviour:
     clip: {fileID: 8300000, guid: 2cdc839e83c059143877eaa41d3af757, type: 3}
   - name: Stage
     clip: {fileID: 8300000, guid: ec63382be8c7ec743b171a0dc777d134, type: 3}
+  - name: Safehouse
+    clip: {fileID: 8300000, guid: 6248f91324353264a8946a9edf89440f, type: 3}
   sfxSounds:
   - name: OceanAmbience
     clip: {fileID: 8300000, guid: 20b7f9ab362cd9141a1534895361b4b0, type: 3}
diff --git a/Assets/Script/Audio/AudioManager.cs b/Assets/Script/Audio/AudioManager.cs
index f2c43d6f1277659b81fef819f9c3d73b17337bad..c5171abd5f36556adac021b6858b74706fb22d13 100644
--- a/Assets/Script/Audio/AudioManager.cs
+++ b/Assets/Script/Audio/AudioManager.cs
@@ -85,6 +85,35 @@ public class AudioManager : MonoBehaviour
         fadeOutCoroutine = null;
     }
 
+    public void StopSFX(string name)
+    {
+        Sound s = Array.Find(sfxSounds, sound => sound.name == name);
+        if (s == null)
+        {
+            Debug.LogWarning("Sound: " + name + " not found!");
+            return;
+        }
+
+        if (sfxSource.isPlaying)
+        {
+            StartCoroutine(FadeOutSFX(2f));
+        }
+    }
+
+    private IEnumerator FadeOutSFX(float duration)
+    {
+        float startVolume = sfxSource.volume;
+
+        for (float t = 0; t < duration; t += Time.deltaTime)
+        {
+            sfxSource.volume = Mathf.Lerp(startVolume, 0, t / duration);
+            yield return null;
+        }
+
+        sfxSource.volume = 0;
+        sfxSource.Stop();
+    }
+
     public void PlaySFX(string name)
     {
         Sound s = Array.Find(sfxSounds, sound => sound.name == name);
diff --git a/Assets/Script/CutScene1.cs b/Assets/Script/CutScene1.cs
index 2cdbf630bd19e346791be1851f60be9fad943f7b..419f7b5998032872e1d5f7afb38397bdba998323 100644
--- a/Assets/Script/CutScene1.cs
+++ b/Assets/Script/CutScene1.cs
@@ -14,6 +14,7 @@ public class CutScene1 : MonoBehaviour
     public void Finish()
     {
         SceneManager.LoadScene(2);
-        AudioManager.instance.PlayMusic("Stage");
+        AudioManager.instance.StopSFX("OceanAmbience");
+        AudioManager.instance.StopSFX("GhostAmbience");
     }
 }
diff --git a/Assets/Script/Menu/GameOver.cs b/Assets/Script/Menu/GameOver.cs
index 75fba18385c30fabddb5f7c088cd1d7abd301ce1..673524f4bf9646074964f515456f590b550d7086 100644
--- a/Assets/Script/Menu/GameOver.cs
+++ b/Assets/Script/Menu/GameOver.cs
@@ -40,7 +40,12 @@ public class GameOver : MonoBehaviour
         string formattedDistance = distanceInKm.ToString("F2");
         distance.text = formattedDistance + " km";  
 
-        playTime.text = string.Format("{0:D2}:{1:D2}:{2:D2}", (int)GlobalPreference.Instance.GetPlayTime() / 3600, (int)GlobalPreference.Instance.GetPlayTime() / 60, (int)GlobalPreference.Instance.GetPlayTime() % 60);
+        float playTimeInSeconds = GlobalPreference.Instance.GetPlayTime();
+        int hours = (int)(playTimeInSeconds / 3600);
+        int remainingSecondsAfterHours = (int)(playTimeInSeconds % 3600);
+        int minutes = (int)(remainingSecondsAfterHours / 60);
+        int seconds = (int)(remainingSecondsAfterHours % 60);
+        playTime.text = string.Format("{0:D2}:{1:D2}:{2:D2}", hours, minutes, seconds);
     }
 
     public void StartFade()
diff --git a/Assets/Script/Menu/MainMenu.cs b/Assets/Script/Menu/MainMenu.cs
index e91e6912ac37a85983c239f9e2a1e20b4d6d7cab..f2a49811f804186a02288b1f823d76de217759cf 100644
--- a/Assets/Script/Menu/MainMenu.cs
+++ b/Assets/Script/Menu/MainMenu.cs
@@ -23,25 +23,22 @@ public class MainMenu : MonoBehaviour
     void Start()
     {
         newGame.Select();
+        FadeOut.SetActive(false);
     }
 
     public void StartGame()
     {
-        Debug.Log("Panggil aku dong");
         SaveData data = new SaveData();
         SaveLoadManager.Instance.SetSaveData(data);
         FadeOut.SetActive(true);
-        /*StartCoroutine(StartGameWithDelay());*/
-        SceneManager.LoadScene(1);
+        StartCoroutine(StartGameWithDelay());
         AudioManager.instance.StopMusic();
     }
 
     private IEnumerator StartGameWithDelay()
     {
         yield return new WaitForSeconds(2);
-        Debug.Log("MASUKKKK");
         SceneManager.LoadScene(1);
-        FadeOut.SetActive(false);
     }
 
     public void LoadGame()
diff --git a/Assets/Script/Menu/PauseMenu.cs b/Assets/Script/Menu/PauseMenu.cs
index 2ad7120f924fbd3455ef466a94ef332c901932bc..4dde3eb0e7575c6a32bd9cc47a89bcbbd11fcdeb 100644
--- a/Assets/Script/Menu/PauseMenu.cs
+++ b/Assets/Script/Menu/PauseMenu.cs
@@ -92,5 +92,8 @@ public class PauseMenu : MonoBehaviour
     public void LoadMenu()
     {
         SceneManager.LoadScene("MainMenu");
+        Time.timeScale = 1f;
+        GameIsPaused = false;
+        pauseMenuUI.SetActive(false);
     }
 }
diff --git a/Assets/Script/Menu/StatisticsMenu.cs b/Assets/Script/Menu/StatisticsMenu.cs
index c5decc2b31c35928f470cc1eefbda5bf553041b1..91ecf30c99e1cb47ccfe4712e4ca42845a472678 100644
--- a/Assets/Script/Menu/StatisticsMenu.cs
+++ b/Assets/Script/Menu/StatisticsMenu.cs
@@ -28,6 +28,11 @@ public class StatisticsMenu : MonoBehaviour
         string formattedDistance = distanceInKm.ToString("F2");
         distanceTraveled.text = formattedDistance + " km";
 
-        playTime.text = string.Format("{0:D2}:{1:D2}:{2:D2}", (int)PlayerPrefs.GetFloat("PlayTime") / 3600, (int)PlayerPrefs.GetFloat("PlayTime") / 60, (int)PlayerPrefs.GetFloat("PlayTime") % 60);
+        float playTimeInSeconds = PlayerPrefs.GetFloat("PlayTime");
+        int hours = (int)(playTimeInSeconds / 3600);
+        int remainingSecondsAfterHours = (int)(playTimeInSeconds % 3600);
+        int minutes = (int)(remainingSecondsAfterHours / 60);
+        int seconds = (int)(remainingSecondsAfterHours % 60);
+        playTime.text = string.Format("{0:D2}:{1:D2}:{2:D2}", hours, minutes, seconds);
     }
 }
diff --git a/Assets/Script/Player/PlayerHealth.cs b/Assets/Script/Player/PlayerHealth.cs
index 9d725016cb4cdbd5df00b563ae2805a8afd58454..868bde78bbc224b9cea160b72369e698afe6878f 100644
--- a/Assets/Script/Player/PlayerHealth.cs
+++ b/Assets/Script/Player/PlayerHealth.cs
@@ -75,6 +75,7 @@ public class PlayerHealth : MonoBehaviour
         float fillF = frontHealthBar.fillAmount;
         float fillB = backHealthBar.fillAmount;
         float hFraction = health / maxHealth;
+
         if (fillB > hFraction)
         {
             frontHealthBar.fillAmount = hFraction;
diff --git a/Assets/Script/Player/PlayerInventory.cs b/Assets/Script/Player/PlayerInventory.cs
index 273002f1daf546dc7e57509938253b61b2ac9ddd..604f9be898634f9ac5c470a7ab5d766bb14e4ac7 100644
--- a/Assets/Script/Player/PlayerInventory.cs
+++ b/Assets/Script/Player/PlayerInventory.cs
@@ -44,7 +44,9 @@ public class PlayerInventory : MonoBehaviour
 
             if (data.attackPetHealth > 0)
             {
-                Pet wolf = Instantiate(Resources.Load("Prefabs/Wolf Pet/Wolf Pet") as GameObject, transform.position, Quaternion.identity).GetComponent<Pet>();
+                var pet = Instantiate(Resources.Load("Prefabs/Wolf Pet/Prefabs/Wolf") as GameObject, transform.position, Quaternion.identity);
+                Pet wolf = pet.GetComponent<Pet>();
+                pet.SetActive(true);
                 wolf.health = (int)data.attackPetHealth;
                 playerPets.Add(wolf);
             }
@@ -60,53 +62,53 @@ public class PlayerInventory : MonoBehaviour
             {
                 playerPets.Remove(pet);
             }
+        }
 
-            if (playerPets.Count == 2)
+        if (playerPets.Count == 2)
+        {
+            UpdateHealthUI1(playerPets[0]);
+            UpdateHealthUI2(playerPets[1]);
+            if (playerPets[0].type == "Healer")
+            {
+                petName1.text = "Healing Orb";
+                GlobalPreference.Instance.SetPlayerHealerPetHealth(playerPets[0].health);
+            }
+            else if (playerPets[0].type == "Attack")
+            {
+                petName1.text = "Wolf";
+                GlobalPreference.Instance.SetPlayerAttackPetHealth(playerPets[0].health);
+            }
+            if (playerPets[1].type == "Healer")
             {
-                UpdateHealthUI1(playerPets[0]);
-                UpdateHealthUI2(playerPets[1]);
-                if (playerPets[0].type == "Healer")
-                {
-                    petName1.text = "Healing Orb";
-                    GlobalPreference.Instance.SetPlayerHealerPetHealth(playerPets[0].health);
-                }
-                else if (playerPets[0].type == "Attack")
-                {
-                    petName1.text = "Wolf";
-                    GlobalPreference.Instance.SetPlayerAttackPetHealth(playerPets[0].health);
-                }
-                if (playerPets[1].type == "Healer")
-                {
-                    petName2.text = "Healing Orb";
-                    GlobalPreference.Instance.SetPlayerHealerPetHealth(playerPets[1].health);
-                }
-                else if (playerPets[1].type == "Attack")
-                {
-                    petName2.text = "Wolf";
-                    GlobalPreference.Instance.SetPlayerAttackPetHealth(playerPets[1].health);
-                }
-                petHealthBar1.SetActive(true);
-                petHealthBar2.SetActive(true);
+                petName2.text = "Healing Orb";
+                GlobalPreference.Instance.SetPlayerHealerPetHealth(playerPets[1].health);
             }
-            else if (playerPets.Count == 1)
+            else if (playerPets[1].type == "Attack")
             {
-                UpdateHealthUI1(pet);
-                if (pet.type == "Healer")
-                {
-                    petName1.text = "Healing Orb";
-                    GlobalPreference.Instance.SetPlayerHealerPetHealth(pet.health);
-                }
-                else if (pet.type == "Attack")
-                {
-                    petName1.text = "Wolf";
-                    GlobalPreference.Instance.SetPlayerAttackPetHealth(pet.health);
-                }
-                petHealthBar1.SetActive(true);
-                petHealthBar2.SetActive(false);
+                petName2.text = "Wolf";
+                GlobalPreference.Instance.SetPlayerAttackPetHealth(playerPets[1].health);
             }
+            petHealthBar1.SetActive(true);
+            petHealthBar2.SetActive(true);
         }
-        
-        if (playerPets.Count == 0)
+        else if (playerPets.Count == 1)
+        {
+            playerPets[0].health = Mathf.Clamp(playerPets[0].health, 0, playerPets[0].maxHealth);
+            UpdateHealthUI1(playerPets[0]);
+            if (playerPets[0].type == "Healer")
+            {
+                petName1.text = "Healing Orb";
+                GlobalPreference.Instance.SetPlayerHealerPetHealth(playerPets[0].health);
+            }
+            else if (playerPets[0].type == "Attack")
+            {
+                petName1.text = "Wolf";
+                GlobalPreference.Instance.SetPlayerAttackPetHealth(playerPets[0].health);
+            }
+            petHealthBar1.SetActive(true);
+            petHealthBar2.SetActive(false);
+        }
+        else if (playerPets.Count == 0)
         {
             GlobalPreference.Instance.SetPlayerHealerPetHealth(0);
             GlobalPreference.Instance.SetPlayerAttackPetHealth(0);
@@ -143,7 +145,8 @@ public class PlayerInventory : MonoBehaviour
     {
         float fillF = frontHealthBar1.fillAmount;
         float fillB = backHealthBar1.fillAmount;
-        float hFraction = pet.health / pet.maxHealth;
+        float hFraction = (float)pet.health / pet.maxHealth;
+
         if (fillB > hFraction)
         {
             frontHealthBar1.fillAmount = hFraction;
@@ -166,7 +169,7 @@ public class PlayerInventory : MonoBehaviour
     {
         float fillF = frontHealthBar2.fillAmount;
         float fillB = backHealthBar2.fillAmount;
-        float hFraction = pet.health / pet.maxHealth;
+        float hFraction = (float)pet.health / pet.maxHealth;
         if (fillB > hFraction)
         {
             frontHealthBar2.fillAmount = hFraction;
diff --git a/Assets/Script/SaveLoad/SaveSystem.cs b/Assets/Script/SaveLoad/SaveSystem.cs
index 83f9fa7dbb8d740a2d68cc0dd7523086fbb19207..f5bdeab820755e5fb2344507069d1b48c0dc53dc 100644
--- a/Assets/Script/SaveLoad/SaveSystem.cs
+++ b/Assets/Script/SaveLoad/SaveSystem.cs
@@ -28,7 +28,6 @@ public static class SaveSystem
         }
         else
         {
-            Debug.Log("Save File not found");
             return null;
         }
     }
@@ -43,7 +42,6 @@ public static class SaveSystem
         }
         else
         {
-            Debug.Log("Save File not found");
         }
     }
 }
diff --git a/Assets/Script/Shop/Shop.cs b/Assets/Script/Shop/Shop.cs
index 1713df179a456da952796226feb9660e46502df0..d124b503b517d111842e1263dd7cc9383ca270de 100644
--- a/Assets/Script/Shop/Shop.cs
+++ b/Assets/Script/Shop/Shop.cs
@@ -117,7 +117,7 @@ public class Shop : MonoBehaviour
         if (playerGolds >= healerPrice)
         {
             GlobalPreference.Instance.SetPlayerGold(playerGolds - healerPrice);
-            var pet = Instantiate(healerObject, player.transform.position, Quaternion.identity);
+            var pet = Instantiate(Resources.Load("Prefabs/Fairy Pet/Fairy Pet") as GameObject, player.transform.position, Quaternion.identity);
             playerInventory.addPet(pet.GetComponent<Pet>());
             isThereHealer = true;
         }
@@ -144,7 +144,7 @@ public class Shop : MonoBehaviour
         if(playerGolds >= wolfPrice)
         {
             GlobalPreference.Instance.SetPlayerGold(playerGolds - wolfPrice);
-            var pet = Instantiate(wolfObject, player.transform.position, Quaternion.identity);
+            var pet = Instantiate(Resources.Load("Prefabs/Wolf Pet/Prefabs/Wolf") as GameObject, player.transform.position, Quaternion.identity);
             playerInventory.addPet(pet.GetComponent<Pet>());
             isThereWolf = true;
         }
diff --git a/Assets/Script/Stage/Stage.cs b/Assets/Script/Stage/Stage.cs
index 20d7ae8053f072a3610a1ba6f33d237dd478fb6d..97d55a5fbb52b4eb87bf758510efaca907d412c9 100644
--- a/Assets/Script/Stage/Stage.cs
+++ b/Assets/Script/Stage/Stage.cs
@@ -54,6 +54,7 @@ public class Stage : MonoBehaviour
             {
                 CheckSpawnerCompletion();
             }
+
             if (stageId == 2 && currentQuest == quest[0])
             {
                 survivalTimer += Time.deltaTime;
@@ -63,6 +64,8 @@ public class Stage : MonoBehaviour
                     ProceedNextQuest(1);
                     GameObject.FindGameObjectWithTag("Shopkeeper").GetComponent<EventOnlyInteractable>().promptMessage = "Shopkeeper (E)";
                     GameObject.FindGameObjectWithTag("Shopkeeper").GetComponent<EventOnlyInteractable>().isActive = true;
+
+                    StartCoroutine(MusicTransition1());
                 }
             }
             questLabel.text = currentQuest;
@@ -88,16 +91,29 @@ public class Stage : MonoBehaviour
         }
     }
 
+    public IEnumerator MusicTransition1()
+    {
+        AudioManager.instance.StopMusic();
+        yield return new WaitForSeconds(2f);
+        AudioManager.instance.PlayMusic("Safehouse");
+    }
+
+    public IEnumerator MusicTransition2()
+    {
+        AudioManager.instance.StopMusic();
+        yield return new WaitForSeconds(2f);
+        AudioManager.instance.PlayMusic("Stage");
+    }
+
     public void StartStage()
     {
+        StartCoroutine(MusicTransition2());
         foreach (var spawner in spawnControllers)
         {
             spawner.StartSpawning();
         }
     }
 
-    
-
     public bool CheckSpawnerCompletion()
     {
         foreach (var spawner in spawnControllers)
@@ -107,8 +123,7 @@ public class Stage : MonoBehaviour
                 return false;
             }
         }
-        // AudioManager.instance.PlaySFX("StageComplete");
-        AudioManager.instance.StopMusic();
+
         if (stageId == 1 && isActive)
         {
             Debug.Log("musuh selesai");
@@ -123,6 +138,8 @@ public class Stage : MonoBehaviour
             GameObject.FindGameObjectWithTag("Gate 2").GetComponent<EventOnlyInteractable>().promptMessage = "Press E to open the gate";
             GameObject.FindGameObjectWithTag("Gate 2").GetComponent<EventOnlyInteractable>().isActive = true;
         }
+
+        StartCoroutine(MusicTransition1());
         return true;
     }
 
@@ -152,8 +169,11 @@ public class Stage : MonoBehaviour
             ProceedNextQuest(2);
             GameObject.FindGameObjectWithTag("Gate 2").GetComponent<EventOnlyInteractable>().promptMessage = "";
             GameObject.FindGameObjectWithTag("Gate 2").GetComponent<EventOnlyInteractable>().isActive = false;
+
             GameObject.FindGameObjectWithTag("Boat").GetComponent<EventOnlyInteractable>().promptMessage = "Go to Boss Arena (E)";
             GameObject.FindGameObjectWithTag("Boat").GetComponent<EventOnlyInteractable>().isActive = true;
+
+            saveButton.interactable = true;
         }
         
     }
@@ -176,6 +196,7 @@ public class Stage : MonoBehaviour
             GameObject.FindGameObjectWithTag("Shopkeeper").GetComponent<EventOnlyInteractable>().isActive = false;
         }
 
+
         saveButton.interactable = true;
     }
 
diff --git a/Assets/Script/Stage/StageManager.cs b/Assets/Script/Stage/StageManager.cs
index 001c44c605c0b85c25d6f6d2d5f9c36da9f32c3d..395ca19bf231664e325b25b2b0d462b7c6a45681 100644
--- a/Assets/Script/Stage/StageManager.cs
+++ b/Assets/Script/Stage/StageManager.cs
@@ -25,11 +25,11 @@ public class StageManager : MonoBehaviour
             currentStage = (int)data.stageNumber;
             if (currentStage == 2)
             {
-                if (GameObject.FindGameObjectWithTag("Player") != null) 
+                /*if (GameObject.FindGameObjectWithTag("Player") != null) 
                 {
-                    GameObject.FindGameObjectWithTag("Player").transform.localPosition = new Vector3(-18.026f, 20.801f, 49.536f);
-                }
-                GameObject.FindGameObjectWithTag("Gate").GetComponent<Animator>().SetTrigger("OpenGate");
+                    GameObject.FindGameObjectWithTag("Player").GetComponent<CharacterController>().center = new Vector3(-18.026f, 20.801f, 49.536f);
+                }*/
+                /*GameObject.FindGameObjectWithTag("Gate").GetComponent<Animator>().SetTrigger("OpenGate");*/
             }
         }
 
@@ -54,6 +54,11 @@ public class StageManager : MonoBehaviour
                 chapterText.SetActive(true);
                 chapterTextMesh.text = "CHAPTER 2";
             }
+            else if (currentStage == 3)
+            {
+                chapterText.SetActive(true);
+                chapterTextMesh.text = "CHAPTER 3";
+            }
 
             GlobalPreference.Instance.setStageNumber(currentStage);
             StartCoroutine(HideChapterText());
diff --git a/Assets/Script/Weapon/GunSystem.cs b/Assets/Script/Weapon/GunSystem.cs
index 4c218052e417c4aea525af1fe1bd9bdb4bd528f5..83bf21a378c629384d2c0f1910891fd0388bf1cf 100644
--- a/Assets/Script/Weapon/GunSystem.cs
+++ b/Assets/Script/Weapon/GunSystem.cs
@@ -42,6 +42,7 @@ public class GunSystem : MonoBehaviour
         readyToShoot = true;
         reloading = false;
         inputManager = player.GetComponent<InputManager>();
+        isActiveWeapon = true;
     }
 
     private void Update()
diff --git a/Assets/Timeline/EntranceIntro.playable b/Assets/Timeline/EntranceIntro.playable
index 5a520551154292852ea1f44ed42b66a685264e6d..1c3c0a7f6f7a58dc1889388210a71e494f6eaf26 100644
--- a/Assets/Timeline/EntranceIntro.playable
+++ b/Assets/Timeline/EntranceIntro.playable
@@ -438,6 +438,28 @@ MonoBehaviour:
   m_Markers:
     m_Objects:
     - {fileID: 7017475428051020058}
+--- !u!114 &2057740836184029763
+MonoBehaviour:
+  m_ObjectHideFlags: 1
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 0}
+  m_Enabled: 1
+  m_EditorHideFlags: 0
+  m_Script: {fileID: 11500000, guid: 030f85c3f73729f4f976f66ffb23b875, type: 3}
+  m_Name: Recorded (3)
+  m_EditorClassIdentifier: 
+  m_Clip: {fileID: 4909446276190046052}
+  m_Position: {x: 0, y: 0, z: 0}
+  m_EulerAngles: {x: 0, y: 0, z: 0}
+  m_UseTrackMatchFields: 1
+  m_MatchTargetFields: 63
+  m_RemoveStartOffset: 0
+  m_ApplyFootIK: 1
+  m_Loop: 0
+  m_Version: 1
+  m_Rotation: {x: 0, y: 0, z: 0, w: 1}
 --- !u!114 &2647497156481244554
 MonoBehaviour:
   m_ObjectHideFlags: 1
@@ -1021,25 +1043,7 @@ MonoBehaviour:
     m_BlendOutDuration: -1
     m_MixInCurve:
       serializedVersion: 2
-      m_Curve:
-      - serializedVersion: 3
-        time: 0
-        value: 0
-        inSlope: 0
-        outSlope: 0
-        tangentMode: 0
-        weightedMode: 0
-        inWeight: 0
-        outWeight: 0
-      - serializedVersion: 3
-        time: 1
-        value: 1
-        inSlope: 0
-        outSlope: 0
-        tangentMode: 0
-        weightedMode: 0
-        inWeight: 0
-        outWeight: 0
+      m_Curve: []
       m_PreInfinity: 2
       m_PostInfinity: 2
       m_RotationOrder: 4
@@ -1154,6 +1158,126 @@ MonoBehaviour:
   m_OpenClipOffsetRotation: {x: 0, y: 0, z: 0, w: 1}
   m_Rotation: {x: 0, y: 0, z: 0, w: 1}
   m_ApplyOffsets: 0
+--- !u!74 &4909446276190046052
+AnimationClip:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_Name: Recorded (3)
+  serializedVersion: 7
+  m_Legacy: 0
+  m_Compressed: 0
+  m_UseHighQualityCurve: 1
+  m_RotationCurves: []
+  m_CompressedRotationCurves: []
+  m_EulerCurves: []
+  m_PositionCurves: []
+  m_ScaleCurves: []
+  m_FloatCurves:
+  - serializedVersion: 2
+    curve:
+      serializedVersion: 2
+      m_Curve:
+      - serializedVersion: 3
+        time: 0
+        value: 1
+        inSlope: 0
+        outSlope: 0
+        tangentMode: 136
+        weightedMode: 0
+        inWeight: 0.33333334
+        outWeight: 0.33333334
+      - serializedVersion: 3
+        time: 0.93333334
+        value: 0
+        inSlope: 0
+        outSlope: 0
+        tangentMode: 136
+        weightedMode: 0
+        inWeight: 0.33333334
+        outWeight: 0.33333334
+      m_PreInfinity: 2
+      m_PostInfinity: 2
+      m_RotationOrder: 4
+    attribute: m_Color.a
+    path: 
+    classID: 114
+    script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3}
+    flags: 0
+  m_PPtrCurves: []
+  m_SampleRate: 120
+  m_WrapMode: 0
+  m_Bounds:
+    m_Center: {x: 0, y: 0, z: 0}
+    m_Extent: {x: 0, y: 0, z: 0}
+  m_ClipBindingConstant:
+    genericBindings:
+    - serializedVersion: 2
+      path: 0
+      attribute: 304273561
+      script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3}
+      typeID: 114
+      customType: 0
+      isPPtrCurve: 0
+      isIntCurve: 0
+      isSerializeReferenceCurve: 0
+    pptrCurveMapping: []
+  m_AnimationClipSettings:
+    serializedVersion: 2
+    m_AdditiveReferencePoseClip: {fileID: 0}
+    m_AdditiveReferencePoseTime: 0
+    m_StartTime: 0
+    m_StopTime: 0.93333334
+    m_OrientationOffsetY: 0
+    m_Level: 0
+    m_CycleOffset: 0
+    m_HasAdditiveReferencePose: 0
+    m_LoopTime: 0
+    m_LoopBlend: 0
+    m_LoopBlendOrientation: 0
+    m_LoopBlendPositionY: 0
+    m_LoopBlendPositionXZ: 0
+    m_KeepOriginalOrientation: 0
+    m_KeepOriginalPositionY: 1
+    m_KeepOriginalPositionXZ: 0
+    m_HeightFromFeet: 0
+    m_Mirror: 0
+  m_EditorCurves:
+  - serializedVersion: 2
+    curve:
+      serializedVersion: 2
+      m_Curve:
+      - serializedVersion: 3
+        time: 0
+        value: 1
+        inSlope: 0
+        outSlope: 0
+        tangentMode: 136
+        weightedMode: 0
+        inWeight: 0.33333334
+        outWeight: 0.33333334
+      - serializedVersion: 3
+        time: 0.93333334
+        value: 0
+        inSlope: 0
+        outSlope: 0
+        tangentMode: 136
+        weightedMode: 0
+        inWeight: 0.33333334
+        outWeight: 0.33333334
+      m_PreInfinity: 2
+      m_PostInfinity: 2
+      m_RotationOrder: 4
+    attribute: m_Color.a
+    path: 
+    classID: 114
+    script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3}
+    flags: 0
+  m_EulerEditorCurves: []
+  m_HasGenericRootTransform: 0
+  m_HasMotionFloatCurves: 0
+  m_Events: []
 --- !u!74 &5136047176708661745
 AnimationClip:
   m_ObjectHideFlags: 0
@@ -1717,8 +1841,77 @@ MonoBehaviour:
     m_PostExtrapolationMode: 1
     m_PreExtrapolationMode: 1
     m_PostExtrapolationTime: Infinity
-    m_PreExtrapolationTime: 8.85
+    m_PreExtrapolationTime: 0
     m_DisplayName: Recorded (2)
+  - m_Version: 1
+    m_Start: 0
+    m_ClipIn: 0
+    m_Asset: {fileID: 2057740836184029763}
+    m_Duration: 0.9583333333333334
+    m_TimeScale: 1
+    m_ParentTrack: {fileID: 8908925201628745394}
+    m_EaseInDuration: 0
+    m_EaseOutDuration: 0
+    m_BlendInDuration: -1
+    m_BlendOutDuration: -1
+    m_MixInCurve:
+      serializedVersion: 2
+      m_Curve:
+      - serializedVersion: 3
+        time: 0
+        value: 0
+        inSlope: 0
+        outSlope: 0
+        tangentMode: 0
+        weightedMode: 0
+        inWeight: 0
+        outWeight: 0
+      - serializedVersion: 3
+        time: 1
+        value: 1
+        inSlope: 0
+        outSlope: 0
+        tangentMode: 0
+        weightedMode: 0
+        inWeight: 0
+        outWeight: 0
+      m_PreInfinity: 2
+      m_PostInfinity: 2
+      m_RotationOrder: 4
+    m_MixOutCurve:
+      serializedVersion: 2
+      m_Curve:
+      - serializedVersion: 3
+        time: 0
+        value: 1
+        inSlope: 0
+        outSlope: 0
+        tangentMode: 0
+        weightedMode: 0
+        inWeight: 0
+        outWeight: 0
+      - serializedVersion: 3
+        time: 1
+        value: 0
+        inSlope: 0
+        outSlope: 0
+        tangentMode: 0
+        weightedMode: 0
+        inWeight: 0
+        outWeight: 0
+      m_PreInfinity: 2
+      m_PostInfinity: 2
+      m_RotationOrder: 4
+    m_BlendInCurveMode: 0
+    m_BlendOutCurveMode: 0
+    m_ExposedParameterNames: []
+    m_AnimationCurves: {fileID: 0}
+    m_Recordable: 1
+    m_PostExtrapolationMode: 1
+    m_PreExtrapolationMode: 1
+    m_PostExtrapolationTime: 7.891666666666667
+    m_PreExtrapolationTime: 0
+    m_DisplayName: Recorded (3)
   m_Markers:
     m_Objects: []
   m_InfiniteClipPreExtrapolation: 1