promotional bannermobile promotional banner

Tattle

Nobody sees a Swapblaster. Tattle announces group members who Swapblast, Life Grip or Rescue you out of combat while you're walking, and flags the Neural Silencer wearers. Know who is attempting to murder you!

Tattle

A World of Warcraft addon (retail 12.x) that alerts when a group member uses a movement ability you can be griefed with: Swapblaster, Life Grip, or Rescue.

Features

Current Modules

  • Swapblaster Detector (spell 161399 "Swap", from the Swapblaster item 111820):

    • Alerts when a group member begins the 1.5 second cast, and when it completes
    • Reports a cast that was cut short, failed, or interrupted
    • Names the caster. The swap itself puts no aura on anyone, so the victim cannot be named
    • Notes who in the group is wearing a Neural Silencer (12-hour "Immune to some annoyances" aura, spells 156779 / 384129), which blocks the swap
  • Life Grip Detector (spell 73325 - the game names it "Leap of Faith"):

    • Alerts when a Priest yanks someone while out of combat
    • Names the victim from the 4-second "Leap of Faith" aura the pull leaves on them: Pancakes used Life Grip on Donut!, or Pancakes used Life Grip on you!
    • Ignores in-combat usage, which is a legitimate emergency heal
  • Rescue Detector (spell 370666, Evoker):

    • Alerts when an Evoker scoops someone up out of combat
    • Names the passenger from the 3-second "Rescue" aura, excluding the Evoker who cast it
    • Ignores in-combat usage
  • Neural Silencer Watch (auras 156779 / 384129):

    • Scans the group for the aura that blocks Swapblaster and Leap of Faith
    • Never announces that somebody is wearing one. Joining must not produce a roll call of who is protected - a wearer surfaces only when they are involved in a cast (below), or in the list you switched on yourself
    • Optional on-screen watch list (off by default, drag-positioned from the config panel): the group's Neural Silencer wearers, and which group members currently have you targeted
    • Every other module reads the same scan, which is what lets them explain a blocked cast (below)

Protected Players Are Called Out

A Neural Silencer makes its wearer immune to exactly the toys this addon watches for, so Tattle says so instead of going quiet:

  • A grab or swap that resolved but marked nobody is reported as a blocked attempt: Pancakes attempted a Life Grip on Donut, but it failed because Donut is using a Neural Silencer. When the group has several protected members it says on a protected group member rather than guessing which one
  • A Swapblaster that backfires (182081) is reported the same way - that spell is the only evidence a blocked swap exists, since a swap that lands marks nobody either
  • A caster who fires a Swapblaster out of combat while wearing one themselves gets named for it: Pancakes used Swapblaster, but Pancakes is using a Neural Silencer - that's not fair!

Planned Modules

  • Hunter pet not present or set to passive
  • Low durability warnings
  • Additional behavior monitoring

Alert Options

Tattle provides per-module alert configuration. Each module can have its own alert preferences:

  • Monitor scope: Whole group (any group member's cast) or Only me (drop a cast only when it can be proven it missed you)
  • Console Output: Print messages to your chat window
  • Chat Messages: Send alerts to /say, /yell, /party, /raid or instance chat, or keep them private (configurable per module). Raid and Party are resolved against the group you are actually in, so announcements land in a Looking for Raid raid as well - a plain RAID send there goes nowhere
  • Combat awareness: all three detectors ignore a cast made in combat - a mid-fight Life Grip or Rescue is somebody's emergency cooldown, and the Swapblaster toy cannot be used in combat at all. The mechanisms differ: Swapblaster is flagged outOfCombatOnly, so the core skips its cast starts while the caster is fighting (a swap that begins out of combat is still announced when landing it is what pulled), while Life Grip and Rescue each check UnitAffectingCombat on both the start and the success
  • Audio Alerts: Play customizable sound effects when events occur (5 sounds to choose from)
  • Screen Warnings: Fully customizable on-screen alerts with:
    • Adjustable font and font size
    • Custom positioning (drag to move)
    • Configurable display duration
    • Optional background
    • Screen appearance is global, but each module controls whether to show screen alerts
  • Spell ID editor: override the built-in spell IDs in-game, per module

Example: You can configure Swapblaster to use screen + audio alerts, while Life Grip only uses console output.

Usage

Installation

  1. Download or clone this repository
  2. Place the tattle folder in your World of Warcraft/_retail_/Interface/AddOns/ directory
  3. Restart WoW or reload your UI with /reload

Configuration

Open the configuration panel with: /tattle

Commands

/tattle          - Open configuration panel
/tattle version  - Show addon version
/tattle on       - Enable the addon
/tattle off      - Disable the addon
/tattle debug    - Toggle debug mode
/tattle probe    - Toggle event probe (verify spell IDs + target visibility)
/tattle status   - Show current status and settings

Module Architecture

Tattle uses a modular architecture to make adding new detection modules easy. Each module:

  • Registers itself with the core addon
  • Subscribes to the events it cares about (UNIT_SPELLCAST_START, _SUCCEEDED, _FAILED, _INTERRUPTED, _CHANNEL_START / _CHANNEL_STOP, and for non-cast modules UNIT_AURA / UNIT_TARGET / GROUP_ROSTER_UPDATE)
  • Tells the core which spell names it watches (Tattle.WatchSpellNames, from Initialize), which is how the core knows to drop every other cast event before waking anyone; a cast handler then receives that name as its fifth argument (onEvent(event, unitToken, castGUID, spellID, spellName))
  • Provides detection logic for specific behaviors
  • Sends alerts through the unified alert system
  • Gets its own tab in the config panel automatically

Registration also accepts three flags the core honours: outOfCombatOnly (skip cast starts while the caster is fighting), noScope (this module filters no casts, so its tab omits the Monitor control), and extraContent (a function that adds the module's own options to its tab).

Tattle Team

profile avatar
  • 1
    Followers
  • 2
    Projects
  • 749
    Downloads

More from TarballDad