Discord Bot Guide
This guide explains how to set up and use the Kim Discord bot, including verification types, server configuration, and direct interactions with the bot.
Overview
- Supported stakeholders: server admins, moderators, verifiers, community members
- Capabilities: verification (voice/text), submissions, moderation helpers
Setup
- Invite the bot to your server (admin permissions recommended)
- Assign required roles/permissions
- Configure channels for verification and submissions
Verification Types
- Levels explained (text and voice)
- Evidence requirements, examples, and acceptance criteria
Verify Voice
- Recording and uploading guidance
- Privacy notes
- Expected turnaround and results
Verify Text
- Supported formats
- Context and metadata required
- Review flow
Direct Verification with Bot
- DM commands
- Rate limits and anti-abuse
Server Configuration
- Role mapping (verifiers, reviewers, submitters)
- Channel structure recommendations
- Logging and audit trails
Best Practices
- Safety & privacy
- Avoiding false positives
- Escalation paths
Screenshots: Add sanitized images here (metadata scrubbed).
Testing the KimGate Discord bot
Quick guide: test the KimGate Discord bot
Discord Test Server (invite): https://discord.gg/sfqWR9xBcf
Add KimGate to a server: Authorize KimGate
Prereqs (once, by a server admin)
- Ensure the bot is online in your server.
- Create or choose two roles to represent verified and unverified members (names are up to you; examples used here are
VerifiedandUnverified). - Move the bot’s highest role above both chosen roles in Server Settings → Roles.
- Verify the bot has these permissions in the server:
Manage Roles,Kick Members,Send Messages,Use Slash Commands.
Discord only lets a bot manage roles that are lower than the bot’s highest role. If assignments fail, move the bot’s role higher.
Add screenshots here after you capture them and place into static/img/kimgate/:
- Role hierarchy example:
 - Permissions example:
 - Debug output example:

1) Admin setup and sanity checks
-
Run initial setup (server admin)
- Use:
/setup verified_role:@<YourVerifiedRole> unverified_role:@<YourUnverifiedRole> timeout:5(you can use any existing roles; names are just examples) - Set a log channel:
/kimlogchannel set #kim-log(or any text channel) - Validate everything:
/debug(check required permissions and role hierarchy show ✅)
- Use:
You can illustrate these steps with screenshots placed at:
-
/img/kimgate/log-channel.png(log channel set) -
/img/kimgate/debug-status.png(debug output) -
Optional admin checks
- See your admin status:
/whoami - Add a server admin:
/serveradmin add @user(server admins only) - Add a global admin:
/globaladmin add @user(bot owner/bot admin only)
- See your admin status:
2) How regular users can test verification
-
Join test
- Have a test user join your server. They should automatically receive your configured unverified role.
- The bot will initiate verification (DMs). Complete the steps.
- On success, the user should get your configured verified role and lose the unverified role.
-
Re-test a user
- Clear a user’s state:
/reset @user, then remove their verified role and re-run the join/flow as needed. - See recent verification events:
/kimstats recent - If someone failed verification:
/failed
- Clear a user’s state:
3) Testing phrase and moderation features
-
Phrases
- Add a phrase:
/kimphrases add phrase:some phrase - List phrases:
/kimphrases list - Remove a phrase:
/kimphrases remove phrase:some phrase - Reset to defaults:
/kimphrases reset
- Add a phrase:
-
Flags and bans
- Flag a user:
/flag @user reason:Testing - View flags:
/flags @user - Unflag:
/unflag @user - List all flagged:
/flagged - Bot-admin only (global):
/flag-global @user,/flags-global @user,/unflag-global @user,/flagged-global - Bot-admin only (ban):
/ban @user,/unban @user
- Flag a user:
-
Analytics and audits
- Server stats:
/kimstats stats - Global stats (bot admin only):
/kimstats global - Leaderboard:
/kimstats leaderboard - Audit log (last 20 admin/verification events):
/kimstats audit - Export by period:
/kimstats export duration:7d(examples:24h,7d,30d)
- Server stats:
4) Let users "add to their channels" and test there
-
By default, the bot can act wherever it can see and speak. To allow the bot in a specific channel:
- Right-click the channel → Edit Channel → Permissions.
- Add the bot’s role (or the bot user) → Allow at least:
View Channel,Send Messages,Read Message History. - If the channel is private, ensure the bot’s role is explicitly added and allowed.
- Re-run
/debugif the bot still can’t speak or manage roles there.
-
For log delivery, ensure the chosen log channel allows the bot to
Send Messages, then set it with/kimlogchannel set #channel.
Add a permissions screenshot if needed: 
5) Troubleshooting
-
Roles not being assigned
- Run
/debugand confirm:Manage Rolesis ✅- Bot role is above your chosen verified/unverified roles in the hierarchy
- Re-run
/setupif you changed roles.
- Run
-
Bot not responding in a channel
- Check the channel’s permissions for the bot role (
View Channel,Send Messages). - Confirm the bot is not timed out/muted and can
Use Slash Commands.
- Check the channel’s permissions for the bot role (
-
Verification didn’t start on join
- Confirm
/setupwas completed and shows ✅ in/debug. - Check the log channel for warnings.
- Use
/reset @userand try again.
- Confirm
-
Admin permission errors
- Use
/whoamito see what the bot thinks you are. - Ensure you’re a server admin (Discord
Administratorpermission) or added via/serveradmin add @you.
- Use
-
See what’s happening
- Use
/kimstats auditand/kimstats recentto inspect recent actions and verification attempts.
- Use
6) Minimal end-to-end test checklist
- Admin runs
/setupand/kimlogchannel set #kim-log→/debugshows ✅ - New test user joins → gets
Unverified→ completes verification → getsVerified - Admin runs
/kimphrases add,/kimphrases list→ phrase visible - Admin flags a user
/flag @user→/flags @usershows count →/unflag @userclears - Admin checks
/kimstats stats,/kimstats audit,/kimstats recentshow activity - Admins can test in any channel by granting the bot’s role channel permissions as described above.
- For a full command reference, use
/help(admin-only).