Every moderation slash command — arguments, who can run it, what it does, and example responses.
Mokito provides 10 moderation slash commands. All of them are registered per-guild (not globally) and can be toggled on or off from the Commands page in the web panel. Commands are on by default.
| Command | What it does | Who can run it |
|---|---|---|
/ban | Permanently ban a user. | Any moderator |
/unban | Remove a ban by user ID. | Any moderator |
/kick | Remove a user without banning. | Any moderator |
/mute | Assign the mute role for a duration. | Any moderator |
/unmute | Remove an active mute. | Any moderator |
/timeout | Apply Discord's native timeout. | Any moderator |
/untimeout | Remove an active timeout. | Any moderator |
/warn | Issue a formal, logged warning. | Any moderator |
/report | Report a user to the moderation team. | Any member |
/muterole | Set or create the server's mute role. | Owner or manager only |
"Any moderator" means the server owner, a Mokito manager, a user with Discord's Administrator permission, a member of the support team, a designated Mokito moderator, or a user who holds one of the additional roles configured on the Settings → Role access page.
Every command checks that moderation settings have been configured first. If they haven't, the command replies with an ephemeral message telling the caller to contact the admin team. Every command also checks that it is enabled for the server — if toggled off, it replies that the command is currently disabled.
/ban and /unban, the bot needs the Ban Members permission. For /kick, it needs Kick Members. For /mute and /unmute, it needs Manage Roles and a role higher than the mute role. For /timeout and /untimeout, it needs Moderate Members. If the bot lacks the required permission, the action fails with a human-readable error.
Permanently bans a user from the server. Mokito DMs the user before banning them (so the DM can be delivered), applies the ban, records it, logs the action, and sends notifications per your settings.
/ban user:@spammer reason:Posting illegal content
Mokito responds (visible in the channel):
@spammer has been banned.
| Argument | Type | Required | Description |
|---|---|---|---|
user | User (@mention) | Yes | The user to ban. Must be a member of the server. |
reason | String | Yes | Why the user is being banned. Recorded in the moderation logs and included in the DM if DM offender is enabled. |
The number of days of previous messages to purge is controlled by the ban purge days setting (default: 7 days).
Removes a server ban so the user can rejoin. Because banned users are no longer in the server, you cannot @mention them — you must provide their numeric Discord user ID. Mokito removes the Discord ban, revokes the internal ban record, logs the action, and sends public/log notifications. No DM is sent (the user is not in the server).
/unban user:123456789012345678 reason:Appeal approved
Mokito responds (visible in the channel):
@123456789012345678 has been unbanned.
| Argument | Type | Required | Description |
|---|---|---|---|
user | String (user ID) | Yes | The Discord user ID of the banned user. Must be a numeric snowflake (17–20 digits). |
reason | String | Yes | Why the user is being unbanned. Recorded in the moderation logs. |
You can also unban from the web panel — see the Overview → The unban flow section.
Removes a user from the server without banning them. The user can rejoin with an invite. Mokito DMs the user before kicking them, performs the kick, logs the action, and sends notifications per your settings.
/kick user:@troublemaker reason:Repeated rule violations
Mokito responds (visible in the channel):
@troublemaker has been kicked.
| Argument | Type | Required | Description |
|---|---|---|---|
user | User (@mention) | Yes | The user to kick. Must be a member of the server. |
reason | String | Yes | Why the user is being kicked. |
Temporarily mutes a user by assigning the server's mute role. Requires /muterole to have been run first to configure the mute role. Mokito checks that the user is not already muted, assigns the role, records the mute with an expiry time, logs the action, and sends notifications per your settings.
/mute user:@noisyuser reason:Spamming voice chat duration:2h
Mokito responds (visible in the channel):
@noisyuser has been muted for **2 hours**.
| Argument | Type | Required | Description |
|---|---|---|---|
user | User (@mention) | Yes | The member to mute. |
reason | String | Yes | Why the user is being muted. |
duration | String | No | Mute duration like 30m, 2h, 1d, or 1mo. If omitted, the default mute duration from settings is used. |
Duration format supports combined values: 1mo2d8h (1 month + 2 days + 8 hours), 4d12h30m, etc. Units: m = minutes, h = hours, d = days, mo / mth / month = months (30 days). Use mo for months to avoid ambiguity with m (minutes).
/mute replies: "No mute role is configured for this server. Please run /muterole first." If the user already has the mute role, the command refuses to double-mute and suggests /unmute.
Removes an active mute from a user by removing the mute role. Mokito removes the role, clears the active mute record, logs the action, and sends notifications per your settings.
/unmute user:@noisyuser reason:Mute expired, behavior improved
Mokito responds (visible in the channel):
@noisyuser has been unmuted.
| Argument | Type | Required | Description |
|---|---|---|---|
user | User (@mention) | Yes | The member to unmute. |
reason | String | No | Why the user is being unmuted. Optional. |
Applies Discord's native timeout (communication disabled) to a user for a fixed duration. Unlike /mute, this uses Discord's built-in timeout feature — no mute role is needed. Mokito applies the timeout, logs the action, and sends notifications per your settings.
/timeout user:@noisyuser duration:1 Hour reason:Spamming
Mokito responds (visible in the channel):
@noisyuser has been timed out for **1 hour**.
| Argument | Type | Required | Description |
|---|---|---|---|
user | User (@mention) | Yes | The member to timeout. |
duration | String (choice) | Yes | One of: 1 Minute, 5 Minutes, 10 Minutes, 1 Hour, 1 Day, 1 Week. |
reason | String | Yes | Why the user is being timed out. |
Removes an active Discord timeout from a user before it would naturally expire. Mokito clears the timeout, logs the action, and sends notifications per your settings.
/untimeout user:@noisyuser reason:Timeout lifted early
Mokito responds (visible in the channel):
@noisyuser has been removed from timeout.
| Argument | Type | Required | Description |
|---|---|---|---|
user | User (@mention) | Yes | The member whose timeout should be removed. |
reason | String | Yes | Why the timeout is being removed. |
Issues a formal warning to a user. Warnings do not change any Discord permissions — they are a logged, communicative action. Mokito DMs the user (if enabled), logs the action, and sends notifications per your settings. The warning appears in the user's moderation history on their member profile.
/warn user:@rulebreaker reason:First warning — off-topic in #support
Mokito responds (visible in the channel):
@rulebreaker has been warned.
| Argument | Type | Required | Description |
|---|---|---|---|
user | User (@mention) | Yes | The member to warn. |
reason | String | Yes | Why the user is being warned. Included in the DM and the moderation log. |
Any member can use this to report another user to the moderation team. The report is posted as an embed to the reports channel configured in settings, and a new report appears on the Reports page in the web panel. The response is ephemeral — only the reporter sees it.
/report user:@badactor reason:Harassment in DMs evidence:https://discord.com/channels/.../123
Mokito responds (ephemeral, only visible to the reporter):
Your report has been submitted and forwarded to the moderation team.
| Argument | Type | Required | Description |
|---|---|---|---|
user | User (@mention) | Yes | The user you want to report. |
reason | String | Yes | Why you are reporting the user. |
evidence | String | No | Optional evidence such as message links, message IDs, or a description of where to find the evidence. |
The embed posted to the reports channel looks like:
New moderation report · #a1b2c3d4-...
A member submitted a moderation report in **Your Server**.
Reported user: @badactor
Reported by: @concernedmember (Concerned Member)
Reason: Harassment in DMs
Evidence: https://discord.com/channels/.../123
View report: https://mokito.bippymiester.dev/dashboard/guilds/.../moderation/reports/a1b2c3d4-...
| Condition | Ephemeral response |
|---|---|
| Reports channel not configured | "Reports are not configured for this server." |
| No user provided | "Please provide a user to report." |
| No reason provided | "Please provide a reason for the report." |
| Moderation settings not configured | "Moderation commands are not set up for this server yet..." |
| Command disabled for this server | "The **/report** command is currently disabled in this server." |
Sets up the server's mute role. This is required before /mute can work. You can either pass an existing role, or run it without a role argument and Mokito creates a new role named "Muted" for you.
Only the server owner or managers can run this command. Moderators cannot.
/muterole
Mokito responds (visible in the channel, after a brief defer):
The **Muted** is now the server mute role. Updated 3 categories, 2 standalone channels, 4 synced channels skipped. Synced channels inherit the mute role from their category and were not touched.
| Argument | Type | Required | Description |
|---|---|---|---|
role | Role | No | An existing role to use as the mute role. If omitted, Mokito creates a new role named "Muted" with no permissions and a red color. |
When creating or assigning the mute role, Mokito applies a deny-overwrite to every category (so synced child channels inherit the mute restrictions) and to every standalone or desynced channel. Channels that are permission-synced with their category are skipped — adding an overwrite to them would desync them and could expose private channels. The deny-overwrite blocks: sending messages, sending messages in threads, creating threads, embedding links, attaching files, adding reactions, using external emojis/stickers, sending TTS messages, and voice actions (connect, speak, stream, soundboard).
role argument), Mokito checks for an existing role named "Muted" first. If one exists, it refuses to create a duplicate and tells you to use the existing one by passing it as the role argument.