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 before it is overwritten (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/', additional ini options can be found in the downloads example.
to update, replace d3d9.dll.
expect to have to update after balance changes (accuracy) and around significant game feature additions (crashes).
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.
alt shift t is the hotkey to bring up the options window.
most windows are hidden on character select and map load.
interaction is tied to l/rt click and mouseovers.
rt click on windows brings up their independent options (if available).
healthbar uses old ui system and has to be moved with modifiers+rt click drag.
healthbar percent can be modifiers+l clicked to open detail window on target.
area stats stat format and title bar format can be customized, check option tooltip.
area stats player names can be clicked on to open details.
details graph can be left click dragged to select a range, left click again to reset.
while two sources of data are provided (area = server direct + simulated buff; personal = chat log), assuming the chat log is "correct" is
not always correct. area stats may be missing some confusion on-activation, but it will not be missing hits from some fast strike skills
(guardian gs2) or condition ticks (vs shroud). consider also that there is no overkill or overheal being reported - if 10 players autoattack
an almost-dead target at the same time, only a single player will get credit; if 10 players have conditions ticking on that same target,
all 10 will get credit. both numbers should be close, but a 100% accurate representation of your damage or healing is not possible.
without modifiers held:
esc: close non-permanent windows.
with modifiers held (default alt+shift):
b: toggle buff table visibility.
c: toggle area stats visibility.
h: toggle global hide/unhide.
o: reload (some) config.
s: toggle detail window on target.
t: toggle options visibility.
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).
available in instanced content and wvw.
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 squad center, stops when all players near center exit combat.
npc id can be found via detail window and looking for species in title, or own target list (mouseover) after attacking.
logs are written to 'documents/gw2/addons/arcdps/arcdps.cbtlogs/.../date-time.evtc', depending on options.
compression requires powershell with compress-archive, could be windows10 only.
/u/platinummyr: L0G-101086, simpleArcParse
evtc code and readme: https://www.deltaconnected.com/arcdps/evtc/
place extensions in gw2 install dir/bin64/.
example code and readme: https://www.deltaconnected.com/arcdps/api/
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/
area is missing buff damage (eg. conditions, siphons) - not notified by server.
area is missing buff extension (eg. rev glint nature active) - source not notified by server.
area is missing percent-based damage (eg. matthias' hadouken) - not notified by server.
area is missing gadget damage association (eg. engineer turrets, sylvari turrets) - owner not notified by server.
area condition damage uses simulated attribute building from gear, traits, and buffs.
area condition damage uses simulated timing and accumulate-add model.
area condition damage scaling is different from the game's scaling - affects accuracy at sub-80 zones.
area condition damage may be off if the fight contains long periods of "skill lag" - represented by r in metrics.
area condition damage will not scale to 50% for wvw cannons/mortars - reduction undetectable.
area condition damage from confusion active procs on animation start instead of on skill use - not notified by server.
area condition timer will be off on characters that come into range with a timer-affecting buff already on them.
area physical damage notify bubble may cause some results (eg. deimos) to be out of range - not notified by server.
area physical damage may be missing source or target (eg. range), will not proc siphons or on-hit.
area strips ignore last-stack stability - cc and strip indistinguishable.
area skill activation will only count skills which have animations, not shouts or instants - not notified by server.
area overstack and applied do not include ignored stacks (lower than lowest existing stack) - not notified by server.
area healing and absolute buff damage are presently impossible - not notified by server.
area breakbar damage is presently impossible - not notified by server.
area combo field finishers are presently impossible - not notified by server.
area knockback, knockdown, pull, and blowout have no origin context - not notified by server.
its not working
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 date 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).
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 reddit.
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 details skill list beside personal skill list, isolate which buff/trait is the cause.
make sure the reason behind the inaccuracy is not among the limits above.
if you suspect arcdps as the cause of a crash, change (or add) 'ueh_filter=11111' under [main] in arcdps.ini where 11111 equals game build.
send me a copy of arcdps.log or arcdps_lastcrash.log, whichever has more recent data, before restarting the game.
when/if the game crashes again with an anet prompt, copy all the text in it.
if can't copy, open '%appdata%/guild wars 2/arenanet.log', scroll to the bottom, make sure the date is correct, copy from there.
paste everything below "*--> Crash <--*" in an unlisted http://pastebin.com/ paste.
paste the contents of arcdps.log or arcdps_lastcrash.log, whichever is more recent, into the above before restarting the game.
send me the link - deltaconnected on reddit, deltaconnected.4058/arclyte in game. include as many specifics as possible.
use the above to let me know about other bugs and suggestions. i may not always respond but i will at least read.
nov.19.2019: updated for nov19 game build (maybe).
nov.19.2019: evtc log start on combat enter use deferred instead of instant.
nov.19.2019: added option to disable bars in area stats.
nov.19.2019: added bars to buff table (and option to disable).
nov.19.2019: added padding and title style options to buff table.
nov.19.2019: buff table values multiplied by 100 for a bit more space (no .).
nov.19.2019: buff table use generic skill tooltip.
nov.19.2019: fixed buff table to use same end time as area stats.
nov.19.2019: fixed target summary in detail not calculating crit etc.
nov.19.2019: strings: end of as common.
nov.10.2019: skill timing additions set properly as milliseconds, oops.
nov.07.2019: added twisted castle to logging defaults.
nov.07.2019: stats calc changed to use last damage for end timing.
nov.07.2019: added area stats option to return to combat duration.
nov.07.2019: extensions will also be loaded from arcdps' dll path.
nov.07.2019: fixed timing things from last build.
nov.07.2019: fixed keybinds not being loaded on first map load.
nov.07.2019: prevent loading keybinds if profession still unknown.
nov.07.2019: modified skill cancel guess to use animation sim (past end-start).
nov.07.2019: skill animation sim will use native formulas, capped at 33% inc.
nov.07.2019: added detection for skills not affected by attack speed change.
nov.07.2019: evtc/api: actv_quickness is no longer used in is_activation.
nov.07.2019: evtc/api: buff_dmg in actv reset/cancel/fire is scaled duration.
nov.07.2019: evtc/api: buff_dmg in actv start is time control returned to agent.
nov.07.2019: strings: end of as common.
oct.29.2019: updated for oct29 game build.
oct.29.2019: added support for gw2 addon loader.
oct.17.2019: fixed a crash that could happen if extras or templates dll existed.
oct.17.2019: removed build templates.
oct.17.2019: fixed av exception on log start/stop.
oct.17.2019: evtc: fixed missing logend.
oct.10.2019: fixed vs target since game build.
oct.10.2019: defunc code cleanup.
oct.10.2019: extras merged into main arcdps dll.
oct.01.2019: updated for oct01 game build.
oct.01.2019: fixed stats not refreshed on weapon swap.
oct.01.2019: fixed detail default direction and att to actually work.
oct.01.2019: fixed handle leak (again).
sep.18.2019: updated for sep17 game build.
sep.18.2019: values in boss id key postfixed with g will be treated as gadget.
sep.18.2019: evtc/api: skillid in cbts_stackactive is buff skillid.
sep.18.2019: buildtemplates: fixed a crash when using always draw windows.
sep.01.2019: updated for recent ish win10 update.
aug.30.2019: updated for aug30 game build.
aug.27.2019: updated for aug27 game build... maybe. crashes/breaks possible.
aug.27.2019: evtc: prevent missing initial events for pos etc.
aug.13.2019: updated for aug13 game build.
aug.01.2019: fixed a rare crash that could happen on player squad rejoin.
aug.01.2019: updated for jul30 game build.
jul.16.2019: adjusted alignment on area stats tooltip without skills/targets.
jul.16.2019: adjusted text gen on area stats to prevent stats flicker.
jul.16.2019: added option to reset persistent on trait/gear change (area adv).
jul.16.2019: fixed team detect since some game update.
jul.16.2019: ignore barrier in self stats aggregate (maybe).
jul.16.2019: changed s hotkey to open detail on target (self if none), from self.
jul.16.2019: removed dependency on d3dx9 (healthbar) for my sanity.
jul.16.2019: changed build against msvc++ 2015 (v140), static.
jul.16.2019: changed build against winsdk 10.0.
jul.16.2019: combatapi: added logstart/logend statechange for matching area hist.
x64: current (20191119-171638)