Skip to content
Docs menu: Automod

Protection

Automod

About this feature: Automod

In short

Automod times out spammers and deletes their messages. The first two timeouts are 5 minutes, the third is an hour, and it doubles after that. A scam link is a ban. It's on by default.

Turn it on

It's already on, set to the level you chose in the setup wizard. To change it, open Automod in the dashboard. The switch on the overview card turns it on or off. Anyone who can open the dashboard can change Automod.

How it decides

Automod runs on heat. Heat is a score that rises when someone sends messages and falls when they stop. Reach the limit and Bastion steps in. The full explanation, with worked numbers, is on the heat page.

When a member overheats, Bastion:

  1. Times the member out. A few reasons can be set to kick or ban instead. See A different punishment for each reason, below.
  2. Deletes their recent messages in that channel.
  3. Gives them a strike.
  4. Tells them why in a private message, as long as Tell people when they are punished is on. That switch is on the Moderation page.
  5. Saves a case and posts what happened in your log channel.

Filters

Each filter is one thing that adds heat. Switch off any you don't want.

SettingWhat it doesDefault
Sending messages very fastEvery message adds a little heat.On
Repeating the same messageExtra heat for saying nearly the same thing again.On
Pinging lots of peopleExtra heat for each person or role pinged.On
Pinging @everyoneA ping of @everyone or @here is an instant timeout.On
Invites to other serversA Discord invite link is an instant timeout.On
SHOUTING IN CAPITALSExtra heat for shouting.On
Emoji spamExtra heat for more than three emoji.On
Flooding images and filesExtra heat for each attachment.On
Walls of textExtra heat for very long or very tall messages.On
Any link at allExtra heat for any link to somewhere outside Discord.Off
Scam and phishing linksFake Nitro gifts and look-alike Discord and Steam sites. A ban by default.On
Links to adult sitesA link to a well-known adult site is an instant timeout.On
Glitchy textExtra heat for text stacked with symbols so it spills over other messages. Also called zalgo text.On
Sticker spamExtra heat for each sticker.On
Blocked wordsExtra heat for words on your lists.Off
Be stricter with suspicious accountsA little extra heat on every message from a brand new account with no picture.Off
Spam in quiet channelsExtra heat for posting in a channel nobody has used for 30 minutes. Catches someone dripping messages into a channel nobody is watching.Off

Relaxed switches off the capitals and emoji filters. Strict switches on Any link at all. The exact heat for each filter is on the heat page.

  • Bastion checks every link against a public list of known scam sites. It fetches a fresh copy every 6 hours.
  • It also catches misspellings of Discord and Steam addresses, and addresses that mix those names with words like gift, free or nitro.
  • Real Discord and Steam addresses are never flagged.
  • The exceptions further down this page never allow a scam link. Only the ignore lists do, because they switch Automod off completely for a role or channel.

Blocked words and websites

Switch the Blocked words filter on first. The four word settings only appear once it's on.

  • Block slurs. A ready-made list of hateful slurs. You don't have to type them. Off by default.
  • Block swearing. A ready-made list of common swear words. Off by default.
  • Blocked words. Up to 200 words or short phrases of your own, 2 to 40 characters each. They match whole words only, so blocking sell doesn't catch seller. The ready-made lists match whole words too.
  • Blocked anywhere in a word. Up to 100 pieces of text that are caught wherever they appear. Add berry and strawberry is caught too. Spaces and symbols between the letters don't help the sender.
  • Blocked websites. Up to 200 sites, written like example.com. Subdomains are covered too. A blocked website is an instant timeout and works even when the Any link at all filter is off.

CarefulBe careful with Blocked anywhere in a word. A short entry catches far more than you expect. Adding ass would also catch class, pass and glass.

The ready-made lists are never shown to anyone. To block a message before it's even posted, add a rule on the Discord AutoMod page as well.

Bastion strips invisible characters and fancy look-alike lettering before it checks a message. Invite links are still caught when they're spaced out or written with the word dot. Links hidden inside embeds are checked as well.

A different punishment for each reason

Most spam earns a timeout. Six reasons can be stricter. In the dashboard they're in the group What happens for the serious ones.

SettingChoicesDefault
A scam linkTime them out, kick them or ban them.Ban them
An invite to another serverTime them out, kick them or ban them.Time them out
Pinging @everyoneTime them out, kick them or ban them.Time them out
A blocked websiteTime them out, kick them or ban them.Time them out
A blocked wordTime them out, kick them or ban them.Time them out
A link to an adult siteTime them out, kick them or ban them.Time them out
  • Bastion looks at the message that pushed the member over the limit and takes its biggest reason. If that reason is one of the six, its punishment is used. Anything else is a timeout.
  • Before a kick or ban, the member is told why in a private message, as long as Tell people when they are punished is on.
  • A ban also removes the member's messages from the last hour, as long as Delete the spam is on.
  • If Bastion can't kick or ban the member, it times them out instead and the log says so.
  • Every punishment is a strike, whichever kind it is.

