public void SaveState(Engine engine, string fullPath) { //TODO return a bool for success? campaignState = CampaignState.GetState(); partyState = PartyState.GetState(engine); triggerState = engine.triggerManager.GetState(); objectiveState = engine.objectiveManager.GetState(); monsterState = GlowEngine.FindObjectOfType <MonsterManager>().GetState(); chapterState = engine.chapterManager.GetState(); tileState = engine.tileManager.GetState(); interactionState = engine.interactionManager.GetState(); camState = GlowEngine.FindObjectOfType <CamControl>().GetState(); //string basePath = Path.Combine( Environment.ExpandEnvironmentVariables( "%userprofile%" ), "Documents", "Your Journey", "Saves" ); string basePath = GetFullSavePath(); if (basePath is null) { return; } string output = JsonConvert.SerializeObject(this, Formatting.Indented, new Vector3Converter()); //string outpath = Path.Combine( basePath, "SAVE" + saveIndex + ".sav" ); Debug.Log("SaveState::SAVING TO: " + fullPath); try { using (var stream = File.CreateText(fullPath)) { stream.Write(output); } } catch { Debug.Log("Could not save the state"); } }