Suggestions System
1. Feature Brief
Section titled “1. Feature Brief”The Suggestions plugin gives your community a structured, category-driven way to submit feedback. Members submit through a guided modal flow; every suggestion lands in a public channel with live vote buttons and an auto-created discussion thread. Admins review and action suggestions from a private review channel without ever touching the public channel manually.
- Category selection - members pick a category from a dropdown before submitting, keeping suggestions organised from the start
- Modal submission - after selecting a category, a modal collects a title (up to 100 characters) and a detailed description (up to 1,000 characters)
- Public voting - every suggestion embed has live upvote and downvote buttons; counts update in real time and a member’s vote switches sides automatically if they change their mind
- Discussion threads - a dedicated thread is automatically created on each suggestion message for community discussion, set to auto-archive after 7 days
- Review workflow - if a review channel is configured, each new suggestion is mirrored there with Approve and Reject buttons; approving exposes a “Mark as Implemented” button
- Status updates - actioning a suggestion in the review channel instantly updates the colour and status field on the original public embed
- Category management - admins can add, remove, and toggle categories at any time without touching the suggestion channel
2. Sub-Systems
Section titled “2. Sub-Systems”Running /suggest opens a two-step guided flow, entirely ephemeral so only the submitter sees it:
- A dropdown menu lists all currently enabled categories with their emoji and name
- Selecting a category opens a modal with two fields: Title and Description
- On submit, the suggestion is posted to the public suggestions channel and the submitter receives a confirmation with the suggestion number and title
Each suggestion is assigned an incrementing ID scoped to the server (e.g. #1, #2). If no categories are enabled, /suggest replies with an error prompting the member to contact an admin.
Every suggestion embed has two buttons directly beneath it showing the live vote counts:
| Button | Action |
|---|---|
| ✅ Upvote | Adds an upvote; removes an existing downvote from the same user |
| ❌ Downvote | Adds a downvote; removes an existing upvote from the same user |
Clicking the same button twice removes the vote (toggle behaviour). A member can hold at most one vote position at a time - switching sides moves the vote without any extra clicks. Button labels update immediately after every interaction.
When a review channel is configured, every new suggestion is also sent there with Approve and Reject buttons. Only members with Manage Server permission can use these buttons.
Status progression:
| Action | Button available next | Public embed colour |
|---|---|---|
| Approve | Mark as Implemented | 🟢 Green |
| Reject | (buttons removed) | 🔴 Red |
| Mark as Implemented | (buttons removed) | 🟡 Yellow |
Actioning a suggestion updates both the review channel embed and the original public embed simultaneously. The footer of both embeds is updated to show which moderator actioned it.
If no review channel is set, the public suggestion still posts normally - it just starts in Pending status indefinitely until a review channel is added.
Immediately after posting to the public suggestions channel, the bot attempts to create a thread named Suggestion #N attached to the suggestion message.
- Auto-archive duration is set to 7 days
- The thread opens with a pinned prompt asking members to keep discussion constructive
Categories each have a name, an emoji, and an enabled/disabled state. Two default categories ship with every new setup: 💬 Discord and 📝 General.
| Command | Description |
|---|---|
/suggestions addcategory name: emoji: | Adds a new enabled category; names must be unique |
/suggestions removecategory name: | Permanently removes a category |
/suggestions togglecategory name: | Flips the enabled state of a category |
/suggestions list | Lists all categories with their emoji and current enabled state |
Disabling a category hides it from the /suggest dropdown without deleting it or its historical suggestions. If all categories are disabled, /suggest returns an error.
/suggestions status provides a quick overview of the system for the current server:
- Suggestions channel and review channel (or “Not Set”)
- Number of enabled categories out of total
- Total suggestion count
- Breakdown of Pending, Approved, and Implemented counts
The response is always ephemeral.
3. Setup
Section titled “3. Setup”-
Run the setup command - use
/suggestions setup channel:#your-channelto point the bot at the public suggestions channel. Optionally addreview:#review-channelto enable the moderation review workflow.Two default categories (
💬 Discordand📝 General) are created automatically. Any previously saved categories are preserved if you re-run setup. -
Customise categories Optional - add categories relevant to your server with
/suggestions addcategory. For example:/suggestions addcategory name:Minecraft emoji:⛏️/suggestions addcategory name:Events emoji:🎉Use
/suggestions togglecategoryto disable any defaults you don’t need. -
Verify the setup - run
/suggestions statusto confirm the channel, review channel, and category counts look correct. -
Test a submission - run
/suggest, pick a category, fill in the modal, and confirm the embed appears in the suggestions channel with vote buttons and a discussion thread.