Moderation
Warns, mutes, kicks and bans with a numbered case history — 22 case types, escalation ladders, appeals on the web, reports from your members, and lockdowns that restore what they changed.
On this page
Moderation is the half of protection where a person decides. Its twin, Auto Moderation, is the half where the bot decides — and both file cases through the same engine, so a filter's action and a moderator's action look the same in a member's history.
Moderation
Warns, mutes, kicks and bans with a full case history — plus notes, purges, lockdowns and appeals.
Every action opens a numbered case.
EnabledCases · 30d
128
ban 12 · mute 41 · warn 63
In force
9
Not lifted yet.
Reports waiting
3
Members can use /report.
Appeals waiting
1
Approving lifts it.
22 case types · every action numbered, appealable and logged
Setting it up
Switch it on
Essentials → Moderation. The page has 8 tabs; General is where you start.
Name your moderator roles
Who may use moderation commands. Separately, an admin tier can delete cases, run
/role alland start a lockdown.Set immunity
Immunity is per punishment type, so a role can be warnable but not bannable. Immune members are refused before anything happens — no case, no DM, no log line.
Choose how a mute works
Timeout (Discord's own, no setup, capped at 28 days per application — Arclo renews longer mutes automatically), a mute role you name, or both.
Point the logger at a channel
On the Logging tab, or from Logging.
The eight tabs
| Tab | What lives there |
|---|---|
| General | Moderator and admin roles, immunity, how a mute works, reason shortcuts, general behaviour |
| Punishments | A tile per punishment: default duration, DM, announcement, immunity, escalation thresholds |
| Lockdown | Which channels a lockdown covers, the notices it posts, and how long it lasts |
| Reports | Who may report, what a report must contain, where it lands, and what Arclo does about repeats |
| Appeals | The public appeal page, its rules, and the queue |
| Cases | The searchable case history and the recent-activity feed |
| Logging | The Moderation logger and its per-action switches |
| Commands | Per-command settings and reply text |
Cases
Every action opens a numbered case. There are 22 types, covering members, channels and the server itself.
| Case type | What it records | Timed |
|---|---|---|
| Warning | was warned | — |
| Mute | was muted | Yes |
| Unmute | was unmuted | — |
| Kick | was kicked | — |
| Ban | was banned | Yes |
| Unban | was unbanned | — |
| Softban | was softbanned | — |
| Voice mute | was muted in voice | Yes |
| Voice unmute | was unmuted in voice | — |
| Deafen | was deafened | Yes |
| Undeafen | was undeafened | — |
| Voice disconnect | was disconnected from voice | — |
| Nickname change | had their nickname changed | — |
| Role given | was given a role | Yes |
| Role removed | had a role removed | — |
| Note | had a note added | — |
| Purge | had messages purged | — |
| Channel locked | was locked | Yes |
| Channel unlocked | was unlocked | — |
| Lockdown | went into lockdown | Yes |
| Lockdown lifted | came out of lockdown | — |
| Slowmode | had its slowmode changed | Yes |
- Case numbers are allocated atomically, so two simultaneous bans can never share one.
/case <number>opens a case;/modlogs <member>shows a member's whole history.- Bans done through Discord's own interface are picked up from the audit log and filed as cases, so the history has no holes — and the punished member gets the same DM.
- Deleting a case removes it from the record. It does not undo what was done.
Punishments
The full order of operations — immunity, escalation, the case, the DM before the action, the expiry — is on Punishments. Per punishment, you can set:
- Default duration
- Used when a moderator gives no duration. Leaving a command's duration blank means use this; typing
permanentmeans never expire. - DM the member
- An editable message sent before the punishment lands.
- Announce in the channel
- An editable public message.
- Immune roles
- Per punishment.
- Take their roles away
- Strips a muted member's other roles and hands them back when the mute lifts. Works for every mute method, not only mute roles.
- Roles on punish
- Roles to add or remove when this punishment lands.
- Internal reason
- The template written into Discord's audit log, separate from the reason your members see.
- Always review
- Forces the moderator through a review form before it goes through.
Reason shortcuts
Map an alias to a full wording — spam → “Repeated spam in public channels” — and optionally a duration. It expands inside the engine, so commands, context menus, report cards and the dashboard all get it. An explicit duration on the command still wins.
ArcloBOTToday at 14:32
You were muted in Nebula Collective
Duration
1 hour
Expires
in 1 hour
Reason
Message spam in #general
You can appeal this from the link below
ArcloBOTToday at 14:32
Member banned
Member
throwaway_84
Moderator
@Mira
Duration
Permanent
Case
#1284
Reason
Raid participation
Mira · today at 03:11
Privacy
Per audience — the public announcement and the DM — you choose whether to include the moderator's name, the proof, the case number and the duration. Anything withheld renders as a stand-in (“a moderator”) rather than as a visible gap.
Escalation
A ladder counts a member's recent cases of a type and upgrades the punishment past a threshold — three warnings in seven days becomes a mute. Each rung names its own window, so “3 in 30 days” really means 30 days rather than the server-wide expiry.
Automatic punishments climb the same ladder
A filter that warns somebody escalates exactly as a moderator's warning would. That is usually right — and it is a reason to be careful with a filter that fires often.
Reports
/report lets your members bring something to staff. A report card lands in the channel you choose with buttons on it.
- Where reports land
- The channel. Set this first — a queue with nowhere to land never reaches anybody.
- Who may report
- Allow and block lists, roles that cannot be reported at all, and account-age and time-in-server gates.
- What a report must say
- Template reasons offered by autocomplete, a minimum length, and optionally a required attachment.
- Card actions
- Which punishments the card's buttons offer — warn, mute, kick, ban, and clearing the member's recent messages. All are on by default.
- When Arclo acts on its own
- X reports about one member within Y days → do Z. Dismissed reports never count, and one report can only advance the ladder one rung.
- Auto-close
- Reports nobody touched are closed after a while.
The automatic actions are nine: warn, mute, kick, ban, softban, add a role, remove a role, DM the member, or simply notify staff. The last three deliberately file no case — a server that wants “three reports and they lose the posting role, and hear why” should not have to reach for a ban to say it.
Appeals
A banned member is not in your server: no command, no channel and no DM thread reaches them. So appeals live on a public page at /appeal/<your-server>, which they can open from the ban DM.
- The member fills in the form on the web page. The appeal gets its own number.
- Arclo posts a card into your staff channel with accept and reject buttons.
- Staff decide — in Discord, or from the Appeals tab on the dashboard. Either way the member is told, the punishment is lifted if you accepted, and it is logged.
Note
Appeal pages are not indexed by search engines: the contents are one person's business.
Lockdown
Locks a channel, a list of channels, or the whole server, with a notice posted in each and an optional automatic end.
Unlock restores, it does not grant
Arclo records every permission bit it changed on every channel it locked, and puts each one back. A naive unlock grants Send Messages to @everyone in channels that never had it — which is how a lockdown ends with the announcement channel open to the world.
Clearing messages
/clear deletes messages with fourteen filters as subcommands — any, from a member, bots, humans, containing text, with links, with attachments, embeds, before or after a message, and more.
Discord's 14-day wall
Discord refuses to bulk-delete anything older than two weeks, and deleting old messages one at a time is rate-limited in hours. Every purge in Arclo works inside that window; older messages are counted and reported rather than deleted.
Commands
Twenty-six slash commands, kept flat on purpose — /ban, /kick, /mute and /warn are muscle memory from every other bot — plus three user context commands and one message context command.
/ban <member> [reason] [duration] [delete] [silent] [evidence] [message] [review]Ban MembersCannot be undoneBans a member — permanently, or for a duration that lifts itself. Works on somebody who has already left.
/unban <user> [reason]Ban MembersLifts a ban. Accepts a user id or picks from the ban list.
/softban <member> [reason] [delete] [silent] [message] [review]Ban MembersCannot be undoneBans and immediately unbans — the way to wipe somebody's recent messages without keeping them out.
/kick <member> [reason] [silent] [message] [review]Kick MembersRemoves a member from the server. They can rejoin with a new invite.
/mute <member> [duration] [reason] [scope] [strip-roles] [silent] [message] [review]Timeout MembersStops a member talking — with Discord's timeout, a muted role, or both, whichever this server uses.
/unmute <member> [reason] [scope]Timeout MembersLets a member talk again — lifts the timeout, the muted role, or both.
/warn <member> <reason> [points] [silent] [evidence] [message] [review]ModeratorsWarns a member and records it. Crossing a threshold can mute, kick or ban them automatically.
/unwarn <case> [reason]ModeratorsCannot be undoneRemoves a single warning by its case number.
/hardmute <member> [duration] [reason] [scope] [silent] [message] [review]Timeout MembersMutes a member AND takes every role they have away. A temporary hardmute hands the roles back when it expires; a permanent one leaves them off.
/mass ban [members|name|created|joined] [full] [duration] [reason] [delete] [silent]Ban MembersCannot be undoneBans everybody in a list of members or user ids, in one go.
/mass kick [members|name|created|joined] [full] [reason] [silent]Kick MembersKicks everybody in a list of members, in one go.
/mass mute [members|name|created|joined] [full] [duration] [reason] [silent]Timeout MembersMutes everybody in a list of members, in one go.
/mass warn [members|name|created|joined] [full] [reason] [points] [silent]ModeratorsWarns everybody in a list of members, in one go. Each warning counts toward that member's own threshold ladder.
/deafen <member> [duration] [reason]Deafen MembersServer-deafens a member so they can't hear voice channels. Optionally timed.
/undeafen <member> [reason]Deafen MembersLifts a server deafen.
/voicekick <member> [reason]Move MembersDisconnects a member from voice. They can come straight back — it is a nudge, not a punishment.
/warnings list <member> [include-expired]ModeratorsShows a member's warnings, their points and which ones have expired.
/warnings clear <member> [reason]ModeratorsCannot be undoneWipes every warning a member has.
/modlogs <member> [type] [page]ModeratorsThe full moderation history of a member — every case, newest first.
/case view <case>ModeratorsOne case in full — reason, moderator, duration, evidence and its appeal.
/case reason <case> <reason>ModeratorsRewrites a case's reason — the fix for the one typed in a hurry.
/case duration <case> <duration>ModeratorsChanges how long a timed punishment lasts — or makes it permanent.
/case evidence <case> [file] [link]ModeratorsAttaches a screenshot or a message link to a case, so it survives the deleted message.
/case pardon <case> [reason]ModeratorsLifts a punishment and marks the case pardoned. It stays in the history, but stops counting.
/case delete <case> [reason]AdministratorsCannot be undoneErases a case entirely. The history will not show it happened.
/case search [member] [moderator] [type] [contains] [page]ModeratorsFinds cases by member, moderator, type or a word in the reason.
/case stats [moderator] [days]ModeratorsHow much moderating has been done, and by whom — the leaderboard for a staff team.
/note add <member> <note> [pin]ModeratorsRecords a private staff note about a member. Never shown to them, and never counts as a punishment.
/note list <member>ModeratorsEvery staff note about a member.
/note remove <member> <number>ModeratorsCannot be undoneRemoves one note by its number.
/note clear <member>ModeratorsCannot be undoneRemoves every note about a member.
/clear <count> [filter] [channel] [member] [text] [pattern] [prefix] [reason]Manage MessagesCannot be undoneDeletes the last N messages in a channel — everything, or only what the filter matches (one member, bots, links, invites, images, files, embeds, pings, emoji, text, a regular expression). It can also strip every reaction and leave the messages.
/slowmode <interval> [channel] [duration] [reason]Manage ChannelsSets or clears a channel's slowmode, optionally lifting itself after a while.
/lock [channel] [duration] [reason] [silent]Manage ChannelsStops everyone talking in a channel. Optionally unlocks itself after a set time.
/unlock [channel] [reason]Manage ChannelsOpens a locked channel again.
/lockdown start [duration] [reason]AdministratorsLocks every channel on your lockdown list at once — the raid button.
/lockdown end [reason]AdministratorsLifts a lockdown and restores every channel to what it was before.
/lockdown statusModeratorsWhether the server is locked down, which channels, and for how much longer.
/nickname set <member> <nickname> [reason]Manage NicknamesChanges a member's nickname.
/nickname reset <member> [reason]Manage NicknamesClears a member's nickname, putting their username back.
/nickname decancer <member> [reason]Manage NicknamesRewrites an unreadable name — fancy fonts, Zalgo, invisible characters — as plain letters.
/nickname freeze <member> [nickname] [reason]Manage NicknamesLocks a member's nickname where it is — Arclo puts it back if they change it.
/nickname unfreeze <member>Manage NicknamesLets a member change their own nickname again.
/role add <member> <role> [reason]Manage RolesGives a member a role.
/role remove <member> <role> [reason]Manage RolesTakes a role away from a member.
/role toggle <member> <role> [reason]Manage RolesGives the role if they don't have it, takes it if they do.
/role temp <member> <role> <duration> [reason]Manage RolesGives a role that takes itself away again after a set time.
/role all <role> <action> [only] [with-role] [reason]AdministratorsCannot be undoneGives (or removes) a role for every member at once. Runs in the background.
/role list [page]ModeratorsEvery role in the server, with how many members hold each.
/role members <role> [page]ModeratorsWho holds a role.
/report <reason> [member] [message-link] [evidence]EveryoneReports a member — or one specific message — to the staff. The reason can be picked from this server's own list. Anybody can use it.
/appeal submit [case]EveryoneFiles an appeal against a punishment, for the staff to review.
/appeal statusEveryoneWhere a member's own appeals stand.
/appeal list [status] [page]ModeratorsThe appeals waiting for staff to decide.
/appeal review <appeal> <decision> [note]ModeratorsApproves or denies an appeal, lifting the punishment if it's approved.
Right-click a member → Apps → Moderation HistoryModeratorsRight-click a member → Apps → Moderation History
Right-click a member → Apps → Moderation History — their full case list without typing a name.
Right-click a member → Apps → Warn MemberModeratorsRight-click a member → Apps → Warn Member
Right-click a member → Apps → Warn Member — opens a box for the reason and files the warning.
Right-click a member → Apps → Report MemberEveryoneRight-click a member → Apps → Report Member
Right-click a member → Apps → Report Member — files a report without a command.
Right-click a message → Apps → Report MessageEveryoneRight-click a message → Apps → Report Message
Right-click a message → Apps → Report Message — reports the message and its author together, with the text attached.
Still stuck? Ask in the support server — somebody there has almost certainly configured this before.

