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

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.
 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.
 if nothing is drawn make sure client graphics setting enable directx9 rendering (deprecated) is disabled.
 if the game crashes at character select, other application is interfering (razer cortex, razer synapse).
 if you get an image modified error, other application is interfering (eg bitdefender, citrix 22, razer cortex, razer synapse, groupy).
 if windows are drawn but a hotkey isn't working, other application may have a global hook installed (zoom).
 if you get a file creation error, make sure gw2 has read/write permission to the paths mentioned, or run as admin.
 if you notice an issue in accuracy, compare area skills vs self skills, try and isolate which gear/buff/trait may be causing it.
 if you suspect arcdps as the cause of a crash, remove all addons and remove any chainload and try to repeat the crash.
 check the pinned messages in the arcdps-issues channel on elite insights' discord.
 otherwise, describe your issue and attach arcdps.log or arcdps_lastcrash.log or event viewer 'windows error reporting' log in the above.

evtc logging
 pve: starts on player combat enter, boss set by damage event on boss, stops when all players exit combat.
 wvw: starts on player vs player damage, stops when all squad players exit combat.
 map: starts on joining instance type map, ends on leaving to character select.
 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.

 nov.12.2022: added failover to system d3d11 when loaded externally (fix launch crash).
 nov.12.2022: added hit-by-squad before setting agents with markers as targets.
 nov.12.2022: moved multiple client check to after version check.
 nov.12.2022: added hash check to downloaded arcdps file.
 nov.12.2022: fixed temporary extension update not being cleaned up in some cases.
 nov.12.2022: fixed previous trait effect applying twice fix causing some to not be applied at all.
 nov.11.2022: added gw2 client count check (updater disabled on multibox).
 nov.11.2022: added validation on retrieved extension before replacing.
 nov.11.2022: added more informative errors (and error handling on crt error in updater).
 nov.11.2022: fixed another reason process may not restart after update.
 nov.11.2022: replaced lost underscore in extension loading warning filter.
 nov.11.2022: "testing" the updater (fixed timezone conversion, possible copy fail on slow exit).
 nov.11.2022: added ids for old lions court strike to default list.
 nov.11.2022: changed version check to check against md5 and file date.
 nov.11.2022: changed version check settings key, enabled by default.
 nov.11.2022: added rechecking for updates every 2 minutes if missed patterns.
 nov.11.2022: added button to update and restart client in version check window when available.
 nov.11.2022: added option to check for extension updates (if supported).
 nov.11.2022: added option to area stats to hide units.
 nov.11.2022: fixed rune of the soulbeast bonus to apply to any non-clone pet instead of ranger.
 nov.11.2022: changed extension loading to be done async to client threads.
 nov.11.2022: changed frame drawing detection for alternate draw hook switch.
 nov.11.2022: added experimental option to treat npcs with markers as encounter npcs (no logs).
 nov.11.2022: removed drawbridge, added mcleod (16253) as siege the stronghold npc.
 nov.11.2022: simplified logging start to always start on first squad player combat enter.
 nov.11.2022: simplified displayed stats reset to happen with first hit on boss npc.
 nov.11.2022: at least one damage event including the boss npc is required to save the log.
 nov.11.2022: evtc: logging changes will cause pre-events to be included for fights such as xera.
 nov.11.2022: evtc/api: added CBTS_LOGNPCUPDATE, like logstart but when npc changed from generic.
 nov.11.2022: dll: added export get_update_url, updated documentation in /api/.
 oct.21.2022: fixed default fractal bosses not generating logs.
 oct.19.2022: updated for oct19.
 oct.18.2022: fixed stripping characters from full path instead of log name in first oct18 build.
 oct.18.2022: fixed secondary log ids being able to start logging in some cases (zane, narella, one eye).
 oct.18.2022: fixed logs with invalid characters in path not saving (invalid characters stripped).
 oct.18.2022: removed defunc option lock target npc to logging target.
 oct.18.2022: removed unused lock target logic.
 oct.18.2022: changed vs target without an encounter target to persist until a new agent is targeted.
 oct.08.2022: fixed traits only applying first effect since some game build.
 oct.08.2022: changed calculation order of trait effects to maybe better match game.
 oct.08.2022: changed calculation order of buff effects to maybe better match game.
 oct.07.2022: decoupled map logging from boss logging, adjusted tooltip to indicate increased memory use.
 oct.07.2022: fixed map logging name not being set since some update.
 oct.07.2022: fixed resistance not negating effect of vulnerability.
 oct.07.2022: fixed chaotic potency and ambidexterity weapon bonus applying twice.
 oct.07.2022: fixed stat to stat conversion only applying one of the effects since previous update.
 oct.07.2022: improved options keybind setting reliability.
 oct.07.2022: added option to apply zero/unbound client keybinds, added tooltip warning of possible resets.
 oct.07.2022: added about face to client keybinds saved.
 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).