-
Notifications
You must be signed in to change notification settings - Fork 0
Slash Commands
SquishyBot has 4 slash commands and 1 right-click context menu. All responses are ephemeral.
Who: Everyone
What: User-facing help panel and menu
Shows bot status (active channels, hubs), an explanation of how voice channels work, and a Request Staff Role button. Includes a select menu to explore sections:
- 🔊 Auto Voice Channels — how hubs and auto channels work
- 📝 Staff Requests — how to submit a staff role request
- 🎛️ Voice Control Panel — what each button does
- 🛡️ Admin Tools — sudo panel overview (only shown to sudo users)
Who: Anyone currently in an auto voice channel
What: Opens the voice control panel
Use this from any channel to get an ephemeral copy of your voice channel's control panel. Also refreshes the persistent panel in the private text channel.
Errors if you're not in an auto voice channel.
Who: Sudo users only — configured via SUDO_ROLE_IDS / SUDO_USER_IDS, plus anyone added at runtime via Settings → Sudo Users
What: Admin management panel with a select menu
Select menu options:
- ⚙️ Settings — runtime config editor (see below)
- 🔊 Active voice channels — list all current auto channels
- 🪐 Hub channels — list all registered hubs
- 🧹 Force cleanup — delete empty or orphaned channels
- 📥 Pending approvals — view pending staff requests
- 🔧 Run reconciler — repair channels and rebuild DB state
- 🔁 Restart instructions — terminal commands for VPS management
A nested panel for editing values that would normally come from .env, without restarting the bot. Each field shows whether the live value is from env or a DB override; Reset on any field clears the override and falls back to env. Persistence: bot_settings (key/value overrides) and sudo_users (members granted sudo at runtime).
| Category | Fields | Notes |
|---|---|---|
| 🛡️ Sudo Users | Add member · Remove additional sudo user | Env-listed sudo users (SUDO_USER_IDS) cannot be removed here; only runtime additions can. |
| 📺 Channels | Log · Admin · Birthday · Staff approval thread | Channel pickers per setting. |
| 🔊 Voice |
voice.cleanup_delay_ms (modal-edited, 0–600000) · channel.auto_voice_category (ChannelSelectMenu, category-only) |
The auto-voice category is the parent for hubs and auto channels. Override falls back to AUTO_VOICE_CATEGORY_ID env. |
| 🪐 Hub Channels | Add hub (ChannelSelectMenu, voice-only) · Unregister hub (StringSelectMenu) | Dynamic list of hub voice channels. Backed by hub_channels (the DB is authoritative; HUB_CHANNEL_IDS env is a one-time seed list). |
| 🧵 Auto Threads | Add channel (ChannelSelectMenu) · Remove channel (StringSelectMenu) | Dynamic list of channels where every non-bot message gets an auto-thread. Backed by auto_thread_channels. |
| 🎮 Games | (placeholder — read-only count) | Editor lands here when game role/channel management ships. |
| 👤 User Profiles | (placeholder — read-only count) | Editor lands here when profile management ships. |
| Event | What happens |
|---|---|
| Message in an auto-thread channel | When a non-bot, non-system message lands in any channel listed in auto_thread_channels, the bot calls message.startThread({ name, autoArchiveDuration }). Default name: {author} — {first line of message} (truncated to 100 chars). Bot messages, system messages, and channels that already have a thread on that message are skipped. Requires the MessageContent privileged intent. |
Who: Everyone
What: File a bug or feature request that gets reviewed by the bot owner before landing on GitHub
Opens a modal: Title, Type (bug / feature / question), Description, optional Steps to reproduce.
On submit, the bot DMs BOT_OWNER_ID with the full report and four review buttons:
- ✅ Approve + Notify — file issue, DM the reporter the URL
- ✅ Approve, Silent — file issue, no DM to reporter
- ❌ Reject + Notify — drop, DM reporter that it was reviewed and not filed
- ❌ Reject, Silent — drop, no DM
Requires GITHUB_TOKEN (PAT with Issues: Read & Write) and GITHUB_REPO (owner/name) env vars; replies with a friendly "not configured" error if missing.
Who: Sudo users only
What: User management panel
Right-click any Discord member → Apps → Manage User
Shows: their roles, voice channel, owned auto channel.
Buttons: View Channel Panel, Disconnect from Voice, View Staff Request History.
- User runs
/squishy→ clicks Request Staff Role - Modal opens: category, department, tier, name, reason
- Bot posts request in
STAFF_APPROVAL_THREAD_IDwith Approve/Deny buttons, pingsSTAFF_APPROVAL_PING_USER_ID - Sudo approves or denies — request message updates in place, buttons removed
- Requester gets a DM with the result