Skip to main content
Captcha Verification adds a human-verification step for new members. A persistent “Start Verification” button lives in a channel you choose. When a member clicks it, the bot sends them a private emoji challenge — pick the correct emoji from 10 random options to unlock the server. Fail twice and you’re temporarily banned.
Captcha Verification is a premium feature and requires the bot to be connected to your server.

How it works

  1. A new member joins and can only see the verification channel
  2. They click Start Verification on the embed
  3. The bot replies with a private message showing 10 random emoji buttons and tells them which one to pick
  4. Correct pick — the verified role is granted and the rest of the server is unlocked
  5. 2 wrong picks — the member is temporarily banned (configurable duration)
  6. No response within the timeout — the member is kicked (they can rejoin and try again)
The emoji challenge is randomized per user — each person sees a different set of emojis and a different target. This makes it effective against automated bots.

Setup

1

Create a verification channel

Create a channel in Discord (e.g. #verify) where new members will see the verification button.
2

Create or select a verified role

You need a role that gets granted on successful verification. You can create a Verified role directly from the dashboard, or select an existing one.
3

Set Discord permissions

Configure your Discord channel permissions so that:
  • @everyone can only see the #verify channel
  • The Verified role can see all other channels
This ensures unverified members are locked to the verification channel.
4

Configure on the dashboard

Go to the BrewBot Dashboard, select your server, and navigate to Moderation → Captcha Verification.Set the following:
  • Verification Channel — where the button embed will be posted
  • Verified Role — the role to grant on success (or click “Create Verified role” to make one)
  • Rules Channel (optional) — where to direct members after they verify
  • Log Channel (optional) — where verification events are logged
  • Timeout — how long members have to verify before being kicked (default 10 minutes)
  • Temp Ban Duration — how long a failed member is banned (default 24 hours)
5

Post the verification message

Click Post Message to send the persistent verification embed to your channel. This is the button all new members will use.
6

Enable the feature

Toggle the feature on. The bot will now enqueue a kick timer for every new member that joins.

Using with Reaction Roles

Captcha Verification and Reaction Roles work together as a two-step onboarding flow:
  1. Captcha gates access — ensures the member is human
  2. Reaction Roles handle onboarding — let verified members pick their roles (interests, pronouns, notifications, etc.)
To set this up:
  1. Create your reaction role messages in a rules channel (e.g. #rules) using the Reaction Roles feature
  2. In Captcha Verification settings, set the Rules Channel to that same channel
  3. After verifying, the bot tells the member: “Head to #rules to read the rules and pick your roles!”
The Reaction Roles Verify template creates a “Member” role for rule acceptance. The Captcha Verification feature creates a separate “Verified” role for human verification. These are different roles with different purposes — captcha proves you’re human, reaction roles let you accept rules and pick interests.

Settings reference

SettingDefaultDescription
Verification ChannelChannel where the persistent verify button is posted
Verified RoleRole granted on successful verification
Rules ChannelNoneChannel the bot directs members to after verification
Log ChannelNoneChannel where verification events (verified, kicked, banned) are logged
Timeout10 minutesHow long before an unverified member is auto-kicked (1–60 min)
Temp Ban Duration24 hoursHow long a failed member is banned before auto-unban (1–168 hours)
Embed Title”Verification Required”Title of the persistent verification embed
Embed Description”Click the button below to verify you are human.”Description text of the embed

Log events

When a log channel is configured, the bot sends an embed for each verification event:
EventColorWhen
Captcha VerifiedGreenMember picked the correct emoji
Captcha Timeout — KickedYellowMember didn’t verify within the timeout
Captcha Failed — Temp BannedRedMember picked the wrong emoji twice
Each log embed includes the member’s username, avatar, and user ID.

Permissions required

PermissionUsed for
Kick MembersKicking members who time out
Ban MembersTemp-banning members who fail verification
Manage RolesGranting the verified role
Make sure the bot’s role is higher than the verified role in your Discord role hierarchy, otherwise it won’t be able to assign it.

FAQ

No. There is one persistent embed with a “Start Verification” button. All members use the same button. The emoji challenge is sent as a private (ephemeral) reply that only that member can see.
The persistent button in the channel still works — it’s a regular Discord message. Any in-progress emoji challenges will expire and members can just click “Start Verification” again. Kick and unban timers are stored in the database and survive restarts.
The challenge uses cryptographically random emoji selection, so the target emoji and button layout are unpredictable. Combined with the 2-strike temp ban and timeout kick, automated bots have a very low success rate.
Yes. A timeout kick is not a ban. The member can rejoin immediately and try again with a fresh challenge.
They are automatically unbanned after the configured duration (default 24 hours). After the ban lifts, they can rejoin and get a fresh challenge.
They serve different purposes. Captcha proves a member is human (anti-bot). The Reaction Roles Verify template lets members accept rules and get a “Member” role. You can use both together for a two-step onboarding, or just one depending on your needs.