I’ve been working on a plugin for ArcDPS using its realtime combat api. The plugin shows a realtime list of failed mechanics for players. The mechanics are determined by the skill id of the attack a player/npc is hit by. It shows a timestamp in ‘min:sec’ since entering combat and ‘X was hit by Y mechanic’.
This plugin is not intended to breed toxicity, but instead help show players mechanical areas where the players can improve. This is in the same way that arcdps shows how dps/boons could be improved.
Here are some example screenshots (with names redacted):
- Clearing the mechanics chart breaks the chart MerlinAesalon#4
- Sunqua Peak Fractal mechanics are not complete, some are still missing.
Since i updated to a new imgui version, some graphic glitches could occur (overlapping text/elements also count). Please report them, so i can fix them.
- Vale Guardian
- teleport
- Gorseval
- slam
- egg
- touching an orb
- Sabetha
- time bombs
- sapper bombs
- standing in cannon fire
- Slothasor
- tantrum
- bomb (holding)
- standing in bomb AoE
- flame breath
- shake
- fixate
- Bandit Trio
- throwing bees
- throwing oils
- Matthias
- reflecting shards (that grant Matthias a damage buff)
- corruption (to fountain)
- bomb (to wall)
- sacrifice
- touching a ghost
- fire tornado
- storm cloud
- Keep Construct
- fixate
- touching the core
- Xera
- triggering orb explosion
- standing in orb AoE (after orb explosion)
- magic
- teleport
- Cairn
- teleport
- missing a green circle
- slap
- Samarog
- shockwave
- slap
- bludgeon (vertical smack during last 33%)
- fixate
- Deimos
- oil
- smash
- picking up a tear
- teleport (having the green circle)
- Soulless Horror
- standing in the inner/outer ring (the attack avoided for Necro Dancer)
- standing in torment aoe
- standing in pie slices
- touching a scythe
- taking fixation
- gaining the tanking damage debuff
- CCing a Tormented Dead
- Soul Eater
- puke
- spider webs
- picking up an orb
- throwing an orb
- Broken King
- getting a green
- Eye Cave
- CCing the eyes
- Dhuum
- touching a messenger
- getting affliction
- affliction explosion damage
- shackles
- cracks
- dip aoe
- touching center during suction
- cone
- snatch (on CM)
- Conjured Amalgamate
- squash (arm slamming down on player)
- using swords/shields
- Twin Largos
- shockwave
- waterlogged stacks
- bubble
- getting a tidal pool
- standing in whirlpool
- geyser
- boon steal
- dash
- Qadim
- shockwave
- arcing fire lines
- teleport
- being inside the hitbox
- Adina (Earth Djinn)
- was blinded
- looked at eye
- touched pillar ripple
- touched a mine
- Sabir (Air Djinn)
- big tornado
- shockwave
- bubble
- bop at phase
- Qadim the Peerless
- is tank
- touched lava
- expanding lightning
- purple rectangle
- flux bombs
- Nightmare
- MAMA
- flaming whirl
- cone knockback
- giant leap
- standing in acid
- knight’s hammer smash
- Siax
- standing in acid
- Ensolyss
- lunge (being run over)
- smash attack with the 5 adds
- MAMA
- Shattered Observatory
- Arkk
- standing in pie slices
- cone knockback
- getting a bomb
- getting a green circle
- Arkk
- Sunqua Peak
- Ai, Keeper of the Peak
- Red Circle
- Windspheres/Fireballs/Whirlpools/Laser (summoned during dashes)
- Wind blades (intersect center of arena during split)
- Call Meteor
- Firestorm
- Ai, Keeper of the Peak
- Icebrood Construct
- Ice Arm Swing
- Ice Shatter (Ice Orbs)
- Ice Crystal
- Ice Flail
- Ice Shock Wave
- Deadly Ice Shockwave (knockdown)
- Shatter Arm (knockdown)
- Voice and Claw
- Hammer Slam (knockdown)
- Hammer Spin (launch)
- Fraenir of Jormag
- Icequake (knockdown)
- Frozen Missile (launch)
- Torrent of Ice (freeze)
- Ice Shock Wave/Seismic Crush (knockdown)
- Ice Flail (knockdown)
- Shatter Arm (knockdown)
- Boneskinner
- Grasp (AoE at player's feet)
- Charge (knockdown)
- Death Wind (launch)
- Whisper of Jormag
- Chains of Frost (target and hits)
- Spreading Ice
- Icy Slice
- Icy Tempest (tornado)
- Lethal Coalescence
- Cold War
- Lethal Coalescence
- Call Assassins
- Flame Wall
- Charge! (knockdown)
- Detonate
If you have any ideas for things I’m missing, please let me know.
I have no current interest in mechanics detection for PvP / WvW. I’m not even sure what kind of things would be useful to show from those game modes. I don’t PvP / WvW much myself.
This requires a recent version of arcdps . When in doubt, get the latest from here.
Put the .dll file in the same folder as arcdps (Program Files/Guild Wars 2/bin64 by default).
To disable, just remove the .dll or move it to a different folder.
This plugin shouldn’t need to be updated with Guild Wars 2 updates, but arcdps must be compatible with Guild Wars 2.
If arcdps updates the combat api, this plugin might need to be updated for compatibility.
Don’t be a dick.
Open the arcdps options panel (Alt+Shift+T by default) and enable the “Mechanics Log” or “Mechanics Chart” checkboxes at the bottom
or use the hotkeys Alt+Shift+L (Log) / Alt+Shift+N (Chart)
Be sure you’re running the latest version of arcdps.
Ensure directx9 june2010 runtime is installed (needed for arcdps and this plugin)
Ensure visual c 2015-2019 x64 redist is installed (needed for arcdps and this plugin). Microsoft Download Page
Ensure the .dll file is in the “bin64″ folder, not the “bin” folder
Right click on the .dll file -> go to properties. If there is an “Unblock” button, click that button and apply changes
If options are not being saved, manually create a file named “arcdps_mechanics.ini” next to the arcdps.ini (Default file location is “C:\Program Files\Guild Wars 2\addons\arcdps\arcdps_mechanics.ini”)
If an attack is successfully blocked, evaded, or invulned, then it is not listed.
Attacks that interrupt (Gorseval slams, Samarog slaps, etc) are not listed if the player has stability.
The combat api has a small delay (~2 seconds) before the mechanic will be shown.
All the combat data used by this plugin are in the arcdps .evtc log files anyway. This simply parses it in realtime.
Some of the mechanics are not necessarily bad. Getting a bomb on sloth is normal, but if the bomb is then dropped in a bad place, you can see who had it.
Vapor Form / Illusion of Life do not count as 2nd downs in the chart
A “neutral” mechanic is a mechanic that a player might have to deal with during the fight. This isn’t bad, but it might lower that player’s personal DPS to do the mechanic (e.g. Matthias corruption, Dhuum shackles, etc)
A “failed” mechanic is a negative mechanic that a player was hit by (e.g. Vale Guardian teleports, expanding a Deimos oil, etc)
Some mechanics are not necessarily the hit player’s fault. If 1 sub-group gets slammed on Gorseval, that might be the chrono’s fault (depending on the group’s strategy).
Q: Is it Terms of Service compliant?
A: Yes. I’ve talked to Chris Cleary from Anet and he did not see any issues with compliance. (part1 part2)
If a player has a magnetic aura, reflecting distortion, etc and reflects a shard on Matthias, it will say the player with the buff reflected and not the player that granted the buff.
The chart will track downs/deaths of players in open-world PvE / WvW squads. This can get spammy. For now, I recommend clearing the chart before starting instanced content to avoid the clutter.
Send bug reports, feedback, hate mail, etc in a new issue here or join the Elite Insights discord and write in the channel #killproof-me-plugin.
- deltaconnected for arcdps and the combat api
- [KA] Karma and Omg Its Kayla.6479 for testing, feedback, and encouragement
February 22 2021
Added support for ImGui 1.80
September 21 2020
Removed game links from tooltip as they don't all work
Added tracking for:
Fraenir of Jormag
Frozen Missile (launch)
Fixed tracking of Frozen + Unfrozen as 2 Frozen hits
September 20 2020
Added in game links as the tooltip for abilities in Strikes and Sunqua Peak when available
Added tracking for:
Icebrood Construct
Ice Shock Wave
Deadly Ice Shockwave (knockdown)
Shatter Arm (knockdown)
Ice Arm Swing
Ice Shatter (Ice Orbs)
Ice Crystal
Ice Flail
Voice and Claw
Hammer Slam (knockdown)
Hammer Spin (launch)
Fraenir of Jormag
Icequake (knockdown)
Torrent of Ice (freeze)
Ice Shock Wave/Seismic Crush (knockdown)
Ice Flail (knockdown)
Shatter Arm (knockdown)
Boneskinner
Grasp (AoE at player's feet)
Charge (knockdown)
Death Wind
Cold War
Call Assassins
Flame Wall
Charge! (knockdown)
Detonate
Lethal Coalescence
Whisper of Jormag
Chains of Frost (target and hits)
Spreading Ice
Icy Slice
Icy Tempest (tornado)
Lethal Coalescence
Ai, Keeper of the Peak
Red Circle
Windspheres/Fireballs/Whirlpools/Laser (summoned during dashes)
Wind blades (intersect center of arena during split)
Call Meteor
Firestorm
July 9 2019
Fix Arkk green/bomb mechanics not being tracked if player is downed
Add tracking for:
Dhuum affliction explosion damage
Sabir bop at phase (chart only by default to avoid spam)
Special thanks to [REZ] Snackrificial Pugs for inspiring the addition of this mechanic
Qadim2
pylon lava (forgot a 3rd id. oops)
expanding lightning
purple rectangle
June 25 2019
Add tracking for:
Sabir (Air Djinn)
big tornado
shockwave
bubble
Qadim the Peerless
touching small lava(missed a skill id before)
Special thanks to the Elite Insights devs for finding the skill ids
Fix extra separator at top of log (makes copy to clipboard smoother)
June 21 2019
Add initial wing 7 mechanics (more to come soon tm)
Adina (Earth Djinn)
was blinded (chart only by default, quite spammy)
looked at eye
touched pillar ripple
touched a mine
Qadim the Peerless
is tank
touched lava
Add some additional checks for compatibility with other plugin configurations
June 10 2019
Redo chart UI
Consistify capitalization of filter options
Make mechanic options detailed description [?] only show if a description exists (none yet)
Don’t show multiple placeholders in a row in the log
Add account name to chart
Use arc exports instead of reading the ini
Add tracking for:
Bandit Trio
throwing bees
throwing oils
Matthias
touching a ghost
fire tornado
storm cloud
Add option to export csv on close
Add dynamic version string instead of being hardcoded 0.3 forever
May 15 2019
Fix some squad members not being tracked when joining an instance with 9 others already inside
May 11 2019
Expand log/chart filters to include separate fields for the player, mechanic, boss
Add tracking for CCing an eye on w5 statues
Use Ender’s Echo buff instead of damage ticks for tracking Dhuum CM snatches
This fixes false positive when coming back from a green into the echo
Special thanks to Aikan for finding this
April 23 2019
Add tracking for CCing a Tormented Dead on Soulless Horror
This tracks stun (including Tides of Time variant) and daze. No other CC will be tracked. This will not catch everything, but the meta for SH is such that this will catch most accidental CCs while ignoring intentional knockback skills
March 25 2019
Show boss name for each mechanic in chart
Add mechanic description plumbing (not active yet)
Add tracking for
Using CA sword/shields
Special thanks to Google.1364 and CombatEvolve.9238 for inspiring the addition of this mechanic
Touching the KC core
Green circle tracking for Arkk
getting a green on ice king
Fix Soul Eater orbs being considered failed mechanics
Attempt to put separators before mechanics that happen on enter combat (mainly impacts fixates as entering combat)
Special thanks to Izzy.2093 for inspiring this addition
Misc code cleanup
February 1 2019
Add tracking for throwing an orb on Soul Eater
Special thanks to Brokenyew.3901 for inspiring the addition of this mechanic
Add filter text box to the chart
(more filter options coming soon)
Don’t show players in chart who aren’t currently in squad and only have downs/deaths
Hide UI during loading screens / at character select
January 1 2019
Make chart export button open the csv
Change menus to mimic arcdps’s new style
December 18 2018
Add tracking for being inside Qadim’s hitbox
Add additional checks for empty player data
December 4 2018
Remove some non-working mechanics from the options panel
Rename several mechanics for more clarity
Sloth
stood in a bomb aoe -> stood in bomb aoe
Xera
touched an orb -> triggered an orb
Samarog
was hit by shockwave -> was shockwaved
Deimos
was hit by smash -> was smashed
Soulless Horror
stood in inner/outer donut -> stood in inner/outer ring
Dhuum
stood in a mark -> stood in a poison mark
touched the center -> was sucked center
stood in a teleport aoe -> stood in dip aoe
MAMA
was hit by wirl -> was hit by whirl
Feedback on these or any other wording changes is welcome. One of my goals has been to be sure that when someone looks at the log they can quickly understand what they were hit by.
Add check to be sure the chart csv export path isn’t empty
Add additional checks for if a player id is 0
(fixes a rare case where lagging players might get missing/malformed combat data)
Special thanks to [TK] Toxic Knights for helping me track this one down
Add tracking for Qadim’s teleport
Significant performance optimizations
went from ~3% CPU usage to <1%
Fix a mechanic rarely appearing twice in the log
Fix touching a gorseval orb showing up in the log more times than intended
Misc code cleanup
October 7 2018
Add UI panel to choose where mechanics are displayed (log vs chart vs hidden)
Fix wing 6 bosses not having a name in the .csv output
Add option to only show mechanics affecting yourself
Add mechanics tracking for
Twin Largos
Boon steal
geyser
dash
Fix Qadim shockwave detection only tracking waves from the destroyer and not Qadim himself
October 2 2018
This version fixes compatibility with arcdps versions from October 2 2018 and newer. Using old versons of this mechanics plugin with new versions of arcdps will yield completely inaccurate results
Update for arcdps event structure changes
Change “ate shockwave” to “was shockwaved” in log
October 1 2018
Add tracking for some wing 6 mechanics
Coagulated Amalgamate
squashed (arm slamming down in player)
Twin Largos
shockwave
waterlogged stacks (chart only)
bubble
getting a tidal pool
standing in whirlpool
Qadim
shockwave
arcing fire lines (chart only)
Fix flux bombs being counted as a “failed” mechanic
Add experimental ini support for choosing which mechanics are in the log vs chart vs hidden (UI for this coming soon)
0 = hidden
1 = chart only
2 = log only
3 = both
Change window names to title case to match the experimental arcdps naming conventions
September 11 2018
Add tracking for
WARNING: These require arcdps from September 10 2018 or newer. This is the ‘experimental’ arcdps build at the time of this posting. Using an older arcdps build will work, but the below mechanics will be missing from the output
When someone GETS the Xera magic, instead of when the magic is used
Xera teleports
Deimos teleports
FotM flux bombs
Dhuum putrid marks (chart only)
Fix some mechanics not being detected if a player gets multiple mechanics in a very short time frame
Fix closing a Deimos tear being counted as a ‘Fail’
Fix cairn slaps being improperly detected when a player has stability
Improved Deimos oil tracking
This should be more robust now. It’s not gonna be 100% accurate for extremely chaotic situations, but it should be easy to know who’s responsible from the output
Rename “Received” mechanics to “Neutral” mechanics
July 16 2018
Remove KC east/west fixate tracking
Unfortunately, the KC changes make the east and west sides now use the same id. As such, they are no longer distinguishable. 🙁
July 10 2018
Fix mysterious issue where some computers couldn’t load the .dll file
July 10 2018
MAJOR rewrite of almost all of the internal tracking
Breakage is possible everywhere
Add detection for:
Dhuum cone
Cairn slap
Special thanks to Mike the Gemini for inspiring the addition of this mechanic
Separate detection for KC east vs west fixate
Special thanks to [Meta] Dungeon Ducks for inspiring the addition of this mechanic
This was working before KC was broken. This might no longer be accurate/possible. I’ll fix this once KC is confirmed to be stable
Hopefully they still have separate ids for the different sides
Use the Arc ini settings for click settings (game restart required on change)
Fix a very rare crash when too many players are hit by mechanics within 1 game tick
Lay groundwork for arcdps cbtevent1 change (not active yet)
Don’t export the csv if there’s nothing in it
April 4 2018
Add detection for:
Soul eater puke
Soul eater spider web
Fix hotkeys not unlocking when GW2 is not the active window
Code cleanup
April 2 2018
Remove April Fools changes in case someone takes them seriously
March 31 2018
Fix the mechanics log filter field from sometimes stealing input when pressing TAB
March 28 2018
Fix hotkeys passing input to the game when pressed
March 26 2018
Add detection for:
Picking up demonic tears
Deimos smash during last 10%
Add (hopefully) better Deimos oil tracking
This should not list as many people after the initial person expands the oil. Let me know of any issues / inaccuracies. I haven’t had any deviation from dps.report in my testing
Disable Dhuum dying on green detection
This should have been disabled for the last release since it doesn’t work. Oops.
Fix Xera magic listing the person with magic multiple times
Add hotkey support for the mechanics log/chart
By default:
Alt+Shift+L = Log
Alt+Shift+N = Chart
Can be changed in config as decimal (not hex) key codes from here
Add some additional crash safeguards
Only show some mechanics in the log to reduce spam
All are still shown in the chart
Soon there will be an option per mechanic of what to display where
Misc code cleanup
Very minor performance optimizations
March 3 2018
This now requires arcdps from feb.27.2018 or newer
Code cleanup
Performance optimizations (especially in boon-heavy environments)
Fix chart breaking after clearing it
Add Soulless Horror debuff tracking
Make deimos smash still count if the player has stability (since stability doesn’t prevent the knockback)
Mechanics Export
Add player name to the csv for the mechanics lines (makes excel parsing easier)
Add account name
Started work for counting the number of boss pulls (currently always 0, will be added soon)
Add support for loading/saving settings
arcdps_mechanics.ini is next to the arcdps.ini file
Currently saves:
which panels were visible
the export location for the mechanic chart exporting
Always show the people in the same party/squad/instance in the chart
February 8 2018
Rename SH fixate to say the person took fixation
Rename KC ‘fixate’ -> ‘fixated’ for consistency
Add tracking for more green circle patterns on Cairn
Add gorseval orb detection
Shorten Dhuum suction aoe text
Add initial chart exporting as text or csv
Chart is exported to ‘My Documents\Guild Wars 2\addons\arcdps\arcdps.mechanics’
There is currently not an option for changing the file path (soon tm)
You can see an example export here
Chart is auto-exported when the game is closed
Use combat notifies to populate player list
Fix potential underflow with vapor form manual case
January 24 2018
Fix Dhuum CM snatch detection not working when a player is dropped and picked up again in the same attempt
January 21 2018
Fix MD5 Generation
Considerable rewright of mechanic definitions (breakage possible)
Minor performance optimizations
Add experimental fixation detection for sloth,souless horror,KC,sam
Add player merging to the chart (for when a player swaps characters)
Fix dhuum affliction not registering while in downstate
Added separate “Clear” button to the chart
Remove some empty space to the right of the log filter text
January 14 2018
Add Mechanics Chart
Shows all mechanics recieved/failed over all pulls until manually cleared
Add detection for:
Dhuum – teleport aoes
Dhuum – touching center during suction
Dhuum CM – snatch
Matthias – corruption
Matthias – sacrifice
FotM – Shattered Observatory (normal mode) – Arkk pie slice detection
Fix some mechanics counting if hit while in downstate
Fix FotM – Shattered Observatory CM – Arkk – bomb detection (skill id changed after the bugfixes to the fractal)
Make standing in red xera aoes have 1 second (from 2 seconds) frequency for more granularity
Rename the Dhuum “golem” to a “messenger”
Rename the Soulless Horror “golem” to “torment”
Make gui windows non-collapsible (removed the weird triangle that didn’t do anything anyways)
Add manual case for Vapor Form / Illusion of Life not counting as a down
Performance optimizations
December 7 2017
Fix Dhuum affliction occasionally showing the player hit by the bomb instead of the player with the bomb
Add detection for Dhuum shackles
Add detection for Dhuum cracks
December 3 2017
Remove erroneous Cairn shard reflect logging with new versions of arcdps
Only show who was afflicted of Dhuum, not who was hit by it (attempt 1)
December 2 2017
Add mechanics detection for various Nightmare fotm mechanics
MAMA
Flaming wirl
cone knockback
giant leap
standing in acid
knight’s hammer smash
Siax
standing in acid
Ensolyss
lunge (being run over)
smash attack with the 5 adds
Added mechanics detection for some of Shattered Observatory fotm mechanics
These skill ids might have changed with some of the various bug fixes to the fractal. If any of these mechanics are not being correctly detected, let me know.
Arkk
standing in pie slices
cone knockback
exploding a bomb outside a dome
Added mechanics detection for some raid wing 5 mechanics
These mechanics are not as fully tested as normal. I wanted to get a release for everyone to try out and hopefully help find any issues with the detection. I believe these all work in some capacity, but for now there might be some errors.
Horror
standing in the inner/outer donut
standing in golem aoe
standing in pie slices
touching a scythe
Dhuum
touching a golem
hitting an ally with affliction
November 4 2017
Add detection for standing in Sabetha cannon fire
Add detection for missing green circles on Cairn (ignored when player has stability)
Add MD5 hash
October 26 2017
Add Samarog “Bludgeon” detection (Vertical smack during last 33%)
Special thanks to shootingstar.7160 and [BLCC] (Black Lion Cookie Company) for inspiring the addition of this mechanic
Re-enable Xera magic detection
Not fully tested, but it should work now
Fix potential issue where closing and re-opening the mechanics log would prevent future logging
Hopefully fix multiple prints for Deimos oils
It should be good, but let me know of any found inaccuracies
Use “=” instead of “-” to separate new boss attempts to allow for better/easier filtering
October 22 2017
Added gui integration with arcdps
Enable the mechanics log with the last checkbox in the arcdps options panel (Alt+Shift+T by default)
The mechanics log can be moved/resized
Text can be filtered by player name or mechanic
Partial fix for deimos oil print spaming (the 1st person is the one who activated the oil)
October 11 2017
Use new get_init_addr from arcdps combat api (this now requires arcdps from oct.05.2017 or newer)
Only show 1 person touching a Deimos oil
Add “————–” between boss attempts
Show timestamps as min:sec as time since starting combat
Added Sabetha sapper bomb, time bomb detection (this will currently be a bit spammy at Bandit Trio and during trash clearing)
October 4 2017
Initial release