Suggestions

Configure suggestions in suggestions.yml under SuggestionSettings.

Key settings

  • UseQuestionModal: Must be set to true to enable modal-based suggestions.

  • AdditionalModalInputs: Adds up to 4 extra fields to the suggestion modal:

    • TextInput β†’ free text fields

    • StringSelect β†’ dropdown menus with predefined options


AdditionalModalInputs structure

Each input requires the properties shown below depending on its type.

1

Text Inputs

Example configuration for a TextInput:

TextInput example
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

Notes:

  • Use Style to choose between short (single-line) and paragraph (multi-line).

  • maxLength controls the maximum allowed characters.

2

StringSelect Dropdowns

Example configuration for a StringSelect:

StringSelect example
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: "Aegis Bot"
      Value: "aegis_bot"
      Description: "Multi-purpose Discord bot"
      Emoji: "πŸ€–"
    - Label: "Aegis Tickets"
      Value: "aegis_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: "πŸ“¦"

Notes:

  • Maximum 25 options per dropdown (Discord limitation).

  • Each option supports Label, Value, optional Description, and optional Emoji.

  • Selected values are available via multiple placeholders (see below).


Example configuration

Here’s a complete example with a mix of inputs:

suggestions.yml β€” Example
SuggestionSettings:
  UseQuestionModal: true
  AdditionalModalInputs:
    1: # Product field
      Type: "TextInput"
      ID: "product"
      Question: "Which product is this suggestion for?"
      Placeholder: "Aegis Bot, Aegis 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

Available placeholders:

  • {modal_[ID]} β†’ raw value (e.g., low)

  • {modal_[ID]_formatted} β†’ formatted with emoji if provided (e.g., 🟒 Low Priority)

  • {modal_[ID]_label} β†’ label without emoji (e.g., Low Priority)

  • {modal_[ID]_emoji} β†’ emoji only (e.g., 🟒)

Example embed:


Important notes

  • Maximum 4 inputs per modal (Discord limitation)

  • Maximum 25 options per dropdown

  • Labels and values must each be ≀ 100 characters


Last updated