For example, set A blocked word to Kick them. Someone posts a word on your list twice in a couple of seconds, overheats, and is kicked instead of timed out.

Strikes and timeouts

A strike is one automod punishment. Strikes make the next timeout longer.

StrikeTimeout (Balanced)
1st5 minutes
2nd5 minutes
3rd60 minutes
4th2 hours
5th4 hours
Each one afterDouble the last, up to 28 days

28 days is the longest timeout Discord allows. A member's strikes are forgotten one hour after their last one. Strikes are saved, so they survive a restart of the bot. The saved record holds only the server, the member and the count, and it deletes itself after that hour. See privacy and data.

Advanced settings

SettingWhat it doesDefault
First timeoutLength of the short timeout. 1 minute to 7 days. This one is in the simple view.5 minutes
Long timeoutLength of the timeout once the short ones run out. 1 minute to 28 days. It doubles every time after that.60 minutes
Strikes before the long timeoutWhich strike starts the long timeout. 1 to 10.3
Start from zero after a punishmentOn, heat goes back to 0 after a punishment. Off, it stays at 60% of the limit, so someone who carries on is caught sooner.On
Delete the spamRemoves the member's recent messages in that channel.On
Watch webhooks tooScores messages sent through webhooks. A webhook that spams is deleted, along with its messages.On
Roles automod ignoresUp to 25 roles.None
Channels automod ignoresUp to 50 channels. Threads inside an ignored channel are ignored too.None

Exemptions

The owner and trusted people are always ignored. So is anyone with Manage Messages or Administrator, anyone holding a moderator role, and other bots. Use the ignore lists for anyone else who should be skipped, and for places where flooding is the point, such as a bot commands channel or a counting game.

CarefulDon't exempt a role that new members can get on their own. A raider would pick it up too.

Exceptions for one thing

The ignore lists switch Automod off completely for a role or a channel. Often you only want to allow one thing in one place, such as invites in a partners channel. That's what the group Exceptions for one thing is for. It's under Advanced settings.

SettingWhat it allows thereGood for
Channels where server invites are fineDiscord invite links.A partners or advertising channel.
Roles that can post invitesDiscord invite links, anywhere.A partner manager role.
Channels where any link is fineLinks, including blocked websites and adult sites. Scam links are still blocked.A clips or resources channel.
Roles that can post any linkThe same, anywhere.Content creators.
Roles that can ping lots of peoplePings of people and roles.Event hosts.
Roles that can ping @everyonePings of @everyone and @here.An announcements team.
Channels where fast chat is fineFast messages, repeats, capitals, emoji, walls of text, files, stickers and glitchy text.A spam or counting channel.
Roles that can chat fastThe same, anywhere.Long-standing regulars.

Everything else still counts. In a partners channel, invites are fine but pinging 10 people is still a timeout. Picking a category covers every channel inside it, and threads follow their channel. You can pick up to 50 channels and 25 roles for each setting.

Ping flood lockdown

Automod deals with one member at a time. If many accounts ping at once, switch on Lock the server on a ping flood. At 50 pings within 5 seconds, Bastion locks every channel, then unlocks them 10 minutes later. It's free and off by default. See ping flood lockdown.

Raid panic (Pro)

When several people spam at once, it's a raid, not one rude member. With raid panic on, 3 members overheating within 30 seconds puts automod on high alert for 10 minutes. While it lasts, anyone who joined the server in the last 24 hours is timed out the moment they post. All three numbers can be changed: 2 to 20 people, 5 to 300 seconds and 1 to 120 minutes. Raid panic and custom heat numbers are part of Pro.

Why did Bastion time out my friend?

They overheated. Usually it's several pings in one message, an invite link, or the same message pasted quickly. The log lists the reasons. The owner or a trusted person can end it early with /untimeout. A moderator can't undo a timeout Bastion placed.

Will it punish me?

Not if you're the owner or a trusted person. Staff are skipped too, as long as they have Manage Messages, Administrator or a moderator role.

Automod isn't doing anything.

Check Automod is switched on, that Bastion has Manage Messages and Timeout Members, and that the spammer isn't ranked above Bastion, staff, or in an ignored role or channel.

Someone was banned for one link.

It was on the scam list, and A scam link is set to Ban them by default. If it was a mistake, the owner or a trusted person can run /unban. To make it milder, change A scam link under What happens for the serious ones.

I can't find Block slurs.

Switch on the Blocked words filter first. The word settings appear underneath Blocked words and websites.

We allow invites in one channel. How?

Add the channel under Channels where server invites are fine. Automod still handles everything else there.

It's too strict for my server.

Choose the Relaxed level, or switch off the filter that keeps firing. The log tells you which one it was.

Last updated