🔐 Front Door Docs
HomeLog In

Front Door — Documentation

Entry screening and community management for Discord servers.

What is this?

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.

How entry screening works

From a new member's perspective:

  1. They join your server and see a welcome message with a Start Entry Check button.
  2. Pressing it opens a form: date of birth, an age confirmation statement, how they found the server, what they're looking for, and an optional comfort/safety notes field.
  3. On submit, they see an acknowledgment message (and your server's custom entry disclaimer, if you've set one) and their application goes to your staff review queue.
  4. They wait for a decision. If approved, they get a DM and whichever member role(s) you've configured. If denied, they get a DM and are removed from the server.

Behind the scenes, submitting the form:

The raw date of birth someone types is shown to your staff in the review message, but is never permanently stored — only the estimated age and flags derived from it are kept.

Staff review (Discord)

Each application posts as an embed with Approve, Deny, and Ask Follow-Up buttons, plus reason dropdowns for both outcomes.

Ask Follow-Up is Discord-only. The web panel's Pending page supports direct Approve/Deny instead — see Panel pages.

Risk flags & keywords

Applications get an overall risk level (Low / Medium / High) and specific flags based on keyword matching against the free-text answers:

FlagMeaning
UNDERAGEAge answer or DOB suggests under 18. Blocks approval.
AGE_VAGUE / MISSING_AGEAge confirmation was vague or left blank. Blocks approval.
HATEPossible hate speech / anti-LGBTQ+ content. Blocks approval.
HOOKUPAnswers suggest they're mainly here to date or hook up.
EXPLICITVery explicit / fetish-forward answer.
PREDATORYLanguage suggesting predatory caregiver behavior.
CRISISMentions of self-harm or crisis — respond supportively, not just as a gatekeeping matter.
ACCOUNT_NEW / JOIN_FASTVery new account, or joined almost immediately after account creation.
VAGUEVery short/low-effort answers overall.

You can add your own extra keywords per category on top of these — see Tuning screening keywords below.

Bot whitelist

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.

Appeals

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:

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.

Appeal notifications can take up to about 20 seconds to show up in your log channel after someone submits one — that's normal, not a bug.

Adding the bot to your server

  1. Log into the panel and go to Your servers.
  2. Any server where you're an Administrator but the bot isn't in yet shows an Invite button under "Add Front Door to another server."
  3. Click it, pick your server on Discord's authorization screen, and confirm. The invite link requests exactly what the bot needs — nothing extra.
  4. Back on /guilds, your server will show up under "Manage" (this refreshes automatically, no need to log out and back in).
After inviting, make sure the bot's role is positioned above whichever roles you want it to assign or remove, in your Server Settings → Roles list. Discord blocks a bot from touching roles above its own, regardless of what permissions it has.

Setting up channels & roles

Once the bot's in your server, either run /door_config or use the panel's Config page to set:

SettingWhat it's for
Queue channelWhere new applications get posted for staff to review. Should be private, staff-only.
Log channelWhere decisions, bot kicks, and other activity get posted for a running record. Also private/staff-only.
Unscreened roleOptional. If new members get a "not yet verified" role on join, set it here — it's automatically removed on approval.
New Cub roleOptional starter role granted on approval, if you use one.
Member roleYour main member role, granted on approval.
Verified 18+ roleOptional, 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.

Customizing wording

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.

Tuning screening keywords

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.

Going live

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.

Panel pages

PageWhat it's for
/dashboardEntry/decision totals, risk and flag breakdowns, per-staff approve/deny activity, recent decisions.
/pendingDirect Approve/Deny from the browser — role changes, DM, and kick, handled the same way the Discord buttons do it.
/appealsReview and resolve appeals submitted against your server's denials.
/configVisual picker for the queue channel, log channel, and role slots.
/textEditable front-door message, entry disclaimer, DM footers, and staff-only embed note.
/keywordsYour extra screening keywords, per category.
/logsEvery entry application, searchable and filterable by risk, with CSV export.
/decisionsEvery approve/deny decision, searchable and filterable, with CSV export.
/botsBot whitelist management and recent bot join activity.
/auditWho changed config, text, keywords, or the whitelist, and when.
/changelogHistory of system-wide updates to Front Door itself.
/guildsSwitch which server you're managing, or invite the bot to a new one.

Who can access what

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.

Slash commands

CommandPurpose
/door_setupPost the entry-check button message.
/door_configSet the queue/log channels and roles.
/door_showconfigShow current config.
/door_text set / showCustomize front-door wording and DM text.
/door_keywords set / showYour extra screening keywords.
/door_bots add / remove / listManage the bot whitelist.
/door_appeals listShow pending appeals for your server.
/door_decisionsRecent approve/deny history for your server.
/door_auditRecent config/text/whitelist/keyword changes.
/door_changelog listView 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).

FAQ / troubleshooting

Approve/Deny isn't working — nothing happens when I click a role change.

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.

An application shows Pending on the panel, but I already handled it in Discord.

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.

The Config page says it couldn't load channels/roles.

That means the bot is currently offline. Your current settings still display — you just can't pick new ones until it's back up.

I'm an Administrator on Discord but the panel won't let me manage my server.

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.

Can I remove a role from the config later?

Yes — just re-run /door_config with a different role selected, or update it from the panel's Config page.

Someone says they submitted an appeal but I don't see it.

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.