[Tool] GD save file editor

So, I tried taking a look at this again. It looks like the way the editor currently refunds devotion points should be correct. It looks like the game does actually give you exactly one active or passive skill to account for each devotion point spent. (At least it looks that way from the db records.)

There are at least 2 reasons why your devotion points may not match up with shrines unlocked. You can earn some devotion points in the crucible. There are also more shrines in the game than the max devotion points cap. The current way of devotion point refunding takes care of both of these situations.

I don’t know exactly why the points aren’t matching up as you expected. There could still be a bug there. It looks like both of your characters got 4 more devotion points than the shrines they unlocked. If they haven’t been in the crucible before and you haven’t gotten addition devotion points from anywhere else, then please send me those characters so I can take a look.

Thanks!

So Everything was Working fine. Then suddenly Every Character i was editing started getting erased. i have the files i can still load them in the editor but Grim Dawn - Steam isnt loading them as playable, Now when i edit any of them, i cant play them in the game. :cry:

Wow. That sounds really unpleasant.

Fortunately, the editor makes a backup of your character every time you save/write. They are kept in the same directory as your character files. The editor prints out the exact path to the file every time it saves the character. Hopefully, you’ll be able to find a copy of your character that works.

I have no idea why the editor is breaking your character files. Are you quitting the game before running the editor? Not doing so is likely to break something, though I don’t remember what exact issues it causes.

If things continue to break, please do send me a copy of the broken character files. I’m not sure if I’ll be able to figure out why the file is broken, since you mentioned the editor continues to be able to load the broken files. =/

Sorry for not checking up on you, the respec is definitely bugged. The devotion points are always messed up. Here are some characters in the attached zip

Character:  Zuko
r) reload
w) write

> show

                          alt-weapon-set : false
                  alt-weapon-set-enabled : false
                        always-show-loot : 3
                        attribute-points : 5
                              boss-kills : collection of 3 items
                         camera-distance : 48.0
                          champion-kills : 61
                         character-level : 29
                          character-name : Zuko
                         crits-inflicted : 1302
                          crits-received : 0
                                 cunning : 194.0
                         current-respawn : collection of 3 items
                             death-count : 2
                         devotion-points : 6
               devotion-points-reclaimed : 4
               devotion-shrines-unlocked : 12
                                  energy : 250.0
                     energy-potions-used : 3
                               equipment : collection of 12 items
                     equipment-selection : false
                    expansion-character? : 1
                              experience : 391090
                   experience-from-kills : 230971
                          faction-values : collection of 27 items
                            focused-sack : 2
                    greatest-damage-done : 1322.4215
                greatest-damage-received : 590.4154
           greatest-difficulty-completed : 0
                 greatest-monster-killed : collection of 3 items
  greatest-survival-difficulty-completed : 0
                           hardcore-mode : false
                        has-been-in-game : true
                                has-data : true
                                  health : 350.0
                     health-potions-used : 51
                              hero-kills : 45
                            hit-received : 2427
                          hits-inflicted : 16882
                                hotslots : collection of 46 items
                           in-main-quest : true
                         inventory-sacks : collection of 3 items
                                    iron : 395368
                             item-skills : collection of 0 items
                           items-crafted : 3
                              kill-count : 5709
                         last-difficulty : 16
                     last-monster-hit-DA : 793.33997
                     last-monster-hit-OA : 841.4
                            level-in-bio : 29
                         lore-item-names : collection of 24 items
                    lore-notes-collected : 24
                                    male : true
                                 markers : collection of 3 items
                       masteries-allowed : 2
                               max-level : 29
                              my-faction : 0
                one-shot-chests-unlocked : 3
                                physique : 90.0
                       player-class-name : tagSkillClassName0207
                          player-texture : creatures/pc/hero02.tex
                        playtime-seconds : 22906
                                   quest : collection of 1 items
                  randomized-items-found : 0
                          relics-crafted : 0
                              sack-count : 3
                           selected-sack : 2
                         show-skill-help : false
                                 shrines : collection of 6 items
                            skill-points : 9
                  skill-points-reclaimed : 47
                              skill-sets : collection of 5 items
                     skill-setting-valid : false
                  skill-window-selection : 0
                                  skills : collection of 23 items
                            spawn-points : collection of 3 items
                                  spirit : 50.0
                                 stashes : collection of 5 items
                  survival-defense-built : 0
                 survival-greatest-score : 0
                  survival-greatest-wave : 0
             survival-powerups-activated : 0
                       teleporter-points : collection of 3 items
                    tier2-relics-crafted : 0
                    tier3-relics-crafted : 0
                   tokens-per-difficulty : collection of 3 items
          total-devotion-points-unlocked : 12
                                tributes : 0
                      tutorials-unlocked : collection of 35 items
                        ui-compass-state : 3
                      unique-items-found : 0
                       use-alt-weaponset : false
                             weapon-sets : collection of 2 items

                                      93 fields

