Skip to content

Verification

Jerad Berhow edited this page Oct 15, 2026 · 5 revisions

Verification

New members prove they're a person before they get the member role. It's part of /security, alongside the Honeypot.


How it works

  1. The bot posts a Verify yourself message, with a Start verification button, in a screening channel.
  2. A member presses the button. Only they see the reply: "To verify, select 🚀 Rocket from the menu below", with a dropdown of 5 options.
  3. They pick the one they were asked for. If it's right, they're given the member role straight away.

Why it stops bots:

  • The correct option is random per attempt. Its position in the menu is too, so a bot can't pass by always clicking the same thing.
  • Every attempt is fresh. A wrong pick, or one made after 5 minutes, just asks them to press Start verification again, with a new target.
  • The options all look clearly different (🐬 Dolphin, 🌲 Tree, ⚓ Anchor…), so real people don't fail on look-alikes.

The verification button is open to everyone. Someone who already has the member role is told they're already verified.

Why a button? The captcha works from a button the member presses, rather than reacting to members joining. When it was built, the bot didn't use Discord's privileged Guild Members intent. The Server-Log now needs that intent, but the captcha still doesn't depend on it, so it keeps working whatever the bot's intent settings.


Set it up

1. Set the member role first. The captcha refuses to run without one:

/setup member-role role:@Members

Or create one on the spot: /setup member-role name:Members. See Server-Roles.

2. Put the bot's role above the member role in Server Settings → Roles. Discord won't let a bot grant a role above its own. Setup checks this and refuses with the fix.

3. Turn it on:

/security captcha setup
Option Default Effect
channel A new #verify channel An existing channel to use instead
name + category — Make the channel under a name and category you choose. Both together, or neither
adjust_visibility false Also make verification a real gate. See below

The screening channel is set so that everyone can see it, but only the bot can post in it. Running setup again refreshes the existing Verify message rather than posting a second one.


adjust_visibility: making it a gate

Without it, verification only hands out the member role. Unverified members still see the same channels as everyone else.

With adjust_visibility: true, the bot also changes two things:

Change Effect
View Channels removed from @everyone, and granted to the member role Unverified members see only the screening channel. It's one role-level change, so it also covers channels created later
The screening channel is hidden from the member role, but stays visible to your admin and mod roles Once someone verifies, the channel disappears for them. Mods keep it, even if they also hold the member role

With no admin or mod roles set, only Administrators can still see the screening channel.

This is a server-wide change. It's off by default, and the setup reply lists exactly what was changed. To undo it:

  1. Give @everyone View Channels back, in Server Settings → Roles.
  2. Clear the member role's View Channels deny on the screening channel.

Running setup again with adjust_visibility: false does step 2 for you.


Turning it off

/security captcha disable

The screening channel and its message are left in place. Delete them yourself if you don't want them. If you used adjust_visibility, undo it as above, or unverified members will still be locked out.

/security status

Shows whether the captcha is on, its channel, and the member role. It warns you if the member role is missing.


Troubleshooting

What happens Fix
/security captcha setup says no member role is set /setup member-role first
Setup says "My highest role isn't above…" Drag the PariahBot role above the member role in Server Settings → Roles
A member is told "Verification isn't fully set up yet" The member role was cleared or deleted. Set it again with /setup member-role
A member says the check expired Each check lasts 5 minutes, and is also lost if the bot restarts. Press Start verification again
New members can see everything adjust_visibility is off. Run setup again with adjust_visibility: true

Permissions needed: Manage Roles (granting the role, channel overwrites), Manage Channels (creating #verify) and Read Message History (finding its earlier message). See Permissions.

Clone this wiki locally