Skip to main content

Documentation Index

Fetch the complete documentation index at: https://docs.blibot.lat/llms.txt

Use this file to discover all available pages before exploring further.

Overview

Components V2 embeds are a modern Discord message format. Instead of a single embed object, they use a stack of blocks — each block is either text, an image, or a separator. They render as rich, clean layouts directly in chat. Unlike raw embed scripting, V2 embeds are defined in JSON and saved by name for reuse.

Creating a V2 embed

,embed create <name> [json blocks]
The JSON argument must be an array ([...]) of block objects. Omitting the JSON starts a classic draft instead (see Building embeds interactively).

Block types

BlockFieldsDescription
textcontentA text block. Supports all variables.
imageurlAn image. Must be a valid http/https URL.
sepspacing (optional)A horizontal divider. Default spacing: 1.

Text block

{ "type": "text", "content": "Welcome {user.mention}!" }
Supports all standard variables — {user.*}, {guild.*}, {channel.*}, etc.

Image block

{ "type": "image", "url": "https://i.imgur.com/example.png" }
Invalid or non-HTTPS URLs are silently skipped so the rest of the embed still sends.

Separator block

{ "type": "sep", "spacing": 1 }
Adds a thin horizontal divider line. Increase spacing for more visual breathing room.

Full example

[
  { "type": "text", "content": "👋 Welcome {user.mention} to **{guild.name}**!" },
  { "type": "sep" },
  { "type": "text", "content": "You are member **{user.join_position_suffix}**.\nJoined: {user.joined_at}" },
  { "type": "image", "url": "https://i.imgur.com/example.png" }
]
Paste the entire array (minified, no line breaks) after the name in ,embed create.

Sending a saved embed

,embed send <name>
When using ,embed sent and the target is the same channel where the command was typed, the command message is deleted automatically so only the embed appears.

Managing saved embeds

,embed list

Variables

All standard variables work inside "content" fields of text blocks:
{ "type": "text", "content": "Hey {user.mention}, welcome to {guild.name}!" }
See Variables for the full list.

Building embeds interactively

Use /embed create name:(name) to create a named embed and open the interactive editor panel. You can also build a temporary draft using prefix commands:
,embed create
V2 embeds, raw code embeds, and classic embeds can all coexist as saved templates. ,embed send automatically detects which type each saved embed is and renders it correctly.