Skip to content
Docs menu: Moderation

Moderation

Moderation

About this feature: Moderation

In short

Your staff use slash commands such as /warn, /timeout, /kick and /ban. Every action is saved as a numbered case. Three warnings earn a one hour timeout and five earn a kick, unless you change that.

Turn it on

The commands work as soon as Bastion is in your server. Anyone with the matching Discord permission can use them, such as Ban Members for /ban. To let staff moderate without those permissions, add a moderator role on the People page, or set up staff tiers if different staff should get different commands.

The everyday commands

CommandWhat it does
/warnGives a member a formal warning. Add points to make a serious one count for more.
/timeoutStops a member talking for a set time. Leave the length out and your default is used.
/untimeoutEnds a timeout early. See Undoing a ban or timeout, below.
/kickRemoves a member. They can rejoin.
/banRemoves a member for good, or for a set time if you add duration. Works on a user ID too, for someone who isn't in the server.
/softbanBans and unbans at once, to remove someone and delete their recent messages.
/unbanLifts a ban. See Undoing a ban or timeout, below.
/purgeDeletes up to 1000 recent messages in a channel, with filters.
/nick cleanReplaces a name nobody can read with a readable one.
/infoSums up a member or the server.
/slowmodeLimits how often people can post in a channel.
/quarantine addRemoves all of a member's roles. See quarantine.

Every command, with an example, is on the command list.

Without typing a command

  • Right-click actions. Right-click a member, choose Apps, then Warn, Timeout, Kick, Ban or Quarantine. A short form opens first. Warn needs a reason. See right-click actions.
  • Member reports. Any member can right-click a message, choose Apps, then Report to moderators. Staff get a post with buttons to deal with it. On by default. See member reports.
  • Appeals. Banned and timed-out people can ask for it to be lifted, and staff approve or deny with one press. Off by default. A moderator can't approve an appeal against something Bastion, the owner or a trusted person did. See appeals.

All three follow the same permission rules, role order and per-moderator limits as the slash commands on this page.

Undoing a ban or timeout

/unban and /untimeout depend on who placed the ban or timeout. The same rule decides who can approve an appeal.

Who placed itWho can undo it
Bastion itself, such as Anti-Nuke, Anti-Raid, the Join Gate or AutomodThe owner and trusted people only.
The server owner or a trusted personThe owner and trusted people only.
A moderator or an admin, through BastionAnyone who can use the command.
Someone by hand in Discord, without BastionAnyone who can use the command.

A moderator who tries is told that only the server owner or a trusted person can undo this one. People with Administrator count as moderators here unless they're on the trusted list. This stops a stolen moderator account letting an attacker straight back in.

Cases

A case is a numbered record of one moderation action. Every ban, kick, timeout, warning and quarantine becomes a case with who did it, who it was done to and why.

  • /case view looks up one case by its number.
  • /case edit changes the reason. The old reason is kept in the case's history, with who changed it and when.
  • /case close closes a case and /case reopen opens it again. A closed warning stays on record but no longer counts towards warn steps.
  • /cases shows a member's 10 most recent cases.
  • /warnings list shows how many warnings still count and the 10 most recent. /warnings clear closes all of them at once, after you confirm.

Things Bastion does on its own are cases too. An Automod timeout shows Bastion as the moderator, so a member's history is all in one place.

A moderator can't edit or close a case about themselves, or one filed by Bastion, the owner or a trusted person. The owner and trusted people can change any case. Closed and edited cases are marked on the dashboard's Activity page.

TipAlways give a reason. In three months you won't remember why someone was banned, and the case is the only record.

Temporary bans

Add duration to /ban, such as 12h, 7d or 2w, and the ban ends by itself. Bastion saves the end time the moment the ban is placed, so a restart doesn't lose it, and checks once a minute for bans that are due. The unban is filed as a case by Bastion. The member is told when the ban ends in their private message. You can't put a temporary ban on someone who is already banned: Bastion says so and leaves the ban they have alone. Unban them first if you're allowed to. /unban ends it early and cancels the timer. If Discord won't let Bastion lift the ban, it tries again for an hour and then tells you in the security log.

Clearing out messages

