public void LoadFromFile()
    {
        string address = ModFolder;

        Debug.Log("Checking for: " + address);

        if (Directory.Exists(address))
        {
            Debug.Log(address + " exists!");
            try
            {
                Debug.Log("Checking for: " + address + @"\settings.json");
                string temp = File.ReadAllText(address + @"\settings.json");

                settings        = JsonConvert.DeserializeObject <AirTrafficSettings>(temp);
                settingsChanged = false;
            }
            catch
            {
                Debug.Log("no json found, making one");
                SaveToFile();
            }
        }
        else
        {
            Debug.Log("Mod folder not found?");
        }
    }
    public override void ModLoaded()
    {
        HarmonyInstance harmony = HarmonyInstance.Create("cheese.airtraffic");

        harmony.PatchAll(Assembly.GetExecutingAssembly());

        base.ModLoaded();
        VTOLAPI.SceneLoaded     += SceneLoaded;
        VTOLAPI.MissionReloaded += MissionReloaded;

        settings = new AirTrafficSettings();
        LoadFromFile();

        Settings modSettings = new Settings(this);

        modSettings.CreateCustomLabel("Air Traffic Settings");

        modSettings.CreateCustomLabel("");
        modSettings.CreateCustomLabel("Transport Aircraft");

        targetAircraftAmmount_changed += targetAircraftAmmount_Setting;
        modSettings.CreateCustomLabel("Ammount of transport aircraft:");
        modSettings.CreateIntSetting("(Default = 15)", targetAircraftAmmount_changed, settings.targetAircraftAmmount);

        useTransportAV42_changed += useTransportAV42_Setting;
        modSettings.CreateCustomLabel("Allow AV-42 to spawn as transport:");
        modSettings.CreateBoolSetting("(Default = true)", useTransportAV42_changed, settings.useTransportAV42);

        useTransportBig_changed += useTransportBig_Setting;
        modSettings.CreateCustomLabel("Allow big aircraft to spawn as transport:");
        modSettings.CreateCustomLabel("(Modified KC-49 and E-4)");
        modSettings.CreateBoolSetting("(Default = true)", useTransportBig_changed, settings.useTransportBig);

        useTransportDrone_changed += useTransportDrone_Setting;
        modSettings.CreateCustomLabel("Allow amazoon drone to spawn as transport:");
        modSettings.CreateCustomLabel("(Modified refuel plane)");
        modSettings.CreateBoolSetting("(Default = true)", useTransportDrone_changed, settings.useTransportDrone);

        useFighters_changed += useFighters_Setting;
        modSettings.CreateCustomLabel("Allow fighter jets to spawn as transport:");
        modSettings.CreateCustomLabel("(F/A-26 and F45s)");
        modSettings.CreateBoolSetting("(Default = true)", useFighters_changed, settings.useFighters);

        useBomber_changed += useBomber_Setting;
        modSettings.CreateCustomLabel("Allow bombers to spawn as supersonic transport:");
        modSettings.CreateBoolSetting("(Default = true)", useBomber_changed, settings.useBomber);

        useBomber_changed += useBomber_Setting;
        modSettings.CreateCustomLabel("Allow enemy aircraft to spawn as transport:");
        modSettings.CreateBoolSetting("(Default = true)", useEnemy_changed, settings.useEnemy);

        mpTestMode_changed += mpTestMode_Setting;
        modSettings.CreateCustomLabel("MP Test Mode:");
        modSettings.CreateBoolSetting("(Default = false)", mpTestMode_changed, settings.mpTestMode);
        modSettings.CreateCustomLabel("This spreads the aircraft across the entire map instead of just near the player.");
        modSettings.CreateCustomLabel("DO NOT USE, IT IS NOT NECESSARY FOR MP");

        modSettings.CreateCustomLabel("");
        modSettings.CreateCustomLabel("Please feel free to @ me on the discord if");
        modSettings.CreateCustomLabel("you think of any more features I could add!");

        VTOLAPI.CreateSettingsMenu(modSettings);

        instance = this;

        UpdateTransportAircraft();
    }