[Tool] GD save file editor

Is there any list of all possible field paths that can be used in show commands?

I get a similar error - doesnā€™t look like the program is working. Not compatible with 1.2?

Ya looks like 1.2 changed how the save files were structured somewhat

Oh wow. I guess the editor needs to be updated again. Iā€™ll look into it! =)

3 Likes

Ya I have been trying to decrypt the save files to see what the difference is between the old and new structures. But havenā€™t had any luck yet

I was looking at the gd-edit source, I havenā€™t gotten it to built yet, I donā€™t do much with java, but from looking at the error message Iā€™m getting

Exception in thread ā€œmainā€ java.lang.AssertionError: Assert failed: (= expected-end-position (.position bb))
at gd_edit.io.gdc$read_block.invokeStatic(gdc.clj:1030)
at gd_edit.io.gdc$read_block.invoke(gdc.clj:990)
at gd_edit.io.gdc$load_character_file$fn__17271.invoke(gdc.clj:1132)
at gd_edit.io.gdc$load_character_file.invokeStatic(gdc.clj:1128)
at gd_edit.io.gdc$load_character_file.invoke(gdc.clj:1084)
at gd_edit.io.gdc$load_character_file.invokeStatic(gdc.clj:1086)
at gd_edit.io.gdc$load_character_file.invoke(gdc.clj:1084)
at gd_edit.app_util$load_character_file.invokeStatic(app_util.clj:148)
at gd_edit.app_util$load_character_file.invoke(app_util.clj:144)
at gd_edit.commands.choose_character$load_character_file.invokeStatic(choose_character.clj:31)
at gd_edit.commands.choose_character$load_character_file.invoke(choose_character.clj:26)
at gd_edit.commands.choose_character$character_selection_screen$fn__18624$fn__18628.invoke(choose_character.clj:60)
at gd_edit.core$repl_eval.invokeStatic(core.clj:224)
at gd_edit.core$repl_eval.invoke(core.clj:194)
at gd_edit.core$repl_iter.invokeStatic(core.clj:257)
at gd_edit.core$repl_iter.invoke(core.clj:250)
at gd_edit.core$repl$fn__22462.invoke(core.clj:292)
at gd_edit.core$repl.invokeStatic(core.clj:289)
at gd_edit.core$repl.invoke(core.clj:285)
at gd_edit.core$start_editor.invokeStatic(core.clj:612)
at gd_edit.core$start_editor.invoke(core.clj:602)
at gd_edit.core$_main.invokeStatic(core.clj:660)
at gd_edit.core$_main.doInvoke(core.clj:625)
at clojure.lang.RestFn.invoke(RestFn.java:397)
at clojure.lang.AFn.applyToHelper(AFn.java:152)
at clojure.lang.RestFn.applyTo(RestFn.java:132)
at gd_edit.core.main(Unknown Source)

It looks like there might be more Blocks in the gdc file now? Currently gd-edit goes up to Block17, Iā€™m assuming either more stuff was put into some of the blocks or there is a Block18 with god knows what inside of it.

can anybody help me hereā€¦i generated a character from grimtools but its seems that the generated characters cant gain exp in anyway when i tried it in game, i was trying to complete an unfinished build so i can complete it with my own mix. can somebody explain what do i do wrong or missed here?, im new to this tools.
im using GoG version here

sorry for my bad english

Sounds like there was a problem setting the character xp when the character was generated. As an example, if you have a lvl 50 character, but itā€™s xp is set to 0. It take a long time to gain enough xp for the gains to show up on the xp bar.

I donā€™t know why it might have turned out this way. Itā€™s been a long time since Iā€™ve looked at the editor. Iā€™ll try to put in a bit of time in the coming week.

Please do post your grimtools character here so I can verify character generation for you.

Thanks!

1 Like

Odie, hey. I play grim dawn with steam cloud enabled and in order for the game to see the created characters I do the following. 1) I create a character in the game, say with the nickname ā€œWarriorShieldā€ 2) I make a character via ggd-sharp ā†’ gd-edit 3) I put it in the steam folder where the character(from Documents\My Games\Grim Dawn\save\main to 219990\remote\save\main) is and go into the game while playing, but the problem is that it works 50/50 Sometimes itā€™s as it should be, sometimes itā€™s not. Now Iā€™ll explain what I mean.
Link #1 (https://imgur.com/a/RLaFcne) I was unlucky and got the fog of war on the map + the company was not passed as you can see from the question mark with ! first npsy.
Link #2 (https://imgur.com/a/rg9M7I4) I was lucky, everything went through and there is no fog of war.
My question is, is there a way to transfer a character in another way to Steam if cloud save is enabled or not? Lately Iā€™ve been getting failures more often when creating a character as in link #1, is there a way to fix this?
P.s Donā€™t be confused by the fact that there are different characters in the screenshot, 1 character is in link #1, I tried to recreate it more than 3 times with different nicknames, but I got what you see in the pictures, as for the second character, I made it 1 time and Iā€™m lucky.

