Please disclose if any significant portion of your mod was created using AI tools by adding the 'AI Generated' category. Failing to do so may result in the mod being removed from Thunderstore.
DpsMeter
Damage meter with a per-skill and per-item breakdown, split between mobs, bosses and damage taken. Works in multiplayer.
| Date uploaded | 2 weeks ago |
| Version | 0.5.2 |
| Download link | noctilucentgames-DpsMeter-0.5.2.zip |
| Downloads | 17 |
| Dependency string | noctilucentgames-DpsMeter-0.5.2 |
This mod requires the following mods to function
bbepis-BepInExPack
Unified BepInEx all-in-one modding pack - plugin framework, detour library
Preferred version: 5.4.2122README
DPS Meter
A damage meter with a per-skill and per-item breakdown, split between trash mobs, boss encounters, and the damage you took.

What it shows
A corner panel with one row per player: their share of the team's damage, then current, peak and average DPS. Expand it and each row breaks down into the skills and items that produced it.
DPS · BOSS [S4] 0:34 Σ 77.2k
CUR PEAK AVG
Noctilucent 58% 1.2k 3.4k 890
Special (Desperado) 26.7% 2.29k
Ceremonial Dagger 24.7% 2.11k
Primary (Burst) 20.2% 1.73k
AtG Missile Mk. 1 8.1% 485
Press F11 for a full-screen view with hit counts, crit rates and average hit per source — the detail that would clutter a corner panel.
Controls
| Key | |
|---|---|
| F8 | show / hide |
| F7 | cycle mobs → boss → damage taken |
| F6 | expand / collapse the breakdown |
| F11 | full-screen detail (scroll with the mouse wheel) |
| F9 / F10 | write the current breakdown to the log |
All rebindable in BepInEx/config/vince.dpsmeter.cfg.
Behaviour worth knowing
It follows the fight. Switches to boss damage when an encounter starts and back to mobs on a new stage. Multi-phase bosses like Mithrix stay as one fight rather than resetting per phase. You can always override with F7.
Boss numbers outlive the stage, tagged with the stage they came from ([S4]), so
last fight's result is still readable without pretending to be current.
Damage taken is a log, not a breakdown. Newest first, so whatever killed you is the
top line. Repeated ticks from one source collapse into a single ×14 row, which stops a
burn stack burying the hit that mattered.
It hides itself whenever the game hides its own HUD — cutscenes, cinematics, stage transitions.
Nothing is silently dropped. Damage the mod cannot trace to a specific source shows as its own row rather than vanishing, so the breakdown always reconciles against the total.
Multiplayer
Damage only resolves on the host, so the host computes everything and sends aggregates to clients a few times a second.
- The host must have the mod, or nobody sees numbers.
- Everyone who wants to see the meter needs it installed.
- Players without it are unaffected — they are never sent anything.
- Mismatched versions detect each other and say so, rather than rendering nonsense.
Automatic reports
A breakdown is written to BepInEx/DpsMeter/report-<timestamp>.log whenever tracked
damage is about to be discarded: a new stage, a boss defeated, the run ending. Each block
also records the loadout that produced it, which makes "where is that damage coming from"
answerable after the fact. Turn it off with AutoReport in the config.
Notes
The mod sets Risk of Rain 2's modded flag, which is standard. That places you in a separate matchmaking queue from unmodded players and disables Prismatic Trials. It does not affect playing with friends.
Some damage genuinely cannot be attributed. Shared projectiles are fired by several different items, and a few item effects are built in code with no inflictor or proc chain to read. Those are labelled as precisely as the game allows rather than guessed at.
CHANGELOG
Changelog
0.7.0
Everyone in a lobby needs 0.7.0: it does not talk to 0.6.0 or older (the meter switches itself off).
- Far less unattributed damage. Will-o'-the-wisp, Shatterspleen, Kjaro's Band, Ritual Helmet, Headstompers, Infernal Mark infighting, Enforcer's parry and several item hits built in code now get their own rows.
- Names you see in-game instead of internal ones: Hemorrhage, Collapse, Helfire Tincture, Burn (Ignition Tank), Runald's Band, Overloading and Gilded elite attacks, tidier enemy attack names.
- Skill names stay after a death instead of falling back to bare "Primary" / "Secondary".
- Every boss counts as boss damage, including the Shrine of Descent's extra boss.
- A boss fought in a hidden realm (e.g. Gilded Coast) no longer merges into the next stage's boss fight.
- Damage taken keeps per-stage totals.
- Less work per hit and per refresh, so the meter stays light in big fights.