Skip to main content

Server Moderation (Manual)

A special thanks to my friend and partner, NaviKing, for the design of this module.

The purpose of this module is to warn users, track their infractions, and give the moderators the power to punish users accordingly.

In order to fully take advantage of this module, enabling the case/scoring system is suggested. The scoring system is enabled if the Warning log is enabled in a server channel. Please refer to /log toggle in the Server Administration module documentation.

Configuration Commands

Note

Most of the settings below (mute/image-ban roles, mod immunity/anonymization/notification toggles, and the mute chat channel(s)) are configured from your server's Moderation Settings page on the dashboard - see On the Dashboard below. Mod Role is configured from the Command Permissions page instead - it's not on the Moderation Settings page.

Warning

There is currently no way to configure per-channel ban/mute/image-ban roles - only the server-wide mute and image-ban roles below are configurable.

  • Mod Role: enabling/disabling a role to use the moderation module regardless of other permissions on their roles. Configured from the Command Permissions page, not Moderation Settings.
  • Mod Immunity: toggles whether or not users with the mod role can be affected by moderation commands. Default state: off. If enabled, attempting to take moderation actions on a moderator will return an error.
  • Mod Anonymization: toggles whether or not users that are affected by a moderation action will also be informed of the identity of the moderator using the command. Default state: off (i.e. moderators will not be anonymized). If enabled, the name of the moderator will be omitted on the DM that a user receives upon being hit by a moderation action, and a shield emoji will appear next to the "Performed By" field of the corresponding warning log embed to remind that moderators' protection is on for that case.
  • Mod Notification: toggles whether or not moderators will be informed with a mention in the Moderation/Warning logger in case of missing parameters when applying a moderation action with an "incomplete" syntax. Default state: on (i.e. moderators will be notified with a mention).
  • Mute Role: the role used to mute a user, server-wide. Channel permissions for the mute role will be automatically set and updated every time it's needed. Muted users will have the following permissions disabled for every channel (besides the mute chat channel, see below): Send Messages, Attach Files, Add Reactions, Use Public Threads, Use Private Threads, Speak.
  • Mute Chat: one (or more) channel(s) for muted users to be able to speak for the purposes of discussing the moderation action taken against them. That channel will have the following permissions for the mute role: Read Messages: Enabled, Send Messages: Enabled, Read Message History: Disabled, Add Reactions: Disabled, Attach Files: Enabled, Speak: Disabled.
  • Image Ban Role: the role used server-wide to image-ban a user. Image banned users will have the following permissions disabled for every channel: Embed Links, Attach Files.

Note

Attempting to set any of these roles higher than either your own highest role or the bot's highest role will result in an error.

Moderation Commands

These are the actual slash commands used to apply moderation actions: /warn, /kick, /mute, /ban, /unmute, /unban and the /restrict command tree (image/channel restrictions). Collectively, they'll be referred to as "warning commands" below.

By default, warning commands will generate a new case if the Warning log is active. Upon generating a case, a DM will be sent to the target user, notifying them of the moderation action that has been triggered on them, who issued the moderation action and the specifics of the rules that are broken, if applicable. Please refer to the "Warning Point System" section below for more details about the rules system.

Note

Each warning command takes exactly one target user per invocation, and always generates a case (when the Warning log is active). Where a command takes an attachment option, it's up to 4 Discord file uploads (attachment1 through attachment4), not a list of URLs. /warn, /kick, /mute, and /ban also take points (an override of the case's point value) and justification (required whenever points is given, rejected otherwise) - so a case's point value no longer has to wait for a follow-up /case edit; and each of the four can skip their DM with their own silent option (/unmute//unban never DM the target, so they have no silent option). /case edit (see Warning System Commands below) still works for adjusting a case's reason/rule/points/justification afterwards, and has its own silent option too.

Every warning, by default, will be worth a certain number of points based on the rule broken (as described in the "Warning Point System" section below). If any of the rule, reason or attachment options are missing, the bot will tag the moderator upon action log generation prompting them to fill in the missing arguments using /case edit (see Warning System Commands below). The bot will also tag the moderator the first time that the user reaches a suggested action threshold.

