NapNodes
Free tool · Discord bots

Discord embed generator

Fill in whatever you want it to have (title, text, colour, fields, images, footer), see how it will look in Discord and copy the code for your bot in discord.js or discord.py, or the JSON to send it through a webhook with no bot.

Message
Title, text and colour
Author
Fields (2/25)

Images and footer

How it will look in Discord

Server team

Welcome to the server!

Read the rules before posting and introduce yourself in #general. If you need help, mention a moderator.

Rules

#rules

Events

Every Friday

Rules updated • Today

185 of the 6000 characters a message allows across all the embed's texts.

The code

index.js
const { EmbedBuilder } = require("discord.js");

const embed = new EmbedBuilder()
  .setColor(0x5b4ae8)
  .setTitle("Welcome to the server!")
  .setAuthor({ name: "Server team" })
  .setDescription("Read the **rules** before posting and introduce yourself in #general.\nIf you need help, mention a _moderator_.")
  .addFields(
    { name: "Rules", value: "#rules", inline: true },
    { name: "Events", value: "Every Friday", inline: true },
  )
  .setTimestamp()
  .setFooter({ text: "Rules updated" });

// As the reply to a slash command:
await interaction.reply({ embeds: [embed] });
// Or in a channel:
// await channel.send({ embeds: [embed] });

For discord.js v14. It goes inside your command or event; the require, once at the very top.

Ideas for your Discord

  • Server rules: each rule in a field, in your community's colour, in the #rules channel.
  • Welcome: the message your bot sends when someone joins, with the channels to go to.
  • Announcements and events: date and time in inline fields and the event image at the bottom.
  • Your game server's status: address, version and players, which your bot can keep updating.

No bot yet? Start with the guide on making a Discord bot in JavaScript or the Python one: the code from here goes inside their commands.

Frequently asked questions

What is a Discord embed?

A message formatted as a card: title, text, colour, fields in columns, images and footer. Bots and webhooks can send them; a normal account can't write them by hand.

How do I send it without a bot?

With a webhook: in Discord, Edit Channel → Integrations → Webhooks → “New Webhook” and “Copy Webhook URL”. Pick “Webhook (JSON)” in the tool and send that JSON to that address with a POST request (for example, curl -H "Content-Type: application/json" -d @embed.json and the address). That address works like a password: don't share it.

And from my bot?

Pick “discord.js” or “discord.py” and paste the code inside your command or event. With a slash command, the embed comes out as the reply; with channel.send, in the channel you choose.

Why does Discord give me “Invalid Form Body”?

It's almost always a limit: 256 characters for the title, 4096 for the description, 25 fields at most (name of 256 and value of 1024, both required), 2048 for the footer and 6000 across all the texts. The tool warns you before you copy it. Another cause is an image that doesn't start with http:// or https://.

Can I use bold or links inside the embed?

Yes: the description and the field values support Discord's Markdown (**bold**, *italics*, __underline__, ~~strikethrough~~, `code`) and links with [text](https://…). The preview shows the basic formatting; you'll see the links when you send it.

Are the images uploaded here?

No: the embed carries the address of an image that's already online (for example, one you've uploaded to a channel in your Discord: right-click → “Copy Link”). Nothing you type leaves your browser.

Where does it stay online?

A bot only answers while its program is running. At NapNodes you get a free 256 MB Discord bot, no card and always on (it renews every week with one click), in Node.js or Python.

Create your free bot

More free tools

All the tools