Auto-Moderation
Configure automatic message filtering and spam protection through the dashboard
Overview
Auto-moderation detects and acts on rule-breaking messages automatically without requiring manual moderator intervention. All settings are configured through the dashboard at Left sidebar > Auto-Moderation. The system includes 18 individual filters organized into four groups: text content filters, spam and flooding filters, link and invite filters, and mention protection. Each filter can be toggled independently, and violations trigger configurable actions such as deleting the message, warning the user, or applying a timeout.
Enabling Auto-Moderation
Navigate to your server dashboard and click Left sidebar > Auto-Moderation. Toggle the main enabled switch at the top of the page to activate the module. Once enabled, all individual filter sections become available for configuration below. Changes are saved to the database and take effect immediately. You can disable the entire module at any time by toggling this switch off without losing your filter configurations.
Text Content Filters
Six filters for detecting problematic text content:
Bad Words: Toggle badWordsEnabled to activate. Enter banned words in the text area, separated by commas. The bot checks every message against this list and takes action on matches.
All Caps Detection: Toggle allCapsEnabled. Set allCapsPercentage (range 10-100%, default 70) for the minimum percentage of uppercase characters that triggers the filter. Set allCapsMinChars (default 10) for the minimum message length to check, so short messages like OK are not flagged.
Zalgo Characters: Toggle zalgoEnabled. Detects and removes messages containing zalgo or glitch text that disrupts readability by stacking combining characters.
Spoilers: Toggle spoilersEnabled. Set spoilersMax (default 3) for the maximum number of spoiler tags allowed per message before the filter triggers.
Character Count: Toggle characterCountEnabled. Set characterCountMax (default 2000) to set the maximum allowed message length.
Duplicate Text: Toggle duplicateTextEnabled. Set duplicateTextTime (default 5000 milliseconds) for the time window in which repeated identical messages from the same user are detected.
Bad Words: Toggle badWordsEnabled to activate. Enter banned words in the text area, separated by commas. The bot checks every message against this list and takes action on matches.
All Caps Detection: Toggle allCapsEnabled. Set allCapsPercentage (range 10-100%, default 70) for the minimum percentage of uppercase characters that triggers the filter. Set allCapsMinChars (default 10) for the minimum message length to check, so short messages like OK are not flagged.
Zalgo Characters: Toggle zalgoEnabled. Detects and removes messages containing zalgo or glitch text that disrupts readability by stacking combining characters.
Spoilers: Toggle spoilersEnabled. Set spoilersMax (default 3) for the maximum number of spoiler tags allowed per message before the filter triggers.
Character Count: Toggle characterCountEnabled. Set characterCountMax (default 2000) to set the maximum allowed message length.
Duplicate Text: Toggle duplicateTextEnabled. Set duplicateTextTime (default 5000 milliseconds) for the time window in which repeated identical messages from the same user are detected.
Spam and Flooding Filters
Five filters for detecting message flooding and spam:
Fast Message Spam: Toggle spamEnabled. Set spamMessages (default 5, minimum 3) for how many messages trigger the filter, and spamSeconds (default 5, minimum 1) for the time window in seconds. If a user sends more than the threshold within the window, the filter activates.
Line Spam: Toggle lineSpamEnabled. Set lineSpamMax (default 10) for the maximum number of line breaks allowed per message. Prevents users from flooding chat with excessive blank lines.
Emoji Spam: Toggle emojiSpamEnabled. Set emojiSpamMax (default 10) for the maximum number of emojis per message.
Image Spam: Toggle imageSpamEnabled. Set imageSpamMax (default 3) for the maximum number of image attachments per message.
Sticker Spam: Toggle stickerEnabled. Set stickerMax (default 3) for the maximum stickers per message and stickerCooldown (default 5 seconds) for the minimum time between sticker messages from the same user.
Fast Message Spam: Toggle spamEnabled. Set spamMessages (default 5, minimum 3) for how many messages trigger the filter, and spamSeconds (default 5, minimum 1) for the time window in seconds. If a user sends more than the threshold within the window, the filter activates.
Line Spam: Toggle lineSpamEnabled. Set lineSpamMax (default 10) for the maximum number of line breaks allowed per message. Prevents users from flooding chat with excessive blank lines.
Emoji Spam: Toggle emojiSpamEnabled. Set emojiSpamMax (default 10) for the maximum number of emojis per message.
Image Spam: Toggle imageSpamEnabled. Set imageSpamMax (default 3) for the maximum number of image attachments per message.
Sticker Spam: Toggle stickerEnabled. Set stickerMax (default 3) for the maximum stickers per message and stickerCooldown (default 5 seconds) for the minimum time between sticker messages from the same user.
Link and Invite Filters
Four filters for controlling URLs and invite links:
Link Filter: Toggle linkEnabled to block all links by default. Add trusted domains to linkWhitelist as a comma-separated list (for example: youtube.com, twitter.com). Set linkCooldown (default 0 seconds) to allow links but with a rate limit between posts.
Invite Filter: Toggle inviteEnabled. Blocks all Discord server invite links (discord.gg, discord.com/invite). This prevents users from advertising other servers.
Phishing Links: Toggle phishingEnabled. Detects and blocks known phishing and scam URLs using a regularly updated blocklist. Recommended for all servers due to very low false positive rates.
Masked Links: Toggle maskedLinkEnabled. Blocks hyperlinks where the display text shows a different URL than the actual link destination, which is a common phishing technique.
Link Filter: Toggle linkEnabled to block all links by default. Add trusted domains to linkWhitelist as a comma-separated list (for example: youtube.com, twitter.com). Set linkCooldown (default 0 seconds) to allow links but with a rate limit between posts.
Invite Filter: Toggle inviteEnabled. Blocks all Discord server invite links (discord.gg, discord.com/invite). This prevents users from advertising other servers.
Phishing Links: Toggle phishingEnabled. Detects and blocks known phishing and scam URLs using a regularly updated blocklist. Recommended for all servers due to very low false positive rates.
Masked Links: Toggle maskedLinkEnabled. Blocks hyperlinks where the display text shows a different URL than the actual link destination, which is a common phishing technique.
Mass Mention Protection
Toggle mentionEnabled to activate mention spam protection. Set mentionLimit (default 5, minimum 1) for the maximum number of user or role mentions allowed in a single message. If a message contains more mentions than this limit, the filter triggers. Set mentionCooldown (default 0 seconds) to add a rate limit between messages that contain mentions. This protects against users mass-pinging members or roles.
Violation Actions
Configure what happens when any filter is triggered. Four action types are available and can be combined:
Delete Message: Toggle actionDelete to automatically remove the message that triggered the filter. This is the most common action and recommended for most filters.
Warn User: Toggle actionWarn to issue an automatic warning that is recorded in the user's moderation log. Warnings accumulate and can be reviewed with the /warnings command.
Timeout User: Set actionTimeout in milliseconds (default 0 for disabled) to temporarily mute the user who triggered the filter. For example, 60000 for a 1-minute timeout, 300000 for 5 minutes.
Log to Channel: Select a channel using the logChannelId channel picker to send detailed violation reports. Each report includes the user, the filter that was triggered, and the original message content.
Delete Message: Toggle actionDelete to automatically remove the message that triggered the filter. This is the most common action and recommended for most filters.
Warn User: Toggle actionWarn to issue an automatic warning that is recorded in the user's moderation log. Warnings accumulate and can be reviewed with the /warnings command.
Timeout User: Set actionTimeout in milliseconds (default 0 for disabled) to temporarily mute the user who triggered the filter. For example, 60000 for a 1-minute timeout, 300000 for 5 minutes.
Log to Channel: Select a channel using the logChannelId channel picker to send detailed violation reports. Each report includes the user, the filter that was triggered, and the original message content.
Log Channel
Use the channel picker at the bottom of the Auto-Moderation settings page to select a logChannelId. All automod violations will be reported to this channel with detailed information including the username, the specific filter that triggered, the original message content, and what action was taken. This is essential for monitoring false positives and adjusting your filter settings. Make sure the bot has View Channel and Send Messages permissions in the selected log channel.
Excluded Roles
Server administrators are always exempt from auto-moderation filters. Staff roles and bot roles are typically excluded automatically to prevent false triggers from moderator actions. If you need specific roles to bypass auto-moderation, ensure they have the Administrator permission in Discord or configure role-based exclusions through the dashboard.
Tips
Start with the most impactful filters first: bad words, invite filter, and fast message spam. These catch the most common issues with minimal false positives. Enable the phishing filter on all servers as it provides protection against scam links with very high accuracy. Monitor your log channel for the first few days after enabling new filters and adjust thresholds if you see too many false positives. The all caps filter works best with a percentage around 70-80% and a minimum character count of 10 or higher to avoid flagging short exclamations.