Discord AutoMod
AutoMod is Discord's own filter. It inspects a message before it is posted and can block it outright, which is something no bot can do on its own.
What it cannot do is remember. Discord will block the same slur from the same member a hundred times and never escalate. That is the gap the Discord AutoMod dashboard page closes: you build the rules there, and you decide how many FlaviBot warns each one hands out when it fires.
Before you start
The rules live on Discord, not in FlaviBot, so the bot needs to be in your server with the Manage Server permission to read or write them. If the bot selected in the top bar is not a member of the server, the page says so and offers to invite it rather than showing an error.
Deleting a rule from the page deletes it on Discord too. Deleting it from Discord's own settings also clears its FlaviBot configuration, so the two never drift apart.
Building a rule
Give it a name, choose what it watches, choose what Discord does, and optionally exempt roles or channels.
What it watches
| Trigger | What it catches | What you configure |
|---|---|---|
| Keyword | messages containing your words | keywords, regex patterns, allow list |
| Keyword preset | Discord's own curated lists | profanity, sexual content, slurs, plus an allow list |
| Spam | Discord's spam detector | nothing, it has no settings |
| Mention spam | mass pings in one message | the maximum number of mentions, 1 to 50 |
| Member profile | names and bios, not messages | keywords, regex patterns, allow list |
Keywords and regex patterns are entered comma separated. Regex is limited to 10 patterns and uses Discord's engine, which supports no backreferences and no lookbehinds. The allow list holds phrases that override a match, which is how you keep "assassin" from tripping a filter on a shorter word inside it.
The trigger type cannot be changed once a rule exists. To switch, create a new rule and delete the old one.
What Discord does
Up to three actions per rule:
| Action | Effect |
|---|---|
| Block message | the message is never posted, with an optional rejection notice of up to 150 characters |
| Send alert | a copy goes to a channel you pick |
| Timeout member | Discord times them out, up to 28 days |
| Block member interaction | the member is blocked from interacting with the server |
Exemptions
Exempt roles (up to 20) and exempt channels (up to 50) are never inspected by the rule. This is how staff channels and moderator roles stay out of a keyword filter.
The FlaviBot reaction
At the bottom of the rule form:
| Field | What it does |
|---|---|
| Assign warns when this rule fires | 0 to 50 FlaviBot warns per fire, 0 means the rule stays purely Discord side |
| Warn reason template | the reason written on those warns, defaulting to Automod: followed by the rule name |
| Notify mod-log | posts an automod summary to your mod-log, on by default |
Those warns are real warns. They get case numbers, appear in
/modhistory, and count toward
auto-escalation. That is what turns a
flat filter into a strike system: set the rule to assign 1 warn, set an
escalation rule at 3 warns, and the third offence times the member out without
anyone watching.
Two behaviours are worth knowing:
- The member is not DM'd for an automod warn. A spam filter firing on a wall of messages would otherwise become its own spam.
- Repeat fires are collapsed. If the same rule fires against the same member again within about 5 seconds, it counts once. Someone pasting ten forbidden lines gets the configured warns once, not ten times.
The mod-log summary, when enabled, names the rule, what Discord did, and how many warns were assigned. It sits alongside the individual mod-log entry each warn writes on its own.
Templates
The page's Browse templates button installs a ready-made rule from the community marketplace, and the share icon on any of your rules submits it as a template for others. Handy for the rules everyone needs and nobody enjoys writing from scratch.
