Server Configuration - CosmicCubicle/PariahBot GitHub Wiki

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.

Staff come in two levels: admins (Administrator, or an admin role) and mods (a mod role, or any admin). /setup and /security are admin-only; most of the rest is for mods. See Server-Roles. Manage Channels alone is not enough.

1. Roles first

Full guide: Server-Roles.

/setup admin-role add role:@Admins
/setup mod-role add role:@Moderators
/setup member-role role:@Members
  • Admin roles — who counts as an admin besides Administrators: /setup, /security, the dashboard and the policy settings. Any number can be added.
  • Mod roles — staff below admin: moderation and the rest of the staff commands. 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 sets the role whose members can link their own Twitch or YouTube channel for alerts. See step 7.

2. Temporary voice channels

Full guide: Temp-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.

Optional, per hub and per server:

/voice edit hub:<pick> name_template:🎮 {owner}'s squad default_limit:4 min_limit:2 max_limit:10
/voice owner-control control:Kick allowed:False
  • /voice edit sets what temp channels are called, the limit they start at, the range owners can choose, and their category.
  • /voice owner-control switches off any owner control except claim.
  • The Admin-Dashboard's Voice tab does all of this, and also lists live temp channels so you can close or transfer them.

3. Self-service role menus

Full guide: 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

Full guide: Verification and Honeypot.

/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 admin and 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 admin or 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.

Staff (admins and mods) 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

Full guide: Auto-Delete.

/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

Full guide: Admin-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. Set this up: nothing is configured by default, and alerts in a server with no destination are dropped. Either point it at a channel you already have, or run /alerts restore-default to have the bot make a #bot-alerts channel for you.

7. Streamer alerts

Needs Twitch and/or YouTube credentials in the host's hom.env first. See Streamer-Alerts.

/streamers channel channel:#live-now ping_role:@Stream-Notify
/setup streamer-role role:@Streamer
/streamers add platform:YouTube account:@SomeChannel
  • Streamers with the role link their own channel with /streamers link. Their alerts stop if they lose the role.
  • Admins can add any channel with /streamers add, with no role needed and an optional member:.
  • Twitch announces going live. YouTube announces going live and new uploads.
  • /streamers message sets custom text for alerts, and still pings the role.
  • Only uploads and streams after a channel is added are announced.

8. Instagram alerts

Needs the Instagram token in the host's hom.env first. See Instagram-Alerts.

/instagram channel channel:#instagram ping_role:@Insta-Notify
/instagram add account:some_account
  • Posts go to their own channel, separate from streamer alerts.
  • /instagram message sets custom text for posts, and still pings the role.
  • Only public Business or Creator accounts can be followed.
  • Only posts after an account is added are shared.

9. Banned words

Needs the bot to have Manage Server. See Banned-Words.

/bannedwords list add list:Profanity
/bannedwords word add words:badword, bad phrase
/bannedwords enable
  • Discord AutoMod blocks matching messages before anyone sees them.
  • Each block is reported through the admin alerts from step 6.
  • Exempt channels or roles in Server Settings → AutoMod, on the PariahBot: banned words rules.

10. Moderation

Full guide: Moderation.

/mod timeout member:@Someone duration:1h reason:Cool off
/mod ban user:@Spammer reason:Spam delete_messages:Last 24 hours
/mod ban user:@Someone duration:7d reason:Repeated warnings
/mod warn member:@Someone reason:Keep it civil
/mod history user:@Someone

Optional settings:

/mod config escalation warnings:3 within:7d timeout:1h
/mod config appeal-note text:Appeal at https://example.com/appeal
  • Also on the right-click menu: a member → Apps → Kick member, Ban member or Timeout member.
  • Needs no setup. The bot needs Kick Members, Ban Members and Timeout Members, and its role above the people it acts on.
  • Staff (admins and mods) can never be targeted. Every action is DMed to the member, kept in their /mod history, and reported through the alerts from step 6.

11. RSS feeds

Full guide: RSS-Feeds.

/rss add url:https://www.reddit.com/r/discordapp/.rss channel:#news
/rss test feed:<pick>
  • Each feed posts to its own channel, with an optional ping role and custom message.
  • Only new items are posted, checked every 10 minutes.
  • Addresses on private or local networks are refused.

12. Server log

A record of what happens in the server, in up to four channels. Full guide: Server-Log. Needs View Audit Log on the bot's role for the kicks, bans and server changes sections.

/logging set section:Kicks and bans channel:#mod-log
/logging set section:Joins and leaves channel:#join-log
/logging set section:Messages channel:#message-log
/logging set section:Server changes channel:#mod-log
/logging status
  • Each section has its own channel and its own on/off switch (/logging disable, /logging enable). Sections can share a channel.
  • Keep the log channels staff-only: they show who did what, and possibly what members wrote.
  • Message text in the Messages section is the bot host's choice, not the server's.

13. Everything else

/giveaway and /level need no setup. Full guides: Giveaways and Activity-Levels.

  • /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
/streamers list       # alert channel, platforms switched on, and every streamer
/instagram list       # Instagram channel, host setup, and every followed account
/bannedwords status   # banned words on/off, lists, custom words, where blocks go
/rss list             # every feed, its channel, last check and any error
/logging status       # each server log section, its channel, and anything stopping it
/alerts test          # actually send one
⚠️ **GitHub.com Fallback** ⚠️