Protection
How heat works
About this feature: Automod
In short
Heat is a spam score. Messages push it up, quiet seconds bring it down, and hitting 100 means a timeout. Normal chat never gets close. Spam gets there in a second or two.
The engine
Think of an engine. Rev it gently and it stays cool. Floor it and it overheats.
Each member has their own engine. Sending a message revs it. Stopping lets it cool. Bastion only steps in when someone overheats.
Live demo
Member heat
Press a button to send a message as a pretend member.
Try the simulator above. Send a few messages slowly, then hammer the button.
The three numbers that matter
| Setting | What it does | Default |
|---|---|---|
| Heat limit | How much heat a member can build before Bastion steps in. | 100 |
| Heat per message | What every message adds, whatever it says. | 12 |
| Cool-down speed | Heat lost for each second the member is quiet. | 8 per second |
These are the Balanced numbers. One message adds 12. Heat cools at 8 a second, so that message is forgotten in a second and a half.
Worked example: normal chat
Sam is chatting and sends a message every 3 seconds.
- Message 1 adds 12. Heat is 12.
- Three seconds pass. Sam cools by 24. Heat is back to 0.
- Message 2 adds 12. Heat is 12 again.
Sam can do this all day. Heat never goes above 12 out of 100.
Even a message every single second is slow to build. Each one adds 12 and 8 drains away, so heat creeps up by 4. It would take 23 messages in a row, one a second without a pause, to reach 100.
Worked example: spam
A spammer pastes the same line twice a second. A repeated message adds 22 on top of the usual 12, so 34 each time.
| Message | Cooled since last | Added | Heat |
|---|---|---|---|
| 1 | 0 | 12 | 12 |
| 2 (repeat) | 4 | 34 | 42 |
| 3 (repeat) | 4 | 34 | 72 |
| 4 (repeat) | 4 | 34 | 102, over the limit |
Four messages, a second and a half, and it's over. Bastion deletes the messages, times the spammer out, and sets their heat back to 0.
If you switch off Start from zero after a punishment, their heat goes to 60 instead of 0. One more burst and they're over the limit again. See Automod.
What adds heat
| Reason | When it counts | Heat (Balanced) |
|---|---|---|
| Any message | Every message. | 12 |
| Repeating yourself | The message is nearly the same as one of your last five. | 22 |
| Pinging people | For each person or role pinged, up to 20. | 15 each |
| Pinging @everyone | The message pings @everyone or @here. | 100 |
| Server invite | The message contains a Discord invite link. | 100 |
| Scam link | The message links to a known scam or phishing site, such as a fake Nitro gift. | 100 |
| Blocked link | The message links to a site on your blocked list. | 100 |
| Adult link | The message links to a well-known adult site. | 100 |
| Blocked word | The message uses a word on your blocked list, or on a ready-made list you switched on. Off by default. | 60 |
| Files and images | For each attachment, up to 10. | 18 each |
| Stickers | For each sticker, up to 5. | 15 each |
| Glitchy text | Text piled with stacking marks so it spills over the lines above and below. | 15 |
| Capitals | 12 or more letters and at least 70% of them capitals. | 15 |
| Emoji | For each emoji after the third, up to 30. | 3 each |
| Wall of text | For each line break after the sixth, up to 20. | 4 each |
| Very long message | Over 900 characters with few line breaks. | 20 |
| Any link | The message links to anywhere outside Discord. Off by default. | 10 |
| Quiet channel | The channel had no messages for 30 minutes before this one. Off by default. | 10 |
| Suspicious account | Added to every message from an account that looks like a throwaway. Off by default. | 7 |
A message is scored for one kind of link only. A scam link comes first, then a blocked website, then an adult site, then any link.
An account looks like a throwaway to Automod if it's under a week old with no profile picture, or if it looked like one when it joined in the last 24 hours. The join check is explained on the Join Gate page.
Reasons stack. A message that pings six people adds 12 plus 90, which is 102. That's a timeout from one message, which is the point: mass pings, @everyone pings, invite links and scam links are stopped the first time.
Most reasons end in a timeout. A few can be set to kick or ban instead, and a scam link is a ban by default. See A different punishment for each reason on the Automod page.
How the levels differ
| Setting | Relaxed | Balanced | Strict |
|---|---|---|---|
| Heat per message | 8 | 12 | 17 |
| Cool-down per second | 12 | 8 | 5 |
| Repeating yourself | 16 | 22 | 34 |
| Each ping | 10 | 15 | 25 |
| Each attachment | 12 | 18 | 26 |
| Capitals | 8 (filter off) | 15 | 25 |
| Blocked word | 40 | 60 | 100 |
| Heat limit | 100 | 100 | 100 |
Changing these numbers yourself is called custom heat tuning and needs Pro. On the free plan you choose one of the three levels and switch individual filters on or off.
TipWhat happens after someone overheats, including how timeouts get longer, is covered on the Automod page.
Why did Bastion time out my friend?
Their heat reached 100. The usual causes are pinging several people at once, posting an invite link, or pasting the same thing quickly. The log entry lists the reasons.
Can I see someone's heat?
Not as a live number. When Bastion acts, the log shows what pushed them over.
Is there a score like this for nukes?
Yes. The attack score adds up channel deletes, bans and other damage the same way heat adds up messages.
Does heat carry over between channels?
Yes. Heat belongs to the member, not the channel.
People keep overheating in my busy chat.
Switch to the Relaxed level, or exempt that channel. See Automod.
Last updated