Description
AutoBlacklist
Standalone World of Warcraft addon: automatically blacklists chat spammers and hides all their messages. This is the standalone fork of our own companion plugin BadBoy_AutoBlacklist, which extends the BadBoy core (by Funkeh). Same detection engine, but the BadBoy core is not required here: this addon is fully standalone and only cooperates with BadBoy when it happens to be installed.
Addon principal en español: ve al final del README.
Standalone or the BadBoy companion?
This addon and our BadBoy_AutoBlacklist companion share the same engine and the same list format; the difference is what they lean on. Install one of the two, not both.
- This standalone — one addon, no dependencies (its libraries are embedded), its own options panel and its own saved list, and it also hides listed players in party, raid, instance, guild and officer chat. If you happen to run BadBoy, it still uses BadBoy's detections as an extra signal.
- The companion — requires BadBoy, but lives inside BadBoy's panel and gets every detection BadBoy and its modules make; it also keeps the optional report-dialog opener. Its list can be imported once by this addon.
Running both duplicates the list, the notices and the work, and only the addon that loads first receives BadBoy's detections — so the companion would silently stop seeing them.
What it does
Players are auto-blacklisted (and their messages hidden everywhere) when any of four independent signals fires:
- phrase — your own trigger phrases (seeded with
pay in raid). Plain phrases, or Lua patterns with theregex:prefix (e.g.regex:^wts.*ahead of the curve). A message containing one hides instantly and its sender is blacklisted. - detector — detections by BadBoy's own anti-spam (only used if BadBoy happens to be installed; totally optional).
- repeat — one player mutating near-identical messages (
/autoblackpanel: sensitivity presets tune this). - crew — coordinated multi-account spam crews: different GUIDs posting very similar messages; byte-identical cross-account ads count double.
Blacklisted players are hidden by GUID first, Name-Realm fallback; whispers from them are hidden too (toggleable). They are also hidden in party, raid, instance, guild and officer chat — those events are hide-only, so no detection runs there. Entries auto-expire (30 days default) and the list is capped (500).
Commands
| Command | Action |
|---|---|
/autoblack |
open/close the options panel (primary) |
/autoblack status (/autoblack estado) |
diagnostics + full self-test of the pipeline, including a live check that group/raid hiding works (it plants a throwaway entry and removes it) |
/autoblack pause / resume (pausar / reanudar) |
toggle protection from the chat, same as the minimap menu |
/autoblack remove <name> (quitar <nombre>) |
remove a player by full or partial name (case-insensitive); creates the usual pardon |
/autoblacklist, /ab |
aliases of /autoblack |
/bbauto |
also works only if BadBoy_AutoBlacklist is not installed (no fight over the alias) |
Options panel (/autoblack)
- Enabled, hide whispers, sync with BadBoy_Ignore (optional), chat notices, minimap icon.
- Sensitivity presets: Relaxed / Balanced / Strict / Maximum (similarity %, crew size, repeat count, detector count).
- Advanced, previously SavedVariables-only: detection window (5/10/30/60 min), entry expiry (7/30/90 days / never) and "Don't re-list removed" (pardon window: off / 6 / 24 / 72 h).
- Minimap button: tooltip with state, counts and last detection; left click opens the panel, right click opens a menu (panel / pause / hide). It pulses on every detection, coloured by signal, and its icon is pickable (six icons verified against the client) with live preview.
- Remove player dropdown + Clear list (double-click to confirm).
- Phrase manager: visible list with paging (6 rows per page), per-row delete (
x), click a row to edit it, separate Add/Remove buttons, visiblen/50cap and inline validation feedback (duplicate / too short / invalid Lua pattern).
Safety and privacy
- Blocking only. Everything the addon does is local: it hides the messages and keeps its own list. It never contacts the other player and never opens Blizzard's report dialog — reporting was tried in this fork and removed in v1.1.0, because the client builds the report from a chat-line location (
PlayerLocation:CreateFromChatLineID, the only way BadBoy does it) and a GUID-only location passesCanReportPlayerbut silently opens nothing. - Removing a player by hand creates a pardon: they will not be auto-blacklisted again during the pardon window (6 h by default), while messages matching your phrases keep being hidden.
- On modern (12.x) clients chat payloads are "secret values" in event handlers; this addon processes chat only in the display filter and keeps
issecretvalue()guards for privacy. - Your blacklist lives in
AUTOBLACKLIST_DB(own SavedVariable). If BadBoy_AutoBlacklist is present, its list is imported once (first login) and marked as imported.
Install
- CurseForge (recommended): AutoBlacklist (Standalone) — download it and let the client install it.
- Manually: copy the
AutoBlacklistfolder into your_retail_\Interface\AddOns/_classic_\Interface\AddOnsfolder (works on Classic-era through 12.x as listed in the .toc).
Version history
Every release is listed in CHANGELOG.md.
Credits and license
- Detection engine derived from our own BadBoy_AutoBlacklist companion, which extends the excellent BadBoy core by Funkeh.
- MIT license (same as the companion). BadBoy's own license allows derivatives; no BadBoy code ships here, only optional guarded integrations.
Development tools (Node.js, zero dependencies)
| Command | What it does |
|---|---|
node package.js |
builds dist/AutoBlacklist-<version>.zip (validates the .toc first) |
node deploy.js |
installs the current addon into Interface\AddOns\AutoBlacklist of every detected WoW client (auto-detection: deploy.config.json → Battle.net product.db → common paths) |
node deploy.js --dry-run [filter] |
previews the operation without touching anything |
node deploy.js --backup [filter] |
same install, saving the old copy into .backups\ first |
node release.js [patch/minor/major/vX.Y.Z] [--notes "..."] |
bumps the .toc version, prepends a CHANGELOG section and rebuilds the zip |
node release.js --dry-run |
previews the version bump |
node checkblocks.js [file...] |
Lua 5.1 block-balance and grammar traps; with no arguments it also checks every addon file for sibling-file locals used as globals (a silent nil at runtime) |
| pandoc lua checksyntax.lua | real syntax check of every file shipped in the zip, using Pandoc's embedded Lua interpreter |
Español
Addon independiente: añade automáticamente a la lista negra a quienes hacen spam en el chat y oculta todos sus mensajes. No requiere BadBoy (aunque coopera con él si lo tienes: sus detecciones alimentan la señal "detector", y opcionalmente sincroniza con BadBoy_Ignore).
Este addon y nuestro complemento BadBoy_AutoBlacklist comparten motor y formato de lista; lo que cambia es de qué dependen. Instala uno de los dos, no ambos.
- Este independiente: un solo addon, sin dependencias (las libs van embebidas), panel y lista propios, y además oculta a los listados en grupo, banda, instancia y hermandad. Si tienes BadBoy, sigue aprovechando sus detecciones como señal extra.
- El complemento: necesita BadBoy, vive dentro de su panel y recibe todas las detecciones de BadBoy y sus módulos; conserva además el abridor opcional del diálogo de reporte. Su lista se puede importar una sola vez desde este addon.
Con los dos instalados se duplican la lista, los avisos y el trabajo, y solo el que carga primero recibe las detecciones de BadBoy.
- Frases propias: p. ej.
pay in raid; admite patrones con el prefijoregex:. - Repeticiones mutadas y cuadrillas multi-cuenta (mensajes casi idénticos entre GUIDs; los byte-idénticos valen doble).
- Oculta por GUID y por
Nombre-Realm, incluidos susurros, y también en grupo, banda, instancia y hermandad (esos eventos solo ocultan: no se analizan); expiración de entradas (30 días por defecto). - Icono en el minimapa (opcional): tooltip con el estado y la última detección, clic izquierdo abre el panel, clic derecho abre un menú, y pulsa con un color distinto según la señal (frase, repetición, cuadrilla, detector). El icono se puede cambiar desde el panel.
- Ajustes avanzados en el panel: ventana de detección, caducidad de entradas y "No re-listar al quitarlos" (indulto tras un borrado manual).
- Comandos:
/autoblackabre el panel;/autoblack statuso/autoblack estadoautotest;/autoblack pausar|reanudaractiva o para la protección;/autoblack quitar <nombre>quita a alguien de la lista (vale el nombre parcial);/autoblacklisty/abson alias;/bbautotambién sirve si el companion no está instalado. - Importa una sola vez la lista de BadBoy_AutoBlacklist si está instalado. Solo bloquea: no reporta ni escribe a nadie.


