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.
CombatMeter
Server-authoritative PvE combat meter with player damage and defense details, session summaries, and persistent combat history.
| Date uploaded | 3 weeks ago |
| Version | 1.1.0 |
| Download link | Micrososochek-CombatMeter-1.1.0.zip |
| Downloads | 75 |
| Dependency string | Micrososochek-CombatMeter-1.1.0 |
This mod requires the following mods to function
denikson-BepInExPack_Valheim
BepInEx pack for Valheim. Preconfigured with the correct entry point for mods and preferred defaults for the community.
Preferred version: 5.4.2350ValheimModding-Jotunn
Jötunn (/ˈjɔːtʊn/, 'giant'), the Valheim Library was created with the goal of making the lives of mod developers easier. It enables you to create mods for Valheim using an abstracted API so you can focus on the actual content creation.
Preferred version: 2.30.2README
CombatMeter
CombatMeter 1.1.0 provides host-authoritative PvE combat statistics for Valheim 1.0.16 in single-player and Listen Host multiplayer.
Compact combat meter
The compact HUD shows your current combat group: player damage, contribution, personal active-time DPS, damage taken, encounter state and elapsed time. Optional Maximum Crit (largest accepted hit) and Deaths columns are available. Contribution bars use deterministic player colors, and the HUD can be moved and scaled.
Combat starts and finishes automatically from PvE activity. Players fighting unrelated enemies can have separate encounters; groups merge when their combat interactions connect. Recovery is tracked by the host, and the compact meter hides after the encounter finishes.
DPS uses personal active damage time: a short configurable activity window counts after damage, while longer idle gaps are excluded. Dodging, repositioning or recovering stamina does not make DPS fall indefinitely.
Combat Details — hold LeftAlt
Hold LeftAlt to inspect the current or most recent encounter and select a player. Three tabs show:
- Damage: total damage, encounter DPS, Maximum Crit, and all nine damage categories.
- Defense: damage taken, blocked damage, successful blocks, parries and dodges, barrier absorption and barrier breaks.
- Enemies: enemy types and the selected player's personal kills. Participating enemy types remain visible even when that player has zero kills.
Damage and Defense use grouped sections, consistent numeric alignment and subdued zero values. Player scoreboards also include kills and deaths.
Combat Statistics — toggle F7
Press F7 to open a persistent statistics window; press F7 again or Escape to close it.
- Summary shows the current shared host/server session: completed encounters, combat time, enemies killed and player totals. Select a player for Damage, Defense and Enemies. Session totals include finalized encounters only and do not show Session DPS.
- Combat History lists completed encounters newest first, grouped by their recorded day. Load further pages on demand and select a historical encounter to inspect its scoreboard and player details.
Combat history is saved by the host between game restarts. The current session starts fresh when the host enters a world; reconnecting a client does not reset the host's continuing session. The active encounter remains in the compact HUD and Combat Details until finalized.
Statistics load when needed and refresh after completed encounters or a manual Refresh click. The window does not periodically poll history.
Controls and configuration
F8: show or hide the compact meter.Ctrl+F8: enter or leave HUD edit mode; drag the header to move it.Shift+F8: reset HUD position.Escape: leave edit mode or close Combat Statistics.- Hold
LeftAlt: Combat Details. F7: toggle Combat Statistics.
Hotkeys, HUD scale, width, opacity, bars, visibility and position are configurable local preferences in BepInEx/config/Likhtenvald.CombatMeter.cfg. In [UI], Show Largest Hit and Show Deaths are independent compact-HUD options disabled by default; the host records both regardless of visibility. Combat Details uses its configurable Hold Key, and Combat Statistics has its own configurable key.
While an interactive CombatMeter window owns the mouse, the cursor is visible, mouse look and combat/world actions are suppressed, and the wheel belongs to the UI. Vanilla W/A/S/D movement remains available. Inventory, map, menus and other major vanilla UI take priority.
Host-controlled defaults are Combat Timeout = 20, Recovery Timeout = 180 and DPS Idle Timeout = 6. Client timing settings do not override the host. Diagnostic logging is disabled by default; enable the relevant category only for troubleshooting.
Installation and multiplayer compatibility
Install using a Thunderstore-compatible mod manager, or manually place CombatMeter.dll under BepInEx/plugins/CombatMeter/ with these dependencies installed:
- Valheim BepInEx pack
5.4.2350. - Jotunn 2.30.2 or later.
Current supported target: Valheim 1.0.16. Supported modes: single-player and Listen Host multiplayer. Dedicated servers are not currently supported.
Every multiplayer participant must have CombatMeter and use the exact same public version and network compatibility generation. CombatMeter 1.1.0 uses compatibility generation 1. Missing mods, older builds and version mismatches are rejected during connection; there is no bypass setting.
The host calculates combat statistics and distributes each player's own combat-group view. Combat Details and Statistics use authoritative host data, including when a remote character is outside the host's loaded scene. CombatMeter is intended for cooperative play and is not an anti-cheat system.
Upgrade from development builds
Remove the old DiagnosticDamageProbe.dll before installing CombatMeter; do not keep both DLLs in the same profile. Recognized legacy settings are imported on first launch only when the new config has no user settings. The old config is left untouched.
Known limitations
- Summon and magic attribution covers implemented provenance paths; unsupported sources can remain unattributed.
- Summons that existed before the current network session may lack provenance.
- Extremely late DPS events older than compacted activity history receive bounded handling.
- Fall, drowning and smoke do not contribute to combat encounters. Other environmental sources retain their existing policy.
License
CombatMeter is distributed under the MIT License included in this package. Technical documentation is available under docs/ in the source repository.
CHANGELOG
Changelog
1.1.2 — 2026-10-05
- Fixed player attribution for creatures created through SpawnAbility, including StaffSpiritCaller summons. Damage and final kills are credited to the proven summoning player, preserving actual damage types.
- Improved enemy statistics: zero personal kills are hidden, rows sort by kills descending, and different prefabs with the same localized visible name combine for display only.
- Damage-type statistics sort by damage descending while retaining all nine categories, including zeros.
1.1.1 — 2026-10-05
- Fixed caster provenance registration for SpawnAbility-created creature summons, including StaffSpiritCaller summons, preserving damage types and personal kill attribution.
- Improved statistics presentation: enemy rows combine identical localized names from different prefabs for display only, hide zero personal kills, and sort by kills descending; all nine damage categories sort by damage descending while retaining zero values.
- Fixed remote-player typed damage attribution and defense statistics in multiplayer, including damage taken and blocked, successful blocks and parries.
- Fixed remote dodge evidence and barrier absorption/break statistics.
- Fixed enemy/death evidence propagation, personal enemy kill attribution and group enemy metadata for multiplayer encounters.
- Improved multiplayer analytics correctness and validation. Network compatibility generation is now 2; all participants must use CombatMeter 1.1.1 with the same compatibility generation.
1.1.0 — 2026-10-03
- Expanded PvE statistics with nine damage categories, damage taken and blocked, successful blocks, parries and dodges, barrier absorption and breaks, kills, deaths and Maximum Crit.
- Automatically tracks combat start, recovery and completion, with the compact meter hiding after the encounter finishes.
- Added interactive Combat Details (hold LeftAlt) for the current or latest encounter, player selection, and Damage / Defense / Enemies tabs with a consistent multiplayer view.
- Added Combat Statistics (F7): current shared-session summaries, paged combat history and detailed historical encounters. Completed combat history persists between restarts; session totals start fresh on host world entry.
- Added authoritative multiplayer synchronization for detailed combat statistics, session summaries and history. Connection compatibility checks require the same CombatMeter version on every participant and reject missing or incompatible builds.
- Improved Alt/F7 readability with grouped Damage and Defense sections, stable damage-type breakdowns, subdued zero values, table padding and consistent alignment. Enemy tables show personal kills, including participating enemy types with zero kills.
- Interactive windows own the mouse and wheel and suppress the reticle while keeping vanilla movement available. Hotkeys and local HUD settings remain configurable.
- Updated the supported target to Valheim 1.0.16; requires Jotunn 2.30.2 or later. Single-player and Listen Host multiplayer remain supported.
1.0.1
- Fixed player names for damage attributed from supported owned summons and magic sources, including when summon damage is the first combat event.
- Owner display names now come from vanilla session identity and remain available when the remote Player object is unloaded from the host scene.
- Attribution remains host-authoritative and PlayerID-based; names are presentation metadata only. Combat behavior and snapshot protocol are unchanged.
1.0.0
- First stable CombatMeter release for single-player and Listen Host multiplayer, with host-authoritative per-player Damage Done, contribution percentage, personal active-time DPS, and Damage Taken.
- Added optional Largest Hit immediately after DPS and optional Deaths as the final column; both are disabled by default and configured locally.
- Independent Combat Clusters keep separate fights separate, merge when PvE interactions connect groups, and do not split again during that encounter. Later encounters can be independent again.
- Recovery remains host-authoritative and cluster-local, including independent periods for multiple dead players.
- Peer-specific snapshots use distance-independent session identity routing and clear stale encounter views. CombatSnapshot v2 carries authoritative Largest Hit and Deaths; all participants must use the same current version.
- Deterministic player colors, contribution bars, and a draggable configurable HUD remain available.
- Fall, Drowning, and Smoke are excluded from combat statistics and encounter activity; other environmental damage retains its existing policy.
- Performance diagnostics remain explicitly opt-in and disabled by default.
0.12.1 — Distance-independent multiplayer snapshots
- Fixed missing damage tables when the Listen Host was far from connected clients.
- Recipient identity is retained from the vanilla network session instead of requiring the client's Player object to remain instantiated on the host.
- Remote combat continues to route to the correct Combat Cluster when the remote Player entity unloads on the host.
- Disconnect invalidates identity bindings; reconnect requires fresh establishment, and conflicting mappings remain fail-closed.
- DamageCommit transport and CombatSnapshot v1 are unchanged.
- Successfully validated the fix in a two-PC Listen Host multiplayer test.
0.12.0 — Combat clusters and multiplayer routing
- Added independent combat clusters based on actual PvE interactions; unrelated simultaneous fights no longer share one global table.
- Added per-player authoritative snapshots from the Listen Host, with clusters merging when combat interactions connect them.
- Improved encounter finishing and stale HUD clearing through cluster routing and empty snapshots for players without a current cluster.
- Kept Recovery local to each combat cluster, including independent Recovery periods for multiple dead players.
- Added deterministic player colors to Damage contribution bars.
- Excluded Fall, Drowning, and Smoke from combat statistics and from starting, extending, or resuming encounters and Recovery.
- Added lightweight performance instrumentation with a separate opt-in diagnostic switch, disabled by default; disabled telemetry bypasses measurement and counters.
- Successfully validated the peer-specific snapshots, environmental policy, and player-color runtime candidate in a two-PC Listen Host multiplayer session.
0.11.2 — Public test build
- Added synchronized Damage Done, DPS, contribution percentage, contribution bars, and Damage Taken.
- Added personal Active DPS Time so long idle gaps do not continually reduce DPS.
- Added host-controlled encounter, recovery, and DPS timing.
- Added draggable and configurable local HUD presentation.
- Added summon and elemental attribution for the currently supported provenance paths.
- Clarified local UI versus host combat configuration authority.
- Renamed the public plugin and DLL to CombatMeter.
- Added one-time migration from the previous development config.
- Disabled verbose diagnostic categories by default while keeping them available for testing.
Known limitations
- Dedicated servers are not supported.
- Multiplayer validation is ongoing.
- Some unsupported or pre-existing summon/magic sources may remain unattributed.