Skip to main content

Overview

Automod is one command, !automod, covering several independent checks. Each has its own enable toggle, so turning one on doesn’t affect the others. Arguments are positional and space-separated. Most of it can also be set from the dashboard: the word filter, anti-spam, strikes, anti-raid and anti-alt in Moderation → Moderation, the silent channels in Moderation → Silent Channels, the templates in Moderation → AutoMod templates, and anti-raid and anti-alt again in Moderation → Anti-raid & nuke. !antiraid is another name of !automod.
Two automod entries in the mod-log channel: capslock_carl for capital letters in #general and linkdropper for an invite in #memes

In Discord: what the automod log channel gets when the checks act.

The AutoMod templates page with its settings, counters and packs

Dashboard → Moderation → AutoMod templates: settings for what you add, the counts and the ready packs.

Word filter

liam turns the word filter on with the mute action and Petto confirms it

In Discord: the word filter turned on with a mute.

kira adds free robux to the word filter and Petto confirms it

In Discord: a word added to the filter.

kira removes raid from the word filter and Petto confirms it

In Discord: a word taken out of the filter.

chu lists the word filter: the action on a hit and the three banned words

In Discord: the action and the banned words.

action is warn (default), mute (10 minutes), kick, or delete (removes the message, no sanction).

Anti-spam

liam turns anti-spam on with 5 mentions and Petto lists what it covers

In Discord: anti-spam turned on with at most 5 mentions.

Also catches repeat messages, excessive caps, and unauthorized Discord invite links, alongside mass mentions.

Allowed invites

shi allows the invite code catcafe and Petto confirms it

In Discord: an invite code allowed.

shi takes catcafe off the allowed codes and Petto confirms it

In Discord: an invite code taken off the list.

shi lists the two allowed invite codes, pettoland and catcafe

In Discord: the allowed invite codes.

Add your own server’s invite code (or any partner server’s) so anti-spam doesn’t flag it.

Anti-raid

liam turns anti-raid on with 6 joins in 10 seconds and the kick action

In Discord: anti-raid turned on: 6 joins in 10 seconds, then kick.

Defaults: 6 joins within 10 seconds. action is alert (default, staff-only notice), kick, or lockdown (locks the server, see Lockdown).
A Possible raid detected entry: 6 members joined within 10 seconds

In Discord: what the alert action posts in the automod log.

Anti-alt

liam turns anti-alt on with 7 days and the flag action

In Discord: anti-alt turned on for accounts under 7 days, only flagging them.

Flags or kicks accounts younger than min_age_days (default 7) on join. action is kick (default) or flag (logs only, no action taken).
An anti-alt entry: nova joined with an account two days old, minimum seven

In Discord: a new account flagged in the automod log.

No avatar. !automod no-avatar <enabled> [action] flags or kicks accounts that join without a profile picture. action is kick (default) or flag.
liam turns the no-avatar check on with the flag action and Petto confirms it

In Discord: the no-avatar check turned on, only flagging.

Join passes. A pass lets one account join once without being stopped by anti-raid, anti-alt or no-avatar (a friend with a new account during a raid). It is used up when they join.
kira gives nova a join pass by ID and Petto explains it is used once

In Discord: a pass for an account that is not in the server yet (an ID works).

kira takes back Mia's join pass and Petto confirms it

In Discord: a pass taken back.

kira lists two join passes, for nova and Mia, both given by kira

In Discord: the passes not used yet, with who gave them.

chu checks petto.sbs and Petto finds no known threats

In Discord: a link that is on no threat list.

chu checks a fake Nitro link and Petto flags it as phishing

In Discord: a known phishing link, written so it cannot be clicked.

A manual check looks the URL up in the public threat lists (phishing and malware) that Petto keeps in sync. The link is not sent to an outside service. The same lists protect every message: a message with a link on them is removed automatically (also from staff, a hijacked staff account is no exception) and Petto leaves a short notice in the channel. The Petto team is alerted the first time a new malicious link is found.

Immune roles

Roles that bypass the word filter and anti-spam checks entirely.
liam makes Helpers immune to automod

In Discord: a role made immune.

liam removes the immunity of Helpers

In Discord: a role that is no longer immune.

liam lists the immune roles: Moderators and Helpers

In Discord: the immune roles.

Silent channels

A channel where any message counts as a violation, regardless of content.
liam makes announcements silent with the mute action

In Discord: a silent channel where posting gets a mute.

liam makes rules a normal channel again

In Discord: a channel that is no longer silent.

