Watching Machine

Auto Combat Logger, Keyword Monitor, Mail & Trade Logger, Boost Parser, Warcraft Logs Lookup Tool, Auto Invite, Raid Debuff Tracker, Pvp Enemy Tracker, and Guild Recruiting Tool

File Details

watchingmachine.zip

  • R
  • Jul 16, 2026
  • 109.47 KB
  • 23
  • 2.5.6+1
  • Classic TBC

File Name

watchingmachine.zip

Supported Versions

  • 2.5.6
  • 2.5.5

Version 2.9

  • New module: ArmorySnap — the standalone ArmorySnap addon is now integrated as a Watching Machine module
    • Passive raid gear/talent snapshots with a paper-doll browser, snapshot retention dropdown, and manual snapshots
    • Includes the v1.2 scan-speed overhaul: event-chained inspects capture a full 25-man in ~15–20s (the old fixed-tick scanner took 75+ seconds); out-of-range retry 120s → 15s
    • Reuses ArmorySnapDB, so archives from the standalone addon appear automatically
    • Detects the standalone addon and disables itself if both are running (prevents inspect conflicts)
    • Standalone /as commands kept; minimap button dropped in favor of the WM dashboard

Version 2.8

  • Updated for TBC Classic Anniversary patch 2.5.6 (Interface 20506, Classic Era 11508)
  • Removed stale Wrath/Cata interface declarations from the TOC (those clients no longer exist)
  • WhisperLogs: WCL URLs now point at fresh.warcraftlogs.com — the partition for Anniversary realms (classic.warcraftlogs.com is the old 2021 progression era); previously saved entries are migrated on login
  • MailLogger: fixed duplicate log entries when bulk-pulling mail
    • Take hooks logged on every ATTEMPT — bulk-pull addons retry the same slot until the server responds, creating one entry per retry
    • Mail data was read from a snapshot cache that went stale when mail deletion shifted inbox indices, logging the wrong (already-logged) mail's data
    • Hooks now read the inbox live at take time, with a per-slot dedupe fingerprint that resets whenever the inbox actually changes — identical mails from the same sender still all log correctly
    • "Open All Mail" button (AutoLootMailItem) is now hooked too; those pulls were previously never logged
  • New module: Buff Check — full raid buff audit on every ready check
    • Announces missing buffs to raid chat when YOU start the ready check
    • Reports locally (only you see it) when someone else starts it
    • Checks Fortitude, Mark of the Wild, Arcane Intellect, Paladin Blessings, and optional Divine Spirit, Shadow Protection, Well Fed, and Flask auras
    • Skips buffs whose providing class isn't in the group; skips offline/dead players
    • PallyPower integration: checks each player against their assigned blessings (class + single-target) when PallyPower is configured, reading PallyPower's own runtime tables so it tracks that addon's versions and localization; graceful fallback to the generic check otherwise
  • AutoLogger: Advanced Combat Logging guard
    • Verifies the advancedCombatLogging CVar on login and when entering raids
    • Re-enables it automatically if it got turned off (WCL uploads need it)
    • New settings checkbox + live CVar status in the panel
  • Performance pass across the addon:
    • KeywordMonitor: result rows are now pooled and reused — previously every row was recreated once per second while the window was open, permanently leaking frames
    • WhisperLogs: entry rows pooled and reused instead of recreated on every whisper/refresh
    • MailLogger: inbox re-cache now uses a single debounced timer instead of creating a new frame on every MAIL_INBOX_UPDATE event
    • DebuffTracker: target debuff scanning now uses precomputed name/spellID lookup tables instead of nested linear searches (runs 5x/second)
    • Core: module color table hoisted out of the print functions (was rebuilt on every chat message)
  • AutoLogger: fixed local variable shadowing the global type in instance detection

Version 2.7

  • DebuffTracker: Boss pull announce — "First hit: Playername on Gruul"
    • Detects first player in group to hit a boss via combat log
    • Configurable channel: Say, Party, Raid, /rw (cycles on click)
    • Follows leader-only announcement rules (no duplicate spam)
    • Resets per encounter
  • DebuffTracker: Healing Debuff category marked optional in auto-detect
    • Auto-detect won't enable it; user must opt in manually
    • Shows "(optional)" tag in settings, checkbox stays interactive
  • PvP Tracker: GUID-based player validation + faction checks
    • Fixed boss abilities (e.g. Shade of Aran Flame Wreath) being logged as PvP kills
    • Player GUIDs validated via "Player-" prefix (NPCs start with "Creature-")
    • NPC-controlled entities rejected via COMBATLOG_OBJECT_CONTROL_NPC flag
    • UnitFactionGroup check on unit detection and nameplate scanning

Version 2.6

  • Removed guild restriction — addon is now open to all players
    • No longer requires "Socks and Sandals" guild membership
    • Officer rank gating removed — all modules including Recruiter available to everyone
    • Removed security check retry loop, /wmachine recheck command
    • Simplified login flow: modules initialize immediately (no guild info wait)
    • 160 lines of security scaffolding removed

Version 2.5

  • Global verbose chat mode: low-priority messages hidden by default, toggle in WM Settings
    • Sync status, roster updates, leaderboard ticks, and diagnostics moved to VerbosePrint
    • High-priority alerts (revenge kills, enemy detected, kill notifications, errors) always visible
    • Verbose messages render in gray to distinguish from important alerts
  • DebuffTracker: alert coordination — only raid leader announces missing debuffs to chat
    • "Assistants can announce" checkbox for raids where leader doesn't have addon
    • All players still see alerts locally regardless of role
  • DebuffTracker: encounter-aware alerts — fixed pre-pull, post-kill, and retarget re-fire bugs
  • DebuffTracker: dead caster suppression — silences alerts when all casters for a debuff are dead
  • DebuffTracker: raid alerts force-disabled on upgrade (re-enable in settings after updating)
  • DebuffTracker: fixed IsBossUnit crash when targeting bosses in TBC Classic
  • GuildInvite: explicit leader/assist permission check before processing invite requests
  • PvP Tracker: guild sync and leaderboard now default to on for new installs
  • PvP Tracker: removed per-module "Show sync messages" checkbox (replaced by global verbose mode)
  • Full addon audit: verified no forward-reference or retail-only API issues across all 10 files

Version 2.4

  • DebuffTracker: alert coordination — only raid leader announces to chat (prevents duplicate spam)
    • "Assistants can announce" checkbox for raids where leader doesn't have the addon
    • All players still see alerts locally regardless of role
  • DebuffTracker: encounter-aware alerts — fixed pre-pull, post-kill, and retarget re-fire issues
    • Checks UnitAffectingCombat(target) so unengaged bosses don't trigger alerts
    • Tracks bossDeadGUID to suppress alerts after boss dies
    • alertedThisPull prevents same category from re-firing during an encounter
  • DebuffTracker: dead caster suppression — silences alerts when all casters for a debuff are dead
    • Scans raid for alive members matching class+spec needed for each debuff category
    • 2-second cache to avoid scanning 40 members every tick
    • Battle rez resumes alerts within 2 seconds
  • DebuffTracker: raid alerts force-disabled on upgrade (re-enable in settings)
  • DebuffTracker: fixed IsBossUnit crash when targeting bosses in TBC Classic
    • IsBossUnit() is a retail-only global; local function was defined after first call site
  • GuildInvite: explicit leader/assist permission check before processing invite requests
    • Solo: can invite; Party: must be leader; Raid: must be leader or assistant
  • PvP Tracker: guild sync and leaderboard now default to on for new installs
  • Full addon audit: verified no forward-reference or retail-only API issues across all 10 files

Version 2.3

  • PvP Tracker: Guild Sync UI controls (enable, show messages, auto-request, send/request buttons)
  • PvP Tracker: revenge kill announcements ("X has slain Y! Z has been avenged!")
  • PvP Tracker: KOS Leaderboard with point system (1pt per KOS kill, synced across guild)
  • PvP Tracker: leaderboard window with ranked list, bar graph, gold/silver/bronze medals
  • PvP Tracker: three announcement modes (Off, Hourly top 3, On Lead Change)
  • PvP Tracker: outgoing kill detection via PARTY_KILL and damage attribution
  • PvP Tracker: leaderboard points included in Hello handshake on login
  • Guild Invite: ignore player's own messages (won't self-invite when typing trigger words)

Version 2.2

  • Debuff Tracker: raid composition auto-detection with talent spec awareness
  • Debuff Tracker: missing debuff raid alerts with configurable delay and cooldown
  • Debuff Tracker: removed WotLK abilities (Savage Combat, Infected Wounds)
  • Debuff Tracker: added spec requirements to debuff definitions (Shadow Priest, Arms Warrior, etc.)
  • Whisper Logs: auto-detects server, per-player realm tracking for correct WCL URLs
  • Whisper Logs: proper cross-server player support via "Player-Realm" parsing
  • Guild Invite: fixed C_PartyInfo retail API calls for TBC Classic (uses global ConvertToRaid/InviteUnit)
  • Guild Invite: auto-convert to raid now only triggers on 6th invite (won't break 5-man parties)
  • Guild Invite: pcall-protected group API calls (safe during arena/BG transitions)

Version 2.1

  • Added PvP Enemy Tracker module (world PvP kill logging and proximity alerts)
  • Added global theme system (ElvUI/Tukui skin for entire addon)
  • Added Settings panel accessible via dashboard button and /wmachine settings
  • Added built-in error logging with stack traces (/wmachine errors)
  • Added per-debuff selection to Debuff Tracker
  • Moved theme system from DebuffTracker to Core.lua (all modules now themed)
  • Auto-detects ElvUI/Tukui on first load and selects matching theme
  • Fixed module initialization for existing installs (new modules merge into saved moduleStates)

Version 2.0

  • Updated for TBC Classic Anniversary Edition
  • Added Guild Invite module (auto-invite on "inv" trigger)
  • Added Debuff Tracker module (raid debuff monitoring with priority)
  • Added TBC dungeons to Services Parser
  • Minimap button now freely movable anywhere on screen
  • Fixed GetInboxItem API for TBC (itemID return value)
  • Added Test Message button to Recruiting Tool
  • Added nil safety checks throughout all modules