Suggestions
Community suggestion system with voting (👍/👎 reactions) and approval/rejection by moderators.
Commands
/suggest
Submits a new suggestion to the configured suggestions channel.
| Parameter | Type | Required | Description |
|---|---|---|---|
| content | string | Yes | Suggestion content (max 2000 characters) |
Permissions: Everyone
Example: /suggest content:Add a channel for strategy discussions
Success:
Bot sends an embed to the suggestions channel with title "Suggestion #N" (auto-incrementing), content, author, and status "⏳ Pending" with Approve/Reject buttons
Adds 👍 and 👎 reactions for voting
Optionally creates a discussion thread
Ephemeral confirmation for the author
Log in "suggestions" module
Errors:
- Content exceeds 2000 characters
- Suggestions channel not configured
- Channel doesn't exist or bot doesn't have access
Approval / Rejection
Moderators can click the Approve or Reject buttons under a suggestion:
Approve (✅)
- Embed changes color to green (
color_approved) - Status: "✅ Approved by [moderator]"
- Buttons disappear
- Thread (if exists) is archived and locked
- Log in "suggestions" module
Reject (❌)
- Embed changes color to red (
color_rejected) - Status: "❌ Rejected by [moderator]"
- Buttons disappear
- Thread (if exists) is archived and locked
- Log in "suggestions" module
Permissions for approve/reject: Configurable (moderation_roles / custom)
Configuration
| Option | Description | Default Value |
|---|---|---|
channel_id | Channel for sending suggestions | none (required) |
color_pending | Pending suggestion embed color | #3B82F6 (blue) |
color_approved | Approved suggestion color | #22C55E (green) |
color_rejected | Rejected suggestion color | #EF4444 (red) |
create_thread | Create discussion thread per suggestion | false |
anonymous | Hide suggestion author | false |
manage_permission | Who can approve/reject | moderation_roles |
manage_roles | Roles for custom permission | none |
counter | Auto-incrementing suggestion counter | 0 |
Required Configuration
The suggestions channel (channel_id) must be configured in the dashboard. Without it, the /suggest command will return an error.
Persistent Views
The Approve/Reject buttons work even after a bot restart — they use permanent custom_id values and are registered when the cog loads.