Character:  Zuko
r) reload
w) write

> respec

Updating the following fields:
  attribute-points : 5 => 28
           cunning : 194.0 => 50.0
   devotion-points : 6 => 16
          physique : 90.0 => 50.0
      skill-points : 9 => 85
            skills : collection with 18 items changed

                 5 fields changed

Character:  Zuko
r) reload
w) write

>

Howdy!

So, I took looked a at _Zuko/player.gdc and found…

No bug… probably…

The character currently has 6 unspent devotion points. A manual inspection of the skills array indicates that he took the following devotions:

  • 3 pts in Assassin’s Blade
  • 2 pts in Crossroads
  • 5 pts in Fiend

So that’s a total of 10 points that are already spent. Given this data, the correct number of devotion points the character should have appears to be:
6 unspent points + 10 spent points => 16 pts total

So, the respec command doesn’t appear to be doing anything wrong here. But…

Backed up characters reveals…
Something goes wrong between the bak2 and bak3 versions of the character.

player.gdc.bak2:


total unlocked: 4
points spent/activated: 4
points remaining: 0
points reclaimed: 0

This seems fine.

player.gdc.bak3:


total unlocked: 5
points spent/activated: 4
points remaining: 5
points reclaimed: 4

Pieces of data are starting to not agree. Unlocked 5 points, spent 4, but still have 5 points remaining?

I don’t know what exactly happened there. It looks like 4 additional devotion points just came out of nowhere. In any case, the respec command will not remove those additional points. Again, the command was intentionally designed to only refund points you’ve used. This makes it so that if the game rewards you with devotion points for any reason, the respec command will continue to work correctly. This also means patches and future content (or just game mechanics I’m not aware of) will not break (or be broken by) the respec command.

If those 4 additional devotion points bother you a lot, you can use the set command to get rid of them.


show devotion-points
set devotion-points <above output -4>

Since your Zuko character currently has 6 points, you can just do:


set devotion-points 2

Hope that helps!

Something is definitely wrong here:

Please choose a character to load:
1) _Amon (cloud save)
2) _Harbinger (cloud save)
3) _Juvilie (cloud save)
4) _Nethrezim (cloud save)
5) _Zuko (cloud save)

> 5

Loading from:
    d:\games\steam\userdata\1159796\219990\remote\save\main\_Zuko\player.gdc

Character:  Zuko
r) reload
w) write

