Server Admin Guide
Everything you need to get GateKeeper running on your Discord server. No code. No hosting. Everything happens through slash commands in your server.
What You'll Need
- Manage Server permission on the Discord server you want to protect.
- About 10–15 minutes.
Step 1 — Invite the Bot
- Click Invite to your server (or use the button on the home page).
- Select your server from the dropdown.
- Leave all the requested permissions checked and click Authorize.
- Complete the CAPTCHA if Discord shows one.
The bot should now appear in your server's member list.
Step 2 — Prepare Your Server
2.1 — Turn on Developer Mode (optional but handy)
User Settings → Advanced → Developer Mode: ON. Lets you right-click to copy role/channel IDs if you ever need them.
2.2 — Create the Verified role
Server Settings → Roles → Create Role.
Name it whatever you want (Verified and Member are common choices).
Don't give it any special permissions yet — you'll configure channel
visibility in Step 4.
2.3 — Fix role hierarchy (IMPORTANT)
In Server Settings → Roles, drag the bot's role above the Verified role. If you plan to use Patreon auto-verify, the bot's role must also be above your Patreon tier roles.
Admin
Moderator
GateKeeper ← bot's role (must be above everything it manages)
Patreon tiers
Verified
@everyone
If the bot's role sits below a role it's trying to assign, Discord blocks it and verification silently fails.
2.4 — Create your channels
#verify— the channel where the Verify button will live. New joiners must be able to see this.#mod-log(optional) — where verification events get logged. Make this mod-only.
Step 3 — Configure the Bot
All configuration happens through slash commands. You need Administrator permission to run any of them.
3.1 — Required settings
Run these three in your server:
/set-verified-role role:@Verified
/set-verify-channel channel:#verify
/set-log-channel channel:#mod-log
The log channel is optional — skip it if you don't want event logging.
3.2 — Patreon auto-verify (optional)
If you have Patreon tier roles and want paying supporters to skip the CAPTCHA entirely:
/patreon-add role:@Patron
/patreon-add role:@VIP
Add as many tier roles as you want. Anyone who already has one of these roles when they join — or who receives one later — gets auto-verified. No button click, no CAPTCHA.
3.3 — Tune difficulty (optional)
Defaults are sensible. Change only if you need to:
/set-captcha-length length:6
/set-cooldown seconds:30
/set-max-attempts attempts:3
3.4 — Check your work
Run /settings anytime to see every setting for your server in one place.
Step 4 — Launch Verification (Order Matters)
4.1 — Post the Verify button
Anywhere in your server, run:
/setup-verify
A green embed with a Verify button appears in your configured verify channel. This is the button new joiners will click.
4.2 — Grandfather your existing members
Anywhere in the server, run:
/grandfather
This bulk-assigns the Verified role to every existing non-bot member. Bots are skipped. Already-verified members are skipped.
On larger servers this takes a while — budget roughly 1 minute per 60 members. You'll see a progress update in the log channel (if set) and a completion summary when done.
4.3 — Lock down channel permissions
Only now should you touch channel permissions. Go to your channels and categories and set:
@everyone→ View Channel: ❌Verified→ View Channel: ✅
Leave #verify visible to @everyone so new joiners can find it
and click the button.
Done.
New joiners see only #verify, click Verify, solve the CAPTCHA, and get the
Verified role. Existing members keep their access. Patrons get in automatically.
All Slash Commands
Every command requires Administrator permission.
| Command | What it does |
|---|---|
/help | Shows every command grouped by category. |
/setup-verify | Posts the permanent Verify button embed in your configured verify channel. |
/grandfather | Grants the Verified role to all existing members. Run once before locking channels. |
/settings | Shows every current setting for your server. |
/reset-settings | Resets every setting on your server back to defaults. Does NOT remove the Verified role from anyone. |
/set-verified-role <role> | Sets the role granted on successful verification. |
/set-verify-channel <channel> | Sets the channel where the Verify button lives. |
/set-log-channel [channel] | Sets the mod log channel. Omit the channel argument to disable logging. |
/set-captcha-length <5–8> | How many characters the CAPTCHA image contains. |
/set-cooldown <seconds> | Seconds a user must wait between CAPTCHA requests. |
/set-max-attempts <0–20> | Wrong answers before the bot auto-kicks the user. 0 disables kicking entirely. |
/set-modal-timeout <30–1800> | Seconds before the Enter Answer button expires and the user has to request a new CAPTCHA. |
/patreon-add <role> | Adds a role whose holders skip the CAPTCHA. |
/patreon-remove <role> | Removes a role from the auto-verify list. |
All Settings You Can Change
Each server has its own independent settings. Changing a setting on one server never affects another.
| Setting | Default | Range | What it does |
|---|---|---|---|
| Verified role | (unset — required) | Any role below the bot | Role granted on success. |
| Verify channel | (unset — required) | Any text channel | Where the Verify button lives. |
| Log channel | (unset — optional) | Any text channel | Where events are logged. Omit to disable. |
| CAPTCHA length | 6 |
5–8 characters | Longer = harder. |
| Cooldown | 30 seconds |
0–600 seconds | Anti-spam. Time between a user's CAPTCHA requests. |
| Max attempts | 3 |
0–20 | Wrong answers before auto-kick. 0 disables kicking. |
| Modal timeout | 300 seconds (5 min) |
30–1800 seconds | How long the Enter Answer button stays clickable. |
| Patreon roles | (empty) | List of roles | Holders skip the CAPTCHA entirely. |
Testing Checklist
Before you tell your members to join, test the flow yourself:
- Bot is online (green dot in member list).
/settingsshows your Verified role, verify channel, and (optionally) log channel set correctly.- The
/setup-verifyembed is posted in#verifywith a visible Verify button. - Join with an alt account (or ask a trusted friend). They should:
- Only see
#verifyon join. - Click Verify → get a CAPTCHA image in an ephemeral message.
- Click "Enter Answer" → submit the text → get the Verified role.
- Now see the rest of the server.
- Only see
- Check the log channel — verification events (started, verified, failed, kicked) should appear.
- If using Patreon: give your alt a Patreon role, they should auto-verify with no button click.
- Try typing the wrong CAPTCHA on purpose
max-attemptstimes. The bot should kick (if max-attempts > 0).
Troubleshooting
"The bot can't assign the Verified role."
Role hierarchy problem. Drag the bot's role above the Verified role in Server Settings → Roles.
Verify button does nothing when clicked.
Either the bot is offline (check the green dot), or @everyone has
Use Application Commands: ❌ in that channel. Re-enable it, or just
leave the channel at default permissions.
The Verify embed never appeared after /setup-verify.
The bot is missing Embed Links permission in that channel. Check channel permissions or re-invite the bot using the original invite link.
Slash commands don't show up at all.
The first time a bot joins a server, slash commands can take up to an hour to propagate globally. If they're still missing after that, re-invite the bot with the original invite link.
Existing members got locked out.
You locked channel permissions before running /grandfather. Fix: temporarily
re-grant @everyone view access, run /grandfather, then re-lock.
Or manually assign the Verified role to yourself and a few mods and grandfather from there.
Patreon users have to solve the CAPTCHA anyway.
Either you forgot to /patreon-add their tier role, or the bot's role is below
that Patreon role. Fix the hierarchy and re-run the command if needed.
CAPTCHA image doesn't load.
Almost always a user-side issue — Discord's CDN blip or their client blocking the ephemeral attachment. Have them click Verify again.
I changed a setting but nothing seems different.
Most settings apply to the next verification attempt, not ongoing ones. Have the test user click Verify again.
I need to start over.
Run /reset-settings. That wipes every setting for your server. Existing
Verified role assignments stay intact — only the bot's configuration is cleared.