This is the issue Iā€™m having to get the editor to work.
Loading from:
c:\program files (x86)\steam\userdata\83125510\219990\remote\save\main_Grimm\player.gdc
Exception in thread ā€œmainā€ java.lang.AssertionError: Assert failed: (= expected-end-position (.position bb))
at gd_edit.io.gdc$read_block.invokeStatic(gdc.clj:1030)
at gd_edit.io.gdc$read_block.invoke(gdc.clj:990)
at gd_edit.io.gdc$load_character_file$fn__17271.invoke(gdc.clj:1132)
at gd_edit.io.gdc$load_character_file.invokeStatic(gdc.clj:1128)
at gd_edit.io.gdc$load_character_file.invoke(gdc.clj:1084)
at gd_edit.io.gdc$load_character_file.invokeStatic(gdc.clj:1086)
at gd_edit.io.gdc$load_character_file.invoke(gdc.clj:1084)
at gd_edit.app_util$load_character_file.invokeStatic(app_util.clj:148)
at gd_edit.app_util$load_character_file.invoke(app_util.clj:144)
at gd_edit.commands.choose_character$load_character_file.invokeStatic(choose_character.clj:31)
at gd_edit.commands.choose_character$load_character_file.invoke(choose_character.clj:26)
at gd_edit.commands.choose_character$character_selection_screen$fn__18624$fn__18628.invoke(choose_character.clj:60)
at gd_edit.core$repl_eval.invokeStatic(core.clj:224)
at gd_edit.core$repl_eval.invoke(core.clj:194)
at gd_edit.core$repl_iter.invokeStatic(core.clj:257)
at gd_edit.core$repl_iter.invoke(core.clj:250)
at gd_edit.core$repl$fn__22462.invoke(core.clj:292)
at gd_edit.core$repl.invokeStatic(core.clj:289)
at gd_edit.core$repl.invoke(core.clj:285)
at gd_edit.core$start_editor.invokeStatic(core.clj:612)
at gd_edit.core$start_editor.invoke(core.clj:602)
at gd_edit.core$_main.invokeStatic(core.clj:660)
at gd_edit.core$_main.doInvoke(core.clj:625)
at clojure.lang.RestFn.invoke(RestFn.java:397)
at clojure.lang.AFn.applyToHelper(AFn.java:152)
at clojure.lang.RestFn.applyTo(RestFn.java:132)
at gd_edit.core.main(Unknown Source)

Howdy! I have a fix incoming! Soooon! x)

Hi there,

I think there are a few things to consider here.

  • Creating new character with steam cloud enabled
    IIRC, it used to be the case that newly created characters via editors are not recognized at all. Youā€™d have to quit steam, create your character using the editor, then restart steam again. There was some kind of file caching thing in play.

  • Copying map & quest progress
    In your character file directly, there is a directory by the name of ā€œlevels_world001.mapā€. There are files in there storing all the quest progress (and map exploration progress) in that directory. So if youā€™ve created a new character entirely from scratch, youā€™ll want copy that folder over as well.

    If youā€™re using the editor to save a separate copy of that character like: write AnotherCharName. The editor will also copy the folder over for you, to help you keep your quest progress, automatically.

Hope that helps!

Thanks for the answer, but as I understand after testing with saving, there are 2 options. (For those who played with the steam cloud enabled and in game save cloud on).

  1. as I wrote above, you must create a lvl 1 character with the nickname of the character you will replace. And then move it from the Documents\My Games\Grim Dawn\save folder \main to 219990\remote\save\main, it will replace the level 1 character with the one you created with the same nickname.
  2. option, you turn off Steam Cloud and game cloud in order to see the created character and old ones (but for you to see old characters(that were created with steam and game cloud save on), you must transfer your saves from 219990\remote\save\main to the Documents\My Games\Grim Dawn\save folder \main)
    UPD: I also didnā€™t quite understand what you meant when talking about Copying map & quest progress. If you do this with steam and game cloud save off, then you always get a character as above in screenshot #2 where the map is open without fog and the quests are completed. Otherwise, if you do point 1) what I wrote above, you will receive a random 50% at 50%, as I wrote above, the quests will not be completed, but the character will be exactly the same as if it were screenshot #2.

Iā€™ll try to explain the quest progress data a little betterā€¦

I created a test character the other day, named ā€œShockerā€. The character is saved at: ...\remote\save\main\_Shocker

The contents of that directory looks like this:
Screenshot 2023-12-04 103445

The player.gdc file stores all the information regarding your character, which gd-edit lets you examine and alter. The levels_world001.map directory stores all of your quest progress as well as map reveals for each of the difficulties your character has been on.

If you somehow create the player.gdc file, through copying the file or creating the file from scratch using some editor, but do not copy over the levels_world001.map directory, youā€™d lose all quest progress.

Again, this is a separate concern from dealing with cloud saves. As mentioned in the previous message, various testing showed, IIRC, there are issues for the game to recognize newly created save files that are not created by the game itself. To get the game to recognize these new files, I had to restart steam. I can speculate as to why this is, but that doesnā€™t mean we can make the problem go away. Weā€™ll simply have to work around the problem. Eventually, I stopped trying to remember to restart steam when I create new characters. Simply disabling cloud save and having the game deal with local files only made all these problems go away.

Got it, thanks for the detailed answer.

Hi all!

There is finally a new version of the editor that deals with the new save file format. There was MINIMAL testing on this! So uhā€¦ be careful with your files!

=)

Hello, this error appeared with the new version of the program, I am currently using the previous one which works perfectly, I donā€™t know if the error is me, I simply use make-char and it doesnā€™t work, however with the previous version it gives me zero errors, Possibly Iā€™m not the only one that happens, greetings.
(the only thing different I have compared to the rest is that I donā€™t save my characters in the cloud, I only use the local files on the PC)

How do you go back to the previous version? I have the same problem

1 Like

So sorry, guys on the poor testing on my part. I think Iā€™ve found the issue and have pushed a new version. x_x

2 Likes


I have a custom quest character (Grimarillion), and Iā€™d like to use the respec command to change my 2nd mastery, but this happens whenever I try to use the respec command.
Iā€™ve tried running in administrator and non-administrator, no difference.
Any help would be appreciated :slight_smile: