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
- 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
/ascommands kept; minimap button dropped in favor of the WM dashboard
- 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
typein instance detection
- 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
- 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
- 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
- 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
- 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)
- 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)
- 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)
- 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