Sanction History
RaidProtect's sanction history lets you track and manage every sanction applied on your server. This system centralizes all moderation actions in a searchable and editable database, making your moderation team's work easier.
❓ How the history works
The sanction history automatically records all moderation actions performed on your server:
- Manual sanctions: All moderation commands (
/ban,/tempban,/kick,/mute,/jail,/warn...) are recorded in the history. - Automatic sanctions: Sanctions applied by our protection modules (anti-spam, HoneyPot, ScamLens...) are also added to the history.
- Bans, kicks and timeouts: Sanctions applied without using RaidProtect are added to the history.
- Discord's AutoMod: Timeouts applied by Discord's AutoMod are recorded. Each message blocked by an AutoMod rule also creates a warning in the name of "Discord Automod", silent (no DM), unless the rule already applies a timeout. It is not given either when the member receives a heavier sanction (timeout, mute, jail, kick, softban, ban, quarantine) within 10 seconds of the block, for example from the HoneyPot or the anti-spam for the same message. This warn is enabled by default and can be turned off with "Warn on messages blocked by AutoMod": run the
/settingscommand, "Moderation" tab, "Sanctions". - Sanction notifications: Sanctioned members receive a private message informing them of the sanction and its reason. The bot also sends a detailed acknowledgment confirming the delivery status: received, DMs closed, expired or silent (when the
[--silent]option is used). For kicks, softbans and temporary bans, this message also includes a button with a server invite so the member can come back once the sanction is over.
Every recorded sanction contains: the sanctioned user, the responsible moderator, the reason (up to 512 characters), the date and time, as well as the sanction type and whether the user was notified.
🔍 Search for sanctions
The /sanctions search command lets you search for sanctions in the history using different criteria.
Use the command: /sanctions search [user] [moderator] [type] [reason] [date] [status] [moderator_type]
[user]: Search for all sanctions of a specific user. If this account is part of a group of alt accounts, the sanctions of the linked accounts also appear.[moderator]: Search for all sanctions applied by a specific moderator.[type]: Filter by sanction type (Ban, Unban, Kick, Jail, Unjail, Quarantine, Timeout, Untimeout, Mute, Unmute, Warn).[reason]: Filter by reason (partial match).[date]: Filter by sanction date.[status]: Filter by sanction status (Active, Expired, Canceled).[moderator_type]: Filter by moderator type (Human actions, Automated actions, RaidProtect actions, Discord actions, Antispam, Expiration, Antiscam, HoneyPot, Discord Automod, Discord Expiration).

You can combine multiple criteria to refine your search. For example, search for all bans performed by a specific moderator.
ℹ️ View a sanction
The /sanctions info command lets you get detailed information about a specific sanction.
Use the command: /sanctions info (id)
Replace (id) with the ID of the sanction you want to view.

✏️ Edit a sanction
The /sanctions edit command lets you edit the reason or duration of an existing sanction, useful for correcting a mistake or adding details.
Use the command: /sanctions edit (id) [reason] [duration]
Replace (id) with the ID of the sanction to edit, [reason] with the new reason (maximum 512 characters) and [duration] with the new duration (e.g., 1d 2h).

Editing a sanction updates the record in the history but does not change the sanction applied on Discord (for example, a banned user will remain banned).
🗑️ Delete a sanction
The /sanctions delete command lets you delete a sanction from the history. This action is irreversible.
Use the command: /sanctions delete (id) [reason]
Replace (id) with the ID of the sanction to delete. The [reason] parameter lets you justify the deletion, which will be recorded in the logs.

Sanction statuses
Sanctions can have different statuses:
| Status | Emojis | Meanings |
|---|---|---|
Active | The sanction is in progress. | |
Expired | The sanction has expired. | |
Canceled | The sanction was canceled by a moderator. | |
Failed | The sanction failed (missing permissions). |
Handling duplicates
When an earlier, still active sanction is found, you can:
- Merge the two sanctions: the durations will be added together if possible and the reasons will be concatenated.
- Cancel the active sanction and create a new one.
- Overwrite the active sanction with the information from the newly entered sanction.

