arcdps: gw2 dps meter (and general combat metrics tool)

how does it work
 arcdps hooks client network data (among other functions) making it not user agreement friendly.
 these are runtime modifications only, no changes are made to files on disk.

how do i install, update, or uninstall
 place d3d11.dll next to gw2-64.exe while the game is not running, optionally can be renamed to dxgi.dll.
 addons and arcdps config folder will be created next to gw2-64.exe after starting the client.
 to update, replace dll.
 to reset, exit gw2 and remove the config folder above.
 to remove, exit gw2 and delete the dll.
 expect to have to update after major game changes.

how do i use it
 don't be a dick.
 by default, holding alt and shift is required for hotkeys, t is the hotkey for options.
 left click on windows to interact.
 right click on windows to bring up their independent options (if available).

something isn't working
 check your 'gw2 install dir/addons/arcdps/' folder for an arcdps.log, it will appear after you launch and are in character select.
 make sure client graphics setting enable directx9 rendering (deprecated) is disabled.
 if there is no log or error, dll isn't being loaded. it is up to you to find out where your system is trying to load it from.
 if the game crashes or no windows shown on or after character select, an application is interfering (razer cortex).
 if you get an image modified error, an application is interfering (eg bitdefender, citrix 22, razer cortex, groupy).
 if windows are drawn but a hotkey isn't working, an application may have a global hook installed (zoom).
 if you get a file creation error, make sure gw2.exe has read/write permission to the paths mentioned, or run as admin.

reporting crashes, bugs, and suggestions
 if you notice an issue in accuracy, take a screenshot of area skill list beside personal chat list, try and isolate which gear/buff/trait is the cause.
 if you suspect arcdps as the cause of a crash, remove all addons and remove any chainload and try to repeat the crash.
 describe your issue and attach arcdps.log or arcdps_lastcrash.log in the arcdps-issues channel on elite insights' discord.

evtc logging
 pve: starts on player and boss npc in combat or under 100% health, stops when all players exit combat.
 wvw: starts on player vs player damage near self, stops when all squad players exit combat.
 open world: starts on squad player combat enter, follows wvw rules.
 map: starts on joining the instance type map, ends on leaving to character select (may not save on game quit).
 npc id can be found via detail window and looking for species in title, or tooltip in target list after attacking.
 logs are written to 'documents/gw2/addons/arcdps/arcdps.cbtlogs/.../date-time.evtc' by default.

