Custom Commands homeCustom Commands
  • Blog
  • Premium
  • Templates
  • Support
Back to blog
// blog

Discord embeds, and how to build one that does not look like a wall

Every part of an embed, what it is actually for, and the limits nobody tells you about until your message fails to send.

Md Shahriyar Alam

15 minutes ago

·3 min read

An embed is the boxed message with a coloured bar down the left. Used well it makes an announcement look deliberate. Used badly it is a wall of text with a stripe on it.

Here is what each part is for.

The embed builder with a live Discord preview beside it

The parts

Title — one line, the thing being announced. Not a sentence.

Title URL — makes the title clickable. Useful for linking a post, a ticket or a page without a bare URL in the body.

Description — the body. Supports full Discord markdown: bold, italics, lists, links, quotes. This is where almost everything goes.

Colour — the bar. Pick one per message type and stay consistent: green for success, red for errors, blue for information. Members learn the code without being told.

Author — a small name and icon above the title. Good for "posted by" or a category label.

Thumbnail — small image, top right. Good for a logo or an avatar.

Image — large image below the body. Good for a banner or a generated card.

Fields — name/value pairs. Set them inline and they sit side by side, up to three across.

Footer — small text at the bottom. Attribution, a note, a version.

Timestamp — renders in each viewer's own timezone. Free, and stops you writing dates that are wrong for half your server.

Fields are the part people misuse

Fields are for structured pairs, not paragraphs. Price, quantity, status, date. Short name, short value.

Three inline fields make a clean row. Two make a lopsided one. Eight make a spreadsheet nobody reads.

If your field value runs to three lines, it is not a field. Put it in the description.

The limits

Discord's embed character limits, including the 6000 character total

These are Discord's, not any bot's, and hitting one means the message simply does not send:

PartLimit
Title256 characters
Description4096 characters
Fields25 per embed
Field name256 characters
Field value1024 characters
Footer2048 characters
Author name256 characters
Total across all parts6000 characters

That last row is the one that catches people. Every individual part can be legal while the embed as a whole is not.

Things that look like they should work and do not

Masked links in plain messages. [text](url) renders inside an embed description. In a normal message it does not — you get the raw brackets. If you want a tidy link, it has to be in an embed.

Markdown in field names. Field names render plain. Formatting only applies to the description and field values.

Images by upload. An embed image is a URL. If your image lives on your computer, it needs to be hosted somewhere first.

Use the live preview

Embeds are fiddly enough that guessing wastes time. Build them somewhere that renders exactly what Discord will render, as you type — the colour, the field layout, the wrapping.

The alternative is save, trigger, look, adjust, repeat, and that loop gets old at about the fourth iteration.

Reuse them

An embed you have built once should be reusable. A rules embed, a ticket panel, a shop listing — build it, name it, and attach it to any command or message that needs it. Editing the embed then updates everywhere it is used, instead of you hunting through six commands.

Free plan

10 embeds on the free plan, with the visual builder and live preview, no card required.

ccbot.appBuild one on the dashboard →

Loading comments…

{}

Need help?

Have a question, a suggestion, or stuck on something? Reach out — we're happy to help.

Join support server
Custom CommandsCustom Commands

The #1 custom commands Discord bot — build commands, events and databases with zero boilerplate.

Join the support server

Product

  • Overview
  • Reaction roles
  • Welcome messages
  • Embed builder
  • Custom bot
  • Why us?
  • Premium
  • Template shop

Resources

  • Blog
  • Support
  • Dashboard

Company

  • Privacy
  • Contact
[email protected]

2 Frederick Street, London, WC1X 0ND

Payments secured by Stripe
{ / } custom commands

© WEiRDSOFT LTD. All rights reserved.