/purge deletes up to 1000 messages, 100 at a time. Above 100 it asks first. You can filter by person, role, bots or people, links, attachments, embeds, mentions, text, and a start and end message. Discord doesn't let bots bulk delete messages older than 14 days, so Bastion leaves those and tells you how many there were. Pinned messages are always kept.

Unreadable names

/nick clean fixes one member's name: fancy fonts become ordinary letters, stacked marks and invisible characters are removed, and punctuation put at the front to reach the top of the member list is dropped. Ordinary names in any language, accents and emoji are left alone. If nothing readable is left the member becomes Member and four digits. Switch on Clean up unreadable nicknames and Bastion does this by itself when someone joins or renames. It skips bots, the owner and trusted people. Bastion needs the Manage Nicknames permission for either.

Mass cleanup

After a raid, /cleanup quarantined kicks or bans everyone in quarantine, and /cleanup recent does the same to everyone who joined in the last few minutes, up to 60, leaving alone anyone with a role beyond your verified role. Only the owner and trusted people can run them. Bastion shows the exact count and the first 20 names and waits for you to confirm, then files one case and posts it in the security log. The members aren't sent a message.

Notes

A note is a private comment about a member that only staff can see. It isn't a punishment and the member isn't told. Use /note add to write one and /note list to read them. /note edit and /note delete change your own notes, and the owner and trusted people can change anyone's. Good for things like 'asked politely to stop, said sorry'. A note can be up to 500 characters and a member can have up to 50.

Warn steps

Warn steps turn warnings into action automatically, so staff don't have to keep count.

SettingWhat it doesDefault
Step 1What happens when a member reaches this many warnings.3 warnings: timeout for 60 minutes
Step 2The next step up.5 warnings: kick
Tell people when they are punishedSends the member a private message saying what happened and why.On

You can have up to 5 steps. Each one is a number of warnings from 1 to 50 and an action: timeout, kick or ban. A timeout step can last from 1 minute up to 28 days.

A step fires when a warning takes the member to its number. Once they're past your last step, that last step fires again on every further warning. Warnings don't expire.

Warning points

Not every warning is equal. Spamming memes and posting someone's address shouldn't count the same. So each warning is worth points, and the warn steps count points.

  • A plain /warn is worth 1 point. With every warning worth 1, points and warnings are the same number and nothing changes for you.
  • A moderator can add points to a warning, from 1 to 20. For example, /warn user:@Sam reason:Posted personal details points:3.
  • Points for one warning, under How commands behave, changes what a plain warning is worth.
  • A step fires when the warning takes the member's total to its number or past it. If one big warning passes two steps at once, the higher step is the one that fires.

With the default steps, a member on 1 warning who gets a 3 point warning is at 4 points. That passes the step at 3, so they're timed out for an hour. /warnings shows both numbers when they differ, such as 2 warnings worth 4 points. The right-click Warn always uses your default.

How commands behave

These are on the Moderation page under Advanced settings. Anyone who can open the dashboard can change them.

SettingWhat it doesDefault
Ask before banning or kickingAdds an Are you sure? step to /ban and /kick, with Confirm and Cancel buttons.Off
Hide which moderator did itThe private message sent to the punished member doesn't name the moderator.Off
Timeout length when none is givenUsed when /timeout is run without a length. 1 minute to 28 days.60 minutes
Messages removed on a banHow many days of the member's messages /ban deletes when no number is given. 0 to 7.0 days
Points for one warningWhat a /warn is worth when no number is given. 1 to 20.1 point
Shorter replies from BastionBastion answers the moderator with one short line in place of a box.Off
Remove Bastion's public replies afterDeletes a reply everyone can see after this many seconds, up to 600. Replies only the moderator can see aren't affected. 0 leaves them.0, off
Warnings stop counting afterA warning older than this many days no longer counts towards warn steps. It stays on record. 30 is a good start. 0 means warnings always count.0, off
Clean up unreadable nicknamesWhen someone joins or renames, a name nobody can read or mention is swapped for a readable one.Off

Confirm buttons

