Captcha Verification is a premium feature and requires the bot to be connected to your server.
How it works
- A new member joins and can only see the verification channel
- They click Start Verification on the embed
- The bot replies with a private message showing 10 random emoji buttons and tells them which one to pick
- Correct pick — the verified role is granted and the rest of the server is unlocked
- 2 wrong picks — the member is temporarily banned (configurable duration)
- No response within the timeout — the member is kicked (they can rejoin and try again)
Setup
Create a verification channel
Create a channel in Discord (e.g.
#verify) where new members will see the verification button.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.
Set Discord permissions
Configure your Discord channel permissions so that:
- @everyone can only see the
#verifychannel - The Verified role can see all other channels
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)
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.
Using with Reaction Roles
Captcha Verification and Reaction Roles work together as a two-step onboarding flow:- Captcha gates access — ensures the member is human
- Reaction Roles handle onboarding — let verified members pick their roles (interests, pronouns, notifications, etc.)
- Create your reaction role messages in a rules channel (e.g.
#rules) using the Reaction Roles feature - In Captcha Verification settings, set the Rules Channel to that same channel
- After verifying, the bot tells the member: “Head to #rules to read the rules and pick your roles!”
Settings reference
| Setting | Default | Description |
|---|---|---|
| Verification Channel | — | Channel where the persistent verify button is posted |
| Verified Role | — | Role granted on successful verification |
| Rules Channel | None | Channel the bot directs members to after verification |
| Log Channel | None | Channel where verification events (verified, kicked, banned) are logged |
| Timeout | 10 minutes | How long before an unverified member is auto-kicked (1–60 min) |
| Temp Ban Duration | 24 hours | How 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:| Event | Color | When |
|---|---|---|
| Captcha Verified | Green | Member picked the correct emoji |
| Captcha Timeout — Kicked | Yellow | Member didn’t verify within the timeout |
| Captcha Failed — Temp Banned | Red | Member picked the wrong emoji twice |
Permissions required
| Permission | Used for |
|---|---|
| Kick Members | Kicking members who time out |
| Ban Members | Temp-banning members who fail verification |
| Manage Roles | Granting the verified role |
FAQ
Does the bot post a new message for each member?
Does the bot post a new message for each member?
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.
What happens if the bot restarts?
What happens if the bot restarts?
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.
Can bots solve the emoji challenge?
Can bots solve the emoji challenge?
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.
What if a member is kicked for timeout — can they rejoin?
What if a member is kicked for timeout — can they rejoin?
Yes. A timeout kick is not a ban. The member can rejoin immediately and try again with a fresh challenge.
What if a member is temp-banned for failing?
What if a member is temp-banned for failing?
They are automatically unbanned after the configured duration (default 24 hours). After the ban lifts, they can rejoin and get a fresh challenge.
Do I need both Captcha Verification and the Reaction Roles Verify template?
Do I need both Captcha Verification and the Reaction Roles Verify template?
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.
