Jump to content

Savegame Editor


Bester

Recommended Posts

After editing party member names and gold, the saved game does not load.

 

Could you send me the save file that you're editing pls (the original file and the edited version of it)? Just upload it on dropbox or something.

 

The saves are located in C:\Users\<username>\AppData\LocalLow\Obsidian Entertainment\Pillars of Eternity\Saves

Edited by Bester
IE Mod for Pillars of Eternity: link
Link to comment
Share on other sites

  • 1 month later...

I don't think updating the save files location is the proper "continuation" of the project.

 

I need to rewrite the whole thing from scratch, because I'd like to deserialize the save files completely and make it possible to edit literally everything stored in there, which is going to require a lot of work (have a look at a verbose version of a save file). And since they recently said they're planning on fixing some issues related to save game mechanism, I'd rather wait for a final or almost final version of it.

IE Mod for Pillars of Eternity: link
Link to comment
Share on other sites

I don't think updating the save files location is the proper "continuation" of the project.

 

I need to rewrite the whole thing from scratch, because I'd like to deserialize the save files completely and make it possible to edit literally everything stored in there, which is going to require a lot of work (have a look at a verbose version of a save file). And since they recently said they're planning on fixing some issues related to save game mechanism, I'd rather wait for a final or almost final version of it.

Thanks for the response!

 

Updating save loc is not that big a deal (we can manually copy saves to and from the old location), but updating the core functionality (e.g. editing of gold, xp, attributes) would be very welcome. People like me who to experiment with custom parties would higly appreciate that, I am sure.

 

And after the postponement, it's a long way till we see a final version. Might as well amuse ourselves with the beta in the meantime, right?

 

But it's your call, of course.  

  • Like 1
Link to comment
Share on other sites

Hey, long time lurker but first time poster.

 

So having seen this post I decided that I would try to port this project over to visual c# (especially as bester had voiced his disdain at having made it in unity), it's taken a couple of days but i'm at a point now where I think I have a relatively functional editor.

 

*** At this point I have to mention that a good chunk of the code was taken from Besters project (due to him saying it was open source), soa huge amount of credit must be given to him for providing the basic code and functions to interrogate and update the save files. At no point am I claiming that all of the code in this project is my own, although a fair chunk of it is. ***

 

The only problem is that I completely forgot about the backer cutoff date and never purchased to access to the beta. Currently i'm testing the editor with savegames that people have uploaded to the forums but that presents a lot of issues in that I have no way to compare what I see in the editor to what the actual values are in the game.

 

For things like basic stat editing i'm pretty sure it should work ok, but for more complicated things like adding or removing feats,spells, abilities and items I have no way of verifying that what I am making is going to work.

 

***None of this is tested on any beta build***

 

Below is a list of what the editor can do currently

 

- Edit attributes, skills, saves, health, stamina, race, subrace, deity, background etc.

- Edit defense bonuses  - . disease, poison, etc.

- Edit gold and camping supplies

- View current abilities, spells, talents and inventory

- Alter the quantity of items in the inventory

 

I have a bit more work to do before the program will be truly standalone and at a point where I am happy with it so I won't upload it yet (probably about another 2 days work), however I will ask that if any of the higher level backers have any spare beta keys they would be willing to donate (or trade) to me they would be helping to improve the editor far past what I could ever do without beta access. If this is the case then please PM me. Please see below for some screenshots of the work in progress:

 

Cfmshlm.png

jPMQr3e.png

C3bOQMM.png

 

Lastly a big thanks to the developers, even with the current discontent about some aspects of the game, the fact that they are even trying to recreate the IE feel and style of games has earnt them a lot of respect from me.

  • Like 6
Link to comment
Share on other sites

Im not sure about the level cap, as I dont have access to the beta I cant interrogate the game files for stuff like ability files, currently the editor scours any save file it loads for useful information and saves it for later, as such the only way to access the higher level abilities would be to load a game with a character who had them already, so catch 22 really.

 

With regards to uploading, im almost at the point where im able to add and remove spells, abilities and talents, as such I would like to get that done and dusted beforehand. Since im checking my work in a hex editor rather than in engine it takes a little longer. I will definitely upload this in the near future, I just want it to have a good chance of working properly first time.

Link to comment
Share on other sites

Hey, great job, I'm really happy someone decided to take over.

 

By the way, did you know that it's possible to deserialize the save files entirely instead of parsing for hex values?

 

Since they didn't use any code obfuscator, the entire game's code can be easily viewed, and so you can see that they serialize objects with sharpSerializer. So for example in order to deserialize the saveinfo.xml, you can just do use this:

 

 

