Resources

Embeds

Master the fundamentals of greed's custom embed scripting.

Core Structure

greed uses a specialized token-based system for building embeds. Each component is defined within braces {} and follows a key: value pattern.

The syntax for a standard parameter is:

  • { - Opens the parameter block.
  • key: - Identifies the property (e.g., title, description).
  • value - The content or configuration for that property.
  • } - Closes the parameter block.

Block Separators

To organize your script or separate individual embed properties, you can use $v. In greed's engine, this acts as a newline separator, allowing the parser to clearly distinguish between different nodes.

Example
{title: Hello World}$v{description: This is a custom embed!}

Available Parameters

Most parameters take a simple text or URL value.

KeyDescriptionExample
contentPlain text message outside the embed.{content: Hello {user}}
titleThe main title of the embed.{title: Server News}
descriptionThe body text of the embed.{description: Join our Discord!}
colorThe sidebar color (Hex or Decimal).{color: #ccccff}
urlMakes the title a clickable link.{url: https://greed.best}
imageA large image at the bottom.{image: https://.../img.png}
thumbnailA small image in the top right.{thumbnail: https://.../icon.png}
timestampAdds the current time to the footer.{timestamp}

Advanced Parameters

Some parameters support multiple values separated by &&.

Mixing Text and Embeds

By default, greed attempts to identify if you are sending a raw text message or an embed script. If you want to ensure the bot parses your script correctly—especially when including variables—begin your message with {embed}$v.

Template
{embed}$v{title: Welcome!}$v{description: Glad you joined us, {user.mention}!}

Tips & Tricks

  • New Lines: You can create real new lines in your {description} by simply pressing Enter within the script.
  • Multiple Embeds: Want to send more than one embed in a single message? Just start a new {embed} block (up to 10 per message).
  • Zero-Width Spaces: If you need an empty field or title, you can use a zero-width space character.

Discord Embed Limits

Be aware of these hard Discord limits when building embeds:

ElementLimit
Embeds per message10
Title length256 characters
Description length4096 characters
Fields per embed25
Field name length256 characters
Field value length1024 characters
Footer text length2048 characters
Author name length256 characters
Total content across all fields6000 characters
Buttons per message5

If you exceed these limits, your embed script will fail to render. The parser will report the specific limit that was exceeded.

Mentions in Embeds

When your embed contains role or user mentions (e.g., {guild.owner_id} rendered as a mention), they will only ping if your server has the appropriate allowed mentions configured for the bot's message. By default, @everyone and role pings are disabled in Discord for security reasons.

If mentions in your scripts aren't pinging users, check your server's permissions for the bot and any custom role mention settings configured through greed's moderation features.

Parsing Rules

  • Keys are case-insensitive: {Title: ...} and {title: ...} work the same way.
  • Whitespace after colon is optional: {title:text} and {title: text} both work.
  • Separators: Use $v to explicitly separate nodes (it becomes a newline), or {node1}{node2} to chain without space.
  • Spaces between nodes: } { is automatically converted to }{ so spacing doesn't break parsing.
  • Unknown keys are ignored: If you use a key like {unknown: text}, it simply won't appear in the output.
  • Unresolved variables: If a variable like {undefined.value} doesn't exist, it renders as the literal text undefined.value.

If you have an unclosed brace (e.g., {title: hello without a closing }), the parser will skip it and continue with the rest of your text.