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:
- Times the member out. A few reasons can be set to kick or ban instead. See A different punishment for each reason, below.
- Deletes their recent messages in that channel.
- Gives them a strike.
- 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.
- 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.
| Setting | What it does | Default |
|---|---|---|
| Sending messages very fast | Every message adds a little heat. | On |
| Repeating the same message | Extra heat for saying nearly the same thing again. | On |
| Pinging lots of people | Extra heat for each person or role pinged. | On |
| Pinging @everyone | A ping of @everyone or @here is an instant timeout. | On |
| Invites to other servers | A Discord invite link is an instant timeout. | On |
| SHOUTING IN CAPITALS | Extra heat for shouting. | On |
| Emoji spam | Extra heat for more than three emoji. | On |
| Flooding images and files | Extra heat for each attachment. | On |
| Walls of text | Extra heat for very long or very tall messages. | On |
| Any link at all | Extra heat for any link to somewhere outside Discord. | Off |
| Scam and phishing links | Fake Nitro gifts and look-alike Discord and Steam sites. A ban by default. | On |
| Links to adult sites | A link to a well-known adult site is an instant timeout. | On |
| Glitchy text | Extra heat for text stacked with symbols so it spills over other messages. Also called zalgo text. | On |
| Sticker spam | Extra heat for each sticker. | On |
| Blocked words | Extra heat for words on your lists. | Off |
| Be stricter with suspicious accounts | A little extra heat on every message from a brand new account with no picture. | Off |
| Spam in quiet channels | Extra 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.
How scam links are spotted
- 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
selldoesn't catchseller. 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
berryandstrawberryis 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.
| Setting | Choices | Default |
|---|---|---|
| A scam link | Time them out, kick them or ban them. | Ban them |
| An invite to another server | Time them out, kick them or ban them. | Time them out |
| Pinging @everyone | Time them out, kick them or ban them. | Time them out |
| A blocked website | Time them out, kick them or ban them. | Time them out |
| A blocked word | Time them out, kick them or ban them. | Time them out |
| A link to an adult site | Time 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.
| Strike | Timeout (Balanced) |
|---|---|
| 1st | 5 minutes |
| 2nd | 5 minutes |
| 3rd | 60 minutes |
| 4th | 2 hours |
| 5th | 4 hours |
| Each one after | Double 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
| Setting | What it does | Default |
|---|---|---|
| First timeout | Length of the short timeout. 1 minute to 7 days. This one is in the simple view. | 5 minutes |
| Long timeout | Length 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 timeout | Which strike starts the long timeout. 1 to 10. | 3 |
| Start from zero after a punishment | On, 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 spam | Removes the member's recent messages in that channel. | On |
| Watch webhooks too | Scores messages sent through webhooks. A webhook that spams is deleted, along with its messages. | On |
| Roles automod ignores | Up to 25 roles. | None |
| Channels automod ignores | Up 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.
| Setting | What it allows there | Good for |
|---|---|---|
| Channels where server invites are fine | Discord invite links. | A partners or advertising channel. |
| Roles that can post invites | Discord invite links, anywhere. | A partner manager role. |
| Channels where any link is fine | Links, including blocked websites and adult sites. Scam links are still blocked. | A clips or resources channel. |
| Roles that can post any link | The same, anywhere. | Content creators. |
| Roles that can ping lots of people | Pings of people and roles. | Event hosts. |
| Roles that can ping @everyone | Pings of @everyone and @here. | An announcements team. |
| Channels where fast chat is fine | Fast messages, repeats, capitals, emoji, walls of text, files, stickers and glitchy text. | A spam or counting channel. |
| Roles that can chat fast | The 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