diff --git a/Assets/Scripts/Managers/GlobalManager.cs b/Assets/Scripts/Managers/GlobalManager.cs
index 1a4f72deb8e8d27477b917090b4f9559ad72230a..7d327ed34cc872f7260c1bee17c45138fa470577 100644
--- a/Assets/Scripts/Managers/GlobalManager.cs
+++ b/Assets/Scripts/Managers/GlobalManager.cs
@@ -8,10 +8,15 @@ public class GlobalManager : MonoBehaviour
 {
     public static GlobalManager Instance;
     private GlobalStateManager globalStateManager;
+    private string defaultName = "PLAYER";
     private string playerName;
     public string PlayerName
     {
-        get => playerName;
+        get
+        {
+            playerName ??= defaultName;
+            return playerName;
+        }
         set
         {
             playerName = value;
diff --git a/Assets/Scripts/Player/PlayerWeapons.cs b/Assets/Scripts/Player/PlayerWeapons.cs
index 7f022d18e5928d213dfa61464e279342d86fc8d5..42dd00ff421878bda8689130fbd0a292706e3f38 100644
--- a/Assets/Scripts/Player/PlayerWeapons.cs
+++ b/Assets/Scripts/Player/PlayerWeapons.cs
@@ -12,7 +12,7 @@ public class PlayerWeapons : MonoBehaviour
     int idxWeapon = 0;
 
     // Start is called before the first frame update
-    void Start()
+    void Awake()
     {
         var gun = new GameObject[2];
         gun[0] = GameObject.Find("GunBarrelEnd");
@@ -102,9 +102,13 @@ public class PlayerWeapons : MonoBehaviour
         int idx = GetIdxWeapon(weaponType);
         if (idx == -1) return false;
 
-        Debug.Log("Weapon: " + Weapons);
-        Debug.Log("Weapon len: " + Weapons.Length);
-        Debug.Log("Weapons[idx]: " + Weapons[idx]);
+        var ws = Weapons;
+        foreach (var w in ws)
+        {
+            Debug.Log("Weapon: " + w);
+            Debug.Log("Weapon len: " + Weapons.Length);
+            Debug.Log("Weapons[idx]: " + w);
+        }
 
         Weapons[idx].IsUnlocked = true;
         return true;
diff --git a/Assets/Scripts/SaveLoad/LoadDialogHandler.cs b/Assets/Scripts/SaveLoad/LoadDialogHandler.cs
index 7fa1c56cda3039d02412534912d64707beedf44f..8a30b912cdded59505d1ae5761d89ede445fe302 100644
--- a/Assets/Scripts/SaveLoad/LoadDialogHandler.cs
+++ b/Assets/Scripts/SaveLoad/LoadDialogHandler.cs
@@ -46,7 +46,7 @@ public class LoadSlotHandler
         }
         else
         {
-            this.Btn.name = "Save Slot " + (Id + 1);
+            this.txt.text = "[EMPTY] Save Slot " + (Id + 1);
             this.Btn.enabled = false;
         }
     }
@@ -70,6 +70,14 @@ public class LoadDialogHandler : MonoBehaviour
         /*gameObject.SetActive(false);*/
     }
 
+    private void Update()
+    {
+        if (Input.GetKeyDown(KeyCode.Escape))
+        {
+            Close();
+        }
+    }
+
     public void Show()
     {
         gameObject.SetActive(true);
diff --git a/Assets/Scripts/States/GlobalStateManager.cs b/Assets/Scripts/States/GlobalStateManager.cs
index fdef0b57a0af8e23efb6b5e50162793954f539d4..e13fbf068627c535892b485d72f20a2e167f0e90 100644
--- a/Assets/Scripts/States/GlobalStateManager.cs
+++ b/Assets/Scripts/States/GlobalStateManager.cs
@@ -104,6 +104,7 @@ public class GlobalStateManager : MonoBehaviour
     {
         get
         {
+            if (petHealth == null) return 0;
             return petHealth.currentHealth;
         }
     }
@@ -140,6 +141,21 @@ public class GlobalStateManager : MonoBehaviour
 
         // TODO: get states
         var metaStateSave = new MetaStateSave("name");
+        var arg1 = PlayerName;
+        var arg2 = Money;
+        var arg3 = Health;
+        var arg4 = IdxQuest;
+        var arg5 = playerWeapons;
+
+        Debug.Log("PlayerName: " + PlayerName);
+        Debug.Log("Money: " + Money);
+        Debug.Log("Health: " + Health);
+        Debug.Log("IdxQuest: " + IdxQuest);
+        foreach (var w in playerWeapons)
+        {
+            Debug.Log("playerWeapon[{{i}}]: " + w);
+        }
+
         var playerStateSave = new PlayerStateSave(PlayerName, Money, Health, IdxQuest, playerWeapons);
         var petStateSave = new PetStateSave(PetHealth, -1);
         var globalStateSave = new GlobalStateSave(TimePlayed);
@@ -162,8 +178,22 @@ public class GlobalStateManager : MonoBehaviour
         playerHealth.currentHealth = state.playerStateSave.health;
         GameControl.control.currency = state.playerStateSave.money;
         temple.IdxCurrentQuest = state.playerStateSave.idxQuest;
-        foreach (var weapon in state.playerStateSave.playerWeapons)
+        /*        foreach (var weapon in state.playerStateSave.playerWeapons)
+                {
+                    var type = weapon.weaponType;
+                    var isUnlocked = weapon.isUnlocked;
+                    var level = weapon.level;
+
+                    if (isUnlocked)
+                    {
+                        playerWeapons.UnlockWeapon(type);
+                        playerWeapons.SetLevel(type, level);
+                    }
+                }*/
+        var len = state.playerStateSave.playerWeapons.Length;
+        for ( var i = 0; i<len; i++ )
         {
+            var weapon = state.playerStateSave.playerWeapons[i];
             var type = weapon.weaponType;
             var isUnlocked = weapon.isUnlocked;
             var level = weapon.level;