Suggestions
The Suggestions module provides a community suggestion system with voting (π/π), Approve/Reject buttons, and optional discussion threads.
Enabling the Moduleβ
- Dashboard β Your server β toggle Suggestions
- Click Edit and configure the suggestions channel
- Save changes
Configurationβ
| Option | Type | Default | Description |
|---|---|---|---|
channel_id | string | β | Channel where suggestions are posted (required) |
color_pending | hex | #3B82F6 | Pending suggestion embed color |
color_approved | hex | #22C55E | Color after approval |
color_rejected | hex | #EF4444 | Color after rejection |
create_thread | boolean | false | Create a discussion thread under the suggestion |
anonymous | boolean | false | Hide the suggestion author |
manage_permission | string | "moderation_roles" | Who can approve/reject |
manage_roles | list | [] | Management roles (when permission = "custom") |
counter | number | 0 | Automatic suggestion counter |
Dashboard β Configurationβ
The edit panel contains:
- Channel β dropdown with text channels
- Colors β three color pickers (pending, approved, rejected)
- Create Thread β checkbox
- Anonymous β checkbox
- Manage Permission β radio: "Moderation Roles" / "Custom Roles"
- Custom Roles β multi-select (visible when "Custom" is selected)
Commandsβ
/suggestβ
Submits a new suggestion.
| Parameter | Required | Description |
|---|---|---|
content | β | Suggestion content (max 2000 characters) |
Flow:
- Bot increments the suggestion counter
- Creates an embed with title "Suggestion #X", content, and status "β³ Pending"
- Sends the embed to the configured channel with Approve/Reject buttons
- Adds π and π reactions for voting
- Optionally creates a discussion thread
- Sends an ephemeral confirmation to the author
- Logs the suggestion creation
Approve / Rejectβ
Authorized users (see manage_permission) can click:
- Approve β β changes color to green, status to "Approved by [name]"
- Reject β β changes color to red, status to "Rejected by [name]"
After approval/rejection:
- Buttons are removed from the message
- Thread (if exists) is archived and locked
- Moderator receives an ephemeral confirmation
- Action is logged
Votingβ
The π and π reactions are used to gather community opinions. The bot adds them automatically, but the count is visible natively through Discord β the bot doesn't interfere with the counter.
Anonymous Modeβ
When anonymous = true:
- The embed displays the author as "Anonymous"
- In logs, the author is still visible (for accountability)
Listened Eventsβ
| Event | Action |
|---|---|
on_interaction | Handles Approve/Reject button clicks |
The Approve/Reject buttons use custom_id (not callback) β they work even after a bot restart.
Loggingβ
Actions are logged by Logs under the suggestions category:
- π‘ Suggestion Created β with number, author, and content (truncated to 200 characters)
- β Suggestion Approved β with number and moderator
- β Suggestion Rejected β with number and moderator
Tipsβ
- Create a dedicated
#suggestionschannel with restricted writing permissions (bot only) - Enable
create_threadso discussions don't clutter the main channel - Set
manage_permissionto"moderation_roles"so moderators can approve/reject - Anonymous mode encourages honest feedback but makes moderation harder
The suggestions channel must be configured β without it, the /suggest command will return an error. The dashboard also won't allow saving the configuration without a selected channel.