⚙️ Sanctions configuration
All sanction settings are on a single screen:
- Run the
/settingscommand. - Open the "Moderation" tab.
- Click "Configure" next to "Sanctions".
Disable sanctions
You can completely disable the sanctions system on your server. When sanctions are disabled, RaidProtect no longer records any sanction in the history and the related commands are unavailable.
- Run the
/settingscommand. - Open the "Moderation" tab.
- Click "Configure" next to "Sanctions".
- Click "Disable" to the right of the screen's title (or "Enable" to turn it back on).
Jail
Configure the Jail to enable a role-based moderation sanction, more restrictive than a standard mute. Once configured, this role lets you isolate a member with heavily limited permissions and unlocks the /jail and /tempjail commands.
- Run the
/settingscommand. - Open the "Moderation" tab.
- Click "Configure" next to "Sanctions".
- Click "Edit" next to "Jail".
- Choose an existing role in the selector, or click "Create one for me".
The "Create one for me" button opens a window in which you name the role (default Jailed) and configure the information channel intended for jailed members:
- Select an existing channel: it keeps its current visibility.
- Create a new channel by entering a name (default
restricted-access).
We remove the permission to see the server's channels from the role. In the information channel, jailed members can read the message and the history, but cannot write, react or create threads. This channel corresponds to the reserved slot in the information panels, automatically managed by the Jail configuration.
If a Jail role is already configured, you can change the information channel with the "Edit channel" button of the Jail screen.
If the Jail role can still see some channels, the Jail screen lists them in a box: deny it the View Channel permission in those channels, or create a new role with "Create one for me". As long as active sanctions rely on the Jail or Mute role, you cannot change it: remove those sanctions or wait for them to expire.
Without a Jail role, the /jail and /tempjail commands are unavailable. Automatic modules (anti-spam, HoneyPot, false reporters) still offer Jail and Mute, with the note "Not configured, falls back to Timeout": the sanction applied is then a timeout.
Roles during jail
In the Jail screen, the "Role handling on jail" selector controls what RaidProtect does with a member's roles while they are jailed. Two modes:
- "Add the jail role" (default): the member keeps their roles, the jail role is added.
- "Replace all roles": we remove all of the member's roles for the duration of the jail and restore them on release. Stricter, this prevents a role with explicit permissions from bypassing the Jail role's restrictions.
Synced Discord quarantine
Discord's AutoMod can put a member whose profile breaks a rule (nickname, server tag) in quarantine. With this setting, we follow that quarantine: the member receives the jail role and a Quarantine sanction is recorded in the history. They leave it as soon as Discord lifts the quarantine.
- Run the
/settingscommand. - Open the "Moderation" tab.
- Click "Configure" next to "Sanctions".
- Click "Enable" next to "Synced Discord quarantine".
This setting requires a Jail role. Disabling it releases the quarantines it applied.
Message deletion on ban
In the "Sanctions" screen, the "Message deletion on ban" selector sets the history deleted by default when you ban with /ban, ?ban or /tempban without specifying --delete-messages. Choose "No deletion" (default), 1 hour, 6 hours, 12 hours, 1 day, 3 days or 7 days. A value given in the command takes precedence.
Mute
Configure the Mute role to use a role-based sanction instead of Discord's timeout for extended durations. When a mute duration exceeds the defined threshold, the bot will automatically assign the Mute role to the member instead of applying a Discord timeout.
- Run the
/settingscommand. - Open the "Moderation" tab.
- Click "Configure" next to "Sanctions".
- Click "Edit" next to "Mute".
- Choose an existing role in the "Mute Role" selector, or click "Create one for me" (we create the
Mutedrole and remove its ability to write in all channels).
Mute threshold
The mute threshold is set on the same screen as the role. It defines from which duration the bot uses the Mute role instead of Discord's timeout.
- On the Mute screen, open the "Mute Threshold" selector.
- Choose "Everytime", "1 hour" (default), "1 day", "Extended Timeout (=28 days)" or "Custom value" (from 0 to 28 days, e.g.,
3d 1h 15m).
"Everytime" (a value of 0) never uses Discord's timeout: every mute goes through the role.
The 28-day timeout limit is imposed by Discord. Beyond this duration, the Mute role will always be used if configured. The [--force-timeout] option of the /mute command forces Discord's timeout despite the threshold.
Timeouts applied by Discord's AutoMod are automatically converted to a role-based mute when their duration exceeds the configured threshold, ensuring consistency with your manual sanctions.
Sanctions privacy
Configure the sanctions privacy level to control what information members can access about their own sanctions, via the /my-sanctions command or the View my sanctions button.
- Run the
/settingscommand. - Open the "Moderation" tab.
- Click "Configure" next to "Sanctions".
- Click "Edit" next to "Sanctions Privacy".
- In the window, choose the desired "Access level":
| Level | Description |
|---|---|
| Disabled (default) | Members cannot view their personal sanctions. |
| Sanctions only | Members can only view their sanctions and the remaining time, if applicable. |
| With reasons | Members can view their sanctions along with the reasons, without the moderator's identity. |
| With reasons and moderators | Members can view all information about their sanctions. |
My Sanctions button.Whatever the selected level, moderators keep full access to the sanctions history through the moderation tools.
With reasonsRegardless of the selected level, moderators retain full access to the sanction history via the moderation tools.
Show media
Configure the display of media in sanction reasons. When this option is disabled (default), links containing the following extensions are automatically removed from sanction reasons when displayed to members (via /my-sanctions or sanction notifications):
png, jpg, jpeg, gif, webp, webm, mp4
- Run the
/settingscommand. - Open the "Moderation" tab.
- Click "Configure" next to "Sanctions".
- Click "Enable" or "Disable" next to "Show medias".
✨ Sanction names Premium
With the Premium version, you can customize the name of each sanction type to fit your server's vocabulary. Custom names replace the default names in logs, searches and menus. For each type, you can configure:
- Name: Replace the default name with one of your choice, up to 32 characters (e.g., "Warn" → "Yellow Card").
- Verb: Define the verb used in messages, up to 32 characters (e.g., "carded"). If left empty, the name is used.
- DM Mode: Choose the wording of the private message sent to the sanctioned member:
- "You have been [verb]" (default)
- "You have received a [name]"
The customizable sanction types are: Ban, Softban, Unban, Kick, Jail, Unjail, Timeout, Untimeout, Mute, Unmute and Warn.
- Run the
/settingscommand. - Open the "Moderation" tab.
- Click "Configure" next to "Sanctions".
- Click the "Sanction names" button.
- Choose the sanction type to customize in the selector, then enter the name, verb and DM mode in the window.
The "Export" and "Import" buttons on the screen let you save your names to a JSON file and paste them back (field "Paste JSON content"), for example to reuse them on another server.
Leave the fields empty to reset a sanction type to its default name. The "Reset all" button resets every name.
📨 Appeal link Premium
The appeal link lets sanctioned members contest their sanction: a button to your link is added to the DMs of all sanctions, except warnings.
- Run the
/settingscommand. - Open the "Moderation" tab.
- Click "Configure" next to "Sanctions".
- Click the "Appeal link" button.
- Paste your link in the window, or empty the field to remove it.
Accepted platforms: Discord, Google Forms, appeal.gg, Appy, DraftBot and FlaviBot.
The "Appeal link" button only appears on Premium servers.
🔗 Alt accounts Experiment
As an experiment with the Identity Update (Premium public beta), the accounts a single person uses can be linked with the /alt command: banning one bans the others, and each sanction extends to the group according to your settings. Everything is explained on the Alt Accounts page.
📊 Sanctions logs
For better organization, you can configure a logs channel dedicated specifically to sanctions, separate from your general logs.