using System;using System.Collections;using System.IO;using Polenter.Serialization; public class SaveGameInfo{  //public const int CurrentSaveVersion = 0;  //public const int MinimumCompatibleSaveVersion = 0;  public string PlayerName {get; set;}  public string MapName {get; set;}  public string SceneTitle {get; set;}  public int Chapter {get; set;}  public int PlaytimeSeconds {get; set;}  public bool TrialOfIron {get; set;}  public DateTime RealTimestamp {get; set;}  public Guid SessionID {get; set;}  public string FileName {get; set;}  public int SaveVersion {get; set;}}public class main {  public static string tempPath = "C:\\somepath"; // some path where you unzip the save files...  SaveGameInfo sgi;   public void infoDeserialize()  {    SharpSerializer sharpSerializer = new SharpSerializer(true);    sgi = sharpSerializer.Deserialize(Path.Combine(tempPath,"saveinfo.xml")) as SaveGameInfo;    if (sgi != null) Debug.Log("All good");    else Debug.Log("Xml file wasn't found");    // and now we have access to everything...    Debug.Log("PlayerName: "+sgi.PlayerName);    Debug.Log("MapName: "+sgi.MapName);    Debug.Log("SceneTitle: "+sgi.SceneTitle);    Debug.Log("Chapter: "+sgi.Chapter);    Debug.Log("PlaytimeSeconds: "+sgi.PlaytimeSeconds);    Debug.Log("TrialOfIron: "+sgi.TrialOfIron);    Debug.Log("RealTimestamp: "+sgi.RealTimestamp);    Debug.Log("SessionID: "+sgi.SessionID);    Debug.Log("FileName: "+sgi.FileName);    Debug.Log("SaveVersion: "+sgi.SaveVersion);  }

 

Easy access to variables. And to save them:

 

 

public void infoReserialize()  {    SharpSerializer sharpSerializer = new SharpSerializer(true);    sharpSerializer.Serialize(sgi, Path.Combine(tempPath, "copy.xml"));  }}

 

And by the way, if you're going to make your editor cross platform, here's where they keep savegame files for different OSes:

 

 

 

public static string savesPath;  if (Application.platform == RuntimePlatform.WindowsEditor || Application.platform == RuntimePlatform.WindowsPlayer)  {   savesPath = Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.Personal), "Saved Games\\Pillars of Eternity");  }  else  {   if (Application.platform == RuntimePlatform.OSXEditor || Application.platform == RuntimePlatform.OSXPlayer)   {    savesPath = Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.Personal), "/Library/Application Support/Pillars of Eternity/Saved Games");   }   else   {    if (Application.platform == RuntimePlatform.LinuxPlayer)    {     savesPath = Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.Personal), "PillarsOfEternity/SavedGames");    }   }  }  if (!Directory.Exists(savesPath))  {   Directory.CreateDirectory(savesPath);  }

 

 

Hope it helps.

IE Mod for Pillars of Eternity: link
Link to comment
Share on other sites

Even though I agree with Besters reasons for stopping work on it, at least for now, it is nice to see Pandora has made some strides too.  Keep up the great work guys, a solid, bug free (well as bug free as possible), and functional character and save game editor will be a huge boon at launch.

Link to comment
Share on other sites

It's still a work in progress, I've been able to deserialise all of the information in the save files without getting any read errors, however it is a pretty awkward job, especially as I am a self taught coder. At the moment I need to verify that the data I am loading is actually correct.

 

On the plus side, after about 5 hours of commenting bits out I have managed to import all of the original POE scripts into unity and get them working, which means that things like resources, string tables etc should be editable in the near future.

 

Will keep you posted on progress.

Link to comment
Share on other sites

Well sadly I dont have $1500 to spare for pro, although im not sure how the override folder works yet so thats something to look into.

Still a bit of a learning curve at the moment with regards to what is going on where with the original code and assets so progress may be a bit slow initially, particularly when the wife isnt working and moans at me for being on the computer all night :p

Link to comment
Share on other sites

  • 1 month later...

Hey. The savegame editor is outdated and doesn't work, and LunaticPandora seems to have lost interest in finishing his version.

 

Considering the modding possibilities that are now becoming available, I think an interesting alternative would be to make an ingame editor instead. Why quit the game to edit a save when you can do it in game, on the fly. It's something I might look into later.

  • Like 2
IE Mod for Pillars of Eternity: link
Link to comment
Share on other sites

×
×
  • Create New...