Auto Moderation
35 filters over what people say, plus honeypots, auto purge, a slowmode manager and a local AI classifier. Everything that acts before a moderator has to.
On this page
Auto Moderation is what somebody says, and the name they change it to. It never punishes anybody itself: a warn, mute, kick or ban from a filter runs through the same engine a moderator's command does, so it files a real numbered case in the same history. Arrivals are Security's job, not this system's.
Auto Moderation
Thirty-five filters, honeypots, a slowmode manager and AI moderation, acting before a moderator has to.
Caught today
47
Messages a rule acted on since midnight UTC.
Caught in total
12,480
Since Auto Moderation was first switched on.
Violations in 24 hours
9
What the escalation ladders are counting.
Scam & phishing linksActiveScam & phishing links214 hits
scams, grabbers → Delete the message · Ban them · Alert the staff
Advertising other serversActiveDiscord invites88 hits
other servers only → Delete the message · Warn them · Reply in the channel
Message spamActiveMessage spam131 hits
5 messages in 5s → Delete their recent messages (20 seconds) · Mute them (10 minutes)
Mass mentionsActiveMass mentions17 hits
over 6 mentions → Delete the message · Mute them (1 hour) · Alert the staff
Slurs & hate speechActiveBanned words402 hits
1 list(s), 0 extra word(s) → Delete the message · Warn them · Alert the staff
Excessive capsPausedExcessive caps59 hits
70% caps, 10+ characters → Delete the message · Reply in the channel
Setting it up
Switch it on
Essentials → Auto Moderation.
Add two or three rules, not thirty
Start from a ready-made rule (there are 18, five of them marked Recommended) or from the filter picker. Invite links, mass mentions and message spam cover most of what a small server sees. A server holds up to ten rules, and picking one opens it as a draft: nothing runs until you publish it.
Check the exemptions
The Punishments tab leads with them. Bots, Administrators and Moderation's moderator roles are exempt by default; add the staff channel, the bot-command channel and anyone else who needs a pass. A staff channel tripping a rule meant for
#generalis the fastest way to lose faith in a filter.Test it before you trust it
Try a message on the Rules tab runs the same matching the live bot runs, and deletes and punishes nothing. If a message passes there, it passes in your server. Rules that count over time, or judge the member rather than the message, cannot be tested from one message, and it says so.
The eight tabs
| Tab | What lives there |
|---|---|
| Rules | Your rules in priority order, Try a message, word lists, Discord's own AutoMod, and the thread-notice sweep |
| Punishments | Server-wide exemptions, the shared violation ladder, the notice members see, and where rules report |
| Slowmode | The Slowmode Manager |
| Auto purge | Standing keep this channel clean rules |
| Honeypots | Trap channels |
| AI moderation | The local classifier |
| Logging | The Auto Moderation logger |
| Commands | /automod and its operations |
Filters
35 filters in 7 groups. A rule is one filter, its settings, its scope and its actions, so "no links, except in #media" is one rule rather than a global switch plus an exception list.
| Words & phrases | What may and may not be said. |
|---|---|
| Banned words | Block a list of words and phrases. |
| Pattern match | Block messages matching a regular expression. |
| Allowed words only | Block anything containing a word that isn't on the list. |
| Formatting | Shouting, walls of text, unreadable characters. |
|---|---|
| Excessive caps | Block SHOUTING. |
| Repeated text | Block aaaaaaaaaa and spam spam spam. |
| Zalgo text | Block corrupted text. |
| Very long messages | Block walls of text. |
| Chat-clearing newlines | Block messages that push the channel off screen. |
| Spoiler spam | Block excessive spoiler tags. |
| Too many emoji | Block emoji walls in one message. |
| Too many stickers | Limit stickers in a message. |
| Too many attachments | Limit files in one message. |
| Mentions | Pings, mass mentions and protected roles. |
|---|---|
| Mass mentions | Block a message that pings a crowd. |
| @everyone attempts | Block @everyone and @here from people who shouldn't. |
| Protected role mentions | Stop specific roles being pinged. |
| Mention spam | Block many mentions across several messages. |
| Links & files | Invites, scams, masked links and attachments. |
|---|---|
| Discord invites | Block invite links to other servers. |
| Links | Block links: all of them, a denylist, or everything outside an allowlist. |
| Scam & phishing links | Block known token stealers, fake Nitro and IP grabbers. |
| Masked links | Block links hidden behind different text. |
| Unsafe attachments | Block file types nobody should be sharing. |
| Spam & flooding | Anything measured over time rather than per message. |
|---|---|
| Duplicate messages | Block the same message sent over and over. |
| Message spam | Block a member sending too many messages too fast. |
| Channel flood | React when a whole channel speeds up at once. |
| Attachment spam | Block a flood of files. |
| Link spam | Block a flood of links. |
| Emoji flood | Block emoji spam across several messages. |
| Reaction spam | Block somebody reacting to everything at once. |
| Cross-channel spam | Block the same person posting in many channels at once. |
| Violation threshold | Act when somebody trips other rules repeatedly. |
| Members | Account age, names and avatars. |
|---|---|
| New accounts | Act on messages from accounts made recently. |
| Username & nickname filter | Catch banned words in names people change to. |
| No profile picture | Act on accounts still using the default avatar. |
| Channel rules | What a particular channel is for. |
|---|---|
| Media-only channel | Require every message to carry an image or a link. |
| Text-only channel | Refuse attachments, embeds or stickers in a channel. |
Rules are checked top to bottom. Stop after this rule fires is on by default, so the first rule that fires is the last one that runs on that message: put the harsh rules at the top. Check edited messages too is on by default as well, so a clean message edited into a rule break is caught.
Evasion is folded away before matching
With Catch disguised spellings on (the default), fancy fonts, lookalike letters, leetspeak and invisible characters are folded away and spaced-out letters are tolerated, so 𝓯𝓾𝓬𝓴, f u c k and a word with a zero-width space inside it all hit the same word list.
Whole-word matching means whole words
Whole words only is on by default. It will not flag raccoon for containing a slur, and will not flag Scunthorpe. That is the point, but it means a whole-word list genuinely will not catch a word glued to another one. Write * into an entry where you want that.
Member warned
Rule
Matched
discord.gg/n3bulaChannel
Case
ID
1301848870431326270loud.tim · Auto ModerationToday at 12:00 PM
Rule triggered
Rule
Matched
discord.gg/n3bulaChannel
Cases
What it said
ID
1301848870431326270loud.tim · Auto ModerationToday at 12:00 PM
Scope and exemptions
- Per rule
- Where it applies names the channels and categories a rule covers or skips, the roles it ignores or is limited to, and optional account-age and time-in-server limits. A thread is judged by its parent channel. Exemptions on a rule are about that rule.
- Server-wide
- The Punishments tab's Who and what is exempt card applies to every rule: roles, channels, categories and specific members (the same list
/automod bypassedits). - Bots
- Bots are exempt server-wide by default, and each rule's Apply to bots is off by default. A rule can opt bots back in, which is rarely what you want: a bot posting links is usually the bot doing its job.
- Administrators and moderators
- Administrators are exempt and Moderators are exempt are on by default; the moderators are Moderation's moderator roles. Moderation's immune roles do not exempt anybody here.
What a hit does
20 action types, up to eight per rule, run in the order you list them: delete the message or the member's recent messages, reply in the channel, DM the member, alert staff, warn, mute, time out, kick, ban, softban, give or take a role, replace every role with one (a quarantine, done in one call so there is never a moment with no roles), react to the message, change their nickname, slow the channel down, lock it, or add to or reset a named violation counter. Staff alerts go out last, so they can name the cases the rest opened.
- Violation threshold is a filter of its own: “N violations in M minutes → do this”, so individual rules can be gentle and the pattern can be punished.
- The Punishments tab's shared ladder does the same across every rule: Enable the shared ladder (off by default), up to five rungs, counting violations until Violations stop counting after (60 minutes by default).
- Punishments go through Moderation's engine, so they file cases, send that punishment's DM and count toward Moderation's warning thresholds. A hit that only deletes leaves a log line rather than a case, unless File a case for every hit is on (off by default).
Word lists
A list is inert until a rule points at it. Make the list, write a rule, tick the list in that rule, and each list tells you which rules currently use it, or that none do. A list holds words and phrases, domains, patterns or file types, up to 2,000 entries, and a server keeps up to five, Arclo's own included. They sit on the Rules tab, under the rules that use them.
- Arclo ships seven built-in lists: Common profanity (English), Slurs & hate speech, Explicit sexual language, Scam & phishing domains, IP grabbers & loggers, URL shorteners and Executable file types. They are editable per server as a difference: click a word to strike it out for you only, and add your own on top.
- That way the shared list keeps updating itself. A scam domain added upstream still protects your server, around whatever you decided about the rest.
- Lists can be sorted A to Z, downloaded, and replaced from a file (a JSON array, or newline- or comma-separated text). Each list has its own Whole words only and Catch disguised spellings switches, and decides whether
*works as a wildcard.
Honeypots
A trap channel nobody should ever post in. Anything posted there is, by construction, a bot or somebody who does not read. No heuristic, no false positives, and the cheapest true signal in the whole system.
- Arm channels you already have, or press Create one for me. A server can run up to five.
- A designed pinned warning is the feature, not decoration: a trap whose channel does not explain itself catches your own curious members. The trap does not arm until the warning is pinned. Switching Post a pinned warning off arms it unmarked, which is a deliberate choice rather than a shortcut.
- Each trap has its own actions (delete the message and ban, by default) and its own exemptions: Ignore bots (on by default), excluded roles and members, Arm it this long after somebody joins, and Never catch members older than, a ceiling on time in the server.
- A honeypot is checked before any rule, so a post in a trap is handled as a trap even when a rule would also have caught it.
- A thirty-day trigger history records who, what they posted, what ran, and the two numbers that settle whether it was a real person: account age and time in the server.
Slowmode manager
Slowmode that climbs when a channel gets busy and steps back down when it calms, for up to 50 channels, each with its own policy. Manage slowmode switches the manager on (off by default). A channel can also hold a fixed interval, or be managed only between set hours in its own time zone. Two modes, and they are different mechanisms:
| Mode | Who enforces it | Notes |
|---|---|---|
| User slowmode | Discord: it is Slowmode in channel settings | Each member may post once per interval. Nothing is ever deleted. Exemptions are Discord's own (Manage Messages / Manage Channels), so Arclo does not show exemption fields it could not honor. |
| Channel slowmode | Arclo | One message every N seconds from anyone. Discord has no such setting, so Arclo enforces it by dealing with what arrives early (Remove it quietly, Remove it and tell them or Leave it and just log it), which is why this mode is the one with exemption lists. |
It stands down rather than fighting
Five other things can move a channel's slowmode: the /slowmode command, a filter's slowmode action, Security's flood response, an Automations rule, or a human. If the value is not what Arclo last set, it assumes somebody else moved it and leaves that channel alone for 30 minutes by default. A manager that re-asserts itself is experienced as “slowmode keeps resetting”.
The ladder climbs one rung at a time while the channel stays busy, and steps back down one rung at a time once it has been quiet long enough. Jumping straight to the rung matching the current rate would read its own suppression as more traffic and run to the ceiling. Leave the rungs empty and the ladder doubles the resting interval up to the ceiling you set.
Auto Purge
A standing instruction to keep a channel clean. One rule can cover up to 25 channels, because “clear these six spam channels every hour” is one decision, and a server keeps up to five rules. A rule picks what goes with the same filters as /clear (everything, bots, people, named members, text, a pattern, links, invites, images, attachments, embeds, pings or emoji), and can delete everything except that instead.
| Mode | What it does | Cap |
|---|---|---|
| Clear on a timer | Clear the channel on a timer, five minutes apart at the least. It can leave the most recent stretch alone, so a purge on the hour does not cut a conversation off mid-sentence. | Up to 7 days |
| Keep it short | Nothing in the channel outlives N. Checked every quarter of the window (at least hourly), so overshoot stays small. | Up to 13 days |
- Exempt roles server-wide and per rule; Channels no rule ever touches makes sure a rule can never reach somewhere it should not. Keep pinned messages is on by default, and a rule can always keep the newest few.
- Never deleted, whatever the settings: Discord's own system messages, and the channel's sticky message.
- New rules arrive switched off, because a rule that started at once would delete on its next visit before anybody had checked it. Run purge rules is the system's own switch, off by default too; switched back on, it resumes from now rather than catching up.
- One visit deletes up to 500 messages per channel. A bigger backlog drains over the following visits, five minutes apart, and the card says it is still catching up.
Why the caps are 7 and 13 days
Discord will not bulk-delete anything older than 14 days. Past those limits a message could never be both old enough to qualify and young enough to delete, so the rule would silently do nothing.
AI moderation
A local statistical classifier that scores a message across 12 categories (toxicity, severe toxicity, insults, profanity, threats, identity attacks, sexual content, harassment, self-harm, violence, spam & scams and unwanted flirtation) when no rule has already acted on it. Enable AI moderation is off by default; once it is on, seven categories start switched on. Each category has its own switch, its own threshold and, optionally, its own actions; the rest use the shared ones (delete the message and alert staff, to begin with).
It runs locally, and it is deliberately timid
It ships with Arclo: no external API, no key, no per-message cost, and no message is sent anywhere to be scored. It is log-only by default (Log only (don't act)), ignores messages shorter than 12 characters, runs last, and an unattended automatic ban on a classifier's judgement is exactly what the default avoids. Turn actions on once you have watched its log for a while.
Discord's own AutoMod, and thread notices
- Discord AutoMod rules stay in Server Settings. Arclo does not create or edit them, because two places to look when a message is blocked is worse than one. What Arclo adds, once you switch on Act on Discord's AutoMod, is its own action vocabulary on top: when Discord blocks something, Arclo can warn, mute, quarantine or DM, Count it toward Arclo's ladders and File a case for every block, as a default for every rule or per rule. Arclo needs Manage Server to list your Discord rules by name.
- Thread notices sweeps Discord's “started a thread” system messages out of the parent channel, the moment they arrive or up to an hour later, in every channel or only the channels and categories you pick, with a list it never touches.
Commands
/automod statusManage ServerWhat Auto Moderation is doing right now. Rules, hits today, AI moderation.
/automod rules [group]Manage ServerEvery rule, what it catches and what it does about it.
/automod toggle <rule> [state]Manage ServerSwitches one rule on or off without opening the dashboard.
/automod test <text> [as-member]Manage ServerRuns a message through every rule and reports which would fire, without punishing anybody.
/automod scan [channel] [count]Manage ServerRuns your rules over the recent messages in a channel and reports what they would have caught.
/automod violations view <member>Manage ServerA member's recent Auto Moderation hits, and how close they are to a threshold.
/automod violations clear <member> [name]Manage ServerCannot be undoneWipes a member's violation counters, so they start from zero on the ladder.
/automod bypass add [role] [channel] [member]Manage ServerExempts a role, a channel or a member from every rule.
/automod bypass remove [role] [channel] [member]Manage ServerPuts a role, channel or member back under the rules.
/automod bypass listManage ServerEverything and everybody Auto Moderation ignores.
/automod words add <list> <words>Manage ServerAdds a word or phrase to one of your word lists, right now.
/automod words remove <list> <words>Manage ServerTakes a word out of one of your word lists.
/automod words list [list]Manage ServerYour word lists, or everything on one of them.
/automod words clear <list>Manage ServerCannot be undoneEmpties one of your word lists.
/automod honeypot add [channel]Manage ServerTurns a channel into a trap: anyone who posts there is dealt with automatically.
/automod honeypot remove <channel>Manage ServerStops a channel being a trap. The channel itself stays.
/automod honeypot listManage ServerYour trap channels and how many accounts each has caught.
Still stuck? Ask in the support server: somebody there has almost certainly configured this before.

