Ban, kick, mute and warn with reasons, durations and a numbered case for every action. Members get a DM with the reason (and an appeal link for bans), and your mod log keeps the full history.
Open the dashboard and pick your server. Sign in with Discord if you haven’t.
Find Moderation in the module list. It’s already on in new servers.
Go through the settings below. Simple mode shows the essentials; switch to Advanced for the rest.
Try it in Discord: /ban. Staff can restrict or turn off each command in Commands.
Tips
Pick a mod log channel so every case lands in one place.
Set autopunish rules, such as a 1-hour mute at 3 warnings.
Use /case and /reason to fix a reason after the fact; the log message updates too.
Reply to a message with ?warn (or use Punish… on it) and that message becomes the case’s verified proof.
Add predefined reasons with short aliases, then type the alias as the reason.
Clean up a raid with /mass: ban, kick, mute or warn a list of members, everyone whose name matches, or everyone who joined in the last few minutes. You see who it hits before you confirm.
Members can report a message or a member with Apps → Report to moderators. Reports land in your report channel with Accept and Ignore buttons.
Link with a partner server on the Moderation page to see each other’s cases, read-only. Both sides agree, and either can unlink.
Timeout uses Discord’s built-in timeout. A Muted role also works in voice.
Muted roleRole
Used in role mode. Kovu can create and set it up for you.
Remove other roles while mutedAdvancedOn/off
Roles come back when the mute ends.
Default mute lengthAdvancedDuration
Used when no duration is given. Empty = until unmuted.
Direct messagesAdvanced
What members are told when they are punished.
DM members when they are bannedOn/off
DM members when they are softbannedOn/off
DM members when they are kickedOn/off
DM members when they are mutedOn/off
DM members when they are warnedOn/off
Include the reasonOn/off
Name the moderatorOn/off
Add the appeal link to ban DMsOn/off
Appeal linkText
Leave empty to use Kovu's appeal form when the Appeals module is on.
DM about punishments outside KovuOn/off
Bans, kicks and timeouts from Discord’s menus or other bots. Needs View Audit Log.
DM when they are lifted outside KovuOn/off
Unbans and removed timeouts from Discord’s menus or other bots.
BansAdvanced
Keep messages when banningOn/off
Delete messages from the lastDuration
Up to 7 days. Used when messages are not kept.
Softban deletes messages from the lastDuration
EvidenceAdvanced
What Kovu keeps on a case by itself, and where proof shows.
Capture verified proofOn/off
Keep the member’s last message on the case (or the message you replied to or used “Punish…” on).
Keep their recent messagesOn/off
Their last 5 messages in each channel, on the case.
Keep their deleted messagesOn/off
What they deleted in the last 30 minutes. Needs message logs in the action log.
Keep captured messages for (days)Number
From 7 to 365 days after the case. Then Kovu removes the messages it captured; the case, its reason and your own proof stay. Default 90.
Delete the proof messageOn/off
Delete the message you replied to or used “Punish…” on, after punishing.
Show the proof in commandsOn/off
Show verified proof and messages in commandsOn/off
Name the moderator in commandsOn/off
Add the proof to the DMOn/off
Add verified proof to the DMOn/off
Predefined reasons
Predefined reasonsSetting
Type the alias as the reason (or pick it in the slash command) and the case gets the full reason.
Checks before punishingAdvanced
Review bans firstOn/off
Review kicks firstOn/off
Review mutes firstOn/off
Review warnings firstOn/off
Confirm a repeat punishmentOn/off
Ask before punishing someone again the same way while their last case is recent.
Recent means withinDuration
Bans need a reasonOn/off
Kicks need a reasonOn/off
Mutes need a reasonOn/off
Warnings need a reasonOn/off
Immune rolesAdvanced
Members with these roles can’t be punished through Kovu.
Use role hierarchyOn/off
Moderators can only punish members whose highest role is below theirs. Off: moderators can also punish members ranked above them (except protected and immune roles). Kovu’s own role must still be above the member, and mass actions always use the hierarchy.
Immune to everythingRoles
Protected roles in Bot Settings also count.
Immune to bansRoles
Immune to kicksRoles
Immune to mutesRoles
Immune to warningsRoles
Autopunish
AutopunishSetting
Punish members automatically when they reach a number of warnings.
Lockdown
Lockdown channelsChannels
Channels locked and unlocked together by lockdown.
Lock messageAdvancedText with variables
Posted when lock or lockdown closes a channel (unless the command gives its own). Variables: {channel}, {duration}, {moderator}. Empty = no message.
Unlock messageAdvancedText with variables
Posted when a channel opens again. Variables: {channel}, {moderator}. Empty = no message.
Member reports
Reports go to the report channel (or the mod log) with Accept and Ignore buttons. The Reports tab lists them.
Accept member reportsOn/off
Members report a message or a member with “Report to moderators”, /report or the report prefix command.
Ping a roleRole
Mentioned with every new report. Leave empty for no ping.
When a report is acceptedChoice
The case Kovu opens against the reported member.
Mute lengthDuration
Used when accepting mutes. Empty = the default mute length.
Delete the reported message on acceptOn/off
Tell the reporter when it’s acceptedOn/off
Tell the reporter when it’s ignoredAdvancedOn/off
Members who can’t reportAdvancedMembers
Moderators can add a member here from a report with “Block reporter”.
Roles that can’t reportAdvancedRoles
Reports per memberAdvancedNumber
How many reports one member may send in the window below.
Window (minutes)AdvancedNumber
Custom repliesAdvanced
Ban replyText with variables
Leave empty for the default. Variables: {user}, {reason}, {duration}, {case}.
Unban replyText with variables
Leave empty for the default. Variables: {user}, {reason}, {duration}, {case}.
Softban replyText with variables
Leave empty for the default. Variables: {user}, {reason}, {duration}, {case}.
Kick replyText with variables
Leave empty for the default. Variables: {user}, {reason}, {duration}, {case}.
Mute replyText with variables
Leave empty for the default. Variables: {user}, {reason}, {duration}, {case}.
Unmute replyText with variables
Leave empty for the default. Variables: {user}, {reason}, {duration}, {case}.
Warn replyText with variables
Leave empty for the default. Variables: {user}, {reason}, {duration}, {case}.
We use Google Analytics to see which pages and features get used. It never gets your Discord ID, server names or messages. No ads, and we don’t sell your data. Read our Cookie Policy.