Set up a verification gate
Hide your server until new members read the rules and click a Verify button. Combines Discord channel permissions, button roles and a welcome message.
On this page
- What you'll build
- 1. Create the Member role
- 2. Lock the server for new members
- 3. Post the Verify button
- 4. Welcome people into the lobby
- Test it
- Troubleshooting
- "I cannot assign that role because it is higher than my highest role."
- "I do not have permission to manage roles."
- Members can still see everything before verifying
- Verified members still can't see a channel
- The role I want isn't in the list
- Related
A verification gate keeps new members in a small "lobby" until they've read your rules. Everything
else stays hidden until they click a Verify button, which gives them your Member role. It slows
down raiders and drive-by spammers, and makes sure everyone has at least seen the rules.
This recipe uses Discord's channel permissions, button roles and a welcome message. It takes about 15 minutes.
What you'll build#
- New members can only see
#welcomeand#rules. #ruleshas a Verify button under your rules.- Clicking it gives the
Memberrole, which unlocks the rest of the server. - A welcome message greets each new member and points them to
#rules.
1. Create the Member role#
In Discord, go to Server Settings → Roles and click Create Role.
Call it Member (or whatever you like). Leave its permissions as they are. It only needs to unlock
channels.
Drag Buddy's role above Member. Buddy can only give roles that sit below its own.
Don't give Member Administrator, Manage Server or Manage Roles. Buddy won't let a button
hand out roles with those permissions, and you wouldn't want it to.
2. Lock the server for new members#
The trick is that new members have no roles at all, so they only get what @everyone can see. Hide
everything from @everyone except the lobby, and open it back up for Member.
For every category except your lobby, open Edit Category → Permissions. Set @everyone to deny
View Channel, then add Member and allow View Channel. Click Sync Now if Discord asks,
so the channels inside follow the category.
Make a category (e.g. START HERE) with #welcome and #rules. Let @everyone View Channel
and Read Message History there, but deny Send Messages so the lobby stays tidy.
Make sure Buddy's role can View Channel and Send Messages in #welcome and #rules.
Use Server Settings → Roles → @everyone → View Server As Role to see exactly what a brand new member sees.
You might be tempted to give everyone an Unverified role when they join. You don't need one: having
no role already means "unverified". Button roles add or remove a single role, so Buddy can't swap
Unverified for Member in one click. An Unverified role would just stay on everyone.
3. Post the Verify button#
It's under Roles in the sidebar.
In Create button roles, under 1. Message, pick
Create a new message (Discord Buddy will post it) and choose #rules as the Channel.
Under 2. Buttons, set Label to ✅ Verify, Style to Success (green) and Role to
Member.
Under 3. Message text (optional), switch on Add a custom message with the buttons and write a short line like "Read the rules above, then click Verify to unlock the server." Pick Embed or Regular message.
Click Add button roles. Within a few seconds Buddy posts the message with the button in #rules.
What members see in #rules:
✅ Verify
When a member clicks ✅ Verify, Buddy replies privately "You have been given the Member role!" and the hidden channels appear.
Button roles toggle. Clicking Verify again removes Member, and the server disappears again.
That's usually fine, and it's easy to undo by clicking again. Mention it in your message so nobody
panics.
4. Welcome people into the lobby#
It's under Welcome & onboarding.
In Where to welcome members, set Welcome channel to #welcome and Rules channel to
#rules. Click Save welcome settings.
In Welcome message, choose a style and write something that sends people to the rules. The
{rules} placeholder links your rules channel.
Click Save message template.
A simple Regular message:
Hey {user}, welcome to {server}! 👋
Head over to {rules}, read the rules and click ✅ Verify to unlock the rest of the server.What a new member sees:
Hey @Sam, welcome to Pinecrest! 👋
Head over to #rules, read the rules and click ✅ Verify to unlock the rest of the server.
With the Components style you can add a Button Row to the welcome message itself. Set a
button's When clicked to Give / remove a role and pick Member, and add a second one set to
Jump to a channel for #rules. See Welcome messages.
Don't add Member as a join role. Join roles are given the moment
someone joins, which would skip the gate.
Test it#
Join the server and check you only see #welcome and #rules.
You should get the private "You have been given the Member role!" reply and see the rest of the server.
The role is removed ("Removed Member role."). Click once more to get it back.
Troubleshooting#
"I cannot assign that role because it is higher than my highest role."#
Move Buddy's role above Member in Server Settings → Roles.
"I do not have permission to manage roles."#
Give Buddy's role the Manage Roles permission.
Members can still see everything before verifying#
@everyone can still view that channel or category. Check each category's permissions, and look for
channels that aren't synced with their category. View Server As Role shows exactly what's visible.
Verified members still can't see a channel#
That channel has its own override that doesn't allow Member. Sync it with its category, or allow
View Channel for Member on the channel.
The role I want isn't in the list#
Run /setup in Discord and pick Update Channels and Roles for Website, then reload the dashboard.