[Tool] Grim Dawn Combat Analyzer (DPS meter with per source damage attribution; death recap)

Grim Dawn Combat Analyzer

An external DPS/HPS meter overlay and death recap report tool for Grim Dawn 1.3 (64-bit). Opens an HTML page on death listing the damage you took and your defense at the time of each hit in your last seconds.

Screenshots

Summary

A Chaos WPS - Doom Bolt Deceiver with the Harbinger set.


A Vitality Skeleton Cabalist.

Death recap.

Debuff section.

Stats readout section.
5
Nemesis/Dread meter.
6
Sunder/Nullification/Reflect warning.

Updates

  • v1.8.4: Download
    Now only hostile effects will appear in the Debuff section. Pet and pseudo pet auras, Coven wards etc. should no longer appear.
Summary
  • v1.8.3: Download
    Minor fix of DoT damage attribution (again)
  • v1.8.2: Download
    Fixed a long standing bug that would incorrectly attribute fused DoT damage randomly to one of the skills. The bug affected DoT damage distribution wrt. skills within a single damage type, but not total skill DoT damage of each damage type. Fused DoT damage is now correctly attributed proportionally.
    Added roguelike dungeon mutators in the recap web page.
  • v1.7.0: Download
    Added a display section for nearby enemies.
    Now warns if nearby enemies have dangerous combat mechanics (Sunder, Nullification, Reflect). You can use the toggle in the context menu to hide entries of enemies that don’t have dangerous mechanics.
  • v1.6.2: Download
    Fixed incorrect faction tag name.
  • v1.6.1: Download (Aug-19-2026)
    No new features compared to v1.6.0.
    Reverted to old DLL injection behavior and asked Microsoft to address the false positives. If v1.6.0 wasn’t blocked by your anti-virus, you don’t need to download this again.
  • v1.6.0: Download (Aug-18-2026)
    Changed how the program does DLL injection - please report if your anti-virus blocks it.
    Added a new section that shows Nemesis meter and The Dread meter.
    Added a setting to auto reset session after a period out of combat.
    Background color can now be changed in the context menu via a color picker.
  • v1.5.0: Download
    Stats readout now shows secondary resists.
    Added main resist warning. Can be disabled in settings.
    Section toggles moved to a submenu.
    Intensity of sunder is now correctly displayed.
    Skill name resolution updated to reflect GD 1.3.0.7 changes.
  • v1.4.2: Download
    Minor skill name resolution fixes.
    Debuffs are now shown as draining bars in the overlay.
  • v1.4.0: Download
    GdHook.dll should not get flagged by Windows Defender anymore.
    Overlay now tracks enemy debuffs in the debuff section.
    Added debuff timeline in the recaps.
    Each section can now be individually disabled.
    Pets and Taken sections can now be grouped by name instead of (name, skill).
  • v1.2.0: Download
    Fixed resist caps.
    The overlay now tracks pet crits, DoT crits and crits taken.
    Last fight recap (F)/Last death recap (D) now extend to previous sessions.
  • v1.1.8: Download
    Fixed a rare crash.
  • v1.1.6: Download
    DoT damage no longer being misattributed.
    Fight recap - automatically generate a fight recap every fight. Can be toggled in the context menu.
  • v1.1.3: Download
    Pet DoT damage now correctly split when “Show DoT separately” is checked.
  • v1.1.2: Download
    Pet damage is now grouped per pet type+skill.
  • v1.1.1: Download
    Fixed resist display.
  • v1.1: Download
    Release.

Features

  • Live DPS: rolling window, fight average, session peak, fight timer
  • Live OA/DA, armor, current/max HP, main resist and secondary resist readouts
  • Per-skill breakdown: DPS, share %, total, crit %, stacked damage-type bars
  • Pet DPS as its own section
  • Damage taken per attacker+skill (“Voidlurker (x2) - Chaos Blast”)
  • Healing & shielding per source
  • Debuffs (including CC) per source
  • Names of nearby enemies within a certain radius
  • Dangerous combat mechanics warning: warns if nearby enemies have Sunder/Nullification/Reflect
  • Nemesis meter: kills until next Nemesis/Dread spawn.
  • Each section can be individually disabled
  • Death recap: damage-before-death list, threshold slider, killing blows highlighted, per-row HP / OA / DA / resists / armor stats, timeline of your last seconds
  • Auto-injects when the game starts, re-hooks itself if the pipe goes silent
  • English and Chinese UI

Supported game versions

Grim Dawn 1.3 (64-bit)

Requirements

  • Windows 10/11 x64
  • .NET 9 Desktop Runtime (x64)

Limitation

Only works in Windowed and Windowed (Borderless) mode.

A note on AI assistance

This program was written with the help of an AI coding assistant. If AI-assisted software isn’t your thing, I respect that. We’re all just making things for a game we love.

Coexistence with DPYes

Works with DPYes.

Warnings

  • Antivirus may flag this tool. All DLL injection tools have the same problem. The program only reads game state.
  • Multiplayer etiquette. Built and tested for single-player. Use discretion online.

