arcdps: gw2 dps meter (and general metrics tool)
 WARNING: MODIFYING GUILD WARS 2 THROUGH ANY 3RD PARTY TOOLS IS NOT SUPPORTED BY ARENANET OR NCSOFT.
 THERE IS NO HELP OR WARRANTY. THIS IS ENTIRELY AT YOUR OWN RISK AND YOU ASSUME ALL RESPONSIBILITY
 FOR USING THIS TOOL. IF YOU FEEL THIS PROVIDES GAMEPLAY ADVANTAGE OR AUTOMATION OR BREAKS ANY OTHER
 RULES DO NOT USE THIS.

 IMPORTANT: DO NOT CONTACT ARENANET SUPPORT OR REQUEST HELP ON THE OFFICIAL FORUMS WHILE USING THIS
 MODIFICATION BY ANY MEANS OR UNDER ANY CIRCUMSTANCES EVER.


how does it work
 arcdps hooks client network data (among other helper functions), making it not user agreement friendly.
 however, in the feb 2017 ama, arenanet has granted 3rd party tools permission to collect and display combat stats via means previously not allowed.
 these are runtime modifications only, no changes are made to files on disk.

how do i install, update, or uninstall it
 save d3d9.dll into 'gw2 install dir/bin64/' with the other dlls while the game is not running.
 config will be created in 'gw2 install dir/addons/arcdps/'.
 to update, replace d3d9.dll.
 expect to have to update after major game changes, be surprised when it's not necessary.
 no official auto update but solutions exist.
 to reset, exit gw2 and remove the config folder above.
 to disable/remove, exit gw2 and rename/delete d3d9.dll.

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

