Moderation & safety

Set up Discord verification: button, captcha and rules acceptance

Set up Discord verification with a button, captcha or email code, have members accept your rules and keep alt accounts out. Step by step with Lizbot.

  • 8 min read
  • 6 steps
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 #rules channel 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:

MethodFlowGood for
Button in Discord (one click)click the button, role right awaymost communities
Web page with captchathe click leads to a Lizbot page with a captchapublic servers with bot problems
Code by emailcode by email, entered on the web pageschools, 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 #rules and #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

Let Liz handle it for you

Invite Lizbot, set it up in the dashboard, done. The Free plan stays free.