Configure the sanctions logs channel
- Run the
/settingscommand. - Open the "Moderation" tab.
- Click "Configure" next to "Sanctions".
- Click "Edit" next to "Logs".
- Choose the channel where sanctions logs will be sent, or use the "Create one for me" button.
You will find the same setting, with the other logs channels, in the "Logs" screen of the "Moderation" tab (see the moderation logs). Without a dedicated channel, sanctions logs go to the general logs channel.
The "Passive moderation logs" toggle (enabled by default) chooses whether RaidProtect also logs actions performed without going through the bot (ban from Discord, Discord's AutoMod...).
Color logic

📦 Import / Export sanctions
RaidProtect lets you import or export your server's sanction history. The "Export" and "Import" buttons on the Sanctions screen direct you to our support server: contact us with your server's invite and, for an import, the moderation bot(s) you were using.
Frequently asked questions
Why is the /jail command unavailable?
It requires a Jail role. Set it up in /settings, "Moderation" tab, "Sanctions", then "Edit" next to "Jail", or let RaidProtect create one.
What happens if an automatic module must jail a member without a Jail role?
The sanction falls back to a timeout. The same goes for Mute without a Mute role.
Can a member see their own sanctions?
Yes, if you set the sanctions privacy to a level other than "Disabled". They then view them with /my-sanctions.
Do messages blocked by Discord's AutoMod count as sanctions?
Yes, by default: each blocked message creates a silent warning in the name of "Discord Automod", unless the rule already applies a timeout or the member receives a heavier sanction at the same time. You can turn this warn off with "Warn on messages blocked by AutoMod" in /settings, "Moderation" tab, "Sanctions". These warnings are only logged if passive moderation logs are enabled.
Sanctions configuration
Jail
Mute
Logs
Show medias
Support Server
Documentation
Jail
Information channel
Add the jail role
Customize sanction names
Bannissement : Bannissement (banni)
Softban : Softban (softban)
Débannissement : Débannissement (débanni)
Expulsion : Expulsion (expulsé)
Libération : Libération (libéré)
Timeout : Timeout (timeout)
Untimeout : Untimeout (untimeout)
Unmute : Unmute (unmute)
Avertissement : Carton Jaune (cartonné) 