Punishments

Every punishment from a moderator's /ban, an auto-moderation filter or Security goes through one place, in one order. This is that order.

On this page

Three separate systems punish people: Moderation when a human decides to, Auto Moderation when a message trips a filter, and Security (Join Guard included) when somebody with power does too much too fast. All three call the same function, which is why a mute is a mute no matter who ordered it: it gets a numbered case, the member's DM and an expiry either way.

Automations are the exception

An automation can time out, kick or ban as one of its actions, but those act on Discord directly. They open no case, send no punishment DM, skip the immunity list and never climb a ladder. Use Auto Moderation when you want a filter's punishments on the record.

The order things happen in

  1. Check immunity

    For a moderator's command: the server owner, Arclo itself, immune members and roles, anybody at or above the moderator's own top role (Respect the role hierarchy), other moderators (Moderators can't punish each other, overruled by the owner and Administrators) and, if you switch it on, bots. Those switches are on Moderation's General tab; the first two start on. Nothing further happens, the moderator is told why, and Moderation's log notes the refusal. Anybody above Arclo's role is refused for anything Discord has to carry out, though a warning or a note is still recorded against them.

  2. Check for a fresh case

    Off by default. With Stop a second punishment on somebody who was just punished on (General tab), a moderator punishing somebody who already has a recent case from another moderator is refused, and told the case number and who filed it. Two moderators reaching for /warn over the same message no longer file two warnings.

  3. DM the member before acting

    The notice goes out first, deliberately. A banned member cannot receive a DM from a server they are no longer in, so telling them afterward means not telling them at all. Evidence is saved before the DM quotes it: a file attached as evidence is re-posted into your moderation log channel, so the case, the DM and the log keep a link that still opens weeks later.

  4. Carry it out in Discord

    Timeout, role, kick, ban. Whatever the action is. If Discord refuses (a missing permission, a role above Arclo's), no case is opened, the moderator gets the reason, and Moderation's log records the failure, with the permission that was missing.

  5. Open the case

    A numbered case is created with the type, the target, the moderator, the reason, the duration and any evidence. Case numbers are allocated atomically, so two simultaneous bans cannot share one.

  6. Schedule the expiry, log and announce

    Timed punishments get an expiry that lifts them on schedule, including across restarts. Then the log entry, and, if the punishment's Announce it in the channel switch is on, a public announcement where the command was used. Both are designed messages you control.

  7. Check the warning thresholds

    After a warning, Moderation's ladder looks at the member's warnings and, if this one crossed a threshold, follows it with the heavier punishment as a case of its own. See Escalation ladders below.

The actions

ActionWhat it doesCan be timed
WarnRecords a case and notifies the member. Nothing changes in Discord. Warnings can carry points, and stop counting after the expiry you set.No
MuteA Discord timeout, a muted role, or both: your choice per server, on Moderation's General tab. /mute can cover chat, voice or both.Yes
HardmuteA mute that also takes their other roles, handed back when it lifts. /hardmute, or make every mute one per server.Yes
KickRemoves the member. They can rejoin with a new invite.No
BanRemoves the member and blocks their return, optionally deleting their recent messages.Yes
SoftbanBan then immediate unban. Removes them and their recent messages.No
Voice mute / deafen / voice kickOnly inside voice channels. A voice kick disconnects them from the call.Mute and deafen: yes
RoleGives or takes a role. /role temp gives one that lifts itself.Yes
NicknameSets, resets, cleans up or freezes a member's nickname.No
Lock / slowmode / lockdownApplies to a channel, or to the whole server, rather than a member.Yes

Durations

  • Written the natural way: 30m, 2h, 1h30m, 7d, 2 weeks, 1 month. Every part needs a unit: a bare 30 is refused rather than guessed. The shortest is 1 minute; a mute can last up to 1 year and a ban up to 10 years.
  • Leaving a duration out uses the punishment's Default duration (Moderation's Punishments tab). Passing permanent (or forever, or 0) makes it permanent. The two are different, and Arclo keeps them different. A Longest a moderator may set limit caps both, permanent included.
  • Discord timeouts cap at 28 days. A longer mute is renewed automatically before each cap expires, so a 90-day mute really is 90 days.
  • Expiries survive restarts. A ban that should lift at 3am lifts at 3am whether or not anything else happened that night. The one exception is Moderation being switched off: nothing lifts while it is off, and what came due lifts when it is back on.

The exact parsing and formatting rules are on Durations and time zones.

Escalation ladders

Moderation's ladder is Warning thresholds, under the punishment grid on its Punishments tab, and it is off until you switch it on. Each threshold names a number of warnings (or warning points, with Count by), an optional window in days, and what happens: a mute, kick, ban or softban, a role, or only a note to staff. Only the highest threshold a warning crosses fires, once, as a case of its own after the warning. Warnings stop counting after applies to every threshold, and to what /warnings list counts.

Ladders apply to automatic warnings too

A filter that warns somebody escalates exactly like a moderator's warning would, because it goes through the same entry point. That is usually what you want, and it is the reason to be careful with a filter that fires often. Auto Moderation also keeps a ladder of its own (Violations and escalation, on its Punishments tab), which counts rule hits within minutes rather than warnings within days.

Immunity

  • Moderation's General tab holds the server-wide list (Immune roles and Immune members), and each punishment on the Punishments tab can add Roles immune to this specifically, so “moderators can be warned but not banned” is expressible.
  • Immunity is checked first, so an immune member never gets a case or a DM from an attempt. The refusal is still noted in Moderation's log, so staff can see why a command did nothing.
  • Immunity covers moderators' commands. Auto Moderation and Security decide who they apply to with their own exemptions and trust levels.
  • Role hierarchy is enforced separately by Discord: Arclo cannot act on anybody above its own role however you configure it.

Undoing things

  • /unban, /unmute and the rest open their own cases, so the history reads as a story rather than a list of punishments.
  • Unlocking a channel restores the previous permission state rather than clearing the overwrite. A channel that was already restricted for @everyone stays that way.
  • /case pardon keeps a case on the record but stops it counting toward warning thresholds. /case delete removes a case from the record. Neither undoes what was done.
  • Security's protections carry an undo that rebuilds what an attack destroyed. Deleted channels, stripped roles, mass bans.

Still stuck? Ask in the support server: somebody there has almost certainly configured this before.