Skip to main content

Embeds

Guide for the fundamentals of scripting embeds in raze.

Framework

In an embed, each setting is defined as a key-value pair separated by a colon. Multiple parameters are separated by $v.
  • { — marks the start of a parameter
  • : — separates the key from its value
  • $v — separates multiple parameters
  • } — marks the end of a parameter
For commands that accept both plain text and embed code, prefix your input with {embed}$v to signal that it’s an embed script.

Basic parameters

Parameters with multiple arguments

For complex parameters, separate each sub-argument with &&.
  • name — the author’s display name (required)
  • icon — the author icon URL (optional)
  • name — field title (required)
  • value — field content (required)
  • inline — show field inline with others (optional, true/false)
  • label — button text (required)
  • emoji — button emoji (optional)
  • url — button link URL (required)

Containers

Containers use Discord’s Component V2 (cv2) layout system — a structured card-style message that replaces the embed entirely. Unlike embeds, containers support mixed content (text, images, buttons, dropdowns) in a single block.
Containers and embeds are mutually exclusive. If {container} is present, any embed parameters in the same script are ignored.
Use {container: ...} with sub-tokens separated by &&:

Sub-tokens

Button args

After button: (label), add further &&-separated args in order:
Up to 5 buttons share a single row. A new row starts automatically when a row fills up.

Select args

After select: (placeholder), add options with &&-separated option: tokens:
Each option: starts a new choice. value:, description:, and emoji: apply to the preceding option. Maximum 25 options.

Full container example

Full Embed example

FAQ

How do I add a new line in a description?

Press SHIFT + ENTER to insert a line break when typing embed code in Discord.

My embed isn’t showing — what’s wrong?

Make sure you prefix the code with {embed}$v when the command expects a message. Without this, raze will treat the input as plain text.