How to Stop Mass DM Spam in Your Discord Server
Mass-DM spam is uniquely frustrating because it happens where your moderation can’t reach. An account joins your server, harvests the member list, and DMs your members privately — advertising, scams, phishing. AutoMod, your logging bot, your mod team: none of them can see a direct message. By the time you hear about it, the spam has already landed in dozens of inboxes, and your members blame the server it came from. Yours.
The account doesn’t even have to say anything in your channels. Its whole purpose in your server is to be present long enough to scrape members and open DMs.
How the accounts behave
Because the payload is invisible to you, you have to catch the account, and mass-DM accounts have a recognizable shape:
- Joins, lurks, contributes nothing. Present in the server but with little or no channel activity — it’s not here to participate, it’s here for your member list.
- Identical or near-identical DMs to many members in a short window (reported by the members who receive them — your earliest signal is usually a member complaint).
- Inhuman send cadence. DMs fired faster than a person types, on a steady machine rhythm.
- The same account doing this across servers. Mass-DM operations point one account at many communities; the cross-server pattern is the strongest tell and the one no single server can see.
What to do right now
- Encourage members to report and screenshot the DMs — these are your only window into a channel you can’t see. Make it easy: a pinned “report DM spam here” note in a mod channel.
- Raise the bar to join. Verification level High + Discord’s Raid Protection slows down throwaway accounts seeding the operation.
- Restrict DMs from server members where appropriate — Discord lets users disable DMs from people they don’t share trust with; remind members they can turn this on. Some servers advise it at onboarding.
- Ban the reported accounts and check who else joined alongside them. Mass-DM accounts often arrive in small clusters.
- Don’t wait for proof in your channels — there won’t be any. The account being inactive in-server is part of the pattern, not a reason to leave it alone.
Where Gait fits
This is a case where behavioral scoring earns its keep precisely because the content is invisible to you. Gait never reads messages — DM or channel — and doesn’t need to (see our privacy approach). It scores the account’s behavioral shape: the join-then- lurk pattern, the inhuman activity rhythm, and — critically — whether the same account is running the same pattern across other servers that use Gait.
A mass-DM account that’s deliberately silent in your channels to avoid your filters still
produces a behavioral signature, and Gait grades it from confirmed_human to
confirmed_automated with the account’s Discord identity attached — so you can act on the
account before your members file the complaints, not after. The accounts behind mass-DM spam
are frequently the same selfbots and giveaway-seeders covered
in fake giveaway scams.