[Tool] GD Damage

I present my project GD Damage. It is designed for calculating a character’s damage in real time (and its many other features come as a bonus to that).

need .NET 6
GD-damage.zip (1.0 MB)

I wrote 0 bytes of code in the program. Together with AI, for over a month we analyzed thousands of numbers from the game, patterns, and ideas for the desired result. And we achieved it.

The program was initially conceived as a calculator for character damage, taking into account all equipped items, the skill tree, the devotion tree, active skills and skills that trigger with a chance, etc.

However, in the process it also turned into a save editor with the ability to change ANYTHING AT ALL (DO NOT USE IT FOR THAT). Don’t say I didn’t warn you. The game is interesting when you achieve the desired progress yourself. But most often there’s a build idea, yet no time to put it together and try it. That’s when the editor can help you.

In it you can:

  1. Open a save and view item stats, change them to the desired value (up to the maximum roll, if possible)
  2. Add any item from the game to the inventory
  3. Change character stats
  4. View the character’s current skills/devotion bonuses
  5. View damage from auto-attacks or skills as in the game, or with the inclusion of damage queue simulation conditions (damage taking into account skill triggers) - THE MAIN PURPOSE OF THE EDITOR
  6. You can open closed portals
  7. Change an item’s ascension bonus
  8. You can reset/choose the character’s class

I’m not sure the game’s developers would look favorably on this creation. (Thanks to them for a wonderful game!) However, I will try, and maybe someone will find this editor/calculator useful.

I don’t promise that I will keep it up to date. At the moment, everything works in game version 1.3.0.8. However, I only tested it on the game version with all DLCs, and it’s not certain that it will launch without them (and if it does launch, don’t add DLC items you don’t have, otherwise it’s not certain that the save will work) (in general, there will be a backup copy nearby just in case). And yes, on Wikipedia and on the internet in general, the text information about the exact game mechanics is mostly outdated. So I had to double-check and solve riddles about why something doesn’t match. Creating this program was purely of creative interest to me - and I got it! Most likely I will continue refining the damage calculator, at least because I physically didn’t have time to verify the work of a fairly large number of skills, and they may deviate from reality in terms of calculated damage.

upd. The editor now has the possebility to edit an item’s affixes and suffixes.

Hi! Thanks for your work on GD Damage. Do you have any plans to release its source code?

It could be a valuable resource for other Grim Dawn projects and would also allow the community to contribute improvements and continue developing the tool if you ever decide to step away from it.

Would you consider making it open source? Thanks for your time!

Hi! Personally, I don’t value the source code that much, and I could publish it, but a few questions come up for me:

  1. How happy/unhappy would the game’s developers be about it — maybe they’d prefer for something to be less public.
  2. How likely is it that some things will change in the near future and become outdated.
  3. Honestly, it’s strange to see the very first comment already asking to show the source code. I haven’t even been given any criticism yet about, for example, whether the calculator actually calculates correctly and how much it corresponds to other people’s calculations. I still haven’t verified some things, because for those I’d need to put together separate different builds and then cross-check all of it — that requires more time than I had.

I’ll wait for now; we’ll see later

“I wrote 0 bytes of code in the program” and “I don’t value the source code that much”
To finaly say “I’ll wait for now; we’ll see later”
No wonder people are distancing themselves from vibe coding and fake developer.

If you think all of this is easy, then go ahead and do it all yourselves — what’s the problem? I’d gladly take a look at what you come up with.

What’s with all the hostility? Do you think I should rush to publish everything at the very first comment? And who are you to slap the label of “fake developer” on me? I’m a programmer and I write code perfectly well without AI, but I don’t think you’d be interested in that.

People are skeptic about AI-made software. The fact that you’ve mentioned “I wrote 0 lines of code” doesn’t help your cause. Honestly I was thrown off by this statement alone, if you hadn’t mentioned it I’d be more interested in using it.

Source code can help to verify this.

I know people are skeptical about this. However, look at it from this angle:

AI can make a Solitaire clone as in Windows in 10 minutes. How many problems do you think had to be solved over a month? Every day. More than a month.

I’m sure most of the AI opponents would have wanted me to lose 3x, 5x, or maybe 10x my time without using it, but end up with the exact same result.

Would I be more respected for doing it myself? I don’t care. If AI makes a better Windows analogue, I’ll use it without asking unnecessary questions. If users have made a principled decision not to use something, let them not use it. They’ve been given a unique program with no analogues (that’s exactly why I had to make it). My idea + my time spent are a gift to them. I think there will be people who find this interesting.

And as for the source code — I don’t think everyone will go look at how everything works. Because everyone is too lazy to even just try it and compare the values with other sources and write what they’re unhappy with so I can check it.

Thank god some people still have some common sense, thanks chris08.

“And as for the source code — I don’t think everyone will go look at how everything works”
And why not ?
Again, we are two asking for the source, can you post it ? please

I’ve already said it: first, I want to hear constructive criticism based on what you see without code.
From my side, I can give examples of how single attacks match the in-game values.

1
2

3
4

5
6

7
8

Alright, I won’t waste any more time on this.
Good luck with the development, cheers

I think there is a good reason people are asking for the source code, and I don’t mean that as criticism of you or of the work you’ve done.

For a tool like this, testing the final numbers is useful, but it can only tell us so much. Grim Dawn’s damage calculation has a lot of interacting mechanics, modifiers, conversion rules, skill-specific behavior, order of operations, etc. If we only compare the final output with what we see in game, we can detect that something is wrong, but it can be very difficult to understand why it is wrong.

Being able to look at the source would let people check how those fundamental mechanics are being interpreted and implemented: which formulas are being used, in what order modifiers are applied, how conversions are handled, which assumptions were necessary for mechanics that aren’t properly documented, and so on.

That could actually help with the exact problem you mentioned yourself: there are still skills and mechanics that you haven’t had enough time to verify. Other people who know particular parts of Grim Dawn very well could inspect the relevant code, compare it with their own testing, point out mistakes, or contribute fixes. Instead of you having to build and test every possible character configuration yourself, the community could help with that validation.

There is also the trust aspect. This isn’t just a simple calculator; it reads character data and can modify saves. Some people are naturally cautious about running closed-source tools that interact with their game files, and mentioning that the program was largely produced with AI will probably make some users even more cautious. That’s not necessarily fair criticism of the program, but it is a reality. Making the source available would make many of those people much more comfortable trying it.

Open source obviously doesn’t automatically mean that every calculation is correct or that the software is safe, but it makes both of those things much easier for other people to independently verify.

I also understand your concern about whether Crate would be comfortable with everything being public, especially because the program includes save-editing functionality. If that’s the main concern, maybe there is a middle ground: for example, publishing only the damage-calculation/parser part of the project and keeping the save-editing functionality separate.

Personally, that’s why I’d really like to see the source. Not because I expect you to “prove” anything or because I think you owe it to anyone, but because I think it could turn GD Damage into a much more useful community resource and make it easier for people to help you verify and improve something that is genuinely difficult to reverse-engineer.

1 Like

Hello,
Do you think you could add an ability to change devotions and skills?
For example, i want to change my whole devotion setup, and i would like to see how things would change.
Same goes for skill tree.

Okay, I’ll try to split the code so I can post just the calculation part; I’ll post it a bit later.

I had planned to do that, but maybe later.

Whats the use of the tool, if not to swap gear/skills/devotions and see changes in offense and defense?

View damage from auto-attacks or skills as in the game, or with the inclusion of damage queue simulation conditions (damage taking into account skill triggers) - THE MAIN PURPOSE OF THE EDITOR
Without “editor” this tool is just an out-of-game test dummy, no?