Description
Purpose:
- Can block duplicate messages on selected channel types until a set time passes.
- Can have a block and allow list for each channel type to always hide or show messages containing certain text.
- Can block messages that use game languages you don't know while in sanctuary areas like Shattrath - only there because it can be useful to see an enemy speak while in PvP places.
- Can remove raid target icons from numbered channels (while keeping them in raid/yell/etc).
- Can translate spell and recipe links (just the name, not the prefix like "Alchemy: "), and items without a suffix if your client has it cached already.
- Can block or allow all messages from specific players or NPCs.
- Can block channel invitations from people that aren't friends, guild members, or group members.
Using:
To open the settings window, use the command: /spamblock
To reset the statistics, use: /spamblock stats reset
To add a temporary block (more details below), use: /spamblock temp <line>
Duplicate Message Blocking:
Duplicate message blocking is split up into two groups of chat message types. The first, which have red names in the options, are more "spammy" and a longer timer to block each duplicate message may be suitable. The second group is for chat message types you might not want to block very long, but a 1 or 2 second duplicate block can still stop things like /spit spam or someone accidentally pressing a "USING DRUMS NOW!!!" macro 9999 times at once.
Block/Allow Lists:
To set up blocked or allowed text, pick a chat message type from the dropdown menu then type each thing to block or allow on separate lines in the editboxes.
The "Normalize these messages" option should generally be kept on since it makes matching easier. It removes spaces, punctuation, icons like {skull}, and "...hic!" Each line you write will automatically be changed in the same way if needed, so you can leave spaces and everything in.
The "Special: Names" group is for lists of exact player and NPC names.
If something is on an allow list, it will be shown even if it also matches a block list pattern.
Lua Pattern Blocking/Allowing:
Lua pattern matching can be used if you put a : at the beginning of a line in a block or allow list. Lua lines won't be automatically changed if message normalization is on, so you would have to remove spaces/punctuation/etc yourself in the pattern if needed. Messages to match will be all lowercase, though.
Super Block/Allow:
If you add ! to the beginning of a line, it turns it into a "super" block or allow. A super block will block a message even if it matches some allowed text. A super allow will allow a message even if it matches a super block. This makes the matching priority like: Super Allow > Super Block > Allow > Block.
An example of using this would be to block everything on a channel except for messages with words like "guild" and "recruit" because you want to see some guild ads. You could then super block specific guild ads you're not interested in so you stop seeing those over and over.
Another example would be if you block everything except for people looking for healers, you could super block specific places you would never go.
If a Lua pattern is used, put the ! before the : so it's something like !:lf%d*m.*gruul
Temporary Blocking:
You can use the /spamblock temp command to quickly temporary block things until you log off, reload the UI, or use the /spamblock temp clear command. Adding a temp block will act like it's in the "All" group and use the normalization setting there. This can be useful when you don't want to make a permanent filter for some spam that probably won't last very long, but it's still annoying enough to want to get rid of. If you need to be fancy you can use Lua pattern matching and super blocks the same way you would when writing a normal block line.
Examples:
/spamblock temp geared purple parsing hunter looking
/spamblock temp :fancy.*lua.*pattern[s]
Lua Pattern Examples:
This matches "anal [link]" but not "I'm at the canal" or "Analyzing... denied!" The "c" is the beginning of the link's color code.
:^analc
This matches WTS, WTB, WTE, and WTT:
:wt[sbet]
To match everything, use this. You could use it to block everything except what's on an allow list, or to always allow everything on that channel type even if it matches something on the "All" block list.
:.?
To block messages using some characters not normally used in English, you can use this (some people always have 1 invisible blocked character even when speaking English, so it requires there to be 2):
:[\204-\225\227-\240].+[\204-\225\227-\240]
To block most (maybe all) emote actions like /bow that don't specifically target you, open the Emote Action lists, uncheck normalization, and add these:
Block list: :.
Allow list: : you[ %.r]