Embed Creator

The Embed Creator lets you build custom Discord embed messages from the dashboard and send them directly to any text channel in your guild. Embeds are fully saved as templates so you can reuse, edit, duplicate, or resend them at any time without having to rebuild them from scratch.

📖 Table of Contents

🔍 How It Works

The flow is simple:

  1. Click Add Embed to open the builder modal.
  2. Fill in the fields you want — title, description, author, fields, images, color, etc.
  3. Watch the live preview update in real time on the right side of the modal.
  4. Pick the target Discord channel at the bottom of the modal.
  5. Click Send Embed. The embed is posted to Discord and saved as a template.
  6. The saved template appears in the Saved Embeds list on the page, where you can edit, duplicate, resend, or delete it later.
All embeds are saved to the database. Even after the Discord message is deleted, the template remains in the Saved Embeds list so you can resend it later.

🔒 Permissions

The Embeds page is accessible from Dashboard → Embeds. Access requires that you are logged in and have dashboard access to the selected guild. There is no separate Discord role requirement for the dashboard embed builder — access is controlled by who can log into the dashboard.

The bot must have Send Messages and Embed Links permissions in the target channel. If the bot lacks these permissions, the embed will fail to send.

➕ Opening the Builder

A blue Add Embed button appears in the top-right corner of the Embeds page. Clicking it opens the full-screen embed builder modal in Create mode.

When you open the modal in Edit mode (by clicking ✏️ Edit on a saved template), the modal title changes to "Edit Embed" and all fields are pre-filled with the saved data. The channel selector is locked to the channel where the embed was originally sent.

The left side of the modal contains the form. Fields are grouped into sections:

Author Section

Field Limit Description
Author Name 256 chars Small text shown above the embed title. Often used as a label for the embed's source or category (e.g., "Guild Announcement").
Author Icon (URL) Valid URL A small circular icon image shown next to the Author Name. Must be a direct image URL (e.g., ending in .png or .jpg). Validated in real time — turns green if valid, red if invalid.
Author URL Valid URL Makes the Author Name clickable as a hyperlink.

Title & Description

Field Limit Required Description
Title 256 chars Yes ✱ The main bold heading of the embed, shown in blue. This is the only required field — you must have a title to send an embed.
Title URL Valid URL No Makes the embed title clickable as a hyperlink.
Description 4096 chars No The main body text of the embed. Supports basic Discord markdown: **bold**, *italic*, `code`, and newlines.

Images

Field Description
Thumbnail A small image displayed in the top-right corner of the embed. Click the upload area or drag an image onto it. Supported formats: PNG, JPG, GIF, WebP. A preview appears below the upload area once an image is selected. Click the × button on the preview to remove it.
Image A large image displayed at the bottom of the embed, spanning the full width. Upload the same way as the thumbnail. Only available when creating. In edit mode, existing images are kept from the saved template — upload a new one to replace.
Image upload areas support drag and drop. Simply drag an image file from your computer and drop it onto the upload area.

Footer

Field Limit Description
Footer Icon (URL) Valid URL A small circular icon shown at the left of the footer text. Must be a direct image URL.
Footer Text 2048 chars Small gray text at the bottom of the embed. Commonly used for disclaimers, dates, or credits.

Color & Timestamp

