Download
(52 Kb)
Download
Updated: 02/16/24 01:32 PM
Pictures
File Info
Compatibility:
base-game patch (9.1.5)
Updated:02/16/24 01:32 PM
Created:10/09/23 09:04 AM
Monthly downloads:132
Total downloads:1,213
Favorites:6
MD5:
CombatInsights
Version: 1.0.4
by: necco889 [More]
This addon is a plugin for the widely used Combat Metrics, insipired by Solinur's Constellations which is no longer in development since CP 2.0.

The addon was created to aid in identifying opportunities to improve group damage in raids by highlighting quickly buff/de-buff uptimes as well as personal CP. It heavily relies on the fight data collected by CMX's, and attempts to calculate how certain buffs, debuffs, CPs and gear changes would increases/decrease your DPS.

It is not perfect and should be used hand in hand with Combat Metrics and ESO Logs rather than replacing either/both. The UI should be self explanatory and you can either use the All tab and scroll down, or click each tab individually to focus in on any of the topics.

Please be advised, this addon is currently still in early development stage, still I'd like to publish it in order to get some feedback.

Dependencies
  • Combat Metrics
  • LibCombat
  • LibAsync

Usage
  • Open CMX, the addon window will automatically open too
  • Select the fight you want to analyze
  • Press the button
  • It will grind the numbers in the background, you can close CMX UI if you want in the meantime. It will cause a minimal fps drop but its intentionally not that bad, that is the reason why it is a bit slow... (Thx LibAsync!)
  • Once the report is ready, you can filter it by category via the buttons, and selecting enemies and abilities on the CMX UI
  • Save the fight in CMX with SHIFT+CLICK if you want to use this report later.

Good to know
  • This addon needs to be enabled during the fight, because it collects some additional data, which CMX does not. Older already saved fights won't work!
  • You can save a fight in CMX and crunch the numbers later, even after logout, but you need to save it with SHIFT+CLICK
  • During the calculation its always assumed you have passives maxed out! (ie: If you dont have slayer from fighter's guild the addon will still assume
    you do...)
  • Ignored Damage meaning: some of the calculations may result in an error, when it involves things like unknown enemy health, an unknown ability, or some other issue which makes it impossible to calculate the correct damage. In this case this damage will be ignored.
  • N/A: In the "Potential Gain" column it means either all the damage was ignored, or there is no trivial way to do the calculation. For example Martial Knowledge maximum uptime is 62,5%, so it doesnt make sense to calculate for 100%, but it is also infeasible to try to calculate where the missing uptime would give the maximum value.
  • Effective Uptime: number of affected hits / number of all hits. This means if u are doing portal for example you will still see the uptime for a (de)buff affected your hits

Current known limitations
  • Some abilities are missing (especially unmorphed versions and non-dps stuff (ie: tank, healer stuff))
  • Only some of the meta procsets are supported
  • Abilities dealing more damage every tick, where this bonus is stacking with other damage done bonuses are not implemented yet
  • DOT snapshot is not handled
  • Light attack cap is not implemented
  • Dual wield slaughter, ruffian passive not implemented
  • Distance based bonuses cannot be calculated (bow passive)
  • Standard of might bonus is not handled, since its not visible in the fight log
  • Z'en is always considered as 5 stacks when applied
  • Enemy armor is hardcoded for 18200 (only trial zones, dummies are supported)
  • Scaling debuffs like engulfing flames, alkosh are always calculated with maximum effect
  • No localization

Git
https://github.com/necco889/CombatInsights
1.0.4
  • Adjusted pillar of nirn coefs
  • Fixed crash caused by DK seething fury stacks
  • Fixed crash caused by NB incap

1.0.3
  • Fixed crash on necro

1.0.2
  • First release
Optional Files (0)


Archived Files (2)
File Name
Version
Size
Uploader
Date
1.0.3
50kB
necco889
10/09/23 11:24 PM
1.0.2
50kB
necco889
10/09/23 09:04 AM


Post A Reply Comment Options
Unread 02/16/24, 01:33 PM  
necco889
AddOn Author - Click to view AddOns

Forum posts: 0
File comments: 4
Uploads: 4
Re: Analysis failed with error

Originally Posted by Roker717
Hi. When using the addon, I get this error:

Analysis failed with error:

