Automod
Automod is the catch-all term for the layered moderation Zippy Wall runs on every message — link scanning, scam-phrase detection, custom banned phrases, mention-spam, and account/tenure gates. This page covers how each layer works and how to tune it.
The layers, in order
When a message arrives, Zippy Wall walks it through this exact sequence. The first layer that matches takes the configured action and the rest are skipped.
- Exemption checks — server owner, Administrator perm, exempt users, exempt roles, ignored channels. Pass = skip everything else.
- Lockdown gate (if active) — blocks all links + young accounts.
- Server-tenure gate — block posts from members who joined less than N minutes ago.
- Min account-age gate — block all posts from accounts younger than N days.
- Mention-spam guard — block messages with too many user/role mentions.
- Custom banned phrases — substring, whole-word, or glob matching against your phrase list.
- Preset packs — 9 curated scam-pattern packs (gamer scams, profanity, crypto, Roblox, CS:GO, etc.).
- URL extraction + classification — for any URLs in the message, runs threat intelligence + heuristics.
Each layer can be disabled by setting its threshold to 0 or leaving the list empty. Ordering is deliberate — cheap checks (lockdown, gates) run before expensive ones (URL classification).
URL classification
For every URL in a message, Zippy Wall runs a classifier that combines multiple sources:
- Built-in scam-domain list (free tier) — curated list of known phishing/scam domains that's updated continuously.
- Heuristic detection (free tier) — catches typo-squat impersonators like
dlscord.com,steamcomnunity.comusing string-distance matching against legitimate domains. - Multi-source threat intelligence (Pro) — live feeds for fresh phishing URLs that haven't been added to the built-in list yet.
- Per-server allowlist — domains in your allowlist always pass through, no matter what other sources say.
- Per-server blocklist — domains in your blocklist always trigger the configured action.
Threshold sensitivity (20–95) controls how strict the heuristics are. 60 is the balanced default; raise for stricter, lower for more permissive.
Preset packs
Nine curated banned-phrase packs you can enable per-server. Each one targets a specific scam pattern observed in real Discord raids.
| Pack | Targets |
|---|---|
| Gamer scams | Free Nitro DMs, fake CS:GO drops, Steam gift impersonators |
| Profanity | Comprehensive English profanity (LDNOOBW), whole-word matched to avoid false positives |
| Crypto / NFT scams | Airdrop phishing, wallet-connect drainers, fake presales |
| Impersonation | Catches messages pretending to be Discord/Twitch/Steam staff |
| Roblox scams | Free Robux generators, fake gift drops, Roblox phishing rotators |
| CS:GO / CS2 skins | Free skin drops, fake case openers, knife giveaway baits |
| Fortnite V-Bucks | V-Bucks generators, free skin baits, gift-card phishing |
| OSRS / RuneScape | Cheap-gold spam, RWT advertising, account-buying hooks |
| MMO account theft | Account-buying, level-boosting, real-money trade across MMOs |
Free tier caps you at 2 enabled packs; Pro enables all 9 plus per-preset action overrides.
Custom banned phrases
Add your own phrases on top of the preset packs. Three match modes:
- Substring — "free nitro" matches any message containing those words anywhere.
- Whole-word — "ass" matches "ass" but not "assassin". Single words default to whole-word.
- Glob (Pro) —
*shit*catches "shit", "bullshit", "ohshit-bro".sh?tcatches "shit", "shat", "shot". Covers ~95% of regex use cases without the regex-injection risks.
Free tier caps you at 10 custom phrases; Pro is unlimited.
Mention-spam guard
Set a threshold for the maximum number of mentions per message. @everyone counts as 5; user and role mentions count as 1 each. Messages over the threshold trigger the configured action. Typical sane value: 5. Default: 0 (disabled).
Account-age and tenure gates
Three gates that block posts based on how new the account or membership is. See the dedicated sections in the dashboard:
- Min account age for links — accounts younger than N days can't post URLs. Catches throwaway phishing accounts. Default 30 days.
- Min account age to post — broader gate, blocks all messages (not just URLs) from accounts under N days. Stricter; default 0 (disabled).
- Min server tenure — members must be in this server for N minutes before posting. Catches drive-by raid bots. Default 10 minutes after onboarding.
Actions
When any layer triggers, the configured Global Action fires:
- Delete — remove the message (free + Pro)
- Warn — log only, no removal (free + Pro)
- Censor — re-post the message with banned phrases replaced by ▓▓▓ (free + Pro)
- Mute (timeout) — Discord timeout for the configured duration (Pro)
- Kick — remove the user from the server (Pro)
- Ban — permanent ban + delete last 10 minutes of messages (Pro)
Pro tier also unlocks per-preset action overrides (e.g. DELETE crypto-scam phrases, BAN impersonation phrases) and per-channel overrides (different threshold or action in specific channels).
Recommended starting setup
- Click Apply recommended defaults on the dashboard. This sets a balanced baseline.
- Enable the preset packs that match your community (Roblox server → Roblox + Gamer scams + Profanity; crypto server → Crypto + Gamer scams + Impersonation).
- Set mod-log channel so you can see every action the bot takes.
- Watch the mod log for a week. Tune custom phrases for anything the presets miss.
- If you see false positives, lower the Sensitivity threshold or add legitimate domains to your allowlist.
Marketing overview: /automod. Configure in your dashboard.