With Ask before banning or kicking on, /ban and /kick don't act straight away. Bastion asks, for example, Ban Sam? This removes them from the server. The moderator presses Confirm or Cancel.

  • The question lasts 30 seconds. After that nothing is done and the command has to be run again.
  • Only the moderator who ran the command can answer.
  • Every check runs again when Confirm is pressed: permissions, role order and the moderator's limits.
  • It covers the slash commands only. Right-click actions already open a form first.

Anonymous moderation

By default, the private message a member gets ends with a line naming the moderator. With Hide which moderator did it on, that line is left out. It stops members going after one moderator personally.

It only changes the message to the member. The case, your log channel and the Activity page still show who did it.

Shorter replies

Normally Bastion answers a moderator with a box: a title, the case number and the reason. With Shorter replies from Bastion on, it's one line, such as Kicked sam. Case 42. Anything that went differently is still said, such as a role that couldn't be given back.

Staff tiers

A moderator role gets every moderation command. A staff tier gets only the ones you tick, so helpers can warn and time out without being able to ban. Tiers are free, and only the server owner and trusted people can change them. See staff tiers.

Reports and appeals settings

These are on the Moderation page of the dashboard, in the groups Member reports and Appeals. Only the server owner and trusted people can change Accept appeals, Where appeals go and Where reports go. Other admins can change the rest.

SettingWhat it doesDefault
Let members report messagesLets members send a message to your staff from the right-click menu. See member reports.On
Where reports goThe staff channel for reports. Left empty, your Moderator actions channel is used, then Security alerts.Not set
Accept appealsLets banned and timed-out people ask to come back, and adds the appeal link to the message they're sent. See appeals.Off
Where appeals goThe staff channel for appeals. Left empty, your Moderator actions channel is used, then Security alerts.Not set
After a denial, they can try again inHow many days a denied person waits before appealing again. 1 to 90.7 days

Moderator roles

Moderator roles are the roles allowed to use Bastion's moderation commands. Set them on the People page of the dashboard. You can choose up to 15.

The idea is to give staff a moderator role instead of Discord's own Ban Members and Kick Members permissions. They can still moderate through Bastion, every action is logged as a case, and a stolen moderator account can't mass ban by hand. It can't mass ban through Bastion either, because of the limits below.

  1. Make a staff role

    Create a role such as Moderator with no dangerous permissions.

  2. Add it in the dashboard

    Open People, add the role under Moderators, and save.

  3. Take away Discord's own permissions

    Untick Ban Members and Kick Members on that role in Discord.

CarefulBastion can't act on anyone whose top role is level with or above its own, whoever runs the command. Keep Bastion at the top. See the setup guide.

Limits on moderators

Bans, kicks and quarantines made through Bastion count against the moderator who ran them. Bastion uses your Anti-Nuke limits, and adds command actions to anything the same person did by hand. A quarantine counts as a kick. Each limit has a number for a minute and a number for an hour. Reaching either one counts.

Timeouts are separate. They never count towards the kick limit and never get a moderator punished. They have their own limit of 10 a minute for each moderator.

ActionCounts towardsBalanced limit
/banBanning members5 a minute, 16 an hour
/kickKicking members5 a minute, 16 an hour
/quarantine addKicking members5 a minute, 16 an hour
/timeoutIts own fixed limit10 a minute
A warn step that times out, kicks or bansThe moderator who gave the warningThe same limits
A right-click actionThe same as its slash commandThe same limits
Timeout 1 hour on a reportThe timeout limit10 a minute
/purgeIts own fixed limit5 uses a minute

The action that reaches the limit is refused. With a limit of 5 a minute, the fifth ban in a minute doesn't happen. With 16 an hour, the sixteenth in an hour doesn't either. The moderator is told which limit they reached. It reads as a limit of 5 kicks or quarantines a minute, or a limit of 16 bans an hour. Bastion then treats them as anti-nuke would: it applies your anti-nuke punishment, which is quarantine by default, saves a case and posts a report in the security log.

Timeouts work differently. Each moderator can time out 10 people a minute. The eleventh is refused with the message You have timed out 10 people in the last minute. Nothing else happens. Nobody is punished, nothing is reported, and the number can't be changed. This is on purpose: a few accounts misbehaving together shouldn't be able to get a moderator quarantined for dealing with them.