user:/AddOns/CombatInsights/src/hit.lua:295: attempt to index a nil value
stack traceback:
user:/AddOns/CombatInsights/src/hit.lua:295: in function 'Hit:ReCalcDmgTaken'
<Locals> self = [table:1]{critDmg = 129, timeMs = 324819, dmgDone = 30, dmgDoneModifier = 1.3, dmgDoneToMonsters = 0, isCrit = F, dmgTaken = 0, index = 56, value = 1488, abilityId = 21925, damageType = 10, dmgDoneValueKnown = F, armorModifier = 1, dmgDoneToMonstersModifier = 1, apparentWeaponDmg = 0, weaponDmgBonus = 0, critDmgModifier = 2.25, penetration = 0}, target = [table:2]{crusher = T, poisoned = T, minorVuln = T, engulfing = T, burning = T, unitId = 5, majorBreach = T, majorVuln = T, offBalance = T, sundered = F, alkosh = T, minorBreach = T, incap = T, minorBrittle = T, overcharged = T, flameWeakness = T, hemorrhaging = T, frostWeakness = T, shockWeakness = T}, val = 15 </Locals>
user:/AddOns/CombatInsights/src/hit.lua:475: in function 'Hit:ReCalcModifiers'
<Locals> self = [table:1] </Locals>
user:/AddOns/CombatInsights/src/analysis.lua:152: in function 'Analysis:CalculateBaseHits'
<Locals> self = [table:3]{progressPercent = 0.055335968379447, hpquery = 55, trialDummy = T, taskFinished = F, logLineIndex = 11002, taskRunning = T, progressTxt = "Calculating original hit param...", taskStartedAt = 1035207}, i = 56 </Locals>
user:/AddOns/CombatInsights/CombatInsights.lua:134: in function '(anonymous)'
(tail call): ?
[C]: in function 'pcall'
user:/AddOns/LibAsync/LibAsync.lua:29: in function 'DoCallback'
<Locals> job = [table:4]{lastCallIndex = 2, name = "CombatInsightsReplayTask"}, callstackIndex = 2 </Locals>
user:/AddOns/LibAsync/LibAsync.lua:63: in function 'DoJob'
<Locals> job = [table:4], index = 2 </Locals>
user:/AddOns/LibAsync/LibAsync.lua:141: in function 'async.Scheduler'
<Locals> name = "CombatInsightsReplayTask", runTime = 1035.3933562, GetGameTimeSeconds = [C]:-1, start = 1035.3845214844, now = 1035.3933562, allOnlyOnce = F </Locals>
Thank you very much for bringing this to my attention, the fixed version should be out soon!
Report comment to moderator  
Reply With Quote
Unread 02/09/24, 12:07 PM  
Roker717

Forum posts: 0
File comments: 5
Uploads: 0
Analysis failed with error

Hi. When using the addon, I get this error:

Analysis failed with error:

user:/AddOns/CombatInsights/src/hit.lua:295: attempt to index a nil value
stack traceback:
user:/AddOns/CombatInsights/src/hit.lua:295: in function 'Hit:ReCalcDmgTaken'
<Locals> self = [table:1]{critDmg = 129, timeMs = 324819, dmgDone = 30, dmgDoneModifier = 1.3, dmgDoneToMonsters = 0, isCrit = F, dmgTaken = 0, index = 56, value = 1488, abilityId = 21925, damageType = 10, dmgDoneValueKnown = F, armorModifier = 1, dmgDoneToMonstersModifier = 1, apparentWeaponDmg = 0, weaponDmgBonus = 0, critDmgModifier = 2.25, penetration = 0}, target = [table:2]{crusher = T, poisoned = T, minorVuln = T, engulfing = T, burning = T, unitId = 5, majorBreach = T, majorVuln = T, offBalance = T, sundered = F, alkosh = T, minorBreach = T, incap = T, minorBrittle = T, overcharged = T, flameWeakness = T, hemorrhaging = T, frostWeakness = T, shockWeakness = T}, val = 15 </Locals>
user:/AddOns/CombatInsights/src/hit.lua:475: in function 'Hit:ReCalcModifiers'
<Locals> self = [table:1] </Locals>
user:/AddOns/CombatInsights/src/analysis.lua:152: in function 'Analysis:CalculateBaseHits'
<Locals> self = [table:3]{progressPercent = 0.055335968379447, hpquery = 55, trialDummy = T, taskFinished = F, logLineIndex = 11002, taskRunning = T, progressTxt = "Calculating original hit param...", taskStartedAt = 1035207}, i = 56 </Locals>
user:/AddOns/CombatInsights/CombatInsights.lua:134: in function '(anonymous)'
(tail call): ?
[C]: in function 'pcall'
user:/AddOns/LibAsync/LibAsync.lua:29: in function 'DoCallback'
<Locals> job = [table:4]{lastCallIndex = 2, name = "CombatInsightsReplayTask"}, callstackIndex = 2 </Locals>
user:/AddOns/LibAsync/LibAsync.lua:63: in function 'DoJob'
<Locals> job = [table:4], index = 2 </Locals>
user:/AddOns/LibAsync/LibAsync.lua:141: in function 'async.Scheduler'
<Locals> name = "CombatInsightsReplayTask", runTime = 1035.3933562, GetGameTimeSeconds = [C]:-1, start = 1035.3845214844, now = 1035.3933562, allOnlyOnce = F </Locals>
Report comment to moderator  
Reply With Quote
Unread 10/16/23, 10:15 AM  
necco889
AddOn Author - Click to view AddOns

Forum posts: 0
File comments: 4
Uploads: 4
Re: Awesome!

Originally Posted by ChrisK
Really excited that you're developing this! Solinur's old addon was helpful and am thankful to have a replacement.
Cheers mate, hope you'll find it useful, lmk if you find any bugs
Report comment to moderator  
Reply With Quote
Unread 10/15/23, 05:14 PM  
ChrisK

Forum posts: 0
File comments: 176
Uploads: 0
Awesome!

Really excited that you're developing this! Solinur's old addon was helpful and am thankful to have a replacement.
Report comment to moderator  
Reply With Quote
Post A Reply



Category Jump: