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.
Configure moderation
Configure moderation from the DashboardSet the shared roles, logs, and member notices before staff use moderation commands.
- Give Discortics the permissions your staff commands need and move its role above members it may manage.
- Open Dashboard → Moderator.
- Choose a private modlog channel, a Muted Role, and a Member Role if your server uses one.
- Choose which actions should send a DM to the affected member.
- Save, then test one reversible action with a staff test account.
[Insert screenshot here]
Moderator settings page
Moderator settings
Moderator Settings controls the shared options used by moderation commands and Autopilot. Use it to choose where cases are logged, which roles Discortics uses, and whether affected members receive a DM.
Case settings
- Modlog Channel receives cases created by Discortics moderation commands.
- Muted Role is assigned by
/mute. Put the Discortics role above it and deny Send Messages for the Muted Role in channels where muted members should not speak. - Member Role is the normal member role used by channel lockdown actions. Leave it empty if your server does not use one.
- Case Count shows how many moderation cases the server has recorded.
[Insert screenshot here]
Case settings with Modlog Channel and Muted Role selected
Member DM notices
Choose whether Discortics should try to DM a member after a warning, mute, timeout, kick, or ban. A closed DM does not stop the moderation action or its log entry.
Keep notices on when members should know the action and reason. Turn an individual notice off when staff use another way to contact members.
Autopilot logs
Choose a private log channel for automatic detections. You can use the same channel as the modlog or keep automatic detections in a separate #automod-logs channel.
Filter thresholds and punishments are explained in the Autopilot guide. Join protection is explained in Anti-Raid.
[Insert screenshot here]
Autopilot log channel and event controls
What staff can do
- 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 need Manage Server for
/settings moderation; individual commands need their listed Discord permission. - Discortics needs Send Messages, Embed Links, Manage Roles, Ban Members, Kick Members, Timeout Members, and Manage Channels.
- Its role must be above moderated members and any configured Muted or Member Role.
- A private modlog is optional but recommended; set it with
/settings moderationor the Dashboard.
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
/settings moderationin your server. - Select Muted Role and pick the role you created.
Now you can mute members:
- Run
/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 /unmute user:@member.
Command Options Explained
/warn
Records a formal warning. Warnings do not change roles or permissions, but they create a numbered case visible in /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 |
/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 |
/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 |
/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.
/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 |
/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.
/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 |
/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 |
/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.
/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. |
/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.
/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.
/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. |
/nickname
Changes a member's server nickname.
| Option | Required | Description |
|---|---|---|
user | Yes | The member to rename. |
new-nick | Yes | The new nickname. |
/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.
/remove-case
Soft-deletes moderation cases. Deleted cases are hidden from /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.
/settings moderation
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 |
|---|---|
/warn | None (hierarchy checked) |
/mute / /unmute | Manage Roles |
/timeout / /untimeout | Timeout Members |
/ban / /unban | Ban Members |
/kick | Kick Members |
/lock / /unlock | Manage Channels |
/purge | Manage Messages |
/nuke | Administrator |
/slowmode | Manage Channels |
/nickname | Manage Nicknames |
/cases / /remove-case | None (hierarchy checked) |
/settings moderation | Manage Server |
/scheduled-actions list / /scheduled-actions delete | Manage Server |
Command Reference
| Command | Purpose |
|---|---|
/warn user: | Record a formal warning |
/mute user: duration: | Assign the Muted Role to a member |
/unmute user: | Remove the Muted Role from a member |
/timeout user: duration: | Apply a Discord communication timeout |
/untimeout user: | Remove a communication timeout |
/ban user: purge: duration: | Ban a member with optional history deletion and timer |
/unban user: | Unban a user by ID |
/kick user: | Remove a member from the server |
/lock channel: duration: | Deny send messages for the member role in a channel |
/unlock channel: | Restore send messages in a locked channel |
/purge amount: | Delete recent messages with filters |
/nuke | Delete and recreate the current channel |
/slowmode duration: | Change channel slow mode cooldown |
/nickname user: new-nick: | Change a member's nickname |
/cases | Browse and filter moderation cases |
/remove-case | Soft-delete cases |
/settings moderation | 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 /settings moderation, 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 Timeout 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 /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. /nuke has a 10-second cooldown.
A muted member can still speak
Check that the Muted Role denies Send Messages in the affected channel. Also confirm the Discortics role is above the Muted Role and the member's other managed roles.
A case is missing from the modlog
Confirm the channel still exists and Discortics has View Channel, Send Messages, and Embed Links there. Then test a Discortics moderation command and check the response for an error.