Suggestions
The suggestion system allows members to submit ideas through a modal form. You can fully customize this modal with text inputs and dropdown menus using Discord’s latest modal components.
In your config.yml
, navigate to the SuggestionSettings
section.
Key settings:
UseQuestionModal
Must be set totrue
to enable modal-based suggestions.AdditionalModalInputs
Defines up to 4 extra fields in your suggestion modal. These fields can be either:TextInput
→ Free text fieldsStringSelect
→ Dropdown menus with predefined options
🔧 AdditionalModalInputs Structure
Each input requires the following properties depending on its type:
1. Text Inputs
1: # Additional details text input
Type: "TextInput"
ID: "details" # {modal_details}
Question: "Additional Details (Optional)"
Placeholder: "Any extra context, examples, or details about your suggestion..."
Style: "Paragraph" # Short + Paragraph
Required: false
maxLength: 2000
2. StringSelect Dropdowns
2: # Product selection dropdown
Type: "StringSelect"
ID: "product" # Available as: {modal_product}, {modal_product_formatted}, {modal_product_label}, {modal_product_emoji}
Label: "Product Selection"
Description: "Which product is this suggestion for?"
Placeholder: "Choose a product..."
Required: true
Options:
- Label: "Drako Bot"
Value: "drako_bot"
Description: "Multi-purpose Discord bot"
Emoji: "🤖"
- Label: "Drako Tickets"
Value: "drako_tickets"
Description: "Advanced ticket management system"
Emoji: "🎫"
- Label: "Discord Platform"
Value: "discord"
Description: "General Discord platform suggestions"
Emoji: "💬"
- Label: "Other"
Value: "other"
Description: "Other products or services"
Emoji: "📦"
📝 Example Configuration
Here’s a complete example with a mix of inputs:
SuggestionSettings:
UseQuestionModal: true
AdditionalModalInputs:
1: # Product field
Type: "TextInput"
ID: "product"
Question: "Which product is this suggestion for?"
Placeholder: "Drako Bot, Drako Tickets, Discord"
Style: "Short"
Required: true
2: # Priority dropdown
Type: "StringSelect"
ID: "priority"
Label: "Suggestion Priority"
Placeholder: "Choose a priority..."
Required: true
Options:
- Label: "🟢 Low Priority"
Value: "low"
- Label: "🟡 Medium Priority"
Value: "medium"
- Label: "🔴 High Priority"
Value: "high"
3: # Category dropdown
Type: "StringSelect"
ID: "category"
Label: "Suggestion Category"
Required: false
Options:
- Label: "🐛 Bug Fix"
Value: "bug"
- Label: "✨ New Feature"
Value: "feature"
- Label: "⚡ Improvement"
Value: "improvement"
🏷️ Using Placeholders in Embeds
Once configured, these inputs can be displayed inside your SuggestionEmbed
using placeholders:
{modal_[ID]}
low
{modal_[ID]_formatted}
🟢 Low Priority
{modal_[ID]_label}
Low Priority
{modal_[ID]_emoji}
🟢
Example Embed
SuggestionEmbed:
EmbedColor: "#1769FF"
EmbedTitle: "{user}'s Suggestion"
EmbedDescription:
- "**Suggestion**"
- "```{suggestion}```"
- ""
- "**📋 Details**"
- "> **Product:** {modal_product}"
- "> **Priority:** {modal_priority_formatted}"
- "> **Category:** {modal_category_formatted}"
EmbedFooter: "Suggestion ID: {SuggestionID} | {LongTime}"
Thumbnail: true
AuthorIcon: true
⚙️ Important Notes
Maximum 4 inputs per modal (Discord limitation)
Maximum 25 options per dropdown
Labels and values must each be ≤ 100 characters
Last updated