Skip to main content

Message Builder

The Message Builder module enables creating, managing, and sending custom Discord embeds from saved templates. Templates are configured through the dashboard using a visual inline editor.

Enabling the Module

  1. Dashboard → Your server → toggle Message Builder
  2. Click Edit to create and manage templates
  3. Configure sending permissions
  4. Save changes

Configuration

OptionTypeDefaultDescription
send_permissionstring"moderation_roles"Who can send embeds
send_roleslist[]Sending roles (when permission = "custom")
allowed_channelslist[]Channels where embeds can be sent (empty = all)
templatesarray[]List of saved templates

send_permission values

  • "moderation_roles" — roles from the moderation configuration
  • "custom" — roles from send_roles

Discord administrators always have permission to send.

Dashboard — Configuration

The Message Builder panel has a two-column layout:

  • Left column (1/4): Sidebar with template list (CRUD: create, edit, delete)
  • Right column (3/4): Visual embed editor (inline — the editor IS the preview)

Embed Editor

The editor is simultaneously the preview — what you see is exactly what will be sent:

  • Content — text field above the embed (plain text message)
  • Title — clickable to edit
  • Description — clickable to edit
  • Color — presets (circles) + custom rainbow picker
  • Thumbnail — clickable placeholder (dashed border) → URL input
  • Image — clickable placeholder → URL input
  • Author — name + icon
  • Footer — footer text
  • Fields — list of fields (name + value + inline toggle) + "Add Field" button

Template Management

  • Create — "New Template" button, provide a name
  • Edit — click a template in the sidebar, it loads into the editor
  • Delete — delete button on the template card
  • Send — "Send to Channel" button with channel selection

Commands

/embed send

Sends a saved template to a channel.

ParameterRequiredDescription
template_nameTemplate name (with autocomplete)
channelTarget channel (default: current)

Flow:

  1. Checks permission (send_permission)
  2. Searches for template by name (case-insensitive)
  3. Checks if the channel is allowed (allowed_channels)
  4. Builds embed from template configuration
  5. Sends embed (+ optional content text)
  6. Updates last_sent_channel_id and last_sent_message_id in the template
  7. Logs the action
Autocomplete

The template_name parameter supports autocomplete — after typing part of the name, Discord will suggest matching templates.

/embed list

Displays a list of all saved templates (ephemeral).

Shows:

  • Template name
  • Title preview (truncated to 50 characters)
  • Total template count

Channel Restrictions

If allowed_channels is not empty, embeds can only be sent to channels on this list. Attempting to send to another channel will return an error.

When the list is empty — sending is allowed to any channel.

Sent Message Tracking

Each template stores:

  • last_sent_channel_id — channel ID of the last send
  • last_sent_message_id — message ID

This enables future features (editing sent embeds, dashboard preview).

Listened Events

The Message Builder module does not listen to any events — it works exclusively on slash commands and dashboard API.

Logging

Actions logged by Logs under the message_builder category:

  • 📨 Embed Sent — template name, who sent it, to which channel

Tips

Best practices
  • Create templates for recurring announcements (e.g., weekly news, events)
  • Use allowed_channels to restrict where embeds can be sent
  • The Content field (above the embed) is useful for pinging roles/everyone
  • Test embeds using /embed send on a test channel before the actual one
Template Structure

Organize templates with clear names:

  • weekly-update — weekly update
  • event-announcement — event announcement template
  • rules — server rules
warning

Deleting a template is irreversible. Make sure it's no longer needed.