Credits / prior art

  • Lumak/GDDPSMeter — open-source hook implementation: damage-type enum, crit signal choice, in-combat approach
  • marius00/GrimDamage — symbol dumps, TakeBonus/HP techniques, life-state enum; resist-reading technique (CombatAttributeAccumulator) from its EntityResistMonitor
  • MinHook (MIT) — hooking library

License

This software is provided free of charge, as is, without warranty of any kind. You may use/copy it for personal use. Redistribution requires permission.

13 Likes

Thanks for posting this - I’ll check it out later when I have some time. It certainly looks interesting and will help identify weird deaths! :+1:

Thanks a lot for the tool! I’m using it right now, and I’m finding the death recap quite nice.

I have a couple of pieces of feedback. Please consider them as personal preferences and not criticism :slight_smile:

  1. Is it possible to generate the HTML report, like the one generated on death, “on demand”? For example, by pressing a shortcut, the tool could generate a report for the last 15 or X seconds. This could be very useful for analyzing a fight, like a SR boss room, even if I’m not dead at the end :stuck_out_tongue:

  2. I would order the “Taken” section by the mobs that are currently dealing damage, rather than by the “total.” I don’t know if it’s going to be readable like this, but this way it would also be useful in real time.

  3. Similar to the point above, while the “Total Damage Dealt” column in the “Skills” section is useful, I wouldn’t use it as the sorting criterion. While I’m fighting, I’d like to see the currently most damaging skills at the top.

  4. Can you share the shortcuts currently supported? So far, I’ve only found R to reset the counters.

Again, thanks for your work and for the tool!

2 Likes

Hey, thank you SO much for such an amazing tool!

I also have some feedback, mostly about display things rather than actional functionality.
In order of importance:

  1. The overlay is really “busy” – I find it pretty uncomfortable to have it on screen while playing, so I had to end up dragging it to my 2nd monitor. Here are some ways this could be improved:
  • An option to minimize the overlay window
  • An option to hide different sections of the meter (OA/DA, resistances, damage done, damage taken, healing), or individual columns (DPS, %, Total, Crit)
  • Opacity setting for the bar colors
  • Clickthrough setting
  1. In the death recap window, I think it makes more sense for the bars to represent player HP% (currently I believe they display % of highest damage taken). Or at least, it’s how other games like WoW do it. This could be made into a setting for those who wish to preserve the current display.

  2. A different color (red?) for adcth in the healing section would make the information easier to read.

  3. This one is pretty unimportant, it might also be too time consuming to implement so it is definitely low priority, but having skill icons on the left side of each bar (before skill names) would make things easier to read as well.

This is all that comes to mind for me right now.
Thank you again for your work, this tool will greatly help in so many ways, especially to quantify exactly how valuable are different procs, WPS or damage sources in general.

edit: additionally, number of hits would be another good metric to add for skills

2 Likes

That is awesome, I cant wait to try it now

The latest version (v1.2.0) is “hard blocked” by both antivirus and browser (chrome and edge) so it’s impossible to even download the zip.

The 1.1.8 is still flagged but downloadable, and can be allowed to run.

GdHook.dll is identified as a virus by Windows Defender and will be instructed to be removed.

Done.

Done.

Hopefully these are fixed in 1.4.0.

5 Likes

Can confirm that the tool is working nicely. Thanks again!

1 Like

Thanks for the update.

2 Likes

After trying it out, it works nicely and thanks.

Version 1.4.0 can’t be downloaded or run anymore :confused: I have no idea what could have been changed, or how Windows manage this stuff.

Debuffs are now shown as draining bars in the overlay.

Updated to 1.5.0. The stats readout now shows secondary resists. It also warns about low resists (can be toggled off)
5

This is a very nice tool, just have one question:

image

Right now I can only see 10 items in this list, it doesn’t show the rest even if I try to resize the box and make it bigger.

I know there are more than 10 different sources of damage because if I use one of the filters in the columns I see more things.

image


TLDR: Is there a way to see more than 10 items here or possibly a way to scroll down the list ?

Change maxSkillRows in appsettings.json to higher than 10.

1 Like

Very nice tool!

There’s only one issue with the overlay - it accumulates information over the entire play session (or until manual reset), stale historical data here isn’t really useful - and I can’t even envision a scenario where it would be useful. Can we have an option added allowing for automatic reset? Something like “after N seconds of being out of combat” would probably be nice - so you can set up it to clear pretty quickly between fights, or wait long enough for you to look at the numbers. Ideally, it should be able to write a combat report (if it’s enabled) and then reset the overlay. Manual reset is fine for some specific testing, but in a general play it quickly gets tiresome to press it.

1 Like

Agreed, also an option to filter out mobs by rarity would be helpful as well (so you could choose to only record damage against boss monsters for example)
Not sure if that one is possible

Updated to 1.6.0: added nemesis and dread meters.
6

There is now a setting for session auto-reset if out of combat for a customizable period.

3 Likes

Great update!

The windows antivirus did try to block the 1.6.0 download for me (I didn’t have issues with previous versions)