[Tool] GD save file editor

Hi there @Odie,

An interesting error that I hope you can help me fix.

When attempting to run gd-edit.exe, the window containing the command prompt opens, and then closes a few seconds later. I do not have a chance to enter anything at the prompt.

Here’s some info on my system that might be helpful:

Java version: 8 (Update 261)
Windows 10 Home
Grim Dawn version 1.1.7.2 (Steam version, running in x64 mode)

Here is what I have tried so far:

  1. Running gd-edit.exe as administrator - problem persisted.
  2. Running gd-edit.exe in various Windows compatibility modes - problem persisted.

Hoping you can help me. If you need any more info on my system then just pm me :slightly_smiling_face:

Hi there!

Can you run the editor directly from the command line and see if it outputs anything before exiting?

Hi @Odie - many thanks for your quick reply :slightly_smiling_face:

I ran gd-edit from the command line - turned out I needed the 64-bit version of Java. The editor is now running correctly :grinning:

One more quick question: can the editor change the values of character resistances?

Sorry! All your resistances comes from the gear and/or skills you have. There is no way to directly change those stats.

Ok no problem - thanks again for the quick reply. Having a lot of fun with the editor so far - great job! :smiley:

Thanks bud! Lemme know if you run into more problems. :slight_smile:

image

Keeps happening when I try to add an item. I have tried multiple different items, same error. Seems to not like the 2nd word in whatever arg I put in.

Maybe the new version of GD broke something? Maybe I am doing something wrong?

The command is close but not quite the right syntax you need. You don’t need to specify the item is a Blueprint, just it’s name will do. Either of the following will work (tested both). You need the quotes around the item you are trying to create.

set inv/1/items “Mistborn Talisman” OR
set inv/1/item “Mistborn Talisman”

You were on the right track. I was just missing quotes. The blueprint worked with the quotes. I am just dumb.

hmmm… can u post new link download pls??
and i dont know why it doesn’t running @@ it always shutdown the program after few second

The download link is in the very first post. It’s always up to date. If the program is shutting down on start, the most likely solution is to grab a 64 bit version of Java.

:slight_smile:

OMG !! After i remove old java to install new java ( same version ) then it’s working now :smiley:

hi i installed this tool and was able to change a characters lvl to 85 so it works however im having trouble using it to add items im trying to give my character a killrians skullbreaker with the prefix void touched and the suffix of conflagration how would i go about dooing this?

Howdy!

Try
set inv/1/item “void touched killrians skullbreaker of conflagration”

The editor ought to be able to give you most items just by naming them this way. =)

this gives me an exception null i have also noticed that when i do: level 85 and then load the game my character has not updated im not sure how to fix this

What does the exception look like? Can you cut the paste the text here?

Usually, you need to issue the write command after your edits to save the file to disk. But, since the item creation didn’t work quite right, it should have left your character untouched.

gd-edit 0.2.0-SNAPSHOT [build bc3494e]

save directories:
c:\program files (x86)\steam\userdata\322941627\219990\remote\save\main
c:\program files (x86)\steam\userdata\129262956\219990\remote\save\main
C:\Users\Geordi\Documents\My Games\Grim Dawn\save\main

game directory:
D:\SteamLibrary\steamapps\common\Grim Dawn

Need help? Check the docs!
https://odie.github.io/gd-edit-docs/faq/

