Contents
Sooner or later every public Discord server gets spam bots, ad accounts and second accounts of banned members. Discord verification makes new members complete one short step before they get access to the rest of the server. For real people it's a single click, for automated accounts a real hurdle.
In this guide you learn which tools Discord itself provides, how to prepare roles and channel permissions correctly, and how to set up verification with Lizbot using a button, a captcha or an email code. On top of that come a rules button and protection against alt accounts.
What Discord provides on its own
In your server settings you find the verification level. It defines what an account must meet before it can write on your server:
- None: no requirement
- Low: verified email on the Discord account
- Medium: also registered on Discord for longer than 5 minutes
- High: also a member of your server for longer than 10 minutes
- Highest: also a verified phone number
For most servers, Medium is a good default. The level only prevents writing, though. New accounts can still read everything that is visible to the @everyone role.
If your server is set up as a Community server, you can also use Discord's Onboarding and enable rules screening. New members then see the server rules and have to agree before they can write. That is a good start, but it neither checks whether a human is behind the account nor how old the account is.
The principle: roles unlock channels
Bot verification works through roles. New members only have the @everyone role and see almost nothing. After verifying, they get a role like "Verified" or "Member", and this role unlocks the other channels.
The bot only hands out the role. Which channels are visible is something you control yourself through channel permissions in Discord. Without this preparation, even the nicest verification does nothing.
1. Prepare roles and channels
Create a role in your server settings under Roles, for example "Verified". Optionally add a second role "Unverified" that new members carry until they verify. How role hierarchy and permissions work together in general is explained in the guide Set up Discord roles.
Then adjust the permissions:
- For every category except the starting area, remove View Channel from @everyone and grant it to "Verified".
- In
#verify, @everyone may read but not write. Later, only the message with the button will be there. - A
#ruleschannel stays visible to everyone, so new members know what they are signing up for.
Important: Lizbot's role must be above the "Verified" role in the role list. Otherwise the bot is not allowed to hand it out. Lizbot then reports this in the mod log channel.
2. Turn on verification in the dashboard
Open Verification in the dashboard. The settings live on the Welcome page in the Verification tab. Switch on Enabled and fill in the fields:
- Role after verification: the role that unlocks the channels
- Role until verification: optional, e.g. "Unverified"; Lizbot assigns it on join and removes it after verification
- Minimum account age: younger accounts are rejected, 0 means off
- Button label and Message above the button, with the placeholder
{guild.name}for the server name
The two roles must not be the same. Save afterwards.
3. Pick the right method
Under Method you choose between three options:
| Method | Flow | Good for |
|---|---|---|
| Button in Discord (one click) | click the button, role right away | most communities |
| Web page with captcha | the click leads to a Lizbot page with a captcha | public servers with bot problems |
| Code by email | code by email, entered on the web page | schools, clubs, companies |
With the button, one click is enough. That keeps simple bots out and barely bothers real members.
With the web page with captcha, the button leads to a Lizbot verification page. The member logs in with their Discord account and solves a Captcha (Cloudflare Turnstile). That is the stronger choice if automated accounts keep showing up on your server.
With code by email, the member enters their address on the web page and gets a six-digit code that is valid for 15 minutes. Under Allowed email domains you can restrict this to certain addresses, for example school.edu for a class server. With One email for one account only you prevent someone from verifying several accounts with the same address.
4. Post the message with the button
At the bottom of the tab, pick #verify under Post message with button in and click Post. This only works once verification is enabled, a role is selected and you have saved.
Then test the flow with a second account or a friend: Does a new member only see the starting channels? Do they get the role after clicking and see the rest afterwards?
5. Have members accept the rules
Lizbot has its own Rules acceptance module. Members confirm the rules with a button and get a role for it. You find it in the dashboard under Rules acceptance:
- Rules channel: ideally a channel everyone can see but only the bot writes in
- Role after accepting: usually the member role; without a role it is only counted
- Title and Rules: the text, formatted like in Discord; use Template to fill in a ready-made rule set, and you find tips for your own rules in Writing Discord server rules
- Ask to confirm again after changes: if the text changes, Lizbot removes the role from everyone when publishing, and whoever wants to keep access confirms the new version
With Publish, Lizbot posts the rules with the Accept rules button. Every text change increases the version, and the dashboard shows how many members have accepted the current version.
You can chain verification and rules: verification grants "Verified", that role can see #rules, and only accepting the rules grants "Member" for the rest of the server. For smaller servers, one of the two is often enough.
6. Keep alt accounts out
Banned troublemakers like to come back with a fresh account, more on that in the guide Detect alt accounts and stop ban evasion. The first defense is the Minimum account age in verification. A value of 3 to 7 days keeps most throwaway accounts out without slowing down real newcomers too much.
In addition, the dashboard has an Alt accounts tab under AutoMod. There, Lizbot rates every join with a risk score. It takes into account the account age, a missing avatar, a typical default name and several new accounts joining through the same invite. From a score of 60, an account counts as suspicious.
As the Action you choose Alert only, Quarantine, Kick or Do nothing (log only). With "Alert only", your team gets an alert with buttons to kick, quarantine or ignore. Under Recent joins you see every join with its score, invite and inviting member.
You can read more about protection against whole join waves in the guide Set up raid protection.
Checklist
- a "Verified" role exists and sits below Lizbot's role
- @everyone only sees starting channels like
#rulesand#verify - verification is enabled, method and role are selected
- the message with the button is posted
- a minimum account age is set
- the rules are published if you use the module
- the flow has been tested with a test account
Common mistakes
- Autoroles already grant access: If the member role is listed under Welcome in the Autoroles tab, everyone gets access right away and skips verification. Lizbot shows a warning for this. How to assign roles automatically on join without undermining verification is covered in its own guide.
- The bot's role is too low: If the "Verified" role is above Lizbot's role, nothing happens on click.
- Channels not locked: If @everyone still sees every channel, verification is just decoration.
- Verification channel open for writing: Then it fills with questions and spam instead of clicks.
- Minimum age too high: A minimum age of several months also locks out real newcomers who just signed up because of your server.
FAQ
Which verification method is best?
For most servers, the button in Discord combined with a minimum account age is enough. If you get regular bot waves, switch to the web page with captcha. Email verification is mainly worth it if only people with a certain address should get access.
Isn't Discord's own verification level enough?
The verification level only prevents writing, not reading. It is still useful and combines well with bot verification. Only the role after verification reveals the other channels.
What happens to members who were already there before the setup?
Existing members don't have the new role yet. Give it to them once before you take the channels away from @everyone, or ask them to verify quickly as well.
Does verification cost anything?
Verification by button, captcha and email code, the rules acceptance module and automatic raid protection with lockdown are included in the Free plan.
Can members get around verification?
Only if they get the unlocking role some other way, for example through autoroles or a role menu. So make sure only verification or accepting the rules hands out that role.
Matching Lizbot features
- Verification bot for Discord with captchaNew members first only see the verification channel. They get access with a button, on a web page with a captcha or with a code by email.
- Moderation and AutoMod for DiscordEvery warning, timeout and ban gets a case number and a reason. Your team sees at a glance what has already happened with a member.
Let Liz handle it for you
Invite Lizbot, set it up in the dashboard, done. The Free plan stays free.