An embed including the following information will also be generated and put into the warning log:

  • Warning Type (warn/mute/ban/etc.)
  • Warned user's name
  • Warned user's ID
  • Mod Name
  • Rule broken
  • Reason
  • Attachment(s) (shown as a link per attachment; the embed can only render one as an inline image, so that only happens when exactly one attachment was given and it's an image)
  • Total unexpired points as of warning for this user
  • Suggested moderation action & number of points to next warning threshold
  • Case ID & timestamp (in footer)

Note

Any reason text longer than 512 characters is truncated - once in the DM sent to the moderated user, and separately in the corresponding Discord audit log entry (Discord's own audit log reason limit). Keep it under 512 characters if you need the full text to reach the user.

Some moderation action commands have an "un-" version (/unmute, /unban, and /restrict's -remove/unban/unmute subcommands) that reverts the corresponding moderation action. "un-" commands never generate a new case.

/warn

Command Syntax

/warn user:{user} [reason:{text}] [rule:{rule}] [attachment1:{file}] [attachment2:{file}] [attachment3:{file}] [attachment4:{file}] [points:{number}] [justification:{text}] [silent:{true/false}]

Command Description

DMs the user with their warning and logs a case. Its purpose is to officially record an infraction so that the accumulation of infractions can later be used to justify a mute or a ban (see the "Warning Point System" described later). All options besides user are optional; if reason/rule/attachment1-attachment4 are all skipped, the message will simply read "You were warned by [moderator]."

attachment1 through attachment4 let you attach up to 4 files as evidence. points overrides the case's point value instead of using the matched rule's default; justification explains that override and is required whenever points is given (and rejected if given without points) - /case edit (see Warning System Commands below) can also set these after the fact.

Set silent to true to log the case without DMing the user at all - useful for a quiet internal note. Defaults to false (the user is DMed).

You can also right-click a user and choose Apps -> Warn, which opens a form for reason/rule (the command's other options aren't available this way).

Permissions Needed

  • User: Moderate Members

Examples

/warn user:@cycloptux reason:The user is under 13 years of age rule:Discord ToS

/kick

Command Syntax

/kick user:{user} [reason:{text}] [rule:{rule}] [attachment1:{file}] [attachment2:{file}] [attachment3:{file}] [attachment4:{file}] [points:{number}] [justification:{text}] [silent:{true/false}]

Command Description

Kicks the target user from the current server. The user may be able to join the server again through a working invite. attachment1-attachment4, points, and justification work exactly as described under /warn above.

Set silent to true to skip DMing the user about the kick. Defaults to false (the user is DMed).

You can also right-click a user and choose Apps -> Kick, which opens a form for reason/rule (the command's other options aren't available this way).

Permissions Needed

  • User: Kick Members
  • Bot: Kick Members

Examples

/kick user:@cycloptux reason:Repeated spam despite warnings

Note

Every duration/delay/interval option below (/mute, /ban, /restrict ..., /slowmode) takes the standard time code (e.g. 1d3h2m) - or a Discord timestamp mention referring to a future time - described in Time Format Code.

/mute

Command Syntax

/mute user:{user} [duration:{time code}] [reason:{text}] [attachment1:{file}] [attachment2:{file}] [attachment3:{file}] [attachment4:{file}] [points:{number}] [justification:{text}] [silent:{true/false}]

Command Description

Applies the mute role (configured on the Moderation Settings page, or a default "Muted Users" role created automatically if none is set) to the target user, and sets all channel permissions (except the mute chat channel(s)) for the mute role as described in the Configuration Commands section above. The specific permissions for this command will be set (or checked/updated) every time the command is run, hence making the command slightly slower than usual - this is normal.

attachment1-attachment4, points, and justification work exactly as described under /warn above - points/justification are particularly useful here since /mute has no rule option of its own to score points from otherwise.

The mute can be permanent (omit duration) or timed (users will be unmuted automatically after the given time span).

Set silent to true to skip DMing the user about the mute. Defaults to false (the user is DMed).

You can also right-click a user and choose Apps -> Mute, which opens a form for duration/reason (the command's other options aren't available this way).

Permissions Needed

  • User: Moderate Members
  • Bot: Manage Roles

Examples

/mute user:@cycloptux duration:1d reason:Spamming in general chat

/ban

Command Syntax

/ban user:{user} [reason:{text}] [rule:{rule}] [duration:{time code}] [delay:{time code}] [delete_days:{0-7}] [attachment1:{file}] [attachment2:{file}] [attachment3:{file}] [attachment4:{file}] [points:{number}] [justification:{text}] [silent:{true/false}]

Command Description

Bans the target user from the server. Pass duration (e.g. 7d, 1mo) for a timed ban, or omit it entirely for a permanent ban - there is no implicit default duration. delete_days (0-7) deletes that many days of the banned user's recent message history; omit it to leave their messages untouched. attachment1-attachment4, points, and justification work exactly as described under /warn above - including on a delayed ban (delay, described below), where they're carried through to the case created once the ban actually executes.

This command also works for banning users that are currently not in the server, as long as the user is known/cached by the bot. It is advised to use the user ID for that.

Once a timed ban's period has ended, as long as the user hasn't been permanently banned by re-running /ban with no duration (or manually re-allowed through /unban), the ban will be automatically lifted. Please allow for up to 1 extra minute before the ban is actually lifted after it has officially expired.

Set silent to true to skip DMing the user about the ban (including on a scheduled delayed ban, once it actually executes). Defaults to false (the user is DMed).

You can also right-click a user and choose Apps -> Ban, which opens a form for reason/rule/duration/delay/delete_days (the command's other options aren't available this way).

Note

Passing delay (e.g. 10m, 1h) schedules the ban instead of applying it immediately - the target keeps normal access until the ban executes, at which point it behaves exactly like an immediate ban (DM, case log, duration starting its auto-unban clock only then, not when it was scheduled). Please allow for up to 1 extra minute of slack around the requested delay. To cancel a pending delayed ban before it executes, run /unban on the same user - since they were never actually banned, /unban cancels the scheduled ban instead of lifting a real one. Nothing happens to the target during the delay window.

Permissions Needed

  • User: Ban Members
  • Bot: Ban Members

Examples

/ban user:@cycloptux reason:Repeated ToS violations duration:7d
/ban user:@cycloptux delete_days:1

/unmute

Command Syntax

/unmute user:{user}

Command Description

Lifts the mute role from the target user.

You can also right-click a user and choose Apps -> Unmute to do this directly - unlike /warn//ban//kick//mute, this opens no form, since /unmute takes no optional options.

Permissions Needed

  • User: Moderate Members
  • Bot: Manage Roles

Examples

/unmute user:@cycloptux

/unban

Command Syntax

/unban user:{user} [reason:{text}]

Command Description

Lifts the ban status from the target user. Works by user ID, so it also covers users who are not (and may never have been) a member of the server. If the target isn't actually banned but has a pending delayed ban scheduled (see /ban's delay option above), this cancels that instead.

You can also right-click a user and choose Apps -> Unban, which opens a form for reason.

Permissions Needed

  • User: Ban Members
  • Bot: Ban Members

Examples

/unban user:@cycloptux reason:Appeal accepted

/restrict images / /restrict images-remove

Command Syntax

/restrict images user:{user} [duration:{time code}]
/restrict images-remove user:{user}

Command Description

/restrict images applies the image ban role (configured on the Moderation Settings page, or a default "Image Banned Users" role created automatically if none is set) to the target user, disabling Embed Links and Attach Files for them server-wide. The restriction can be permanent (omit duration) or timed. /restrict images-remove lifts it.

Permissions Needed

  • User: Manage Roles
  • Bot: Manage Roles

Examples

/restrict images user:@cycloptux duration:3d
/restrict images-remove user:@cycloptux

/restrict channel ban / /restrict channel unban

Command Syntax

/restrict channel ban user:{user} channel1:{channel} [channel2:{channel}] [channel3:{channel}] [channel4:{channel}] [channel5:{channel}] [duration:{time code}]
/restrict channel unban user:{user} channel1:{channel} [channel2:{channel}] [channel3:{channel}] [channel4:{channel}] [channel5:{channel}]

Command Description

/restrict channel ban applies the channel ban role for each given channel (configured on the Moderation Settings page, or a default role created automatically if none is set) to the target user, disabling Read Messages and View Channel in that channel. /restrict channel unban lifts it.

Note

channel1 is required on every /restrict channel ... subcommand. channel2 through channel5 are optional - fill in more than one to apply the same restriction to several channels in a single command, instead of running it once per channel.

Permissions Needed

  • User: Manage Roles
  • Bot: Manage Roles

Examples

/restrict channel ban user:@cycloptux channel1:#general
/restrict channel unban user:@cycloptux channel1:#general

/restrict channel mute / /restrict channel unmute

Command Syntax

/restrict channel mute user:{user} channel1:{channel} [channel2:{channel}] [channel3:{channel}] [channel4:{channel}] [channel5:{channel}] [duration:{time code}]
/restrict channel unmute user:{user} channel1:{channel} [channel2:{channel}] [channel3:{channel}] [channel4:{channel}] [channel5:{channel}]

Command Description

/restrict channel mute applies the channel mute role for each given channel (up to 5 at once via channel1-channel5, see the note above) to the target user, disabling Send Messages, Attach Files, Add Reactions, Use Public Threads, Use Private Threads and Speak in that channel. /restrict channel unmute lifts it.

Permissions Needed

  • User: Moderate Members
  • Bot: Manage Roles, Mute Members

Examples

/restrict channel mute user:@cycloptux channel1:#general duration:2h
/restrict channel unmute user:@cycloptux channel1:#general

/restrict channel images / /restrict channel images-remove

Command Syntax

/restrict channel images user:{user} channel1:{channel} [channel2:{channel}] [channel3:{channel}] [channel4:{channel}] [channel5:{channel}] [duration:{time code}]
/restrict channel images-remove user:{user} channel1:{channel} [channel2:{channel}] [channel3:{channel}] [channel4:{channel}] [channel5:{channel}]

Command Description

/restrict channel images applies the channel image ban role for each given channel (up to 5 at once via channel1-channel5, see the note under channel ban/unban above) to the target user, disabling Embed Links and Attach Files in that channel. /restrict channel images-remove lifts it.

Permissions Needed

  • User: Manage Roles
  • Bot: Manage Roles

Examples

/restrict channel images user:@cycloptux channel1:#general
/restrict channel images-remove user:@cycloptux channel1:#general

Utility Commands

These moderation commands may be used in conjunction with the rest of the moderation module to keep your server clean.

/prune

Command Syntax

/prune count:{1-250} [user:{user}] [contains:{text}] [bots:{true|false}] [after:{message id}]

Command Description

Deletes a certain number of messages from the channel in which the command is run. For security reasons, the bot caps this number to 250 messages. You can also right-click a message and choose Apps -> Prune from here.

You may narrow the deletion down with at most one of user (only that member's messages), contains (only messages containing that text), or bots (only messages from bots) - giving more than one at once is rejected.

Alternatively, use after (a message ID) to delete every message after that point instead - this cannot be combined with user/contains/bots, and goes up to count, maximum 100. Messages older than Discord's 14-day bulk-delete limit are skipped and reported separately.

Permissions Needed

  • User: Manage Messages
  • Bot: Manage Messages, Read Message History

Examples

/prune count:100
/prune count:250 bots:true
/prune count:150 user:@cycloptux
/prune count:100 after:123456789098765432

/slowmode

Command Syntax

/slowmode channel:{channel} interval:{time code}

Command Description

Sets slow mode on the given channel. This command leverages 2 different systems:

  • If the interval is within Discord's native slow mode time limit (less than 6 hours), the native slow mode is applied.
  • If the interval exceeds Discord's native time limit (more than 6 hours, up to 1 year), the bot will apply an "extended slow mode" status.

The extended slow mode applies a minimal native slow mode to make sure the "Slowmode is enabled" message is shown. At the same time, each message sent by an unauthorized user will be automatically deleted, and the user will be notified of the applied slow mode.

The extended slow mode doesn't have a higher cap.

Use 0 as the interval to disable slow mode on the channel.

Note

Both channel and interval are required on every call - and only one channel can be targeted per call.

Permissions Needed

  • User: Manage Messages
  • Bot: Manage Messages

Examples

/slowmode channel:#slow-channel interval:1h45m
/slowmode channel:#slow-channel interval:0

Evasion Actions

In addition to the active behavior of the warning commands, the following commands also support a special "evasion" action log:

  • /mute
  • /restrict images
  • /restrict channel ban
  • /restrict channel mute
  • /restrict channel images

An "evasion" action happens when a user that is hit with one of these moderation actions leaves the server and rejoins while the corresponding role is still supposed to be up (either because the timed role still has to expire, or the role has been set as permanent by skipping the corresponding time code).

If still applicable, the role will be applied again as soon as the user rejoins the server and an "evasion" log will appear in the warning log.

Warning Point System

To account for the nature and severity of various infractions, users will incur a certain number of points based on which rule they break. Moderators will be able to use their judgment to adjust the default value of an infraction by adding or subtracting points from the warning. At certain point thresholds, it is recommended that certain moderation actions (such as a mute or ban) be taken against the user.

This section will describe the details of the "default" warning point system backend as well as point out options or commands to configure parts of the system.

Point Accumulation and Thresholds

In addition to a user's total points being the sum of the points of their infractions, the following rules apply to points:

  • Warning points expire after 90 days, at which point the value of the infraction decreases to 1.
  • The first warning for a particular rule is considered to be a "soft warning" and worth half points (e.g., if a user broke the toxic attitudes rule and the NSFW rule, both infractions would be recorded at half points, but breaking the toxic attitudes rule twice would result in the second infraction being recorded at full points). This behavior can be configured with the Point Decay setting on your server's Moderation Settings page (see Warning System Commands below).
  • Each case score can be manually adjusted with /case edit's points option, but it must always be >= 0. Validation rules are in place for a score not to be negative. Any adjustment that brings the score to a negative value will make the score account for 0.
  • In order to preserve the severity of a banned user's warning history, points for banned users will not expire while the user is banned. Unbanning a user will make the points behave as usual again.

The following thresholds apply to the point total of a user. A user reaching one of these thresholds will cause the action log message related to that warning to include a tag of the issuing moderator informing him/her of the user reaching the threshold.

  • 18 unexpired points: The bot will recommend in the action log that the user in question be muted.
  • 27 unexpired points: The bot will recommend in the action log that the user in question be banned.
  • 54 points total, even if expired: The bot will recommend in the action log that the user in question be banned. This is referred to as the "absolute ban threshold".
  • (not implemented yet) Three channel specific warnings: The bot will recommend in the action log that the user be banned from that specific channel, regardless of the total point value. A user can simultaneously reach this threshold and the point thresholds, and the message in the action log should be constructed accordingly.

The justification for these thresholds are as follows:

  • Rules are given point values based on a severity from 1 to 10.
  • Since the first infraction is worth half points, only even numbers should be used for rule values.
  • 6 is the average rule value.
  • A "full warning" (i.e., one soft warning and one regular warning) would be 9 points on average.
  • Two "full warnings" should result in a mute, and three should result in a ban.
  • The absolute ban threshold is twice the ban threshold, a considerable feat even in one's lifetime of the server.

Default Rules and Points

Ideally, users would configure their own rules and point values. However, there are definitely some rules that are common among servers and can be provided as a default hard-coded table. The default table is provided to use as a base:

Rule NameRule AliasRule DescriptionRule Points
No Toxic AttitudesToxic AttitudesTreat everyone with respect and politeness on the server. Being disruptive, aggressive, disrespectful, creepy, or otherwise making a nuisance of yourself on the server or in your interactions with server members is strictly prohibited.6
No Offensive Content, Hate Speech or Sensitive MaterialOffensive ContentAll forms of discrimination and hate speech are strictly prohibited. This includes any slurs or discriminatory messages related to race, ethnicity, gender identity, sex, or other protected characteristics in Discord's Community Guidelines (https://discord.com/guidelines). Furthermore, please refrain from discussion of sensitive content such as politics, religion, acts of violence, and other serious topics.8
No HarassmentHarassmentRepeated aggressive or passive-aggressive behavior against other members of the server to make them feel belittled or unwelcome is not tolerated.8
Be Respectful to ModeratorsArguingIf a server staff member has warned you or otherwise asked you to stop doing something, please do not create drama about it in public channels. Derailing chat to complain about your warning or otherwise causing a scene will result in additional action. Abuse of methods to contact server staff team will also not be tolerated, and any attempts to evade punishments enacted by server staff may result in removal from the server.8
Do Not Incite Others to Break The RulesIncitementEncouraging conflict, or any type of rule-breaking is prohibited and will result in consequences both for those breaking the rules and those encouraging the situation.10
Do Not Spam the Server or its MembersSpamPlease avoid sending repetitive messages and excessive images, links, emojis, or mentions on the server. Furthermore, sending malicious links or other types of scams on the server or in server member DMs is strictly prohibited and may result in removal from the server.8
Do Not Share Other People's Personal InformationPersonal InfoPlease do not share other people's personal information such as real names, addresses, other social media accounts, etc. without their permission. Sharing this with malicious intent may be construed as doxxing, which may result in removal from the server.8
No AdvertisingAdvertisingPlease refrain from disruptive self-promotion and disruptive promotion of other Discord servers/social media, products, and services. This also applies to unsolicited direct messages of this nature to other server members.6
Follow Channel RulesChannel RulesSome channels may have channel-specific rules that add, modify, or exempt rules within a channel. Please read channel descriptions and pins, and comply with these channel-specific rules.6
Do Not Violate The Game's Terms of ServiceGame ToSAny violation of the game's terms of service is strictly prohibited and may result in removal from the server depending on the seriousness of the offense.54
Do Not Violate Discord's Community Guidelines or Terms of ServiceDiscord ToSPlease keep in mind that Discord itself has specific behavioral and content guidelines that you can read at https://discord.com/guidelines. Some of these violations may result in an instant ban. Of particular note are the following:

- You must be at least 13 years of age to use Discord
- Sharing sexually explicit content of minors, both real and animated/drawn, is prohibited
- Glorifying self harm or suicide
- Sharing pirated or illegally acquired content is prohibited
10
User Profile Must Meet Certain CriteriaUser ProfileAll aspects of your user profile including (but not limited to) your profile picture and display name (i.e., your server nickname if you have one set, or your actual username if not) should be compliant with the rules of the server. Please avoid unreadable or disruptive names. Additionally, impersonating another user, staff member, or other public figure or organization is prohibited.4
No NSFW or Gore ContentNSFWNSFW (Not Safe For Work) content is prohibited, which includes text or media featuring excessive gore/extreme violence, content related to self harm or harming others, pornography or excessively sexual content. As with all rules, server staff may reserve the right to judge violations of this rule on a case by case basis.8
Please Speak EnglishEnglishThe official language of the server is English. Please converse with others in this language on the server as this best enables everyone to understand each other.4
Informational MessageNoneThis message is informational only and does not progress you closer to a server ban.0

Warning System Commands

This section will describe all those commands that are needed to use (and configure, to a certain extent) the warning system, as described in the previous section.

/history

Command Syntax

/history user:{user}

Command Description

Shows the warning history of a user in reverse chronological order. By default, this only includes a short summary for each warning. You can also right-click a user and choose Apps -> Warning history.

Note

This command takes a single user per call.

Permissions Needed

  • User: Moderate Members

Examples

/history user:@cycloptux

/case show / /case delete / /case restore

Command Syntax

/case show id:{case id}
/case delete id:{case id}
/case restore id:{case id}

Command Description

/case show prints a detailed log embed for the selected case. /case delete deletes it - deleted cases are never actually removed from the bot memory and can be restored in the future if you remember the case ID. /case restore restores a previously deleted case.

Note

Each of these takes a single case ID per call.

Permissions Needed

  • User: Moderate Members (/case show); Moderate Members plus Manage Server for a human-issued case (/case delete, /case restore) - an authorized moderator can delete/restore a bot-issued (AutoModerator) case without Manage Server, see How Permission Checks Work

Examples

/case show id:2
/case delete id:3
/case restore id:3

/case edit

Command Syntax

/case edit id:{case id} [reason:{text}] [rule:{rule id/name/alias}] [points:{number}] [justification:{text}] [silent:{true/false}]

Command Description

Edits an existing case. You cannot edit a case type (e.g. turning a warn into a mute). Only the original case owner (the issuing moderator) or a server administrator can edit a case.

Editing a case updates it in place - the case ID and its original warning log entry stay the same, they just reflect the new details. No second case is created, and an audit trail of the edit itself (who ran it, and what changed) is kept in the Moderation log.

All options besides id are optional:

  • reason: a textual description of the reason.
  • rule: the server rule this case references (id, alias, or name).
  • points: the new, absolute point value for this case (not a delta - provide the final number you want).
  • justification: required if (and only if) points is set.
  • silent: if true, the target user isn't DMed about the edit. Defaults to false.

Note

There's no attachment-editing option. If the edit actually changes something, the target user is DMed a short summary of the changed fields (the case's footer gets a 🔕 icon when silent is used to suppress that DM). An edit that changes nothing never sends a DM either way.

Permissions Needed

  • User: Moderate Members to see and open the command, plus either Manage Server or being the case's own original issuing moderator to actually complete the edit - see How Permission Checks Work. This "or the issuing moderator" exception is unique to /case edit - /case delete//case restore need Manage Server outright for any human-issued case, with no such exception.

Examples

/case edit id:3 reason:Spamming phishing links in the #general channel points:10 justification:For repeated spamming despite being warned about it
/case edit id:5 points:0 justification:Retracted, was a false positive silent:true

/rules

Command Syntax

/rules [rule:{rule id/name/alias}]

Command Description

Lists the rules (both custom and default sets) of the server in order by Rule ID, including the Rule Title and Description for each rule. Provide rule to show a specific rule only.

Note

This command is always available to everyone when called with no rule argument (listing every rule). Providing rule to look up one specific rule goes through the normal module permission check instead.

Permissions Needed

  • User: None to list every rule (always available to everyone, see How Permission Checks Work); looking up one specific rule goes through the moderation module's normal authorization instead (Manage Server by default, or an authorized role).

Examples

/rules
/rules rule:NSFW

Rule management (dashboard)

Note

Adding, editing and deleting/hiding rules, and the Point Decay setting described below, are configured from your server's Moderation Settings page on the dashboard - see On the Dashboard below. The concepts below still apply.

  • Rule fields: a Name, an Alias (a short identifier), a Description, and a Points value. A custom rule gets a server-specific rule ID automatically, starting from s_1.
  • Deleting a rule (custom or default) never actually removes it - it's hidden instead, so that the history of users previously moderated under that rule is preserved. Re-toggling it restores it to its previous, visible state.
  • Point Decay (previously called "Half Logic"): as described in the Point Accumulation and Thresholds section above, the first warning for a particular rule is considered to be a "soft warning" and worth half points by default. This can be set to:
    • None: Don't halve the points for any warnings.
    • First offense only: Only halve the first warning a user receives (server-wide).
    • First offense with points: Only halve the first warning a user receives excluding 0-points rules warnings (server-wide).
    • Each offense: Halve the first warning a user receives under each rule (default).

Warning expiry, decay, and threshold configuration

Note

Warning expiry, decay, and thresholds - the 90-day expiry, decay to 1 point, and the 18/27/54 point thresholds described above - are fixed in the bot's code. There is no setting, command, or dashboard page to configure them.

On the Dashboard

  • Moderation Settings page: three top-level toggles (Moderator Immunity, Moderator Anonymization, Moderator Notifications, matching Mod Immunity/Mod Anonymization/Mod Notification above), a Point Decay select (None / First offense only / First offense with points / Each offense), the Mute Role and Image-Ban Role pickers, and the Mute Chat Channels list.
  • Rules page: the list of custom and default rules, each with a toggle to hide/restore it, and an Add Rule / Edit Rule form with Name, Alias, Description, and Points fields (there is currently no field to scope a rule to a specific channel).

See also

Full migration mapping for these commands: Migration Guide.