Please choose a character to load:

  1. Akriloth Emberplague (local save)
  2. Alexandria Lionheart (local save)
  3. Arthas Bohemond (local save)
  4. Artixia Kruger (local save)
  5. Ashalial Coalskin (local save)
  6. Auradin Soulblaze (local save)
  7. Avaria CorpseWalker (local save)
  8. Azraelle Valdun (local save)
  9. Bysmia Shadowcaller (local save)
  10. Cataclysmia Eruptus (local save)
  11. Ceidira Plaguebringer (local save)
  12. Chillara Hoarfrost (local save)
  13. Colt Hawkeye (local save)
  14. Cuztal Latzuc (local save)
  15. Devoura Marrowsoul (local save)
  16. Duelista Rimefire (local save)
  17. Eris Laverna (local save)
  18. erza scarlet (local save)
  19. Fara Hammerton (local save)
  20. Ferala BloodSurge (local save)
  21. Flayme Blazetallon (local save)
  22. Geomancer (local save)
  23. Glacia Frostborn (local save)
  24. Heavil Flintlock (local save)
  25. Icarus Cinderblade (local save)
  26. Ithuriel The Fallen (local save)
  27. Izanami Mortis (local save)
  28. Luna Blighton (local save)
  29. Luna Howlingblizzard (local save)
  30. madallaine Shadowblood (local save)
  31. Madina Acidblood (local save)
  32. Mantichora Of Alune (local save)
  33. Marik TombKeeper (local save)
  34. Mavis GraveChill (local save)
  35. Menhira Thornwall (local save)
  36. Miasma Dreadwalker (local save)
  37. Moltaria Steelforged (local save)
  38. Morgaine Le Doux (local save)
  39. Myrios Cloudstriker (local save)
  40. Namadea Nightfire (local save)
  41. Neptunia IronWall (local save)
  42. Noxis Foulblade (local save)
  43. Obliteros Immorta (local save)
  44. Olera Grim (local save)
  45. Ortoria Spellweaver (local save)
  46. Perditia Witchblade (local save)
  47. Persephone Featherstone (local save)
  48. Petalia Rosethorn (local save)
  49. Phoenixia Holyfeather (local save)
  50. Plagia Blackthorn (local save)
  51. Pridea Frostmane (local save)
  52. Promethia Aetherflame (local save)
  53. Pyra Darkflare (local save)
  54. Pyrovia Flamefallen (local save)
  55. Raphtalia Slaughter (local save)
  56. Raporia Striker (local save)
  57. Regalia PlagueBearer (local save)
  58. Regenia Eternalblood (local save)
  59. sakura the destroyer (local save)
  60. Sancta Edelheart (local save)
  61. Sentinella Steelside (local save)
  62. Shadow Nightchill (local save)
  63. Shogunetta Wrathblood (local save)
  64. Solia Flamecore (local save)
  65. Soularia Harvester (local save)
  66. sylvia of the wild (local save)
  67. Tempestia ThunderBlade (local save)
  68. Theresa Elderbark (local save)
  69. Ulzia DarkFlare (local save)
  70. Umber Stoneblood (local save)
  71. Uria Searingplague (local save)
  72. Uriel Seraph (local save)
  73. Urzael (local save)
  74. Z1 Chest (local save)
  75. Z1 Accesories (local save)
  76. Z1 Feet (local save)
  77. Z1 Hands (local save)
  78. Z1 Head (local save)
  79. Z1 legs (local save)
  80. Z1 Melee (local save)
  81. Z1 Off Hands (local save)
  82. Z1 Ranged (local save)
  83. Z1 Set items (local save)
  84. Z1 Shoulders (local save)
  85. _erza scarlet (local save)
  86. _kagari the (local save)
  87. _sakura the destroyer (local save)
  88. Akriloth Emberplague (cloud save)
  89. Arthas Bohemond (cloud save)
  90. Artixia Kruger (cloud save)
  91. Avaria CorpseWalker (cloud save)
  92. Bysmia Shadowcaller (cloud save)
  93. Chillara Hoarfrost (cloud save)
  94. Colt Hawkeye (cloud save)
  95. Duelista Rimefire (cloud save)
  96. Eris Laverna (cloud save)
  97. erza scarlet (cloud save)
  98. Ferala BloodSurge (cloud save)
  99. Flayme Blazetallon (cloud save)
  100. Geomancer (cloud save)
  101. Heavil Flintlock (cloud save)
  102. Ithuriel The Fallen (cloud save)
  103. Luna Blighton (cloud save)
  104. madallaine Shadowblood (cloud save)
  105. Madina Acidblood (cloud save)
  106. Mantichora Of Alune (cloud save)
  107. Marik TombKeeper (cloud save)
  108. Mavis GraveChill (cloud save)
  109. Moltaria Steelforged (cloud save)
  110. Neptunia IronWall (cloud save)
  111. Olera Grim (cloud save)
  112. Ortoria Spellweaver (cloud save)
  113. Perditia Witchblade (cloud save)
  114. Petalia Rosethorn (cloud save)
  115. Plagia Blackthorn (cloud save)
  116. Pridea Frostmane (cloud save)
  117. Pyra Darkflare (cloud save)
  118. Pyrovia Flamefallen (cloud save)
  119. Raphtalia Slaughter (cloud save)
  120. Raporia Striker (cloud save)
  121. Regalia PlagueBearer (cloud save)
  122. Regenia Eternalblood (cloud save)
  123. sakura the destroyer (cloud save)
  124. Sancta Edelheart (cloud save)
  125. Sentinella Steelside (cloud save)
  126. Shadow Nightchill (cloud save)
  127. Soularia Harvester (cloud save)
  128. sylvia of the wild (cloud save)
  129. Tempestia ThunderBlade (cloud save)
  130. Theresa Elderbark (cloud save)
  131. Ulzia DarkFlare (cloud save)
  132. Uria Searingplague (cloud save)
  133. Uriel Seraph (cloud save)
  134. Urzael (cloud save)
  135. _erza scarlet (cloud save)
  136. _kagari the (cloud save)
  137. _sakura the destroyer (cloud save)
  138. Alucard (cloud save)
  139. Jack22 (cloud save)
  140. Ormenos Rotwood (cloud save)

