ArcDPS Mechanics Plugin

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):

(I use a custom arcdps font)

It currently detects:

  • 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
  • Matthias
    • reflecting shards (that grant Matthias a damage buff)
    • corruption (to fountain)
    • bomb (to wall)
    • sacrifice
  • Keep Construct
    • fixate
  • Xera
    • triggering orb explosion
    • standing in orb AoE (after orb explosion)
    • magic
  • Cairn
    • teleport
    • missing a green circle
    • slap
  • Samarog
    • shockwave
    • slap
    • bludgeon (vertical smack during last 33%)
    • fixate
  • Deimos
    • oil
    • smash
    • picking up a tear
  • Soulless Horror
    • standing in the inner/outer donut (the attack avoided for Necro Dancer)
    • standing in torment aoe
    • standing in pie slices
    • touching a scythe
    • taking fixation
    • gaining the tanking damage debuff
  • Soul Eater
    • puke
    • spider webs
  • Dhuum
    • touching a messenger
    • getting affliction
    • shackles
    • cracks
    • teleport aoe
    • touching center during suction
    • cone
    • snatch (on CM)
  • Fractals of the Mists
    • Nightmare
      • 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
    • Shattered Observatory
      • Arkk
        • standing in pie slices
        • cone knockback
        • getting a bomb

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.

Installation:

Don’t be a dick.

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).

Open the arcdps options panel (Alt+Shift+T by default)

Enable the “Mechanics Log” or “Mechanics Chart” checkboxes at the bottom

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.

Troubleshooting:

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 2013 x64 redist is installed (needed for arcdps and this plugin)

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

Notes:

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

Reading the Chart:

A “received” 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 gors, that might be the chrono’s fault (depending on the group’s strategy).

FAQ:

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)

Known Issues:

  • 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 log before starting instanced content to avoid the clutter.

Send bug reports, feedback, hate mail, etc to ‘MarsEdge’ on reddit or ‘MarsEdge.8241’ (ingame)

Special thanks to:

  • deltaconnected for arcdps and the combat api
  • [KA] Karma and Omg Its Kayla.6479 for testing, feedback, and encouragement

=====Download Here======

(MD5)

Changelog:

  • 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
      • 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
  • 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