Help
Getting started
- Add plonk to your server (button up top).
- Point it at a mod channel:
/plonk logchannel #mod-log - If you have a self-promo channel:
/plonk promo add #self-promo - Done. plonk starts in monitor mode: it detects everything and posts what it would have done to your log channel, but punishes nobody.
- When the would-haves look right (give it a week), flip it:
/plonk mode enforce
What it catches
- Cross-channel link spray. The same link from the same user in a second channel within 30 minutes: timeout, on the spot. Tracking parameters, mobile subdomains, and known link shorteners are normalized first, so trivial mutations don't dodge the matcher.
- Repeat links. The same link from the same user again within 30 minutes adds heat.
- Link flooding. In promo channels: one link per user per 30 minutes. Everywhere else: four links per minute, a limit normal conversation doesn't hit. Both configurable.
- Coordinated raids. Three or more accounts posting the same link within 15 minutes. Heat stacks fast and usually ends in a kick.
- Foreign server invites. Your own vanity invite and allowlisted codes pass; everything else adds heat.
- Phishing and scam links. Matched against continuously-updated scam-domain feeds. No heat buildup, no warning: instant 24h timeout and message deleted.
- Typosquat domains. Lookalikes of discord.com, steam, paypal, and similar are caught and deleted on sight.
- Context signals. A pile of smaller signals (fast message floods, mass mentions, ALL-CAPS, emoji spam, zalgo/combining-character abuse, attachment floods, and duplicate or near-duplicate text) add heat quietly. They never act on their own; they only push someone closer to a threshold they were already approaching.
- Join-velocity raids. A burst of new-account joins triggers a mod-channel alert. In enforce mode, invites are auto-paused.
/plonk lockdownis the manual version.
Built-in allowlist: tenor.com, giphy.com, media/cdn.discordapp.net, youtube.com/youtu.be, twitter.com/x.com, twitch.tv, reddit.com, imgur.com, and spotify.com (plus their subdomains) are exempt from the flood, repeat, cross-channel, and coordinated checks above, on by default, no setup needed. That covers Discord's own GIF picker and most everyday video and social links. Phishing, typosquat, and invite detection still run on every link, allowlisted or not. Add more with /plonk allow add.
Messages from bots and webhooks are ignored. Threads count toward their parent channel's rules.
Heat and the ladder
Every offense adds heat to the user who committed it. Heat decays over time (ten-minute half-life by default), so one bad afternoon doesn't follow someone for a month. Crossing a threshold triggers the ladder:
- heat 40: warn
- heat 70: 10 minute timeout
- heat 90: 24 hour timeout
- heat 100: kick
Repeat offenders escalate faster: each new timeout is at least double the previous one. When a timeout, kick, or ban lands, plonk also deletes that user's recent link messages from every channel they posted in.
Phishing links and cross-channel spray carry an instant override: the 24h timeout fires regardless of current heat.
Commands
All commands live under /plonk and require the Manage Server permission.
/plonk statusMode, log channel, promo channels, active detectors, exemption counts./plonk mode off|monitor|enforceThe big switch. Monitor logs would-have actions; enforce acts on them./plonk logchannel #channelWhere detections get posted. Required for monitor mode to be useful./plonk promo add|remove|listDesignate self-promo channels (one link per 30 minutes per user there)./plonk exempt add|removeTrusted roles, users, or channels. Exempt means plonk never looks at them./plonk exempt listShow all currently exempted roles, users, and channels./plonk allow add|remove|listManage the trusted link-domain allowlist. Allowlisted domains skip flood, repeat, and cross-channel checks; phishing and invite checks still apply./plonk infractions @userA user's last ten infractions, including monitor-mode would-haves./plonk pardon @userClears a user's heat, resets the repeat-offense multiplier, and marks their infractions pardoned./plonk lockdown [minutes]Manually pause invites during a raid. Defaults to 60 minutes; pass a number to override./plonk unlockLift a lockdown and re-enable invites./plonk config detector|promo|flood|invites|botsTune individual limits or toggle detectors without touching anything else./plonk template apply self-promo|strict|chill|phishing-shieldApply a preset config bundle. See Templates below./plonk template listShow available templates and what each one changes./plonk helpQuick command reference, right in Discord.Templates
Templates are preset config bundles for common server shapes. Apply one with /plonk template apply <name>.
self-promoTighter promo-channel limits, generous everywhere else. Good for creator communities.strictLow flood thresholds, all detectors on. For high-traffic servers that attract a lot of spam.chillRelaxed limits across the board. For small communities where false positives would sting.phishing-shieldEverything else at defaults, phishing detection cranked up. For communities that get targeted by scam links.Permissions plonk needs
View Channels, Send Messages, Embed Links, Read Message History, Manage Messages (deleting spam), Moderate Members (timeouts), Kick Members, Ban Members, Manage Server. If a permission is missing, plonk logs what it couldn't do instead of failing silently.
Common questions
plonk saw spam but did nothing.
You're in monitor mode. That's the default, and it's deliberate. Check the log channel: it tells you exactly what it would have done. /plonk mode enforce arms it.
Someone got plonked unfairly.
Hit the Pardon button on the detection embed in your mod-log channel. That clears their heat, resets the repeat-offense multiplier, and marks their infractions pardoned in one click. Or run /plonk pardon @user for the same result without touching the log.
What are the buttons on the mod-log embeds?
Every detection embed (including monitor-mode would-haves) carries three one-click buttons: Pardon (clear heat + infractions), Timeout 24h (override heat and force an immediate timeout), and Ban. They're there so you don't have to leave the log channel to act.
Will it hit my regulars?
The default limits are tuned so that ordinary humans never meet them. Sharing a link twice in two channels half an hour apart is fine. Spraying it across the server in under a minute is not. Posting a YouTube video or a Tenor GIF doesn't count against anyone either: those domains are allowlisted by default.
Does it read DMs?
No. Bots can't see DMs, and plonk only processes messages in servers it's in.