43

Loading from:
C:\Users\Geordi\Documents\My Games\Grim Dawn\save\main_Obliteros Immorta\player.gdc
Loading stash file:
C:\Users\Geordi\Documents\My Games\Grim Dawn\save\transfer.gst

Character: Obliteros Immorta
r) reload
w) write

set inv/1/item “void touched killrians skullbreaker of conflagration”

Caught exception: nil
java.lang.IndexOutOfBoundsException: null
at clojure.lang.PersistentVector.arrayFor (PersistentVector.java:158)
clojure.lang.PersistentVector.nth (PersistentVector.java:162)
clojure.lang.RT.nth (RT.java:896)
gd_edit.structure_walk$nav_into.invokeStatic (structure_walk.clj:29)
gd_edit.structure_walk$nav_into.invoke (structure_walk.clj:23)
gd_edit.structure_walk$walk.invokeStatic (structure_walk.clj:112)
gd_edit.structure_walk$walk.invoke (structure_walk.clj:66)
gd_edit.commands.set$set_handler.invokeStatic (set.clj:168)
gd_edit.commands.set$set_handler.invoke (set.clj:152)
gd_edit.core$fn__21009.invokeStatic (core.clj:93)
gd_edit.core/fn (core.clj:93)
gd_edit.core$repl_eval.invokeStatic (core.clj:231)
gd_edit.core$repl_eval.invoke (core.clj:189)
gd_edit.core$repl_iter.invokeStatic (core.clj:251)
gd_edit.core$repl_iter.invoke (core.clj:245)
gd_edit.core$repl$fn__21110.invoke (core.clj:283)
gd_edit.core$repl.invokeStatic (core.clj:280)
gd_edit.core$repl.invoke (core.clj:276)
gd_edit.core$start_editor.invokeStatic (core.clj:603)
gd_edit.core$start_editor.invoke (core.clj:593)
gd_edit.core$_main.invokeStatic (core.clj:643)
gd_edit.core$_main.doInvoke (core.clj:616)
clojure.lang.RestFn.invoke (RestFn.java:397)
clojure.lang.AFn.applyToHelper (AFn.java:152)
clojure.lang.RestFn.applyTo (RestFn.java:132)
gd_edit.core.main (:-1)

Character: Obliteros Immorta
r) reload
w) write

this is the whole thing i hope this helps

Looks like it had trouble accessing your inventory. The character probably have not received its first inventory bag yet.

Try this instead.

set inv/0/items “void touched killrians skullbreaker of conflagration”

If the format of this command doesn’t quite make sense, please see https://odie.github.io/gd-edit-docs/faq/#how-do-i-add-an-item-to-my-inventorysack for an explanation.

it now says this:

43

Loading from:
C:\Users\Geordi\Documents\My Games\Grim Dawn\save\main_Obliteros Immorta\player.gdc
Loading stash file:
C:\Users\Geordi\Documents\My Games\Grim Dawn\save\transfer.gst

Character: Obliteros Immorta
r) reload
w) write

set inv/0/items “void touched killrians skullbreaker of conflagration”

Item placed in inventory-sacks/0/inventory-items/2

Void-Touched Kilrian’s Skullbreaker of Conflagration

        augment-name : ""
        augment-seed : 0
            basename : records/items/gearweapons/blunt1h/b006f_blunt.dbr
       modifier-name : ""
         prefix-name : records/items/lootaffixes/prefix/ao013b_chaos_09.dbr
         relic-bonus : ""

relic-completion-level : 0
relic-name : “”
relic-seed : 0
seed : 1042650346
stack-count : 1
suffix-name : records/items/lootaffixes/suffix/b_wpn001_melee1h_g.dbr
transmute-name : “”
unknown : 0
var1 : 0

records/items/lootaffixes/suffix/b_wpn001_melee1h_g.dbr
Class: LootRandomizer
FileDescription: Conflagration
augmentSkillLevel1: 2
augmentSkillLevel2: 2
augmentSkillName1: records/skills/playerclass02/flamestrike1.dbr
augmentSkillName2: records/skills/playerclass09/righteousfervor1.dbr
characterBaseAttackSpeedTag: CharacterAttackSpeedAverage
itemClassification: Rare
levelRequirement: 92
lootRandomizerCost: 30604
lootRandomizerJitter: 12.0
lootRandomizerName: of Conflagration
marketAdjustmentPercent: 200.0
offensiveCritDamageModifier: 5.0
offensiveFireMax: 20.0
offensiveFireMin: 12.0
offensiveFireModifier: 76.0
offensiveSlowFireChance: 10.0
offensiveSlowFireDurationMin: 3.0
offensiveSlowFireMin: 140.0
offensiveSlowFireModifier: 76.0
templateName: database/templates/lootrandomizer.tpl

