ProfanityLib is a lightweight profanity matching library for World of Warcraft addons.
It checks user-supplied strings — character names, guild names, last words — against a curated slur wordlist, so addons that display data from other players can filter out offensive content before showing it.
ProfanityLib:IsProfane(text)— returns whether a string matches, plus the matched termProfanityLib:Clean(text)— the inverse, for readable call sitesProfanityLib:AddTerm(term, exact)— extend the wordlist at runtime- Leetspeak folding (
0→o,1→i,3→e,4→a,5→s,7→t,$→s,@→a,!→i) so obfuscated spellings still match - Substring terms plus whole-word-only terms for short, collision-prone words, plus an exception list for benign words that contain a term ("therapist")
The wordlist ships as its own data package (ProfanityLibData) and covers racial, antisemitic, anti-LGBT, and ableist slurs plus Nazi and sexual-abuse references. Every term was validated against a corpus of 808,940 real character names and 17,205 guild names extracted from Deathlog's death databases: the list flags 78 of 826,145 corpus strings, all genuinely offensive. Candidate terms that collided with legitimate names (heeb → Pheebe, yid → Sayid, chink → Schinkenpelz…) were demoted to whole-word-only matching or dropped; the reasoning for each is documented in the data package. Matching a legitimate player name is treated as worse than missing an obfuscated slur.
- You normally do not install this directly — addons that use it either embed it or list it as a dependency.
- No UI, no slash commands, no standalone player-facing functionality.
- Deathlog — filters offensive character names, guild names, and last words