Verification
Make new members pass a button, image captcha or website check before they see the server.
Verification keeps new accounts in one channel until they prove they are human. New members get an Unverified role that can only see the verification channel. When they pass, the bot removes Unverified and gives your verified roles. Members who were already in the server are not affected.
Use /verification in Discord (it needs Manage Server and Manage Roles) or the dashboard page Moderation → Verification.
Set it up in one step
- Run
/verification setup. Optional:method,verified-role(given after verifying),timeout,unverified-roleandchannelto use ones you already have, andhide-channels:falseto leave channel permissions alone. - The bot creates the Unverified role and a #verification channel that only unverified members (and staff) can see, hides every other channel and category from Unverified, and posts the Verify panel.
- Check it with
/verification status. On the dashboard, choose your settings, save, then press Run automatic setup.
The bot can only give and remove roles below its own highest role. If a verified role is above it, setup says so and stops. Managed roles and @everyone cannot be used.
Methods
| Method | What the member does |
|---|---|
| Button | Presses Verify once. Stops simple join bots. |
| Image captcha | Presses Verify, sees a distorted code only they can see, presses Enter code and types it. New image draws a different code (up to 5 times). |
| Website captcha | Presses Verify and gets a private link to a page on this website (no sign-in needed). They type the code there. |
Captcha codes expire after the timeout (30–3600 seconds, 300 by default). After the allowed number of wrong codes (1–10, 3 by default) the member waits 5 minutes before trying again. Wrong codes count across new captchas for 5 minutes, so pressing Verify again for a fresh code doesn’t reset the limit (New image doesn’t either). Capital letters or not, both work, and letters that look alike (0 and O, 1, I and L) are never used.
Roles
Add up to 5 verified roles with /verification config add-role and remove one with remove-role. With no verified roles, verifying just removes Unverified. If the bot can’t give a role, the member is told to ask staff and the problem is logged.
Staff can verify or unverify someone by hand with /verification member. Removing Unverified from someone yourself in Discord works too: the bot never puts it back. Members who joined on Discord’s membership-rules screen get Unverified when they pass it, even if the bot restarted in between.
Hiding channels
Discord doesn’t copy a category’s permissions to its channels on its own, so setup adds a “View Channel: off” permission for the Unverified role to every category and every channel. It never changes @everyone or any other role. New channels get the same permission automatically, unless you already set the Unverified role’s View Channel permission there yourself. A channel created inside a hidden category already has the category’s permission (Discord copies it); the bot remembers it too, so turning hiding off or disabling shows it again. A channel where you explicitly allowed the Unverified role to view is left visible (setup tells you which ones), and disable never touches it. Deleted channels are forgotten, so busy servers with ticket channels that come and go don’t pile up a list; /verification status counts only channels that still exist. The bot keeps track of up to 500 hidden channels; past that, new channels are still hidden but turning hiding off won’t show them again.
In Discord, a role that allows View Channel beats a role that denies it. If Auto roles gives a join role that unlocks channels, unverified members can still see them. Use those roles as verified roles instead; /verification status warns you about this.
Moving the verification channel
Change it with /verification config channel or on the dashboard. The bot first checks it can post in the new channel (View Channel, Send Messages and Embed Links), then moves the Verify panel there and only then closes the old channel to unverified members. If the panel can’t be posted in the new channel, the old channel stays open and you are told to run /verification panel.
Messages
/verification messages opens an editor for the panel title, panel text, button label, success message and captcha instructions. Empty means the default. {server} works everywhere; the success message also understands {user} and {username}. The panel is updated when you save.
The website link
With the website captcha, each member gets their own link that only works for them and expires with the code. The page shows the server, your captcha instructions, the image, attempts left and a countdown. When they pass, they can go back to Discord. If Discord can’t be reached for a moment, the page says so without using an attempt, and the same link works when they try again.
Pausing and turning it off
/verification config enabled:false (or the switch on the dashboard) pauses verification: new members no longer get Unverified, but anyone who already has it can still verify, so nobody gets stuck. Pausing keeps everything: the role, the channel and the hidden channels stay as they are. To resume, use /verification config enabled:true or turn the switch back on and save; the bot checks the Unverified role and verification channel first, lets Unverified read the verification channel again and hides any channel that was added while it was paused. Setup refuses to run while verification is paused, so a second role and channel are never created next to the first ones; run /verification disable first if you want to start over. /verification disable asks you to confirm, then deletes the role and channel setup created (or removes only the permissions it added to your own role and channel), deletes the panel, ends any captcha still open and turns verification off. Your settings, messages and history are kept. If Discord refuses part of it (for example the role is above the bot), the bot remembers what is left, so running disable again finishes the job.
History and logs
Set a log channel with /verification config log-channel to see each verification, failure and manual change. The dashboard shows stats and a searchable history.
Panels posted with the old /verification setup role: command (now /verification panel role:) keep working and keep giving their role.