records/items/lootaffixes/prefix/ao013b_chaos_09.dbr
Class: LootRandomizer
characterBaseAttackSpeedTag: CharacterAttackSpeedAverage
conversionInType: Physical
conversionOutType: Chaos
conversionPercentage: 15.0
itemClassification: Magical
levelRequirement: 90
lootRandomizerCost: 5500
lootRandomizerJitter: 8.0
lootRandomizerName: Void-Touched
marketAdjustmentPercent: 110.0
offensiveChaosMax: 38.0
offensiveChaosMin: 10.0
templateName: database/templates/lootrandomizer.tpl

records/items/gearweapons/blunt1h/b006f_blunt.dbr
Class: WeaponMelee_Mace
FileDescription: Kilrian’s Skullcrusher
actorHeight: 0.5
actorRadius: 0.5
attributeScalePercent: 40.0
augmentSkillLevel1: 3
augmentSkillLevel2: 3
augmentSkillName1: records/skills/playerclass02/flamestrike1.dbr
augmentSkillName2: records/skills/playerclass07/concussiverune1.dbr
bitmap: items/gearweapons/hammers1h/bitmaps/b006_blunt.tex
castsShadows: 1
characterAttackSpeedModifier: 5.0
characterBaseAttackSpeed: -0.13
characterBaseAttackSpeedTag: Speed: Slow
dropSound: records/sounds/items/spak_itemdropweaponmetal.dbr
dropSound3D: records/sounds/items/spak_itemdropweaponmetal.dbr
dropSoundWater: records/sounds/items/spak_itemdropwaterplunklg.dbr
hitSound: records/sounds/items/weaponattacks/spak_blunt_impact.dbr
itemClassification: Rare
itemLevel: 94
itemNameTag: Kilrian’s Skullbreaker
levelRequirement: 94
maxTransparency: 0.5
mesh: items/gearweapons/hammers1h/hammer1h_022b_01.msh
modifiedSkillName1: records/skills/playerclass02/flamestrike1.dbr
modifierSkillName1: records/skills/itemskillsgdx1/skillmodifiers/monsterinfrequents/mace1h_b006_firestrike.dbr
offensiveFireMin: 24.0
offensiveFireModifier: 60.0
offensivePhysicalMax: 170.0
offensivePhysicalMin: 114.0
offensivePhysicalModifier: 60.0
offensiveSlowFireModifier: 60.0
offensiveSlowPhysicalModifier: 60.0
outlineThickness: 0.035
physicsFriction: 5.0
physicsMass: 1.0
scale: 1.0
swipeSound: records/sounds/items/weaponattacks/spak_blunt_swing.dbr
templateName: database/templates/weapon_mace.tpl
weaponTrail: records/fx/fxtrails/swordflamepurple_fxtrail.dbr

Void-Touched Kilrian’s Skullbreaker of Conflagration
Rare One-Handed Mace
114-170 Physical Damage

+5% Attack Speed
+60% Internal Trauma Damage
+60% Fire Damage
24 Fire Damage
+60% Burn Damage
+60% Physical Damage
+3 to Fire Strike
+3 to Rune of Kalastor
25% Weapon Damage to Fire Strike
10-38 Chaos Damage
15% Physical Damage converted to Chaos Damage
+76% Fire Damage
12-20 Fire Damage
+76% Burn Damage
+5% Crit Damage
420 Burn Damage over 3 seconds
+2 to Fire Strike
+2 to Righteous Fervor

Required Player Level: 94
Required Physique: 572
Item Level: 94

Character: Obliteros Immorta
r) reload
w) write

Character: Obliteros Immorta
r) reload
w) write

Character: Obliteros Immorta
r) reload
w) write

which to me looks right however upon loading the game it does not show up in my inventory do i need to save changes before exiting the program or something?

Yep, that’s what it is supposed to look like when it’s working correctly.

After editing your character, you have to write the file to disk before the game can have access to it. You can either just do “w” (as per the prompt) or use the “write” command, which is always available.

Also, if you have cloud save enabled, you’ll need to first quit the game so the file changes become available to the game. Alternatively, you can disable cloud save, for newly saved character files to become immediately available for loading.