How to catch spam bots in Discord with a trap channel and join screening
Advertising accounts post the same message in every channel they can reach. Give them one channel nobody else writes in, and they identify themselves; new arrivals can be screened on the way in as well.
Takes about 5 minutesFree, Premium raises limits
What you will end up with
An account younger than 30 days that posts in the trap is banned and its last 24 hours of messages disappear from every channel. Your log channel shows who it was, how old the account was and what was done.
no-chat-here
ZombyIOAppToday at 14:32
Please do not write in this channel
This channel exists to catch spam accounts. Anything posted here is treated as spam automatically, so please write somewhere else. Nothing else in the server is affected.
C
cheap-boosts2291Today at 14:32
Cheap Nitro and server boosts, DM me!
bot-log
ZombyIOAppToday at 14:32
Caught in the trap
@cheap-boosts2291 · #no-chat-here
Account age
3 hours
Result
Ban them
Where to find it
Open the dashboard, pick your server and choose Anti-bot in the sidebar (on a phone: under Features in the bar at the bottom). That is two clicks from your server list. You can also press Ctrl K anywhere in the dashboard and type the name.
Create a text channel near the top of your channel list, for example #no-chat-here. Everyone must be able to see it and write in it: a channel that new accounts cannot post in catches nobody. Do not use a channel where members talk, such as your welcome channel or the channel where Discord posts join notices.
Open Anti-bot in the sidebar and choose the channel under Pick the trap channel. Picking the first channel switches the trap on. The free plan watches one trap channel, Premium up to 25.
Tip
The page checks each trap for you and warns when accounts without roles cannot write there, when ZombyIO may not delete messages there, or when another feature already uses the channel.
zomby.io/dashboard/…/antibotSet it upChannels that are traps#no-chat-hereA channel nobody has a reason to write in. Everyone must be able to post there.1 of 1 used Premium raises this to 25 channels.
2
Step 2: Pick where you get told and protect your team
Under Pick where you get told, choose a staff channel. Every catch and every flagged arrival is reported there. Without it, catches and flagged arrivals are not reported, but every timeout, kick and ban anti-bot carries out still becomes a case in your moderation log.
Further down, under Safety, add your staff roles to Roles nothing here acts on. Members with those roles can write in a trap without anything happening. Bots are never caught, and the server owner is never acted on.
zomby.io/dashboard/…/antibotPick where you get told#bot-logWithout this you only notice a catch when somebody is missing.SafetyWho is never touched, and where you watch this work.Roles nothing here acts onModeratorsYour moderators belong in this list.
3
Step 3: Start with Watch only and switch anti-bot on
Under Pick a starting point, choose Watch only, then switch the feature on in the banner and press Save. Watch only switches the trap and the join screening on with Watch mode: everything is scored and written to the log as "Watch mode, nothing done", nobody is removed and posts in the trap stay up.
Normal protection: bans whoever posts in the trap and deletes their last 24 hours of messages, and only reports suspicious arrivals.
Hard protection: the same ban, and kicks arrivals that score 3 points or more.
Important
This is the one feature that removes members without a moderator. Leave watch mode on for a day and read the log before you arm it.
zomby.io/dashboard/…/antibotAnti-botEnabledPick a starting pointOne click fills in everything below. You can still change any of it afterwards.Watch onlyScores everything, removes nobody. Start here for a day and read the log.Normal protectionBans whoever posts in the trap and deletes their last 24 hours. Reports suspicious arrivals to you.Hard protectionBans and deletes their last 24 hours. Kicks arrivals that score 3 points or more.Watch modeEverything is scored and written to the log, but nobody is removed. Leave this on for a day before arming it.
4
Step 4: Post the warning in the trap
Under The warning in the channel, leave Message text empty to use the bot’s own wording in your server language, or write your own (up to 2,000 characters). Press Save first: the bot posts the saved text.
Then press Post it in the trap now next to each trap. The bot posts the warning under the title "Please do not write in this channel" and pins it. Pressing the button again, now called Update the warning, edits the same message instead of pinning a second one.
Tip
ZombyIO needs to be allowed to write and pin messages in the trap. The warning is only posted when you press the button.
zomby.io/dashboard/…/antibotThe warning in the channelFor the people who read it. The accounts this catches do not.Message textThis channel exists to catch spam accounts. Anything posted here is treated as spam automatically, so please write somewhere else. Nothing else in the server is affected.Left empty, the bot posts its own wording in your server language.Post it in the trap now #no-chat-hereSends the message and pins it. Posting again updates the same message. Pick a trap channel and save first.
no-chat-here
ZombyIOAppToday at 14:32
Please do not write in this channel
This channel exists to catch spam accounts. Anything posted here is treated as spam automatically, so please write somewhere else. Nothing else in the server is affected.
5
Step 5: Decide what happens to whoever posts there
Under The trap, choose one of five actions. Ban them is the default and the one that clears up: with Also delete their messages from the last set to 24 hours, Discord removes everything the account posted in the last day, in every channel.
Only report it: one line in the log, the post stays.
Time them out: 1 hour by default.
Kick them: out, but a new invite lets them back in.
Kick them and delete their posts: a ban that is lifted straight away, so their posts go and they can come back.
For two minutes after the trap acts on an account, anything else it posts in your server is removed as it arrives.
Important
Accounts older than 30 days are only reported and lose their message, because an old account in the trap is usually somebody who clicked the wrong channel. Change that under More settings, Only report accounts older than. Zero switches it off.
zomby.io/dashboard/…/antibotThe trapOne channel nobody has a reason to write in, watched for the accounts that write everywhere.Watch trap channelsEveryone must be able to post here. A channel members cannot write in catches nobody.Someone writes in the trap. What now?Only report itOne line in your log. The account notices nothing.Time them outThey cannot write or talk for a while.Kick themOut, but a new invite lets them back in.Kick them and delete their postsOut, with their recent posts deleted. A new invite lets them back in.Ban themOut for good, and their spam goes with them.Also delete their messages from the lastOff1 h24 h7 daysHours. This is what removes the advertising they already posted elsewhere. Discord allows up to 7 days, and kicking and deleting always takes at least the last hour.
6
Step 6: Screen new arrivals
Under Screening new arrivals, Score every account that joins gives points for signs of a bulk-made account:
Created in the last 24 hours: 2 points.
No profile picture: 1 point.
Username ending in five or more digits: 1 point.
Lookalike letters from another alphabet inside a word, or invisible characters, in the name: 2 points.
Joined while raid defence had its alarm up: 2 points.
With these default points, one sign alone never reaches Recommended (3). Choose what happens when an account does: Only report it, Time them out (1 day by default, it ends by itself), Give them the quarantine role, Kick them or Ban them. Try an account beside the settings runs the real scoring on an account you describe.
Important
A quarantine role only holds somebody back if it is denied View Channel everywhere, and the page warns when it is not. A role with Administrator cannot be saved as the quarantine role, and a role with moderation rights only by the server owner or an administrator.
zomby.io/dashboard/…/antibotScreening new arrivalsPoints for each thing that looks off. With the default points and Recommended, one sign alone is never enough, and the page warns you when a setting changes that.Score every account that joinsThe join rate itself is watched by raid defence, on the auto moderation page.How suspicious is suspicious enough?Strict (2)Recommended (3)Relaxed (5)Points. Lower catches more and is wrong more often.A suspicious account joins. What now?Only report itOne line in your log. The account notices nothing.Time them outThey stay, but cannot write or talk until the timeout ends by itself, after 1 day unless you pick another length. Needs no role.Give them the quarantine roleParked in a role that sees nothing until you look at them.Kick themOut, but a new invite lets them back in.Ban themOut for good, and their spam goes with them.
bot-log
ZombyIOAppToday at 14:32
Suspicious account joined
@grinder123456
Account age
2 hours
Result
Only report it
Score
4
Counted
Created very recently, No profile picture, Name ends in a long number
7
Step 7: Read the log, then leave watch mode
Each report shows the account, the channel, how old the account is, the result and, for arrivals, the score and the signs that counted. When the catches look right, switch off Watch mode, or pick Normal protection, and save.
Every timeout, kick and ban anti-bot carries out also becomes a case in your moderation log, with ZombyIO as the moderator and the reason "Anti-bot: posted in a trap channel" or "Anti-bot: suspicious on joining".
zomby.io/dashboard/…/antibotSafetyWho is never touched, and where you watch this work.Watch modeEverything is scored and written to the log, but nobody is removed. Leave this on for a day before arming it.Accounts older than 30 days only lose their message.
bot-log
ZombyIOAppToday at 14:32
Caught in the trap
@cheap-boosts2291 · #no-chat-here
Account age
3 hours
Result
Watch mode, nothing done
ZombyIOAppToday at 14:32
Caught in the trap
@cheap-boosts2291 · #no-chat-here
Account age
3 hours
Result
Ban them
Every setting explained
In the order the page shows them. Names in bold are exactly what the dashboard calls each control.
Set it up
Channels that are trapsFree: 1 · Premium: 25
Only the channel itself counts: threads inside a trap channel are not traps. Messages Discord writes itself, such as join notices, never count. If Premium ended and you have more traps than the free plan allows, only the first one stays armed and you cannot add another.
Pick where you get told
Where catches and flagged arrivals are reported. Empty by default; then they are not reported, but timeouts, kicks and bans still become cases in your moderation log.
Switch anti-bot on
The same switch as in the banner. Off by default. Off, nothing is caught or screened. A warning already pinned in a trap stays until you remove it.
Pick a starting point
Watch only, Normal protection, Hard protection
Each one switches the trap and the join screening on and sets watch mode, the trap action, the message deletion and the screening action, with the threshold at 3 points. They do not switch the feature itself on.
The trap
Watch trap channels
Off by default, and switched on when you pick the first trap channel.
Someone writes in the trap. What now?
Only report it, Time them out, Kick them, Kick them and delete their posts or Ban them (default). Every action except Only report it removes the post in the trap.
Timeout length
Only for Time them out: 10 minutes, 1 hour (default), 1 day, 7 days or an exact value up to 28 days.
Also delete their messages from the last
Only for a ban or Kick them and delete their posts: off (ban only), 1 hour, 24 hours (default) or 7 days, or an exact number of hours up to 168. Kicking and deleting always takes at least the last hour.
Screening new arrivals
Score every account that joins
Off by default. Bots added to the server are never scored.
How suspicious is suspicious enough?
Strict (2), Recommended (3), Relaxed (5) or an exact number from 1 to 100. Default 3. The page warns when one sign alone would be enough, or when no account can reach the number.
A suspicious account joins. What now?
Only report it (default), Time them out, Give them the quarantine role, Kick them or Ban them. A quarantined account gets none of your auto roles, and while it holds the quarantine role, or is about to, it gets no role from a reaction-role panel, a blueprint or a level reward, no Stream Drops reward of any kind (no XP, gift code, message or role; the drop waits until it is out of quarantine), and cannot give the quarantine role back through a panel. Use a role for quarantine that nothing else hands out. A ban here deletes no messages; a new arrival has none.
Timeout length
Only for Time them out: 1 hour, 1 day (default), 7 days, 28 days or an exact value. The timeout ends by itself.
Quarantine role
Only for the quarantine action, and required for it. Deny this role View Channel in every channel. The page marks roles with Administrator, which are refused, and roles above ZombyIO’s, which it cannot give.
Safety
Watch mode
Off by default. On, everything is scored and logged as "Watch mode, nothing done", but nobody is removed, timed out or quarantined and trap posts stay up.
Roles nothing here acts on
Up to 50 roles. Members with one of them are ignored by the trap completely, and their message stays. New arrivals have no roles yet, so this does not affect the screening.
The warning in the channel
Message text
Up to 2,000 characters, no placeholders. Empty uses the bot’s own wording in your server language. The title above it is always "Please do not write in this channel".
Post it in the trap now
One button per saved trap. Posts and pins the saved text, or edits the warning it pinned before. Disabled while the text box holds unsaved changes. After a few posts in a row, wait half a minute.
More settings
Only report accounts older than
Default 30 days, range 0 to 3,650. Older accounts that post in a trap lose their message and are reported, but nothing else happens. 0 switches this off.
Count an account as new for
Default 24 hours, range 1 to 8,760. Accounts younger than this get the points for a new account.
What each signal is worth
The points for each sign, from 0 to 10. 0 switches a sign off. Defaults: Created very recently 2, No profile picture 1, Name ends in a long number 1, Name mixes two alphabets 2, Joined during a raid 2.
Free and Premium
Premium costs €6 a month per server and is shared by every admin of that server. It raises limits, it does not unlock the feature.
Free and Premium
What
Free
Premium
Trap channels
1
25
Something not working?
The problems people run into most often, and how to fix each one.
The trap never catches anything
Accounts without roles cannot write in the channel. The page warns about this under Pick the trap channel.
The post was in a thread inside the trap. Only the channel itself counts.
The poster has one of the Roles nothing here acts on, or is a bot.
Premium ended and this trap is beyond the first one.
Anti-bot or Watch trap channels is switched off.
The trap caught one of our regulars
Their account was younger than Only report accounts older than (30 days by default), or that setting is 0. Older accounts only lose their message. Add your staff roles to Roles nothing here acts on, and make the warning in the trap clear with Post it in the trap now. A ban can be lifted with /unban.
I posted in the trap to test it and nothing happened
The server owner is never acted on. Your message is removed, unless Watch mode is on or the trap is set to Only report it. If your account is younger than Only report accounts older than, the log says "Nothing done, this account owns the server. Anyone else would have been caught"; an older account gets "Message removed. Only reported, the account is older than your limit" instead. Test with a second account without roles instead.
The spam they posted in other channels is still there
Only Ban them and Kick them and delete their posts delete earlier messages, and only as far back as Also delete their messages from the last says. Only report it, Time them out and Kick them leave them up. If the trap post itself stays, ZombyIO lacks Manage Messages in that channel; the log then says "Could not be removed. I need Manage Messages in that channel".
The log says "Could not act"
ZombyIO lacks Ban Members, Kick Members or Timeout Members, or the account has a role above ZombyIO’s. The anti-bot page lists missing permissions at the top. After three refusals in a row, the bot stops asking Discord for that action in your server for 5 minutes; changing roles or saving the page ends that early. See roles and permissions.
Quarantined accounts can still chat
The quarantine role does not deny View Channel in every channel, so it holds nobody back. The page says how many channels are still open to it. Deny the role View Channel there, or choose Time them out, which needs no setup.
The screening flags normal new members, or never flags anyone
Flags normal members: one sign alone reaches the threshold, and the page warns about it. Keep Recommended (3) with the default points, or lower the points for Created very recently.
Never flags anyone: the threshold is higher than all points together, or you rely on Joined during a raid while raid defence is off on the auto moderation page.
Try both with Try an account.
The button to post the warning does nothing or is greyed out
Save first: the button is disabled while the text box holds unsaved changes, and it only appears for trap channels that are saved. If posting fails, ZombyIO cannot write or pin in that channel. After a few posts in a row, wait half a minute.
Ask in the ZombyIO support server. Bring your support ID, your server’s support ID and a sentence about what you expected to happen, and someone will look at it with you.