How to set up auto moderation in Discord: spam, scam links, banned words and raids
Auto moderation checks every message against the rules you switch on and acts before a moderator has to. Raid defence on the same page watches how fast accounts join.
Takes about 6 minutesFree, Premium raises limits
What you will end up with
A scam link is gone a moment after it is posted, the member is timed out for a day and told why in the channel. Your log channel shows which rule caught it and what happened.
general
A
AlexToday at 14:32
Free Nitro for everyone! discord-nitro-gift.xyz/claim
ZombyIOAppToday at 14:32
@Alex
@Alex That link is a known scam and was removed. Your timeout ends in 1 day.
Where to find it
Open the dashboard, pick your server and choose Auto moderation in the sidebar (on a phone: under Features in the bar at the bottom). That is two clicks from your server list. You can also press Ctrl K anywhere in the dashboard and type the name.
Step 1: Exempt your moderators and pick a log channel
Open Auto moderation in the sidebar. Under Set it up, pick your staff roles for Exempt your moderators and a staff channel for Pick the log channel.
Nobody is exempt on their own, not even admins: Discord permissions do not count here, only the roles and channels you list. The server owner is the one exception and is never acted on automatically. Messages from bots are never checked.
Tip
Every hit lands in the log channel with the rule, what matched, the start of the message and what was done. That is how you find out whether a rule does what you meant.
zomby.io/dashboard/…/automodSet it upExempt your moderatorsModeratorsAdminsWithout this the filter treats your own team like everybody else.Pick the log channel#automod-logThis is where you see whether a rule is doing what you meant.
2
Step 2: Start from a preset in watch mode
Under Start from a preset, pick Relaxed, Balanced or Strict, then switch on Watch mode and switch the feature on in the banner. Press Save.
In watch mode the rules run and every hit goes to the log as "Watch mode, nothing done", but no message is removed, nobody is punished and no strike points are counted. Leave it like that for a day and read the log.
Relaxed: scam links, invites, message flooding, repeated messages and walls of text. Floods earn a 5 minute timeout.
Balanced: those plus mass mentions, @everyone attempts, capitals, emoji floods, unreadable characters and your word list if it has words. Floods and mass mentions earn a 10 minute timeout.
Strict: every rule (banned words only if your list has words), stricter limits, a ban for scam links, the repeat-offender steps switched on and raid defence switched on to warn you.
Important
A preset switches off the rules it does not mention; only Relaxed leaves the word filter as it is. It never touches your word list, your link lists, the channels and roles a rule is limited to, the exemptions, the log channel, how members are told or Discord’s own AutoMod. Relaxed and Balanced leave raid defence and the repeat-offender steps as they are. Strict switches on whichever of the two is off and leaves whichever is already on exactly as you set it.
zomby.io/dashboard/…/automodAuto moderationEnabledStart from a presetSets every rule at once. Limits set under “Limit this rule” stay as they are. You can change anything afterwards.RelaxedScams, invites, flooding and walls of text. Nothing that touches ordinary chat.BalancedThe relaxed rules plus shouting, mass mentions, @everyone attempts, emoji floods, unreadable text and your word list.StrictAlmost every rule with stricter limits, and a ban for scam links. Also switches on escalation with its standard steps and a raid alarm that only warns you. Whichever of the two is already on keeps your own settings.Watch modeRules run and are written to the log, but nothing is deleted and nobody is punished. The honest way to test a word list.
3
Step 3: Tune the rules you need
Every rule is a card with a switch. Switched on, it opens and shows the same controls:
What happens to the member: Nothing, Warn, Time out, Kick or Ban. A ban also deletes the member’s messages from the last hour.
Timeout length, for a timeout: 5 minutes to 7 days, or an exact value up to 28 days.
Remove the message, on by default, and independent of the member action.
Tell the member why, on by default.
The line under a rule’s name sums it up, for example "Removes the message and times them out for 10 minutes". Only the first rule that matches a message acts on it, and edited messages are checked again.
Tip
Try a message beside the settings runs your unsaved rules on any text you paste. It cannot test flooding or repeated messages, which need real traffic, and it does not know the list of known scam domains the bot uses.
zomby.io/dashboard/…/automodSpam and floodingToo many messages, repeated messages, mention storms.Message floodingRemoves the message and times them out for 10 minutesWhat happens to the memberNothingAct on the message only.WarnRecorded as a warning.Time outCannot write for a while.KickRemoved, can come back with an invite.BanRemoved for good, with their messages from the last hour.Timeout length5 minutes10 minutes1 hour1 day7 daysRemove the messageTell the member whyA silent deletion looks like a bug to the person it happened to.
general
A
AlexToday at 14:32
buy now
A
AlexToday at 14:32
buy now
A
AlexToday at 14:32
buy now
A
AlexToday at 14:32
buy now
A
AlexToday at 14:32
buy now
ZombyIOAppToday at 14:32
@Alex
@Alex Please slow down. Your timeout ends in 10 minutes.
4
Step 4: Let Discord block words and mass mentions first
Under Block before anyone sees it, switch on Banned words and Mass mentions. When you save, ZombyIO creates matching rules in your server’s own AutoMod settings, named "ZombyIO: banned words" and "ZombyIO: mass mentions". Discord then blocks those messages before they are posted, so nobody reads them and no ping goes out.
The bot keeps filtering as before and catches the spellings Discord misses. A message Discord blocked still counts for the rule’s action and its strike points, and appears in your log as "Blocked by Discord before anyone saw it". Discord shows the member the rule’s explanation itself, so ZombyIO posts no note of its own.
Important
This needs the Manage Server permission. Discord also only takes it while the rule itself is on, watch mode is off, Remove the message is on, the rule is not limited to certain channels, and there are at most 20 exempt roles and 50 exempt channels. The line under each switch says why, when Discord does not take it.
zomby.io/dashboard/…/automodBlock before anyone sees itDiscord’s own AutoMod stops these messages before they are posted, so nobody reads them and no ping goes out. The bot still catches the tricks Discord misses and still counts strike points.Banned wordsYour word list becomes a Discord AutoMod rule. Uses one of the six keyword rules Discord gives every server. Active at Discord.Mass mentionsDiscord stops the message before the pings go out, and locks mentions for a while during a mention raid. Set up at Discord when you save.
5
Step 5: Escalate for repeat offenders
Under Repeat offenders, switch on Escalate for repeat offenders. Each rule is then worth strike points (1 for most rules, 2 for flooding, repeated messages and mass mentions, 5 for scam links), and the points from every rule add up per member.
The default steps are a 10 minute timeout at 3 points, a 1 hour timeout at 5 and a kick at 8. A step fires once, on the violation that crosses it, and replaces the rule’s own action when it is harsher. Forget points after (default 1 hour) is counted from the member’s last violation.
zomby.io/dashboard/…/automodRepeat offendersCounted across every rule, so five small things add up to one big one.Escalate for repeat offendersPoints from every rule are added up per member.Forget points after10 minutes1 hour1 day7 daysHow long a member has to stay out of trouble to start fresh.What happens at each totalAt 3 pointsTime out · 10 minutesAt 5 pointsTime out · 1 hourAt 8 pointsKick
6
Step 6: Turn on raid defence
Under Raid defence, switch on Watch the join rate. By default the alarm goes up when 10 accounts join within 30 seconds. From that join on, every account that arrives until Stay alert for has passed (10 minutes by default, counted from the last join that kept the rate up) gets what you chose under What happens to members who arrive during a raid: Only warn me, Kick or Ban.
The alarm is announced once, in Where to raise the alarm or else in the log channel. While it is up, welcome messages are not sent, auto roles wait at least 10 minutes, and the join screening of anti-bot gives each arrival its points for joining during a raid.
Tip
During a raid, only act on accounts younger than lets older accounts in during a raid, for example real members who happen to join at that moment. The age is read from the account itself, so it cannot be faked.
Important
Pause invites while the alarm is up stops everybody from joining through an invite, not only the raid. The pause lasts for the Stay alert for time from when the alarm went up, at most 24 hours, and Discord lifts it by itself. It needs the Manage Server permission.
zomby.io/dashboard/…/automodRaid defenceThe only part that acts on joins, which is what stops a raid early.Watch the join rateJoins10Within this many seconds30What happens to members who arrive during a raidOnly warn meYou get a ping and decide yourself.KickBanWhere to raise the alarm#mod-alertsLeave empty to use the automod log channel.
mod-alerts
ZombyIOAppToday at 14:32
Possible raid
12 accounts joined within 30 seconds. Raid defence is active.
7
Step 7: Leave watch mode and choose how members are told
Once the log shows the rules catching what you meant, switch off Watch mode and save. From then on the rules act.
Under Telling people what happened, choose where the explanation goes. In the channel, then removed again is the default: a short note that mentions the member, removed after 10 seconds unless you choose another time or Keep it. A channel gets at most one note every 5 seconds. As a direct message keeps the channel clean, but members with direct messages closed never see it. Nobody is told when they were kicked or banned.
zomby.io/dashboard/…/automodWatch modeRules run and are written to the log, but nothing is deleted and nobody is punished. The honest way to test a word list.Telling people what happenedWhat the member sees, and where you can watch the filter work.Where the explanation appearsIn the channel, then removed againA short note where it happened, cleaned up again afterwards.As a direct messagePrivately, so the channel stays clean.Remove the explanation afterKeep it5 seconds10 seconds30 seconds1 minute
automod-log
ZombyIOAppToday at 14:32
Auto moderation
@Alex · #general
Rule
Scam and phishing links (discord-nitro-gift.xyz)
Result
Timeout until tomorrow at 14:32 · Message removed
Message
Free Nitro for everyone! discord-nitro-gift.xyz/claim
Every setting explained
In the order the page shows them. Names in bold are exactly what the dashboard calls each control.
Set it up
Exempt your moderators
Members with any of these roles are never checked, by any rule. Up to 50 roles. Empty by default.
Pick the log channel
Where each hit is reported, several to a message when a lot happens at once. Empty by default; then nothing is reported. Separate from the moderation case log.
Switch auto moderation on
The same switch as in the banner. Off by default. Off, no message is checked, raid defence counts nothing, and on the next save the rules kept in Discord’s own AutoMod are removed.
Start from a preset
Relaxed, Balanced, Strict
Set every rule at once. The page shows Your own mix as soon as you change a rule by hand. A limit under Limit this rule does not count, because every preset keeps it. See step 2 for what each one switches on.
Watch mode
Off by default. On, the rules run and are logged, but nothing is removed, nobody is punished, no strike points are counted, raid defence only announces and invites are not paused.
On every rule
What happens to the member
Nothing, Warn, Time out, Kick or Ban. A warning is recorded as a moderation case, and the explanation adds "This counts as a warning." A ban deletes the last hour of the member’s messages. After a timeout, kick or ban with Remove the message on, the member’s other messages are removed for the next 15 seconds wherever they post.
Timeout length
Only for Time out: 5 or 10 minutes, 1 hour, 1 day, 7 days, or an exact value from 60 seconds to 28 days. Default 10 minutes, and 1 day for scam links.
Remove the message
On by default. Off, the message stays up; the member action, the explanation and the log entry still happen.
Tell the member why
On by default. Sends the rule’s explanation where Where the explanation appears says.
Strike points
Only shown while Escalate for repeat offenders is on: 0, 1, 2, 3, 5 or an exact value up to 20. Zero keeps the rule out of escalation.
Limit this rulePremium onlyFree: Not included · Premium: Included
Run a rule Only in these channels, or not Except in these channels or Except for these roles, on top of the exemptions for every rule. Forums count with all their posts. A rule still limited from a time the server had Premium keeps that limit on the free plan, but it cannot be changed until Premium is back.
Spam and flooding
Message flooding
Fires on the message that reaches Messages within Within this many seconds (default 5 in 5 seconds; 2 to 50 messages, 1 to 60 seconds), counted per member across all channels. Removes every message of the burst. Default action: a 10 minute timeout, 2 strike points.
Repeated messages
The same text Repeats allowed times in a row, each within a minute of the last (default 3, range 2 to 20), across all channels. Case, spacing and texts shorter than 4 characters are ignored. Removes every copy. Default action: a 10 minute timeout, 2 strike points.
Mass mentions
More people and roles mentioned in one message than Most allowed (default 5, range 1 to 50). Each person and role counts once. Default action: a 10 minute timeout, 2 strike points.
@everyone and @here
Only catches "@everyone" or "@here" written by somebody who is not allowed to ping everyone, so the ping did not go out. Moderators who may ping are never caught, and text in code blocks is ignored.
Links and invites
Scam and phishing links
The only rule that is on by default: a 1 day timeout and 5 strike points. Every link is checked against a public list of tens of thousands of known scam domains and for fake Nitro, Steam and Discord addresses. Real Discord and Steam addresses are never caught.
Invites to other servers
discord.gg, discord.com/invite, discord.me, dsc.gg and similar invite links, also with spaces, brackets around the dot or encoded letters. Invites to your own server are caught too.
Links
A link counts when it starts with http://, https:// or www., or ends in a real domain ending such as .com. Off by default.
How to treat links
Allow links, block the ones I list is the default. Block every link except the ones I allow removes every link whose address is not on the allowed list.
Blocked hosts
Addresses that are always removed, in both modes. One per line, subdomains included, up to 200. https:// and anything after the address are dropped when you save.
Allowed hosts
Only shown for Block every link except the ones I allow. One per line, subdomains included, up to 200. Scam links are still caught by their own rule.
Message content
Your word listFree: 100 · Premium: 5,000
One word or phrase per line, up to 64 characters each. The rule is off until you switch it on. If Premium ended and the list is longer than the free plan allows, it keeps working and you can shorten or change it, but not add to it.
Whole words only
On by default: "class" is fine when "ass" is on the list. Off, a word is caught inside other words too.
See through evasions
On by default. Catches spaced-out letters, stretched spellings and leetspeak such as "1d10t". Accents, lookalike letters from other alphabets and invisible characters are always seen through, with this on or off.
Words that are always fine
Real words that contain a banned one and should never be caught. Up to 200.
Shouting in capitals
Fires when at least Capitals, in percent of the letters are capitals (default 70, range 30 to 100). Messages shorter than Ignore messages shorter than (default 10 characters) are ignored. Only letters count, so numbers, punctuation, emoji and mentions never do.
Noise and abuse of formatting
Emoji floods
More emoji than Most allowed (default 15, range 1 to 100). Custom emoji count; a family or flag emoji counts once.
Too many files
More files than Most allowed (default 5, range 0 to 10), forwarded files included. 0 catches any file.
Walls of text
A message longer than Longest message, in characters (default 1,500, range 50 to 4,000) or with more lines than Most lines (default 20, range 2 to 200).
Unreadable characters
More marks stacked on one character than Marks allowed on one character (default 2, range 1 to 20). A single accent is fine, and the vowel signs of Hindi, Arabic or Thai only count when six or more are stacked.
Block before anyone sees it
Banned words
Off by default. Your word list becomes a keyword rule in Discord’s AutoMod, matched as whole words while Whole words only is on and anywhere in a word while it is off. Discord takes the first 1,000 entries and 100 allowed words; the bot catches the rest. Needs the Banned words rule on and at least one word.
Mass mentions
Off by default. Discord blocks messages with more mentions than the Mass mentions rule allows, and locks mentions for a while during a mention raid.
Repeat offenders
Escalate for repeat offenders
Off by default. On, the strike points of every rule add up per member.
Forget points after
10 minutes, 1 hour, 1 day, 7 days or an exact number of minutes up to 7 days. Default 1 hour. A member who stays out of trouble this long starts again at zero.
What happens at each total
Up to 10 steps, each at 1 to 100 points, with Warn, Time out, Kick or Ban. Default: 3 points a 10 minute timeout, 5 points a 1 hour timeout, 8 points a kick.
Raid defence
Watch the join rate
Off by default. The only part of auto moderation that acts on joins rather than messages.
Joins
How many joins raise the alarm. Default 10, range 2 to 500.
Within this many seconds
The time those joins have to fall within. Default 30 seconds, range 5 to 600.
What happens to members who arrive during a raid
Only warn me is the default and only announces the alarm. Kick or Ban acts on every account that arrives while the alarm is up. Those removals are moderation cases.
Stay alert for
5, 10, 30 or 60 minutes, or an exact value up to 24 hours. Default 10 minutes.
During a raid, only act on accounts younger than
Off by default. 1 day, 3 days, 7 days or an exact number of hours up to a year: older accounts arriving during a raid are let in.
Pause invites while the alarm is up
Off by default. Pauses the server’s invites when the alarm goes up, for the Stay alert for time and at most 24 hours. Not in watch mode. Needs Manage Server.
Where to raise the alarm
Where the alarm is announced. Empty means the log channel; with neither, it is not announced.
Telling people what happened
Where the explanation appears
In the channel, then removed again (default) or As a direct message. A member who does not accept direct messages is not tried again for 6 hours.
Remove the explanation after
Only for the channel note: Keep it, 5, 10, 30 or 60 seconds, or an exact value up to 300 seconds. Default 10 seconds.
More settings
Channels where nothing is filtered
Nothing is checked in these channels, their threads or forum posts. Up to 200. The exempt roles are in step 1 of Set it up.
Free and Premium
Premium costs €6 a month per server and is shared by every admin of that server. It raises limits, it does not unlock the feature.
Free and Premium
What
Free
Premium
Your own words in the filter
100
5,000
Limit a rule to certain channels or roles
Not included
Included
Something not working?
The problems people run into most often, and how to fix each one.
Auto moderation deletes messages from my moderators
Nobody is exempt until you say so, whatever their Discord permissions. Add your staff roles under Exempt your moderators at the top of the page, or exempt a staff channel under More settings, and save. Only the server owner is always left alone.
Nothing happens when someone breaks a rule
The feature is switched off, or Watch mode is still on. Watch mode only logs.
The member has an exempt role, or the channel is exempt.
The rule itself is off, or limited to other channels.
The member is the server owner.
Check the log channel: every hit is there, with what was done.
The log says "Could not act", but the message was removed
Discord refused the timeout, kick or ban. Usually the member’s highest role is above ZombyIO’s, or ZombyIO lacks Timeout Members, Kick Members or Ban Members. Removing messages only needs Manage Messages, so that still works. For the next 10 minutes that member’s messages are only removed. After six different members are refused in a row, the bot stops asking Discord for that action in your server for 5 minutes. Moving roles or saving the page ends both waits. See roles and permissions.
The link or invite rule removes links it should not
Block every link except the ones I allow is chosen with an empty allowed list, which removes every link. Switch to Allow links, block the ones I list, or add the addresses you want.
Invite links to your own server are caught as well. Exempt the channel or role that posts them.
A scam link is caught by Scam and phishing links while that rule is on, even when the address is on your allowed list.
The word filter misses words, or catches innocent ones
Misses "i d i o t" or "1d10t": switch on See through evasions.
Catches a word inside another word: switch on Whole words only, or add the real word to Words that are always fine.
A new list: test it with Try a message, then run it in Watch mode for a day.
I cannot save my word list
The free plan takes 100 words, Premium 5,000. A save that makes the list longer than your plan allows is refused. A list that grew under Premium keeps working after it ends, and you can shorten it or swap words.
Discord’s own AutoMod rule was not set up
The line under the switch says why. Most often ZombyIO lacks Manage Server, or your server already uses every rule of that kind Discord allows. It is also left out while watch mode is on, while the rule leaves messages up, or while the rule is limited to certain channels. The bot keeps filtering in every case.
Raid defence never announced anything
The alarm is posted in Where to raise the alarm, or in the log channel when that is empty. With neither set, it is not announced anywhere. It is also only announced once per alarm, and raid defence counts nothing while the feature is off.
Ask in the ZombyIO support server. Bring your support ID, your server’s support ID and a sentence about what you expected to happen, and someone will look at it with you.