/purge works differently too. Each moderator can run it 5 times a minute, and each run deletes up to 100 messages. A sixth run is refused with a note to wait a minute. Nobody is punished and the number can't be changed.

  • The owner and trusted people are never limited.
  • Kicks and quarantines share one counter. Three kicks and two quarantines in a minute reach a limit of 5. The hour number works the same way. Timeouts aren't on that counter.
  • Warnings, unbans, ending a timeout early, notes and approving an appeal aren't counted. A warning that sets off a warn step is counted as that step. Approving appeals has a small limit of its own: 5 in 10 minutes for each moderator.
  • The ban and kick limits come from Anti-Nuke. If Anti-Nuke is off, or that one limit is switched off, bans, kicks and quarantines aren't counted. The timeout limit of 10 a minute always applies. It has no hourly cap.
  • To change the numbers, open Anti-Nuke, then Advanced settings, and set Banning members and Kicking members.

Who can use the commands

  • The server owner and trusted people.
  • Anyone with Administrator.
  • Anyone holding one of your moderator roles.
  • Anyone in a staff tier that has that command ticked.
  • Anyone with the Discord permission that matches the command, such as Ban Members for /ban. The full list is on the command list.

The commands appear in everyone's command list. Bastion checks who you are when you use one and refuses privately if you aren't allowed.

A moderator can only act on members whose top role is below their own. The owner can act on anyone below Bastion. Nobody can act on the owner, on Bastion or on themselves.

Where actions are logged

Pick a channel under Moderator actions on the Logs page. Every case made with a command is posted there as it happens. If you leave it empty, they go to your security log channel instead.

My moderator says the commands don't work.

Their role isn't on the Moderators list or in a staff tier with that command ticked, or the person they're trying to punish has a top role level with or above theirs, or above Bastion's. If it says the commands are paused, panic mode is running.

How do I let helpers warn but not ban?

Make a staff tier for their role and tick only Warn and Time out.

/ban asked me to confirm.

Ask before banning or kicking is on. Press Confirm within 30 seconds, or Cancel. It's under How commands behave on the Moderation page.

The member can see which moderator banned them.

Switch on Hide which moderator did it. The message they're sent will no longer name the moderator.

/timeout worked without a length.

It used your default, which is 60 minutes unless you changed Timeout length when none is given. The reply says so.

Can I remove a warning?

There's no command to delete a case. Add a note with /note add to explain that a warning was a mistake.

Bastion kicked someone after a warning.

That warning took them to 5 points or more, and 5 is the default kick step. Unless you use points, that's 5 warnings. Change the steps on the Moderation page.

Do bans through Bastion count towards anti-nuke?

Yes. /ban, /kick, /quarantine add and warn steps that kick or ban are counted against the moderator who ran them, together with anything they did by hand. At the limit Bastion refuses the action and punishes the moderator the way Anti-Nuke would. Timeouts aren't counted. The owner and trusted people are exempt.

My moderator was quarantined after banning people.

They reached the ban limit. On Balanced that's 5 a minute or 16 an hour. Check the security log, which says which one, then run /quarantine remove on them. If your staff often need to remove many people at once, raise the limit in Anti-Nuke or ask the owner to do it.

Can a moderator be punished for timing people out?

No. Timeouts made through Bastion never count towards the kick limit. A moderator can time out 10 people a minute. After that the timeout is refused with a message and nothing else happens.

A timeout was refused. It says I have timed out 10 people in the last minute.

Wait a minute and try again. During a spam wave, let Automod do the timeouts. The owner and trusted people aren't limited.

/unban says only the server owner or a trusted person can undo this one.

Bastion, the owner or a trusted person placed that ban. A moderator can't lift it, with /unban or by approving an appeal. The same goes for /untimeout. Ask the owner or a trusted person.

Can members report a message to us?

Yes. They right-click it, choose Apps, then Report to moderators. See member reports.

Can a banned person ask to come back?

Yes, once you switch on Accept appeals on the Moderation page. See appeals.

/purge says I have used it 5 times.

Each moderator can run /purge 5 times a minute. Wait a minute and run it again.

The member didn't get a message.

They have private messages closed, or Tell people when they are punished is off. The action still went through.

Last updated