Skip to content

Server Configuration

Jerad Berhow edited this page Oct 6, 2026 · 14 revisions

Server Configuration

Setting the bot up inside a Discord server. Order matters — several features depend on roles configured in step 1 and will refuse to run without them.

Every command below is admin-gated: you need Discord's Administrator permission, or membership in a role added via /setup mod-role add. Manage Channels alone is not enough.

1. Roles first

/setup mod-role add role:@Moderators
/setup member-role role:@Members
  • Mod roles — who can use the bot's admin commands besides Administrators. Any number can be added (/setup mod-role add, remove, list, clear). Mod-role members are also skipped by the honeypot and can override temp-channel ownership via /vc claim.
  • Member role — the role the verification captcha grants, and the role /roles apply-channel-defaults makes channels visible to. /security captcha setup refuses to run until this is set.

Don't have the roles yet? Create them inline instead of pointing at existing ones:

/setup member-role name:Members color:#3498db

color accepts a hex code or a Discord colour name (Red, DarkBlue, Blurple…).

/setup streamer-role also exists and is stored, but nothing consumes it yet.

2. Temporary voice channels

/voice create name:➕ Join to Create

Anyone who joins that hub gets their own temporary channel, and becomes its owner. Owners manage their own channel with /vc (name, limit, lock, unlock, kick, claim, transfer) — /vc is not admin-gated, it's scoped to whoever currently owns the channel they're in.

Channels are deleted automatically once empty. If a hub's channel gets deleted manually, /voice audit finds the orphan and offers to prune or recreate it.

To use an existing voice channel as a hub instead: /voice add hub:#channel.

3. Self-service role menus

/roles dropdown create channel:#roles role:@Gamer descriptor:Ping for game nights
/roles dropdown add-role message:<id> role:@Artist descriptor:Art channel access

Posts a message with a button; members open a personal dropdown, pre-checked with the roles they already have, and tick/untick to assign or remove. One role per command call — repeat add-role to build the menu up.

/roles apply-channel-defaults channel:#roles locks that channel so only admins and the bot can post, and only the member role can see it.

4. Anti-spam

/security captcha setup adjust_visibility:true
/security honeypot setup

Captcha posts a verification message in a screening channel (created for you, or pass channel:). A member presses Start verification and is privately asked to pick one specific option from a dropdown — which option is correct is randomised per person, so a bot can't pass by clicking the only thing on screen. Passing grants the member role.

adjust_visibility: true turns verification into an actual gate, in two parts:

  • The rest of the server is hidden from unverified members — View Channels is removed from @everyone and granted to the member role instead. One role-level change, so it also covers channels created later.
  • The screening channel itself becomes visible only to unverified members and your mod roles. Once someone verifies and receives the member role, the channel disappears for them rather than sitting there as clutter.

Mods keep access because a role-level allow beats a role-level deny in Discord's permission maths, so a mod who also holds the member role still sees it. With no mod roles configured, only Administrators can see it (they bypass overwrites entirely).

This is a server-wide change — it's off by default, and the bot reports exactly what it altered. Re-running with adjust_visibility: false clears the screening channel restriction again. To fully undo it, give @everyone View Channels back and clear the member role's View Channels deny on the screening channel.

Honeypot designates a trap channel and posts a warning in it. Anyone who posts there is removed — by default a softban (banned then immediately unbanned, so Discord deletes their recent messages but they can rejoin), or action: ban to ban outright.

Admins and mod-role members are always skipped, so you can safely look at the channel yourself. Every action is reported through /alerts.

Tip: name the trap channel something plausible like #off-topic-2 rather than #honeypot — some spam bots skip channels named "honeypot", and position it near the top of the channel list where bots tend to post first.

5. Message auto-deletion

/autodelete set channel:#spam duration:24h count:100

Deletes each message once it's duration old, or once count newer messages exist — whichever comes first. Supply either or both. Durations take h/m/s and combinations (24h, 30m, 90s, 1h30m).

Pinned messages are never deleted, so pin anything that should survive.

6. Alerts

/alerts channel channel:#bot-alerts
/alerts add-recipient user:@You
/alerts test

Where the bot reports things that need attention — honeypot removals, voice hubs whose channel vanished. If you don't configure anything, the bot creates a default #bot-alerts channel on join; /alerts remove-default deletes it and stops it coming back.

7. Everything else

/giveaway and /level need no setup:

  • /giveaway create prize:… duration:<minutes> winners:<n> — members enter via a button, winners are drawn automatically when it ends. /giveaway end id:<id> ends one early.
  • /level — XP accrues automatically from messages (15–25 per message, once per minute per person). /level rank and /level leaderboard are open to everyone.

Verifying it all works

/security status      # captcha + honeypot state, warns if the member role is missing
/autodelete status    # per-channel auto-delete settings
/voice list           # configured hubs
/roles list           # configured role menus
/alerts status        # where alerts are going
/alerts test          # actually send one

Clone this wiki locally