PvPWatch-1.0.14.zip
What's new
PvP Watch 1.0.14
Cumulative changes since 1.0.11
Early Warnings and Enemy Tracking
- Fixed missing sighting alerts for enemies already stored in the database. Warnings now follow the current encounter rather than only the first-ever sighting.
- Added a configurable encounter re-arm interval. Returning enemies can trigger another warning after a sufficient observation gap, while continuous contact and brief nameplate flickering do not repeatedly trigger alerts.
- Exposed the existing KoS once-per-session policy and repeat cooldown in the Alerts settings.
- Fixed received sighting reports not triggering alerts when Shared intel alerts was enabled. A later local sighting can produce a separate confirmation warning.
- Prioritized warning decisions before outgoing reports and table refreshes. Missing optional information, such as class or guild, no longer delays an otherwise identifiable contact.
- Added bounded, on-demand retries for newly available unit tokens with incomplete identity data. Retries stop when the unit disappears, changes identity, the source is disabled, or tracking is paused.
- Improved acquisition when unit names, faction information or targetability become available after the initial event.
- Revalidated cached identities and contact expiry before treating a player as currently detected.
- Prevented display-widget fallbacks from recording merely targetable friendly or neutral players as hostile sightings.
New and Expanded Experimental Scanners
- Added PvP bounty map reports: an optional source for enemy players marked by Blizzard's native open-world PvP bounty system. These are shown as map reports, not local sightings.
- Bounty scanning filters out unrelated markers, treasures, rares, friendly players and unsuitable or unreadable reports. Processing and retries are bounded, and an idle scanner does not continuously poll.
- Added Cast-start contact hints: an optional source that can identify a contact from a readable cast-start event. A cast start does not create a cooldown estimate or claim that a spell hit or targeted you.
- Expanded pet-owner detection to supported target, focus, mouseover and soft-target pets in addition to nameplates. Owner reports remain indirect and are invalidated when the supporting pet or token changes.
- Expanded target-chain detection with additional mouseover and soft-target references and prioritized, bounded rotation through nameplate target chains.
- Added individual controls for the new sources under Tracking & Sources → Experimental Scanning. PvP bounty and cast-start scanning are disabled by default.
- Improved source shutdown, event cleanup and failure reporting. Failures in the new sources pause the affected source without resetting saved settings or player data.
Contact States, Counters and Positions
- Reworked contact counts to distinguish Local, KoS, Reports and Lost. Historical records, expired evidence and stale token caches no longer inflate current local counts.
- Classified group targets, pet-owner hints and target chains as indirect evidence instead of proof of a nearby local enemy.
- Kept remote, indirect and map reports separate from local contact and Lost-state handling. An indirect hint does not reset a local Lost cycle.
- Distinguished your observation position, another player's reported observation position and native Blizzard marker coordinates.
- Updated tooltips and
/dpvp whereto show position origin and age. Historical coordinates remain available as last-known information rather than appearing current. - Suppressed stale range information on remote, indirect and map reports. Current local range text requires a fresh local sample.
- Corrected the age of positions received in delayed sighting messages. Heartbeats without position data no longer make old coordinates appear newly observed.
- Renamed the Nearby counter option to Contact counts and updated its tooltip without resetting the existing setting.
Shared Intel and Communication
- Fixed addon-message registration and sending checks so unsuccessful sends and numeric error results are no longer treated as success.
- Failed sends no longer consume the suppression interval intended for successfully transmitted messages.
- Strengthened validation of sender identity, group membership, spell IDs, timestamps, finite numeric values, durations, remaining time and enabled filters.
- Added explicit map and instance context to outgoing cooldown reports. Mismatching context is rejected, and context-less older reports require supporting evidence.
- Validated sharing context before updating player metadata or positions, preventing unrelated reports from overwriting local information.
- Accounted for transmission delay in sighting lifetimes and cooldown reports. Messages that expire in transit cannot renew an active contact.
- Protected fresh local observations from near-simultaneous forwarded duplicates and less reliable remote information.
- Preserved communication prefixes and the existing protocol generation. Stricter validation may reject incompatible or insufficiently verified reports from older versions.
Cooldowns and Team Tracking
- Fixed raid-member detection, restoring tracking for valid raid units that were incorrectly rejected.
- Preserved cooldown and interrupt timers for remaining group members during roster changes. Incomplete roster data no longer triggers a blanket timer reset.
- Removed automatic minimum-interval cooldown learning. Charges, resets and duplicate observations no longer silently shorten the base cooldown estimate.
- Deduplicated the same cast observed through multiple unit tokens or related events.
- Fixed restoration of saved enemy cooldowns after a full client restart by using absolute expiry timestamps rather than the previous session's time base.
- Discarded expired, invalid, previously shortened or outdated temporary estimates instead of restoring misleading timers.
- Corrected base estimates for Kidney Shot: 30 seconds, Counterspell: 25 seconds and Psychic Scream: 40 seconds.
- Removed Netherwalk and the former standalone Renewing Blaze use from the active cooldown catalog.
- Improved consistency between enemy cooldown lists and the target-only cooldown bar.
- Clearly labeled cooldown expiry and readiness indications as estimates in tooltips, messages, options and team displays.
Targeting and General Stability
- Improved realm-qualified identity matching, including the target-only cooldown bar, to prevent confusing players with identical names on different realms.
- Protected unrelated user macros from being overwritten by a name collision. Only identified PvP Watch macros are updated; identical legacy contents can be reused unchanged.
- Rechecked unit identity and request age before applying asynchronous Inspect results, preventing information from being assigned to the wrong player after a target change.
- Avoided clearing shared Inspect state belonging to another consumer.
- Fixed UI updates becoming permanently blocked after an exception. Update guards are released while the original error remains reportable.
- Applied the main enabled state and activity filters consistently to recording, scans, cooldowns, communication and target displays, while retaining necessary cleanup.
- Rejected invalid, non-finite and restricted values before identity or timer processing.
- Corrected the modern PvP scoreboard import path. Scoreboard data remains metadata and does not create local sightings.
- Fixed experimental scanner failures being overwritten by a generic successful status.
- Allowed normal keyboard input to pass through an open context menu while preserving Escape-to-close behavior.
Performance Improvements
- Avoided processing the same nameplate token multiple times within one scan while retaining the repair fallback.
- Reused unit-token lookups and validated cooldown snapshots within an update, with identity checks before reusing positive results.
- Added bounded text-width caching that accounts for font, size and scale without changing existing window layouts.
- Removed redundant Enemy Cooldowns updates while retaining updates when Main Watch is hidden.
- Made the existing ticker bus start only when needed and stop when no callbacks remain.
- Cached range-spell selection briefly and invalidated it on relevant spell, specialization and world changes.
- Used bounded, event-driven or on-demand processing for the new scanner paths instead of adding another permanent high-frequency full scan.
Interface, Help and Diagnostics
- Synchronized in-game guides, mode descriptions, command help and documentation with the current scanner and contact model.
- Added clearer explanations of encounter re-arming, KoS repetition, indirect-contact alerts, map-report alerts and experimental source controls.
- Improved nameplate diagnostics for enemy visibility, always-show settings and configured distance without automatically changing game settings.
- Added clearer per-source status, pending-retry information and session-only warning diagnostics.
- Separated the addon version from the actual WoW client version, build number, build date and Interface version in diagnostic output.
- Distinguished API availability from readable data and confirmed runtime behavior.
Saved Data and Settings
- Preserved KoS and Guild KoS entries, notes, player history, window positions, filters and valid user settings.
- Preserved custom performance intervals and explicit cooldown category selections during updates.
- Added new settings without a database reset or automatically enabling the new experimental scanners.
- Retained historical positions with an explicit last-known or unverified origin.
- Kept existing icons, sounds and other media unchanged.
Important Behavior Notes
- Cooldown timers remain estimates and do not fully model talents, specialization-specific values, charges or resets.
- Shared, indirect and map reports do not prove that an enemy is immediately nearby or in the same outdoor phase.
- Detection depends on information made available by the client. These changes do not provide unrestricted enemy scanning, reveal hidden players or guarantee a warning before every attack.
This mod has no additional files

