Moderation

Automod

Content filters and spam protection: links, invites, caps, banned words, regex and an eight-kind anti-spam engine.

Automod watches every message and quietly deletes the stuff you don't want: invite ads, scam links, all-caps shouting, banned words and spam floods. No moderator has to be online. It is off by default.

Commands

,filter (alias ,automod) needs Manage Server:

,filter links on               delete messages that contain links
,filter invites on             delete Discord invite links
,filter caps on --threshold 70  delete messages over 70% caps
,filter add nitro              add a banned word
,filter autoregex off          stop generating obfuscation patterns
,filter remove nitro           remove a banned word
,filter exempt #staff          let a channel, role or member skip automod
,filter list                   show active filters and banned words

Advanced patterns (obfuscated slurs, scam text) use ,regexfilter (aliases ,regex, ,rfilter):

,regexfilter add free\s*nitro --action delete   block a pattern
,regexfilter list                               list regex filters
,regexfilter toggle 3                            enable or disable filter 3
,regexfilter remove 3                            delete filter 3

Lock one channel to a single content type with ,filterchannel (aliases ,channelfilter, ,cfilter, needs Manage Channels):

,filterchannel #art images     only allow image posts
,filterchannel #links links    only allow links
,filterchannel #general off    clear the channel filter
,filterchannel list            show every channel filter

Example

Block invites and caps spam, and keep your mod channel exempt:

,filter invites on
,filter caps on --threshold 80
,filter exempt #mod-chat

The anti-spam engine (message flood, duplicates, mass mentions, zalgo, emoji, newline, attachment and wall-of-text spam) is tuned on the dashboard's Automod page.

Banned words catch obfuscation

When you add a banned word, exceed also generates a regex that catches the ways people dodge word filters. Adding badword also catches:

b a d w o r d
b.a.d.w.o.r.d
b4dw0rd
baaadword

It covers leetspeak substitutions, up to two separator characters between letters, and stretched letters. Removing the word removes its pattern too, and auto-generated patterns are labelled in ,regexfilter list so you can always tell them apart from ones you wrote.

Turn it off with ,filter autoregex off if you want exact matching only. Existing patterns are kept.

Heat system

Every filter above works on its own, so someone who sits just under each individual limit gets through. The heat system fixes that by pooling everything into one score per member that decays over time.

,heat on                       turn the heat system on
,heat set 150 20               fire at 150 heat, decaying 20 per minute
,heat action timeout 600       what happens when the threshold is crossed
,heat multiplier 2             double the timeout on each repeat offence
,heat factor invites 80        change how much heat one factor generates
,heat                          show the current settings

Each of these adds heat when a message trips it:

FactorDefaultFactorDefault
phishing100mentions12
words60caps10
invites45links8
repeat20emoji8
newlines8attachments5

Defaults are 100 heat to trigger, decaying 30 per minute. One borderline message is fine; several at once is not. Set a factor to 0 to stop it generating heat entirely.

Members with Manage Messages and anything on the automod exempt list are never scored.

Auto lockdown

Locks every channel when mentions spike. Per-user mention limits never catch twenty accounts posting three mentions each, which is what a mention raid actually looks like.

,autolockdown on               enable it
,autolockdown set 50 30        lock at 50 mentions within 30 seconds
,autolockdown                  show the current settings

It uses the same machinery as raid panic mode, so unlocking restores each channel's exact prior permissions rather than wiping them. Members with Manage Server and whitelisted members do not count toward the total.