> show

                          alt-weapon-set : false
                  alt-weapon-set-enabled : false
                        always-show-loot : 3
                        attribute-points : 0
                              boss-kills : collection of 3 items
                         camera-distance : 48.0
                          champion-kills : 67
                         character-level : 29
                          character-name : Zuko
                         crits-inflicted : 1312
                          crits-received : 0
                                 cunning : 234.0
                         current-respawn : collection of 3 items
                             death-count : 2
                         devotion-points : 0
               devotion-points-reclaimed : 10
               devotion-shrines-unlocked : 12
                                  energy : 250.0
                     energy-potions-used : 3
                               equipment : collection of 12 items
                     equipment-selection : false
                    expansion-character? : 1
                              experience : 397096
                   experience-from-kills : 236688
                          faction-values : collection of 27 items
                            focused-sack : 0
                    greatest-damage-done : 3279.0735
                greatest-damage-received : 590.4154
           greatest-difficulty-completed : 0
                 greatest-monster-killed : collection of 3 items
  greatest-survival-difficulty-completed : 0
                           hardcore-mode : false
                        has-been-in-game : true
                                has-data : true
                                  health : 350.0
                     health-potions-used : 53
                              hero-kills : 51
                            hit-received : 2451
                          hits-inflicted : 17029
                                hotslots : collection of 46 items
                           in-main-quest : true
                         inventory-sacks : collection of 3 items
                                    iron : 394081
                             item-skills : collection of 0 items
                           items-crafted : 3
                              kill-count : 5759
                         last-difficulty : 16
                     last-monster-hit-DA : 583.37
                     last-monster-hit-OA : 634.4
                            level-in-bio : 29
                         lore-item-names : collection of 24 items
                    lore-notes-collected : 24
                                    male : true
                                 markers : collection of 3 items
                       masteries-allowed : 2
                               max-level : 29
                              my-faction : 0
                one-shot-chests-unlocked : 3
                                physique : 90.0
                       player-class-name : tagSkillClassName0607
                          player-texture : creatures/pc/hero02.tex
                        playtime-seconds : 23871
                                   quest : collection of 1 items
                  randomized-items-found : 0
                          relics-crafted : 0
                              sack-count : 3
                           selected-sack : 2
                         show-skill-help : false
                                 shrines : collection of 6 items
                            skill-points : 0
                  skill-points-reclaimed : 121
                              skill-sets : collection of 5 items
                     skill-setting-valid : false
                  skill-window-selection : 0
                                  skills : collection of 35 items
                            spawn-points : collection of 3 items
                                  spirit : 50.0
                                 stashes : collection of 5 items
                  survival-defense-built : 0
                 survival-greatest-score : 0
                  survival-greatest-wave : 0
             survival-powerups-activated : 0
                       teleporter-points : collection of 3 items
                    tier2-relics-crafted : 0
                    tier3-relics-crafted : 0
                   tokens-per-difficulty : collection of 3 items
          total-devotion-points-unlocked : 12
                                tributes : 0
                      tutorials-unlocked : collection of 36 items
                        ui-compass-state : 3
                      unique-items-found : 0
                       use-alt-weaponset : false
                             weapon-sets : collection of 2 items

                                      93 fields

Character:  Zuko
r) reload
w) write

> respec

Updating the following fields:
  attribute-points : 0 => 28
           cunning : 234.0 => 50.0
   devotion-points : 0 => 22
          physique : 90.0 => 50.0
      skill-points : 0 => 85
            skills : collection with 30 items changed

                 5 fields changed

Character:  Zuko
r) reload
w) write

>

Alrighty. Please send me the character so I can take a look.

Here you are.

So… with this new version of the character, his ā€œskillsā€ field lists:
1 pt in Sailor’s Guide
3 pts in Assassin’s Blade
5 pts in Falcon
5 pts in Crossroad
5 pts in Fiend
3 pts in Hawk

These points sums up to 22 pts. The respec command gives you back 22 points. That sounds right.

I don’t know why this number isn’t matching up with the number of devotion points you’ve unlocked. I also don’t know why your character’s devotions points are increasing. Are you sure you’re not accidentally giving yourself more devotion points or taking more devotions with some save file editing tool?


This editor currently doesn’t have a simple way for you to specifically see all the devotions/constellations you’ve taken. But, you can still see all the information by digging around in the ā€œskillsā€ field.


show skills

This shows you all the skills your character has by default, have taken as your class skills, or have taken as your devotions. You can verify if the editor is refunding the right number of devotion points just by counting the number of items in the ā€œskillsā€ field that have something that starts with ā€œrecords/skills/devotionā€ in the skill-name field.

For example, with Zuko, the output looks something like this:


