Entry screening and community management for Discord servers.
Front Door screens new members before they get full access to your server, using an age-gated application form, automatic risk flagging, and a staff review queue — plus it automatically removes unapproved bot accounts. Everything can be configured either with Discord slash commands or through the web panel, whichever's easier for you.
From a new member's perspective:
Behind the scenes, submitting the form:
Each application posts as an embed with Approve, Deny, and Ask Follow-Up buttons, plus reason dropdowns for both outcomes.
Applications get an overall risk level (Low / Medium / High) and specific flags based on keyword matching against the free-text answers:
| Flag | Meaning |
|---|---|
UNDERAGE | Age answer or DOB suggests under 18. Blocks approval. |
AGE_VAGUE / MISSING_AGE | Age confirmation was vague or left blank. Blocks approval. |
HATE | Possible hate speech / anti-LGBTQ+ content. Blocks approval. |
HOOKUP | Answers suggest they're mainly here to date or hook up. |
EXPLICIT | Very explicit / fetish-forward answer. |
PREDATORY | Language suggesting predatory caregiver behavior. |
CRISIS | Mentions of self-harm or crisis — respond supportively, not just as a gatekeeping matter. |
ACCOUNT_NEW / JOIN_FAST | Very new account, or joined almost immediately after account creation. |
VAGUE | Very short/low-effort answers overall. |
You can add your own extra keywords per category on top of these — see Tuning screening keywords below.
Separately from human screening, any bot account that joins your server is checked against your whitelist. Not on it → kicked immediately. On it → let through. Every join is logged for an audit trail. If you already had other bots in your server before turning this on, nothing gets kicked retroactively — they'll show up flagged for you to review and whitelist (or remove manually) the first time you open the Bots page.
Anyone denied entry can appeal — they don't need to be back in your server to do it, since a denial always removes them. There are three ways they can submit one, all landing in the same review queue:
/appeal in a DM with the bot — opens a short form, no need to remember any details about the original denial.Every appeal shows up as an embed in your log channel with Approve Appeal / Reject Appeal buttons, or on the panel's Appeals page. Approving DMs the person and, if you've set a standing invite link on the Config page, includes it so they have a way back in. Someone can only have one open appeal per denial — submitting through a second method just shows them their existing appeal's status instead of creating a duplicate.
/guilds, your server will show up under "Manage" (this refreshes automatically, no need to log out and back in).Once the bot's in your server, either run /door_config or use the panel's Config page to set:
| Setting | What it's for |
|---|---|
| Queue channel | Where new applications get posted for staff to review. Should be private, staff-only. |
| Log channel | Where decisions, bot kicks, and other activity get posted for a running record. Also private/staff-only. |
| Unscreened role | Optional. If new members get a "not yet verified" role on join, set it here — it's automatically removed on approval. |
| New Cub role | Optional starter role granted on approval, if you use one. |
| Member role | Your main member role, granted on approval. |
| Verified 18+ role | Optional, granted on approval if you track age-verified status separately. |
You don't need to set every role — only the ones your server actually uses. Run /door_showconfig or revisit the Config page anytime to see your current settings.
Use /door_text set or the panel's Text page to write your own version of:
the front-door welcome message, the disclaimer shown after someone submits, the approve/deny DM
messages, and a staff-only note shown on the review embed. Leave any field blank to fall back to the
default wording.
Use /door_keywords set or the panel's Keywords page to add your own
comma-separated terms to any flag category. These are always additive — they add to
the built-in defaults, they never replace or weaken them. Useful if your community has its own slang
or recurring red flags worth catching that the defaults wouldn't know about.
Once your channels/roles are set, run /door_setup in the channel where you want the entry button to appear. That's it — new members will see it and the flow described above kicks in.
| Page | What it's for |
|---|---|
/dashboard | Entry/decision totals, risk and flag breakdowns, per-staff approve/deny activity, recent decisions. |
/pending | Direct Approve/Deny from the browser — role changes, DM, and kick, handled the same way the Discord buttons do it. |
/appeals | Review and resolve appeals submitted against your server's denials. |
/config | Visual picker for the queue channel, log channel, and role slots. |
/text | Editable front-door message, entry disclaimer, DM footers, and staff-only embed note. |
/keywords | Your extra screening keywords, per category. |
/logs | Every entry application, searchable and filterable by risk, with CSV export. |
/decisions | Every approve/deny decision, searchable and filterable, with CSV export. |
/bots | Bot whitelist management and recent bot join activity. |
/audit | Who changed config, text, keywords, or the whitelist, and when. |
/changelog | History of system-wide updates to Front Door itself. |
/guilds | Switch which server you're managing, or invite the bot to a new one. |
Anyone who's an Administrator on your Discord server (and where the bot is present) can log into the panel and manage that server — no separate account or password needed, it's tied to your Discord login. You'll only ever see and manage your own server's applications, decisions, and settings. A small number of designated support staff may have access across multiple communities for maintenance purposes; this doesn't change what's visible to your own regular staff.
| Command | Purpose |
|---|---|
/door_setup | Post the entry-check button message. |
/door_config | Set the queue/log channels and roles. |
/door_showconfig | Show current config. |
/door_text set / show | Customize front-door wording and DM text. |
/door_keywords set / show | Your extra screening keywords. |
/door_bots add / remove / list | Manage the bot whitelist. |
/door_appeals list | Show pending appeals for your server. |
/door_decisions | Recent approve/deny history for your server. |
/door_audit | Recent config/text/whitelist/keyword changes. |
/door_changelog list | View recent Front Door system updates. |
All of these require Administrator permission in your server.
/appeal is the exception — it's usable by anyone in a DM with the bot, for submitting an appeal after being denied (see Appeals).
Check that the bot's role is positioned above the roles it's trying to assign or remove, and that it has Manage Roles / Kick Members permissions in your server.
The Pending page checks against your decision history automatically every time it loads — it should self-correct. If it doesn't, try refreshing; the decision may not have synced yet.
That means the bot is currently offline. Your current settings still display — you just can't pick new ones until it's back up.
The bot has to actually be a member of your server for it to show up in the panel. If you haven't added it yet, see Adding the bot to your server.
Yes — just re-run /door_config with a different role selected, or update it from the panel's Config page.
Give it about 20 seconds — appeal notifications are posted by a background check, not instantly. If it's been longer, confirm your log channel is still set correctly in Config.