Discord embed builder
Write your message, pick a color, add fields and buttons: the preview shows what members will see in Discord, and the tool checks the official limits. Then copy the message JSON for your bot.
Free, no account. Everything happens in your browser: what you write is never sent or stored, and it is gone when you close the page.
Updated
How do I use the embed builder?
- Replace the example with your title and description. Discord formatting works: bold, italics, lists, links and timestamps.
- Pick the color of the stripe on the left, with the picker, a hex code or one of Discord’s colors.
- Add fields to show information side by side, then a footer.
- Add up to 5 buttons: a link button opens an address, the others send their custom_id to your bot.
- When the list of problems is empty, copy the message JSON.
What is a Discord embed?
An embed is a box that comes with a message: a colored stripe on the left, a title, a description, fields and a footer. Bots and webhooks use them for announcements, rules, game sheets or command results.
A member cannot type an embed by hand in Discord: it takes a bot or a webhook, which sends the message as JSON. That JSON is what the tool prepares.
What does each option do?
| Option | Name | Effect |
|---|---|---|
| Message text | content | the regular text, shown above the embed |
| Title | title | the first line of the embed, in bold |
| Description | description | the body of the embed, with Discord formatting |
| Color | color | the left stripe, written as a decimal integer: #5865F2 becomes 5793266 |
| Fields | fields | name and value pairs; “on the same line” (inline) puts them side by side |
| Footer | footer.text | a small gray line at the bottom of the embed |
| Buttons | components | a row of buttons under the message |
What are the limits of a Discord embed?
Discord refuses a message that goes over any one of these limits. The builder counts characters and flags every overrun before you copy the JSON.
| Part | Limit |
|---|---|
| Message text | 2000 characters |
| Title | 256 characters |
| Description | 4096 characters |
| Fields | 25 per embed |
| Field name | 256 characters |
| Field value | 1024 characters |
| Footer | 2048 characters |
| Message total (titles, descriptions, fields, footers and authors of all its embeds) | 6000 characters |
| Embeds per message | 10 |
| Buttons per row | 5 |
| Button text | 80 characters |
| Button custom_id | 1 to 100 characters |
| Link button address | 512 characters |
Which mistakes should I avoid?
- Writing the color as hex in the JSON: Discord expects an integer, the tool converts it.
- Going over 6000 characters in total by filling many fields, even if each field stays within its own limit.
- Leaving a field without a name or a value: Discord refuses the message.
- Giving two buttons of the same message the same custom_id: your bot could not tell which one was clicked, and Discord refuses the message.
- Sending buttons through a regular webhook: a webhook not owned by an application cannot send buttons that respond to clicks.
Where does this information come from?
Sources: embed limits, create message and buttons in Discord’s official documentation.
Frequently asked questions
How do I send the embed to my server?
The JSON is the body of the Discord API Create Message request. Your bot sends it in a channel, or as the reply to a slash command.
Can I put a timestamp in an embed?
Yes. Paste a code like <t:1618953630:R> in the description or in a field value: Discord shows it in each member’s own time.
How many buttons fit under a message?
A row holds 5 buttons at most. The tool prepares one row; a bot can send several in the same message.
Is my embed saved anywhere?
No. Everything stays in your browser: nothing is sent to discbot.net or to Discord, and the draft is gone when you close the page.
Want your bot to send this embed and answer the buttons? Describe it in plain words, the discbot.net assistant writes the code and you test the clicks before publishing. It is free for now.