> show skills

<... output omitted ...>

32: Hawk

  autocast-controller-name : ""
       autocast-skill-name : ""
       devotion-experience : 0
            devotion-level : 1
                   enabled : true
                     level : 1
              skill-active : false
                skill-name : records/skills/devotion/tier1_27a.dbr
          skill-transition : false
                  sublevel : 0

33: Hawk

  autocast-controller-name : ""
       autocast-skill-name : ""
       devotion-experience : 0
            devotion-level : 1
                   enabled : true
                     level : 1
              skill-active : false
                skill-name : records/skills/devotion/tier1_27b.dbr
          skill-transition : false
                  sublevel : 0

34: Hawk

  autocast-controller-name : ""
       autocast-skill-name : ""
       devotion-experience : 0
            devotion-level : 1
                   enabled : true
                     level : 1
              skill-active : false
                skill-name : records/skills/devotion/tier1_27c.dbr
          skill-transition : false
                  sublevel : 0


The last 3 entries all list their skill name as ā€œHawkā€, which is actually the name of a constellation. You can also see their ā€œskill-nameā€ field looks like ā€œrecords/skills/devotionā€. So looks like from this information, we see that Zuko has taken 3 points in Hawk.

It’s a bit of work to look through the list and count the devotions. But, it’s possible to verify if the respec command is working correctly this way.

How does it see that I have 3 points in Assassins Blade when I clearly do not?
Where does the 5 points from crossroads come from? I have 3 in it.

There is something going on here as a user would expect the active devotion points to be unlearned and refund those points.

Also you can clearly reproduce the issue. Create a new char, get a few dev points to unlock a skill, then issue the respec command.

The skills clearly shows points which I do not have.

Okay!

I think I found the problem. It turns out when a devotion is ā€œundoneā€, it doesn’t get removed from the ā€œskillsā€ list. It is just marked not ā€œenabledā€.

Anyway, will have a fix soon!
Thanks for helping to track down the problem!

Cheers, thank you for the awesome tool btw. Without it I just would be lost :smiley: I dont have that much time to create 15 chars for each spec I want to do so I sometimes just unlearn the specializations to reroll chars.
Also yeah I noticed when I unlerned old skills their lvl of exp progress remained. Good thing you figured it out.

Howdy!

As it turns out, the respec command had been counting the number of devotion points to refund incorrectly. This new version corrects that. =)

Also, while digging around, it looks like it is possible to disable any devotion skills instead of removing them outright. That means keeping your accumulated experience and level for your celestial powers is possible. Is this something people might be interested in?

It could be beneficial yes. Currently the game works this way, so if you unlearn your active devotion skill, you retain the experience. So I think the editor should also work the same.

EDI: Additionally a parameter could be passed like ā€œrespec hardā€ to indicate to completely remove every skill but as the default behaviour I would expect the respec command to work as if you had done it in game i.e. keep all experience for the devotion skills and just make them disabled.

It doesn’t even start.
When i click the editor, the window opens, the cursor blinks for few secondes, then the window closes before i can read what seems to be an error report.

Java 8 installed, PC restarted after install.

I am having the same problem too, and I had just updated it :frowning:

EDIT: In app update didnt work. Manually downloaded the exe but then doesnt start as with others.

Oops! Apologies on breaking the tool. It should start without issue now! x)

This new version also changes the following:

  • ā€œrespecā€ now disables devotion skills instead of removing them by default
  • ā€œrespec hardā€ has been added which will remove devotion skills as before

Let me know if things are still broken. x_x

i wanted to set my char level to 65 and worked pretty well but now i don"t earn any xp anyone can help me to solve this ?

thanks for this amazing tool

I assume you simply changed your level without adjusting your XP accordingly. As a result, you now keep gaining XP from whichever point you were at, which is lower than the minimum XP you would have needed for level 65. Because of this, your XP bar does not move until your earned XP have caught up with your manipulated level. You are still earning XP however.

The solution would be to increase your XP so they fall in the range from level 65 to 66.