about accuracy
 while two sources of data are provided (area = server strike + simulated buff; personal = chat log), neither source should be considered 100%
 accurate. area stats will be missing damage from on-skill-activation triggers and some siphons, chat log stats will be missing some strikes from
 aoe (guardian gs2) and condition ticks vs shroud. damage in both will always include overkill (can't detect) and healing in chat log will never
 include overheal.

can i chain load another wrapper d3d9.dll
 arcdps will attempt to load d3d9_chainload.dll, and if found, redirect the direct3dcreate9 call to it instead of the system library.
 make sure you are using the 64bit version of wrappers (gemfx, sweetfx).
 due to how reshade works, arcdps (like most wrappers) will not natively load reshade.
 you can try using the loader found here for overlay compatibility (unsupported).

evtc logging
 pve: starts on all players in combat when npc with recognized id exists nearby, stops when all players exit combat.
 wvw: starts on player vs player damage near self, stops when all players exit combat.
 open world: no.
 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.
 compression requires powershell with compress-archive.

evtc parsing
 /u/Baaron4: GW2-Elite-Insights-Parser/
 Mickathia.8701: dps.report/
 /u/blahdot3h: GW2RaidarUploader/
 /u/platinummyr: L0G-101086, simpleArcParse
 /u/sejsel: Log Manager
 evtc code and readme: https://www.deltaconnected.com/arcdps/evtc/

realtime api
 place extensions in gw2 install dir/bin64/.
 /u/MarsEdge: https://github.com/MarsEdge/GW2-ArcDPS-Mechanics-Log/
 /u/Artenuvielle: https://github.com/Artenuvielle/GW2-SCT/
 /u/e-scrape-artist: https://buildpad.gw2archive.eu/
 example code and readme: https://www.deltaconnected.com/arcdps/api/

translations
 place translation in gw2 install dir/addons/arcdps/, named arcdps_lang.ini.
 /u/Snowy1794: https://github.com/Snowy1794/Arcdps-translation-Chinese-simplified/blob/master/arcdps_lang.ini (chinese simplified).
 /u/bluelovers: https://github.com/bluelovers/node-gw2plus/blob/master/dist/assets/arcdps/translations/cht/arcdps_lang.ini (chinese traditional).
 /u/ReActif: https://pastebin.com/zgTm94PJ (french).
 Linus The One.7432: https://pastebin.com/TaPLR8FJ (german).
 creating a translation: https://www.deltaconnected.com/arcdps/translations/

limitations
 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 breakbar damage - not notified by server.
 area is missing hard cc context - not notified by server.
 area is missing combo finishers - not notified by server.
 area is missing some gadget owners for damage association - 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 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.

it's not working
 make sure the visual studio 2015-2019 redistributable x64 is installed.
 check your 'gw2 install dir/addons/arcdps/' folder for an arcdps.log (will appear after you launch and are in char select).
 if there is no log, it isn't being loaded. it is up to you to find out where your system is trying to load it from.
 if there is a log, check to see there are no warnings or errors and that the arcdps version isn't old, if it is old, see above.
 if you use the nopatchui switch, d3d9.dll needs to be placed next to gw2.exe.
 if the game crashes on character select, another application may be interfering (eg d3dgear, razer).
 if folders can't be created or settings not saved, make sure gw2.exe has read/write permission to the folder it's installed in.
 if you are playing on linux/wine, add override(s) in winecfg.
 if you have a problem not listed here, try asking on discord.
 if you message me about a problem that is listed here, i will not respond.

reporting crashes, bugs, and suggestions
 if you notice an issue in accuracy, take a screenshot of area skill list beside personal chat list, isolate which buff/trait is the cause.
 if you suspect arcdps as the cause of a crash, copy the crash log and paste it into an unlisted http://pastebin.com/ paste.
 deltaconnected on reddit, deltaconnected.4058/arclyte in game. include as many specifics as possible.

changes
 may.26.2020: updated for may26 game build.
 may.26.2020: fixed keybinds being set to 0 after restarting if unset.
 may.26.2020: prevent game clickthrough sometimes when ui hovered.
 may.26.2020: added screen-relative position options on some windows.
 may.26.2020: added window-relative position options on some windows.
 may.26.2020: added persist cleanse and persist strip to adv sort.
 may.26.2020: changed strip cleanse tooltip volume to use total duration on both.
 may.26.2020: added units to adv sort display.
 may.26.2020: strings: end of as common.
 may.13.2020: server tick extra checks.
 may.13.2020: timer extra checks.
 may.13.2020: prevent simulation crash.
 may.13.2020: fixed resistance-like buffs not ignoring conditions (eg chill for animation step).
 may.13.2020: evtc: added cbts_error for arcdps errors.
 may.06.2020: possibly fixed logend events.
 may.06.2020: above possibly fixes graph time broken if left instance in combat.
 may.06.2020: updated torment simulation for changes in a recent game build.
 may.06.2020: fixed power-based formulas simulating higher than should.
 may.06.2020: fall back to game agent array for unknown agents, possibly broken spawn evs.
 may.06.2020: added association for engineer turrets.
 may.06.2020: evtc: added cbts_breakbarstate/percent events (no damage, only state).
 may.06.2020: evtc: changes to cbts_buffformula to include some additional data.
 may.01.2020: fixed traits with overrides being added twice.
 may.01.2020: prevent keybinds from getting overwritten if none were loaded.
 apr.28.2020: updated for apr28 game build.
 apr.28.2020: filtered duplicate sourceless skill activation events since some game update.
 apr.28.2020: fixed buff overstack including current added stack in simulation since some game update.
 apr.28.2020: fixed self stats adding damage vs barrier instead of removing it.
 apr.28.2020: fixed a rare crash on squad combat.
 apr.28.2020: fixed a rare crash in damage simulation since previous.
 apr.28.2020: added detection for mode split traits.
 apr.28.2020: merge wvw area logging into pve area logging logic.
 apr.28.2020: wvw area logging changed to use proximity to self instead of squad center.
 apr.28.2020: fixed metrics tick rate to display 0 in red given the state of skill lag in wvw.
 apr.28.2020: added manual implementation for battle scars siphon (sensitive to skill lag, no target).
 apr.28.2020: added manual implementation for assassin facet siphon.
 apr.28.2020: added manual implementation for vampiric presence siphon.
 apr.28.2020: added manual implementation for vampiric strikes siphon.
 apr.28.2020: fixed stat pool used for soulcleave sim.
 apr.28.2020: added dodge uptime line to details.
 apr.28.2020: changed protected percent to any hit above 33 damage reduction.
 apr.28.2020: evtc: fixed stat pool used for role identification.
 apr.28.2020: evtc: fixed effect stacking type not being set in buffinfo.
 apr.28.2020: evtc: pad62 in buffinfo is probable_resistance.
 apr.28.2020: strings: end of as common.
 apr.16.2020: improved effect application order.
 apr.16.2020: improved trait application order.
 apr.16.2020: improved skill stepping.
 apr.16.2020: revert double confusion proc from previous.
 apr.16.2020: revert env confusion proc from previous.
 apr.16.2020: better handle area stats hiding hotkey.
 apr.14.2020: possibly updated for apr14 game build.
 apr.14.2020: sim timing changed to use estimated server tick (skill lag compensation).
 apr.14.2020: damage changed to use local counter, from time remaining.
 apr.14.2020: improved stat rounding.
 apr.14.2020: improved condition sim behavior for expiry mid server tick.
 apr.14.2020: added experimental confusion trigger on environment cues.
 apr.14.2020: added experimental confusion trigger on likely-proc-twice skills.
 apr.14.2020: fixed handling of under 1s duration damaging buff.
 apr.14.2020: fixed one/another cause of area stats flicker.
 apr.14.2020: fixed lastcrash not always creating.
 apr.14.2020: added additional info to crash logs.
 apr.14.2020: moved ueh filter to ui/interface.
 apr.14.2020: moved keys to ui/interface.
 apr.14.2020: moved font size to ui/advancedstyle (still needs restart, font).
 apr.14.2020: moved log save path to ui/logs.
 apr.14.2020: moved boss ids to ui/logs.
 apr.14.2020: moved buff table ids to buffs/rtclick.
 apr.14.2020: moved history length to area/rtclick.
 apr.14.2020: added option to hide during combat (same windows hiding in char sel).
 apr.14.2020: removed default ini, all can be set from arcdps (some may be reset).
 apr.14.2020: removed on restart restriction on some options.
 apr.14.2020: strings: bottom of as_common.

download
 x64: current