Skip to content

Auto Moderation

Automatically detect and handle rule violations including spam, inappropriate content, and bad behavior. Keep your server safe 24/7.

Overview

Natsumi's auto moderation system works in the background to protect your server. When violations are detected, the bot can automatically warn, timeout, or delete messages without moderator intervention.

  • Spam Detection Detect mass messages, repeated content, and emoji spam

  • Word Filters Block slurs, profanity, and custom banned words

  • Link Control Manage Discord invites and external links

  • Mention Control Limit mass mentions and prevent ping abuse

How rules work

Auto moderation is configured entirely on the dashboard, under Automod and Advanced Automod. There is no automod slash command.

Every rule is built from three parts:

  1. A trigger. What Natsumi watches for, such as a message matching a word list, a member joining with a suspicious username, or someone posting the same message five times in a row.
  2. Conditions. Optional filters that narrow when the rule applies, such as only for accounts younger than a week, or never for moderators.
  3. Actions. What happens when the rule fires, from deleting the message to banning the author.

Rules are evaluated in order, and a single rule can carry several actions, so one match can delete the message, warn the member and post to a log channel at once.

Triggers

Message content

TriggerFires when
new_messageAny new message is posted
edited_messageAn existing message is edited
word_denylistA message contains a word from a list you define
word_allowlistA message contains anything outside an allowed list
message_regexA message matches a regular expression
message_not_regexA message fails to match a regular expression
all_capsA message is mostly capital letters
message_lengthA message is longer than a limit
message_mentionsA message contains more than a set number of mentions
message_attachmentsA message carries more than a set number of attachments
message_has_attachmentsA message carries any attachment
message_no_attachmentsA message carries no attachment
TriggerFires when
any_linkA message contains any link
server_invitesA message contains a Discord invite
website_denylistA message links to a blocked domain
website_allowlistA message links anywhere outside an allowed domain list

Spam and flooding

TriggerFires when
spam_messagesA member sends messages faster than a threshold
consecutive_identical_messagesThe same message is repeated
user_mentions_spamOne member spams mentions
user_links_spamOne member spams links
user_attachments_spamOne member spams attachments
channel_messagesA channel exceeds a message rate
channel_mentions_spamA channel is flooded with mentions
channel_links_spamA channel is flooded with links
channel_attachments_spamA channel is flooded with attachments

Members and names

TriggerFires when
new_memberA member joins the server
join_username_word_denylistA joining member's name contains a blocked word
join_username_word_allowlistA joining member's name falls outside an allowed list
join_username_regexA joining member's name matches a pattern
join_username_not_regexA joining member's name fails to match a pattern
join_username_inviteA joining member's name contains an invite link
nickname_word_denylistA nickname contains a blocked word
nickname_word_allowlistA nickname falls outside an allowed list
nickname_regexA nickname matches a pattern
nickname_not_regexA nickname fails to match a pattern

Other

TriggerFires when
discord_automodDiscord's own AutoMod flags a message
violations_in_durationA member accumulates violations within a time window

Conditions

Conditions narrow a rule without changing what it watches for.

ConditionApplies the rule only when
account_age_belowThe account is newer than a given age
account_age_aboveThe account is older than a given age
member_duration_belowThe member joined recently
member_duration_aboveThe member has been in the server a while
require_rolesThe member holds one of the listed roles
ignored_rolesThe member holds none of the listed roles
ignore_botsThe author is not a bot
only_botsThe author is a bot
ignore_channelsThe message is outside the listed channels
ignore_categoriesThe message is outside the listed categories
ignore_threadsThe message is not in a thread
active_in_channelsThe message is in one of the listed channels
active_in_categoriesThe message is in one of the listed categories
active_in_threadsThe message is in a thread
ignore_forwardsThe message is not a forwarded message
only_forwardsThe message is a forwarded message

Actions

ActionEffect
delete_messageDelete the offending message
delete_multiple_messagesDelete several of the member's recent messages
warn_userIssue a warning, recorded in their history
timeout_userTime the member out for a set duration
kick_userRemove the member from the server
ban_userBan the member
give_roleAdd a role, useful for quarantine roles
remove_roleRemove a role
set_nicknameReplace an offending nickname
send_messagePost a message in the channel
send_alertPost to a staff or log channel
enable_slowmodeTurn on slowmode in the affected channel
add_violationAdd to the member's violation counter
reset_violationsClear the member's violation counter

Escalation

add_violation and violations_in_duration are what make escalation work. Have your first rule add a violation when it fires, then add a second rule that triggers on violations_in_duration and applies a heavier action once a member accumulates enough of them inside your chosen window.

That keeps a single mistake cheap while making a pattern of them expensive, and it means the escalation thresholds are yours to set rather than fixed.

Best Practices

Start with Basic Filters

Enable anti-spam and anti-invite first, then add more rules as needed based on your server's specific issues.

Use Ignore Rules

Exclude moderator roles and bot channels from automod to prevent false positives.

Start a New Rule in Alert-Only Mode

Give a new rule send_alert as its only action at first. It will report what it would have caught without touching anyone's messages, which makes an overly broad word list or regex obvious before it affects real members.

Use Escalation

Start with warnings and use escalation to automatically increase punishment for repeat offenders.

Monitor the Log Channel

Set up automod logging to a private channel so moderators can review actions and adjust rules.

Avoid Over-Moderation

Too many strict rules can frustrate legitimate users. Balance protection with usability.

Documentation for Natsumi.