ZombyIO
All guides

Docs · Keep the server safe

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

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.

  1. Your servers
  2. Your server
  3. Auto moderation
Open the dashboard

Step by step

  1. 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.

  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.

  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.

    general
  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.

  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.

  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.

    mod-alerts
  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.

    automod-log

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.

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
WhatFreePremium
Your own words in the filter1005,000
Limit a rule to certain channels or rolesNot includedIncluded

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 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.

Still stuck?

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.

Go to the support server