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).
 you can try 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 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 cortex).
 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.
 note that arcdps replaces the client crash reporter to prevent crashes from being sent to anet, this does not mean arcdps caused a crash.
 deltaconnected on reddit, deltaconnected.4058/arclyte in game. include as many specifics as possible.

changes
 dec.01.2020: added breakbar damage to combat time update triggers.
 dec.01.2020: removed squad near filter on instanced content (eg tag is q1 kite).
 dec.01.2020: evtc: added barrier percent statechange.
 dec.01.2020: api: fixed src-less statechanges not happening (logstart, logend, etc).
 nov.17.2020: updated for nov17 game build maybe.
 nov.17.2020: added timer variance check on buff simulation.
 nov.17.2020: added breakbar damage.
 nov.17.2020: added defaults options for showing breakbar damage in logger and details.
 nov.17.2020: added breakbar damage total to details side summary.
 nov.17.2020: added breakbar damager per sec persisting and squad current to advanced sort.
 nov.17.2020: strings: csk_common_breakbar, pan_logger_cbtbreakbar, summary_breakbar.
 nov.17.2020: evtc and api: added cbt result 10, cbtr_breakbar (value = breakbar damage dealt).
 nov.06.2020: fixed handling mixed normal and legendary runes (previously treated separate).
 nov.06.2020: fixed rune changes not triggering stats recalc.
 nov.06.2020: better implement pack alpha (dont use minions).
 nov.06.2020: changed trait calcualtion to absolute values first percentage values second.
 nov.06.2020: fixed combat floater suppression in pvp maybe (remap to yet another event).
 oct.29.2020: fixed resize crash in previous.
 oct.28.2020: revert change that reset windows positions.
 oct.28.2020: save window positions after client shutdown in addition to window change.
 oct.27.2020: updated for oct27 game update.
 oct.27.2020: fixed area stats group historical current not resetting all playes in some cases.
 oct.27.2020: fixed area stats [+] 0 handling.
 oct.27.2020: workaround for area stats main and [+] 1 hashed id collision.
 oct.27.2020: fixed an issue with area stats that could interfere with window-relative options.
 oct.13.2020: updated for oct13 game build maybe.
 oct.13.2020: better no selection handling to relative window position (default to tl to tr).
 oct.13.2020: added option to reset advanced style to defaults.
 oct.13.2020: changed details buff graph lines (grey apply, yellow ticks, red invulns or overstacks).
 oct.13.2020: details window changed to draw aggregate line over selected skill as default.
 oct.13.2020: strings: bottom of common as.
 oct.01.2020: fixed heap corruption when using advanced style since previous.
 sep.29.2020: moved combat time in area stats left of name for easier comparative glancing.
 sep.29.2020: closing details windows will not reset historical for player if set from area stats.
 sep.29.2020: boss log start will auto reset historical for all players.
 sep.29.2020: opening detail window from buff table player click will auto set details to buffs.
 sep.29.2020: opening detail window from buff table buff click will auto set to filter to that buff.
 sep.29.2020: detail window graphs fixed not showing special cases on in.
 sep.29.2020: added detail window option to draw damage line graph overtop skill/buff bar graph.
 sep.29.2020: added area stats display option to also show self on top.
 sep.29.2020: added area stats display option to hide self from main list.
 sep.29.2020: added buff table display option to also show self on top.
 sep.29.2020: added buff table display option to hide self from main list.
 sep.29.2020: buff table changed default max char limit from 23 to 19 (oops) and scaled to w.
 sep.29.2020: added buff table "defensive" buff tab (rt click, defensive).
 sep.29.2020: use builtin for advanced style color picker (click drag).
 sep.29.2020: added advanced style colour for previously hardcoded area stats values.
 sep.29.2020: added advanced style colour for previously hardcoded buff table values.
 sep.29.2020: added advanced style colour for previously hardcoded stat list values.
 sep.29.2020: appearance font size will apply to default font as well (restart still required).
 sep.29.2020: changed scroll lines with mousewheel from 5 to 3.
 sep.29.2020: d3d9 dll will have build date set in file/product version.
 sep.29.2020: strings: end of common as, updated appearance/font text.

download
 x64: current