extensions and parsing data
 most extensions and links to parsing tools can be found on elite insights' discord.
 place in gw2 install dir/bin64/ or next to gw2 exe.
 api example code and readme:
 evtc writing code and readme:

 place translation in gw2 install dir/addons/arcdps/, named arcdps_lang.ini.
 /u/Snowy1794: (chinese simplified).
 /u/bluelovers: (chinese traditional).
 creating a translation:

 area is missing buff extension source (eg. signet of inspiration) - not notified by server.
 area is missing percent-based damage (eg. matthias' hadouken) - not notified by server.
 area is missing some siphon damage (eg. food, sigil, some traits) - not notified by server.
 area is missing healing - not notified by server.
 area is missing hard cc - not notified by server.
 area is missing combo finishers - not notified by server.
 area condition damage uses simulated attribute building from gear, traits, and buffs, on a simulated server tick.
 area condition damage scaling in levels 1 to 79 is different from the game's scaling.
 area condition damage on-skill-use procs on animation start instead of on skill use - not notified by server.
 area breakbar damage missing on some breakbar changes initiated by damageless skills.
 area breakbar damage missing for breakbar changes that cause a breakbar to recharge (does not affect deactivate).
 area strike damage notify bubble may cause some events (eg. deimos) to be out of range - not notified by server.
 area strips ignore last-stack stability, cc and strip indistinguishable.
 area skill activation will only count skills which have animations (no shouts, no instants) - not notified by server.
 area overstack and applied do not include ignored stacks (lower than lowest existing stack) - not notified by server.

 sep.14.2022: fixed missing tag/marker events.
 sep.13.2022: re-added detection for all writ buffs.
 sep.13.2022: skip resetting agents stats if recently entered combat (log start).
 sep.13.2022: reset squad log after end of logging rather than at start.
 sep.13.2022: added minions dps percent to details dps tooltips.
 sep.13.2022: fixed minions not counting to squad graphs window.
 aug.27.2022: prevent some exception spam in markers.
 aug.27.2022: fixed some override trait effects always applying.
 aug.24.2022: fixed a crash in previous.
 aug.24.2022: fixed some instances of objective achievements not being hidden.
 aug.24.2022: more consistent behavior saving logs when client leaves map during active log.
 aug.23.2022: d3d9 links removed (rename to d3d9 if required).
 aug.23.2022: prevent non-commandertag markers from being used for setting squad commander (squad center for range filter).
 aug.23.2022: update markers for all agents on squad combat start (instead of agent combat enter).
 aug.23.2022: added thief leeching venoms to simulated siphons.
 aug.23.2022: split minion damage from player damage for same skill id, will appear once in skill list for either (mechanist).
 aug.23.2022: above fixes skills which can have both player and minion sources from counting to only player percentages (eg. crit).
 aug.23.2022: evtc: fixed weapon stow and draw names being swapped, id remains the same.
 aug.23.2022: evtc: cbts_tag buff will be 1 if marker is a commander tag.
 aug.23.2022: api: call mod_release if skipped load on valid extension.
 aug.02.2022: more fixes for aug02 (00:09 server time).
 aug.02.2022: updated for aug02 game build maybe.
 aug.02.2022: fixed font loading using ascii-only path.
 aug.02.2022: increased minimum appearance alpha from 5% to 25%.
 jul.26.2022: added a minimum file size check for extension loading.
 jul.19.2022: if you are using update scripts, make sure they are updated to pull d3d11.dll, d3d9 links will be removed soon.
 jul.19.2022: updated for jul19 game build maybe.
 jul.19.2022: added owner association for other gadgets (rocket turret, sylvari turrets).
 jul.19.2022: added buff table option to always show columns.
 jul.19.2022: prevent window anchor position recursion.
 jul.09.2022: evtc: fixed an oops in idtoguid (ignore in all logs older than this).
 jul.01.2022: prevent secondary npcs from triggering logging start.
 jul.01.2022: fixed area stats bar draw options not applying to advanced stats.
 jul.01.2022: evtc: possibly fixed some players not showing in eotm arena logs.
 jul.01.2022: evtc: added idtoguid for markers (cbts_tag, contentlocal enum 1).
 jul.01.2022: api: parameter 2 in imgui callback will be non-zero if hiding due to combat or ooc.
 jun.29.2022: fixed a possible crash in previous.
 jun.29.2022: evtc: fixed buffinitial event skills not being added to skill table.
 jun.28.2022: updated for june28 game build maybe.
 jun.28.2022: details window left side percent stats no longer includes minions, split and moved to tooltips.
 jun.28.2022: fixed details window title run-in with buttons when npcs selected.
 jun.28.2022: fixed details window and tooltip reduced stat not reading multiplicative reduction properly.
 jun.28.2022: fixed area stats adv stat tooltip not showing all stats when using window-specific exclude.
 jun.28.2022: added area stats options to not draw cleave bar and not draw target bar, removed previous bar draw option.
 jun.28.2022: added missing animation end event for second use ability eg. guardian shield 5.
 jun.28.2022: added missing animation end event for stow weapon.
 jun.28.2022: fixed skill id still being read as u16 in some cases.
 jun.28.2022: changed options window extensions tab row to wrap down.
 jun.28.2022: added option to hide windows when out of combat.
 jun.28.2022: added option to not keep history for anyone but self (enabled by default if 8gb or less).
 jun.28.2022: fixed a leak in log window.
 jun.28.2022: fixed a leak in squad fight history management.
 jun.28.2022: evtc: skill activation start includes target location of effect (see readme).
 jun.28.2022: evtc: added cbts_effect (see readme).
 jun.28.2022: evtc: added cbts_idtoguid (see readme).
 may.25.2022: added minister li cm ids to default.
 may.25.2022: extension loading will explicitly try gw2 install dir (in addition to bin64 and arcdps dll dir).
 may.20.2022: added bar padding style options to stats bars in area stats and buff table.
 may.20.2022: maybe fixed empty space in buff table when using subgroup only.
 may.20.2022: removed dmg-in-last-6sec cap on downs contribution.
 may.20.2022: targeting an attacktarget sets stats target to parent gadget.
 may.20.2022: use team id instead of reaction for wvw log enemy player save condition.
 may.20.2022: evtc: added cbts_tickrate (srcag=tickrate, every 500ms when rate below 20).
 may.20.2022: evtc: added cbts_last90beforedown (dstag=ms since 90pct hp) downs contribution.
 may.20.2022: d3d9 will no longer be supported.
 apr.24.2022: added echo in mai trin cm to default target list.
 apr.24.2022: ignore minions in squad and subgroup buff generation stat.
 apr.15.2022: moved detail window buttons to title bar (like buff table).
 apr.15.2022: moved detail window filter and hidden buff toggle to rt click.
 apr.15.2022: fixed detail window buff line tooltip using invalid values sometimes.
 apr.15.2022: fixed area stats sorting issue since last few.
 apr.15.2022: fixed buff table in hits/polled not counting buffinitial.
 apr.15.2022: improved compatibility with some overlays (gfe).
 apr.15.2022: fixed harmless log warnings when using d3d9.
 apr.09.2022: added buff table options for out to use vs any, vs squad, and vs subgroup (bar highlight remains subgroup).
 apr.09.2022: changed window close sequence to trigger on wm_destroy only.
 apr.09.2022: prevent saving settings if settings never loaded.
 apr.07.2022: fixed failover not being applied in previous in some cases.
 apr.06.2022: added average stacks at hits to details window buff max mouseover (when buff selected).
 apr.06.2022: added failover present hook via vt if no drawing detected on primary method.
 apr.06.2022: fixed buff table adding an extra space after buttons.
 apr.06.2022: prevent buff table drawing buttons if titlebar disabled.
 apr.06.2022: fixed area stats show self top not showing self in some situations.
 mar.30.2022: elite spec keybinds will switch when switching elite specs instead of only on map load.
 mar.30.2022: third time's the charm.