diff --git a/Assets/Scripts/Save/SaveHandler.cs b/Assets/Scripts/Save/SaveHandler.cs
index db9682eb8a34600da7bf07e67057b525a12442ee..a303daa1d84d7c8d52d1691488c899e99ac7764c 100644
--- a/Assets/Scripts/Save/SaveHandler.cs
+++ b/Assets/Scripts/Save/SaveHandler.cs
@@ -83,11 +83,11 @@ public class SaveHandler : MonoBehaviour
         SaveManager.Save(slotIdx, saveName, SaveData.getSaveData());
     }
 
-    public void OnLoadGame()
+    public void OnLoadGame(string fileName)
     {
         GameObject player = GameObject.FindGameObjectWithTag("Player");
         QuestManager questManager = GetComponent<QuestManager>();
-        SaveData data = (SaveData)SaveManager.Load("1_left"); // change
+        SaveData data = (SaveData)SaveManager.Load(fileName);
         player.transform.position = data.playerPosition;
         player.transform.rotation = data.playerRotation;
         player.GetComponent<PlayerHealth>().currentHealth = data.playerHealth;
@@ -115,4 +115,35 @@ public class SaveHandler : MonoBehaviour
         }
         return files;
     }
+
+    public bool loadLastSave()
+    {
+        if (!Directory.Exists(Application.persistentDataPath + "/save/"))
+        {
+            Directory.CreateDirectory(Application.persistentDataPath + "/save/");
+        }
+
+        string[] files_str = Directory.GetFiles(Application.persistentDataPath + "/save/");
+
+        if (files_str.Length == 0)
+        {
+            return false;
+        }
+
+        string latestFile = files_str[0];
+        DateTime saveTime = new FileInfo(latestFile).LastWriteTime;
+        for (int i=1; i<files_str.Length; i++)
+        {
+            DateTime curSaveTime = new FileInfo(files_str[i]).LastWriteTime;
+            if (curSaveTime > saveTime)
+            {
+                saveTime = curSaveTime;
+                latestFile = files_str[i];
+            }
+        }
+
+        OnLoadGame(latestFile.Replace(Application.persistentDataPath + "/save/", "").Replace(".sshooter", ""));
+
+        return true;
+    }
 }