diff --git a/source/funkin/save/Save.hx b/source/funkin/save/Save.hx
index fbec836bb..fe7fffa2b 100644
--- a/source/funkin/save/Save.hx
+++ b/source/funkin/save/Save.hx
@@ -555,20 +555,22 @@ class Save
     return false;
   }
 
-  public function getControls(playerId:Int, inputType:Device):SaveControlsData
+  public function getControls(playerId:Int, inputType:Device):Null<SaveControlsData>
   {
     switch (inputType)
     {
       case Keys:
-        return (playerId == 0) ? data.options.controls.p1.keyboard : data.options.controls.p2.keyboard;
+        return (playerId == 0) ? data?.options?.controls?.p1.keyboard : data?.options?.controls?.p2.keyboard;
       case Gamepad(_):
-        return (playerId == 0) ? data.options.controls.p1.gamepad : data.options.controls.p2.gamepad;
+        return (playerId == 0) ? data?.options?.controls?.p1.gamepad : data?.options?.controls?.p2.gamepad;
     }
   }
 
   public function hasControls(playerId:Int, inputType:Device):Bool
   {
     var controls = getControls(playerId, inputType);
+    if (controls == null) return false;
+
     var controlsFields = Reflect.fields(controls);
     return controlsFields.length > 0;
   }