Field Description
Color A color picker that sets the left-side accent bar color of the embed. Default is blue (#3498db). Click it to open the color picker and choose any color.
Include Timestamp Checkbox. When checked, the current date and time is appended next to the footer text in Discord.

📌 Custom Fields

Custom fields appear as labeled text blocks inside the embed body, below the description. They are useful for structured information like stats, rules, or lists.

Click + Add Field to insert a new field. Each field has:

Input Limit Description
Field Name 256 chars The bold label/title of this field block.
Field Value 1024 chars The content under the field name.
Inline checkbox When checked, this field is displayed side-by-side with other inline fields (up to 3 per row). When unchecked, the field takes the full width of the embed.
× Remove Red button in the top-right of the field block. Removes this field immediately.
Discord allows a maximum of 25 custom fields per embed.

👁️ Live Preview

The right side of the modal shows a real-time preview of how the embed will look in Discord, rendered in Discord's actual dark-theme style. The preview updates automatically as you type in any field.

Above the preview, a Total Embed Characters progress bar shows how close you are to Discord's 6,000-character total embed limit. The bar changes color as you approach the limit:

Bar color Meaning
Blue Normal — plenty of space remaining.
Orange / Yellow Warning — approaching the limit (above 75% used).
Red Danger — very close to the 6,000 character limit (above 90% used).

Individual field counters (e.g., 0/256 under the Title field) also change color following the same warning/danger pattern as you approach their specific limits.

📏 Character Limits Reference

Discord enforces strict limits on embed content. The builder enforces these in real time:

Field Maximum
Author Name 256 characters
Title 256 characters
Description 4,096 characters
Field Name 256 characters
Field Value 1,024 characters
Footer Text 2,048 characters
Number of Fields 25 fields
Total Embed 6,000 characters (sum of all text fields)

📨 Sending the Embed

At the bottom of the modal is the footer bar with two elements:

Element Description
Target Channel (dropdown) Lists all text channels in your Discord server that the bot can see and send messages to. You must select a channel before the Send button becomes active. In Edit mode, this dropdown is locked to the original channel.
Send Embed (button) Disabled until both a title is filled in and a channel is selected. In Create mode: sends the embed to Discord and saves a new template. In Edit mode: updates the existing Discord message in place (no new message is created — the old one is edited). After sending, a success modal appears and the Saved Embeds list is refreshed.
Before sending, the bot runs a full validation check on all URLs and character counts. If anything is out of bounds, a Validation Error modal appears explaining what needs to be fixed. The embed is not sent until all validations pass.

💾 Saved Embeds List

Below the Add Embed button, the Saved Embeds section shows all embed templates saved for this guild. Each card in the list shows:

Element Description
Title The embed's title as it will appear in Discord.
Status badge Shows the current state of the template:
  • ● Sent — the embed has been sent and its Discord message still exists.
  • ● Edited — the embed was edited after being sent.
  • ● Draft — saved but not yet sent to any channel.
Mini preview A compact preview of the embed title, the first 100 characters of the description, and the number of fields.
Created / Last sent Dates showing when the template was created and when it was last sent to Discord.
Action buttons Four icon buttons — see the next section.

🔘 Template Action Buttons

Each saved embed card has up to four action buttons in its bottom-right corner:

Button Icon What it does
✏️ Edit fa-edit Opens the builder modal in Edit mode. All fields are pre-filled with the saved embed data. The channel selector is locked to the original channel. Clicking Send Embed updates the existing Discord message in place — no new message is posted.
📋 Duplicate fa-copy Creates a copy of this template as a new draft. The duplicate has no Discord message linked to it yet (status: Draft). Useful for creating variations of an existing embed without modifying the original.
🔄 Update / Resend fa-sync or fa-paper-plane If the embed was already sent (fa-sync icon): updates the existing Discord message with the current saved template data. A confirmation prompt appears ("This will update the Discord message. Continue?").

If the embed was never sent (fa-paper-plane icon): prompts you to enter a channel ID, then sends the embed to that channel.
🗑️ Delete fa-trash Permanently deletes the template from the database. A confirmation prompt appears before deletion. If the embed was sent to Discord, the Discord message is also deleted. This action cannot be undone.
Deleting a template also deletes the Discord message. If you want to keep the message in Discord but remove it from the dashboard list, there is no partial delete — you must either keep the template or accept that the Discord message will also be removed.

🔧 Troubleshooting

Problem Cause Solution
"Send Embed" button stays disabled Either the Title field is empty or no channel is selected Fill in the Title (required ✱) and select a Target Channel in the footer bar
Validation Error modal appears when sending A URL field contains an invalid URL, or a field is over its character limit Read the error message carefully — it specifies which field is invalid. URL fields turn red when invalid. Fix the issue and try again
Channel dropdown shows "Loading channels..." and stays empty The bot may not be in the server, or lost connection Check that the bot is online and in the correct server. Refresh the page and try again
Embed sends successfully but doesn't appear in Discord The bot lacks Send Messages or Embed Links permission in that channel In Discord, go to the channel settings → Permissions and grant the bot both Send Messages and Embed Links
Update (🔄) button fails after editing The original Discord message was manually deleted from Discord The bot cannot edit a message that no longer exists. Delete the template and create it again fresh
Image doesn't appear in the preview but was uploaded The preview renders URLs; uploaded files show a local preview only until sent This is expected — the actual image appears in Discord once it is sent. The preview uses a local blob URL