Skip to content
Docs menu: How heat works

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

SettingWhat it doesDefault
Heat limitHow much heat a member can build before Bastion steps in.100
Heat per messageWhat every message adds, whatever it says.12
Cool-down speedHeat 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.

MessageCooled since lastAddedHeat
101212
2 (repeat)43442
3 (repeat)43472
4 (repeat)434102, 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

ReasonWhen it countsHeat (Balanced)
Any messageEvery message.12
Repeating yourselfThe message is nearly the same as one of your last five.22
Pinging peopleFor each person or role pinged, up to 20.15 each
Pinging @everyoneThe message pings @everyone or @here.100
Server inviteThe message contains a Discord invite link.100
Scam linkThe message links to a known scam or phishing site, such as a fake Nitro gift.100
Blocked linkThe message links to a site on your blocked list.100
Adult linkThe message links to a well-known adult site.100
Blocked wordThe message uses a word on your blocked list, or on a ready-made list you switched on. Off by default.60
Files and imagesFor each attachment, up to 10.18 each
StickersFor each sticker, up to 5.15 each
Glitchy textText piled with stacking marks so it spills over the lines above and below.15
Capitals12 or more letters and at least 70% of them capitals.15
EmojiFor each emoji after the third, up to 30.3 each
Wall of textFor each line break after the sixth, up to 20.4 each
Very long messageOver 900 characters with few line breaks.20
Any linkThe message links to anywhere outside Discord. Off by default.10
Quiet channelThe channel had no messages for 30 minutes before this one. Off by default.10
Suspicious accountAdded 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

SettingRelaxedBalancedStrict
Heat per message81217
Cool-down per second1285
Repeating yourself162234
Each ping101525
Each attachment121826
Capitals8 (filter off)1525
Blocked word4060100
Heat limit100100100

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