The Moderation module gives you commands to enforce server rules, manage members, and control channels. Every moderation action creates a numbered case so staff can track what happened and why.
Most moderation work happens in Discord through slash commands. The Dashboard provides configuration for modlog channels, mute roles, DM notices, and Autopilot automation.
Features
- Warn members with optional DM notices.
- Mute members by role, with an optional automatic unmute.
- Timeout members with Discord's native timeout, including long durations that chain multiple timeouts.
- Ban and unban members, with optional message history deletion.
- Kick members.
- Lock and unlock text channels by denying or restoring send permissions.
- Purge messages with filters for user, links, mentions, content type, emoji, and regex.
- Nuke a channel: delete and recreate it in one action.
- Set channel slow mode.
- Change a member's nickname.
- Browse, filter, and soft-delete moderation cases.
- View and cancel pending scheduled moderation jobs.
- Interactive settings panel to configure the modlog channel, mute role, member role, and DM notices.
- Dashboard configuration for modlog, roles, DM policies, and Autopilot enforcement.
Before You Begin
Staff members need the Manage Server permission for /moderation settings. Other commands require their listed permission (Ban Members, Kick Members, Moderate Members, Manage Roles, Manage Channels, or Administrator depending on the action).
Discortics needs Send Messages, Embed Links, Manage Roles, Ban Members, Kick Members, Moderate Members, and Manage Channels to run moderation commands. Its highest role must be above the members it moderates and above the Muted Role or Member Role when those are configured.
A modlog channel is optional but recommended. Set one with /moderation settings or from the Dashboard so every case is posted as a logged embed.
Commands that send a DM to the target respect the DM notice toggles configured in settings. By default Warn, Mute, Unmute, Timeout, Ban, and Kick attempts a DM. Untimeout and Unban do not send DMs by default. You can change these in the settings panel or Dashboard.
How Mute and Timeout Differ
| Feature | Mute | Timeout |
|---|---|---|
| Mechanism | Assigns a server role with denied send permissions | Uses Discord's native communication disable |
| Requires setup | Yes — set a Muted Role first | No |
| Role removed | Muted Role stays until unmuted | Automatically ends when the timer expires |
| Works after join | Bot reapplies Muted Role if member leaves and returns | Discord enforces the timeout server-side |
Use mute when you want a role-based system with a distinct visual indicator (you can give the Muted Role a visible name or color). Use timeout for quick, time-limited enforcement that needs no setup.
Create Your First Mute
Before muting, set a Muted Role:
- Create a role in Discord (for example,
Muted). - For each text channel, deny Send Messages for that role. (The bot applies channel overrides for the Muted Role automatically if they are not already configured.)
- Run
/moderation settingsin your server. - Select Muted Role and pick the role you created.
Now you can mute members:
- Run
/moderation mute user:@member. - Optionally set a duration such as
10m,2h, or7d. - Optionally add a reason.
- The member receives the Muted Role. If a duration is set, Discortics schedules an automatic unmute.
To unmute manually, run /moderation unmute user:@member.
Command Options Explained
/moderation warn
Records a formal warning. Warnings do not change roles or permissions, but they create a numbered case visible in /moderation cases. If AutoPilot is configured, warnings count toward automatic escalation thresholds.
| Option | Required | Description |
|---|---|---|
user | Yes | The member to warn. |
reason | No | Why the warning was given |
/moderation mute
Assigns the configured Muted Role to a member. If a duration is set, the bot creates a scheduled job to remove the role automatically.
| Option | Required | Description |
|---|---|---|
user | Yes | The member to mute. |
duration | No | How long the mute lasts (for example, 10m, 2h, 7d) |
reason | No | Why the mute was applied |
/moderation unmute
Removes the Muted Role from a member and cancels any pending scheduled unmute for that member.
| Option | Required | Description |
|---|---|---|
user | Yes | The member to unmute. |
reason | No | Why the mute was removed |
/moderation timeout
Applies Discord's native communication timeout. Durations longer than 28 days are supported by chaining multiple timeouts automatically through scheduled jobs.
| Option | Required | Description |
|---|---|---|
user | Yes | The member to time out. |
duration | Yes | How long the timeout lasts |
reason | No | Why the timeout was applied |
Duration format: 10m, 2h, 7d, or any combination.
/moderation untimeout
Removes the communication timeout from a member and cancels any pending scheduled timeout chain for that member.
| Option | Required | Description |
|---|---|---|
user | Yes | The member to remove timeout. |
reason | No | Why the timeout was removed |
/moderation ban
Bans a member from the server. Optionally delete recent messages and set a duration for automatic unban.
| Option | Required | Description |
|---|---|---|
user | Yes | The member to ban. |
duration | No | How long the ban lasts before automatic unban. |
purge | No | Delete recent messages: Don't delete, 1 hour, 6 hours, 24 hours, or 7 days. |
reason | No | Why the member was banned. |
Warning: Banning removes the member permanently. A temporary ban schedules an automatic unban, but the member must be invited back to rejoin.
/moderation unban
Unbans a user by their Discord ID. You need the user's ID (enable Developer Mode in Discord settings, right-click the user, and choose Copy ID).
| Option | Required | Description |
|---|---|---|
user | Yes | The user ID to unban. |
reason | No | Why the user was unbanned |
/moderation kick
Removes a member from the server. They can rejoin immediately with a valid invite.
| Option | Required | Description |
|---|---|---|
user | Yes | The member to kick. |
reason | No | Why the member was kicked |
/moderation lock
Denies Send Messages, Create Public Threads, and Create Private Threads for the configured Member Role in a text channel. If no Member Role is configured, the lock applies to @everyone.
| Option | Required | Description |
|---|---|---|
channel | No | The channel to lock. Defaults to the current channel. |
duration | No | How long the lock lasts before automatic unlock. |
reason | No | Why the channel was locked. |
If a duration is set, Discortics schedules an automatic unlock when the time expires.
/moderation unlock
Restores Send Messages for the configured Member Role in a text channel and removes the thread-creation blocks. Cancels any pending scheduled unlock for that channel.
| Option | Required | Description |
|---|---|---|
channel | No | The channel to unlock. Defaults to the current channel. |
reason | No | Why the channel was unlocked. |
/moderation purge
Deletes recent messages in the current channel. You can filter which messages to delete with optional filters. After running the command, Discortics sends a confirmation prompt before deleting. The confirmation expires after 90 seconds of inactivity.
| Option | Required | Description |
|---|---|---|
amount | Yes | Number of recent messages to scan (up to what Discord returns). |
user | No | Only delete messages from this user. |
links | No | Delete messages with All Links or Discord Invites. |
from | No | Delete messages from Humans or Bots only. |
filter | No | Delete messages containing Embeds, Files, Reactions, Emoji, or Pins. |
contains | No | Delete messages that contain this exact text. |
mentions | No | Delete messages with mentions: All Mentions, User, Role, Channel, or Everyone/Here. |
emoji | No | Delete messages containing a specific emoji. |
regex | No | Delete messages matching a regex pattern (case-insensitive). |
Multiple filters combine: only messages that match all selected filters are deleted. For example, setting from:Humans and links:All Links deletes messages written by humans that contain links.
Warning: Purge cannot be undone. Messages over 14 days old cannot be bulk-deleted by Discord.
/moderation nuke
Deletes the current text channel and recreates it with the same name, topic, position, permissions, slow mode, and parent category. Discortics sends a confirmation prompt with Yes and Cancel buttons. The prompt expires after 5 minutes.
Warning: Nuking a channel permanently deletes all messages in it. The recreated channel keeps the original settings, but message history is gone.
Requires the Administrator permission.
/moderation slowmode
Changes the slow mode cooldown for the current text channel.
| Option | Required | Description |
|---|---|---|
duration | Yes | Duration string (for example, 5s, 1m), or off to disable. |
/moderation nickname
Changes a member's server nickname.
| Option | Required | Description |
|---|---|---|
user | Yes | The member to rename. |
new-nick | Yes | The new nickname. |
/moderation cases
Opens an interactive browser for moderation cases. Use the arrows to page through cases. Each case shows the case number, action, target, moderator, reason, and metadata (duration, expiration, purge window, and so on).
| Option | Required | Description |
|---|---|---|
user | No | Filter cases to show only this user. |
action | No | Filter by action: Warn, Mute, Unmute, Timeout, Untimeout, Ban, Unban, Kick, Lock, or Unlock. |
case | No | Jump to a specific case number. |
The interactive session expires after 10 minutes of inactivity. Run the command again if the buttons stop working.
/moderation remove-case
Soft-deletes moderation cases. Deleted cases are hidden from /moderation cases but remain in the database.
| Option | Required | Description |
|---|---|---|
case | No | Delete a specific case by its case number. |
user | No | Delete all cases associated with that user. |
Warning: Removing a case cannot be undone.
/moderation settings
Opens the interactive moderation settings panel. From Discord you can:
- View the current Case Counter (read-only, managed by the bot).
- Set or change the Modlog Channel where case embeds are posted.
- Set or change the Muted Role used by mute actions.
- Set or change the Member Role used by lock, unlock, and lockdown actions. Leave it empty to use
@everyone. - Toggle DM Policies for each action: Warn, Mute, Unmute, Timeout, Untimeout, Ban, Unban, and Kick.
Each setting is saved as you change it. There is no separate save button in Discord.
Dashboard users can also change Modlog Channel, Muted Role, Member Role, and DM policies from Dashboard → Moderator. Dashboard changes use the save bar at the bottom of the page.
/scheduled-actions list
Shows pending scheduled moderation jobs: automatic unmutes, timeout chains (retimeout), unbans, and unlocks. Filter by action type.
/scheduled-actions delete
Cancels a pending scheduled moderation job by its job ID. Find the job ID from /scheduled-actions list.
| Option | Required | Description |
|---|---|---|
job | Yes | The scheduled job ID to cancel. |
What Happens When a Muted Member Rejoins
If a member with an active mute leaves and rejoins, Discortics checks whether the mute role should still be applied. If the mute is still active (not expired or superseded), the bot reapplies the Muted Role. This prevents users from bypassing a role-based mute by leaving.
This does not apply to timeouts, since Discord manages the communication timeout server-side.
Scheduled Moderation Jobs
When you apply a temporary action, Discortics creates a background job to reverse it at the right time:
| Temporary action | Scheduled job | Reverses when |
|---|---|---|
| Mute with duration | Unmute | Duration expires |
| Timeout over 28 days | Retimeout | Chains next segment |
| Ban with duration | Unban | Duration expires |
| Lock with duration | Unlock | Duration expires |
Scheduled jobs are superseded automatically if a new moderation action makes the old one irrelevant. For example, unmuting a member manually also cancels the pending scheduled unmute.
DM Notices
By default, Discortics sends a DM to the target when you warn, mute, unmute, timeout, ban, or kick a member. Untimeout and unban DMs are off by default.
You can toggle each notice individually from the settings panel or Dashboard. A DM includes:
- The action taken (for example, "You have been warned").
- The duration and expiration time, if the action expires.
- The reason, if one was provided by the moderator.
- The case number and moderator's name.
If the target has DMs disabled or has blocked the bot, the DM attempt is recorded as failed but the moderation action still completes.
Modlog Channel
When a modlog channel is configured, every moderation action posts an embed to that channel. The embed includes:
- Case number and action type.
- Target mention and ID.
- Moderator mention and ID.
- Reason.
- Metadata (duration, expiration, purge window, mute role, and so on).
Keep the modlog channel private so only staff can read it. Discortics needs View Channel, Send Messages, and Embed Links in that channel.
Dashboard: Moderator Page
The Dashboard provides additional or alternative configuration for moderation. Access it from Dashboard → Moderator.
Case Tracking
Shows the read-only case counter. You can set the modlog channel, muted role, and member role from dropdowns, then save with the save bar.
DM Notices
Toggle each DM policy on or off for Warn, Mute, Unmute, Timeout, Untimeout, Ban, Unban, and Kick.
Autopilot
Autopilot is an automated enforcement system that detects rule-breaking behavior and acts on it. Each module (Profanity, AntiMention, AntiSpam, AntiLink, AntiFlood, AntiRaid) can be enabled and configured independently. Each module also has its own escalation policy (punishments) for Warn, Mute, Timeout, Kick, and Ban.
Autopilot settings are saved and synced from the Dashboard. This is a premium-only feature on Prime and Custom bots. The Dashboard stores the configuration; the bot enforces it.
Autopilot is a separate module with its own documentation. See the Autopilot section for details on each detection module and punishment policy.
Permissions Required Per Command
| Command | Required user permission |
|---|---|
/moderation warn | None (hierarchy checked) |
/moderation mute / /moderation unmute | Manage Roles |
/moderation timeout / /moderation untimeout | Moderate Members |
/moderation ban / /moderation unban | Ban Members |
/moderation kick | Kick Members |
/moderation lock / /moderation unlock | Manage Channels |
/moderation purge | Manage Messages |
/moderation nuke | Administrator |
/moderation slowmode | Manage Channels |
/moderation nickname | Manage Nicknames |
/moderation cases / /moderation remove-case | None (hierarchy checked) |
/moderation settings | Manage Server |
/scheduled-actions list / /scheduled-actions delete | Manage Server |
Command Reference
| Command | Purpose |
|---|---|
/moderation warn user: | Record a formal warning |
/moderation mute user: duration: | Assign the Muted Role to a member |
/moderation unmute user: | Remove the Muted Role from a member |
/moderation timeout user: duration: | Apply a Discord communication timeout |
/moderation untimeout user: | Remove a communication timeout |
/moderation ban user: purge: duration: | Ban a member with optional history deletion and timer |
/moderation unban user: | Unban a user by ID |
/moderation kick user: | Remove a member from the server |
/moderation lock channel: duration: | Deny send messages for the member role in a channel |
/moderation unlock channel: | Restore send messages in a locked channel |
/moderation purge amount: | Delete recent messages with filters |
/moderation nuke | Delete and recreate the current channel |
/moderation slowmode duration: | Change channel slow mode cooldown |
/moderation nickname user: new-nick: | Change a member's nickname |
/moderation cases | Browse and filter moderation cases |
/moderation remove-case | Soft-delete cases |
/moderation settings | Open the moderation settings panel |
/scheduled-actions list | List pending scheduled moderation jobs |
/scheduled-actions delete job: | Cancel a scheduled moderation job |
Frequently Asked Questions
Why does mute fail with "Muted role has not been set"?
Set a Muted Role first. Run /moderation settings, choose Muted Role, and select a server role. The role must be below Discortics' highest role.
Why can Discortics not mute or timeout someone?
Check that Discortics has Manage Roles (for mute) or Moderate Members (for timeout). Also confirm that the target's highest role is below Discortics' highest role.
Can I lock a channel without setting a Member Role?
Yes. When no Member Role is configured, lock affects @everyone. This means everyone who does not have an explicit Send Messages allow override is blocked. If you want locks to affect only specific roles, set a Member Role first.
How do I find a user's ID for unban?
Enable Developer Mode in Discord settings (User Settings → Advanced). Then right-click the user's name or message and choose Copy User ID.
Does purging messages from a channel create a case?
Yes. Purge creates a case that appears in /moderation cases and the modlog. The case shows who ran the purge and how many messages were deleted.
Why did my scheduled unban not happen?
A scheduled job might be superseded. If another ban was applied or the user was manually unbanned before the job executed, the job is marked as superseded. Check /scheduled-actions list for the job's status.
Can I undo a case removal?
No. Case removal is permanent. The case data remains in the database but is hidden from the case browser and the modlog.
Does Discortics automatically reapply mute after a member leaves and rejoins?
Yes. If a mute is still active and the member rejoins, Discortics checks and reapplies the Muted Role. Timeouts do not need this because Discord manages them server-side.
Why do some DM notices fail?
The target might have DMs disabled for the server, or they might have blocked the bot. The moderation action still completes even when a DM fails. The case metadata records whether the DM attempt succeeded or failed.
Are moderation commands rate-limited?
Each command has a cooldown. Most moderation commands have a 3-second user cooldown. /moderation nuke has a 10-second cooldown.