liam lists the silent channels: announcements with warn and rules with mute

In Discord: the silent channels and their action.

action is warn (default), mute (30 minutes), or kick.
The Silent channels page with announcements on warn and rules on mute

Dashboard → Moderation → Silent Channels: each silent channel with its action, and a new one.

Templates

Ready filters made from the same patterns found in AutoMod regex generators. Each one can be added in two ways:
  • Discord AutoMod (!automod native add): Petto makes a rule in Discord’s own AutoMod. Discord blocks the message before it is sent. Discord allows only 6 keyword rules, 1 spam, 1 mention limit and 1 word-list rule per server.
  • Petto filter (!automod template add): Petto checks the message after it is sent. No limit (40 per server), and it can delete, warn (with the warn escalation), mute or kick.
Packs put several templates in one Discord rule: Basic, Clean chat, Anti scam and Strict. Discord also has its own kinds: Spam, Mention limit and Word lists (profanity, sexual content, slurs).
liam adds the Emoji spam template with warn and 6 emojis, and it becomes filter 5

In Discord: a Petto filter from the Emoji spam template.

liam lists four Petto filters with their number, action and hits

In Discord: the Petto filters with their action and hits.

liam removes filter 4 and Petto confirms it

In Discord: a filter removed by its number.

liam turns filter 1 off and Petto confirms it

In Discord: a filter turned off without removing it.

liam adds the anti_scam pack with alerts in mod-log and Petto says the rule is on in Discord

In Discord: the Anti scam pack as one rule in Discord's AutoMod.

liam lists 3 of 6 keyword rules: two Petto Official, one from a template and a rule of the staff

In Discord: the rules of Discord's AutoMod and the keyword slots used.

liam removes a rule by its ID and Petto confirms it

In Discord: a rule made from a template removed by its ID.

In the dashboard, AutoMod templates has a card for each one with its options and the two buttons, and lists what is active. Nothing is on until you add it. Staff with Manage Messages and the immune roles are never checked by the Petto filters.
The settings card: alert channel, mute, the text the member sees, the Petto action, the roles and channels never checked, and the counts 3 of 6 and 4 of 40

Dashboard → Moderation → AutoMod templates: what every rule or filter you add will do, and the slots used.

The Basic, Clean chat, Anti scam and Strict packs with their Add to Discord button

Dashboard → Moderation → AutoMod templates: the four packs, each one rule in Discord.

The cards All links, Invite links, Inline links and Email addresses, each with an example, its option, Add to Discord and Add to Petto

Dashboard → Moderation → AutoMod templates: the templates of Links and addresses, each with an example, its options and the two buttons (Safety and Text and noise follow).

The Spam, Mention limit and Word lists cards with their options

Dashboard → Moderation → AutoMod templates: Discord's own Spam, Mention limit and Word lists.

The lists Active in Discord, with two Petto Official rules, and Active in Petto, with four filters and their hits

Dashboard → Moderation → AutoMod templates: what is on now, with a switch and a remove button.

Petto Official AutoMod rules (named Petto •) use keyword slots too. If Discord has no room left, remove a rule you do not need or use the Petto filters, which have no such limit.

Finer settings

All of these have the old behavior as default.
  • Anti-spam can turn each check on or off (same message again and again, mass mentions, invites that are not allowed, shouting) and takes your numbers: copies that count as a flood and in how many seconds, percent of capitals and shortest message checked. !automod spam has repeat, caps_percent and max_length.
  • Long messages: delete messages longer than some characters or with too many lines (0 is off). They are only deleted, nobody is punished.
  • Channels the automod never checks (the threads inside them too).
  • Strikes: !automod strikes <limit> [window_minutes] [mute_minutes] mutes a member who reaches the limit of automod hits in the window, on top of what each rule did. Limit 0 is off.
liam sets the strikes to 3 hits in 10 minutes and a 30 minute mute

In Discord: three automod hits in 10 minutes give a 30 minute mute.

The Protection page with the cards of the word filter, anti-spam, strikes and anti-raid

Dashboard → Moderation → Moderation: the word filter, anti-spam with every finer setting, strikes, anti-raid and anti-alt.

Ready-made setups

Copy the block that fits your server. Every line can be changed later on its own.
Commands
Deletes spam and invites without punishing anyone, cleans bad words, and tells the staff about a raid.
Pair the automod with warn escalation so warnings from the automod turn into a mute or a ban after a few, and with logging (!logs add #mod-log automod) to see every hit.

Anti-Nuke

A separate, more serious layer for mass-destructive actions.