Parse .evtc logs generated by ArcDps addon for Guild Wars 2
parser.py defines the parse_evtc function which parses Guild Wars 2 EVTC binary log files to extract the header, agents, skills and events. The script reads the file using Python’s struct module, defining data structures with NamedTuple for clarity. The EVTC format is a structured binary format with a 16-byte header, followed by agent, skill, and event sections. The header validates the file (EVTC magic number) and specifies versioning. Agents (96 bytes each) describe entities with attributes like profession, name, and team. Skills (68 bytes each) list skill IDs and names. Events (48 bytes each) capture combat actions with timestamps, source/destination agents, and detailed flags. Additional data regarding the evtc format is provided here: EVTC Format
watchdog_fightCount.py Monitors a directory for new zevtc files and then processes team assignments from state change events (is_statechange == 22) and groups agents by team color (e.g., Red, Green, Blue) using a predefined team_colors mapping. For non-squad agents, it counts professions using abbreviated names (e.g., Gn for Guardian). Squad players are parsed separately, extracting character names, accounts, and subgroups. The output lists each team’s total agent count and sorted profession counts, followed by script execution timing.

- Edit the
config.inito ensure it points to your ArcDps WvW log directory and insert a valid Discord Webhook address
[Settings]
ARCDPS_LOG_DIR = C:\GW2Logs\arcdps.cbtlogs\WvW (1)
LOG_DELAY = 2
WEBHOOK_URL = https://discord.com/api/webhooks/yourwebhookdata/yourwebhookhere
- Launch Fight_Watchdog.exe
- Go get bags