> ## Documentation Index
> Fetch the complete documentation index at: https://docs.celestia.rest/llms.txt
> Use this file to discover all available pages before exploring further.

# Embed Builder

> Create and manage custom Discord embeds with scripts or interactive builder

## Overview

The embed builder system provides two ways to create custom Discord embeds: a script-based approach using embed syntax, and an interactive button-based builder. Both support advanced features like custom buttons, placeholders, and VoiceMaster integration.

<Info>
  Embeds support dynamic placeholders for user info, server stats, timestamps, and more.
</Info>

***

## Two Methods

<CardGroup cols={2}>
  <Card title="Script Method (Prefix)" icon="code">
    Use embed script syntax with placeholders

    **Commands:** `~embed create`, `~embed copy`

    **Best for:** Advanced users, automation, templates
  </Card>

  <Card title="Interactive Builder (Slash)" icon="mouse-pointer">
    Click buttons to build embeds visually

    **Commands:** `/embed builder`, `/embed edit`

    **Best for:** Quick creation, visual editing
  </Card>
</CardGroup>

***

## Script Method Commands

<AccordionGroup>
  <Accordion title="embed create" icon="plus">
    Create and send an embed using script syntax.

    <CodeGroup>
      ```bash Syntax theme={null}
      ~embed create {embed}$v{title: Title}$v{description: Text}{embed}
      ```

      ```bash Example theme={null}
      ~embed create {embed}$v{title: Welcome}$v{description: Hello {user.mention}!}{embed}
      ~embed create {embed}$v{title: Server Info}$v{description: {guild.name} has {guild.count} members}{embed} --name myembed
      ~ce {embed}$v{title: Rules}$v{color: ff0000}{embed} --welcome #welcome
      ```
    </CodeGroup>

    **Options:**

    * `--name <name>` — Save the embed
    * `--welcome <#channel>` — Add to welcome system
    * `--goodbye <#channel>` — Add to goodbye system
    * `--booster <#channel>` — Add to booster system

    **Aliases:** `ce`, `createembed`\
    **Permissions:** None
  </Accordion>

  <Accordion title="embed preview" icon="eye">
    Preview an embed without sending it publicly.

    <CodeGroup>
      ```bash Syntax theme={null}
      ~embed preview {embed}$v{...}{embed}
      ```

      ```bash Example theme={null}
      ~embed preview {embed}$v{title: Test}$v{description: Testing}{embed}
      ```
    </CodeGroup>

    **What It Does:**

    * Shows how the embed will look
    * Doesn't save or send publicly
    * Perfect for testing

    **Permissions:** None
  </Accordion>

  <Accordion title="embed copy" icon="copy">
    Copy embed code from any message.

    <CodeGroup>
      ```bash Syntax theme={null}
      ~embed copy <message_link>
      ```

      ```bash Example theme={null}
      ~embed copy https://discord.com/channels/123/456/789
      ```
    </CodeGroup>

    **What It Does:**

    * Extracts embed code from message
    * Includes buttons if present
    * Returns ready-to-use script

    **How to Get Message Link:**
    Right-click message → Copy Message Link

    **Permissions:** None
  </Accordion>

  <Accordion title="embed list" icon="list">
    View all your saved embeds.

    <CodeGroup>
      ```bash Syntax theme={null}
      ~embed list
      ```

      ```bash Example theme={null}
      ~embed list
      ```
    </CodeGroup>

    **What It Shows:**

    * All embeds you've saved
    * Embed names
    * Quick reference list

    **Permissions:** None
  </Accordion>

  <Accordion title="embed delete" icon="trash">
    Delete a saved embed.

    <CodeGroup>
      ```bash Syntax theme={null}
      ~embed delete <name>
      ```

      ```bash Example theme={null}
      ~embed delete myembed
      ~embed delete welcome-msg
      ```
    </CodeGroup>

    **What It Does:**

    * Permanently deletes the embed
    * Cannot be undone
    * Removes from all systems

    **Permissions:** None
  </Accordion>
</AccordionGroup>

***

## Interactive Builder Commands

<AccordionGroup>
  <Accordion title="/embed builder" icon="plus">
    Start the interactive embed builder.

    <CodeGroup>
      ```bash Syntax theme={null}
      /embed builder [number]
      ```

      ```bash Example theme={null}
      /embed builder
      /embed builder number:3
      ```
    </CodeGroup>

    **Options:**

    * **number** — Create multiple embeds (1-10)

    **What It Does:**

    * Opens button interface
    * Click buttons to add/edit fields
    * Save when finished

    **Buttons Available:**

    * Title, Description, Author
    * Footer, Color, Thumbnail
    * Image, URL, Timestamp
    * Add Field, Add Button
    * Send via Webhook
    * Add VM Buttons (requires Manage Server)

    **Permissions:** None (Admin for visibility)
  </Accordion>

  <Accordion title="/embed edit" icon="pen">
    Edit a saved embed interactively.

    <CodeGroup>
      ```bash Syntax theme={null}
      /embed edit name:<embed_name>
      ```

      ```bash Example theme={null}
      /embed edit name:welcome
      /embed edit name:rules
      ```
    </CodeGroup>

    **What It Does:**

    * Loads saved embed
    * Opens button interface
    * Make changes and save

    **Permissions:** None
  </Accordion>

  <Accordion title="/embed send" icon="paper-plane">
    Send a saved embed to a channel.

    <CodeGroup>
      ```bash Syntax theme={null}
      /embed send name:<embed_name> channel:<#channel>
      ```

      ```bash Example theme={null}
      /embed send name:welcome channel:#welcome
      /embed send name:rules channel:#rules
      ```
    </CodeGroup>

    **What It Does:**

    * Sends the saved embed
    * Includes buttons if configured
    * Parses all placeholders

    **Permissions:** None (Admin for visibility)
  </Accordion>

  <Accordion title="/embed list" icon="list">
    View your saved embeds (slash version).

    <CodeGroup>
      ```bash Syntax theme={null}
      /embed list
      ```

      ```bash Example theme={null}
      /embed list
      ```
    </CodeGroup>

    **Permissions:** None
  </Accordion>

  <Accordion title="/embed delete" icon="trash">
    Delete a saved embed (slash version).

    <CodeGroup>
      ```bash Syntax theme={null}
      /embed delete name:<embed_name>
      ```

      ```bash Example theme={null}
      /embed delete name:old-welcome
      ```
    </CodeGroup>

    **Permissions:** None
  </Accordion>
</AccordionGroup>

***

## Embed Script Syntax

### Basic Structure

```
{embed}
$v{title: Your Title}
$v{description: Your description text}
$v{color: ff0000}
{embed}
```

### Available Properties

| Property     | Usage            | Example                                            |
| ------------ | ---------------- | -------------------------------------------------- |
| title        | Embed title      | `$v{title: Welcome!}`                              |
| description  | Main text        | `$v{description: Hello {user}!}`                   |
| color        | Hex color        | `$v{color: ff0000}` or `$v{color: {random.color}}` |
| footer       | Bottom text      | `$v{footer: Server Info}`                          |
| footer\_icon | Footer image     | `$v{footer_icon: {guild.icon}}`                    |
| author       | Top name         | `$v{author: {user.tag}}`                           |
| author\_icon | Author image     | `$v{author_icon: {user.avatar}}`                   |
| author\_url  | Author link      | `$v{author_url: {author.url}}`                     |
| thumbnail    | Small image      | `$v{thumbnail: {user.avatar}}`                     |
| image        | Large image      | `$v{image: https://example.com/image.png}`         |
| url          | Title link       | `$v{url: https://example.com}`                     |
| timestamp    | Current time     | `$v{timestamp}`                                    |
| field        | Add field        | `$v{field: Name && Value && true}`                 |
| message      | Text above embed | `$v{message: Welcome to the server!}`              |

### Adding Buttons

```
{button: label:Click Me && url:https://example.com && style:link}
{button: label:Primary && style:primary && custom_id:btn_1}
{button: label:Success && style:success && emoji:✅}
```

**Button Styles:**

* `link` — Opens URL (requires `url`)
* `primary` — Blue button
* `secondary` — Gray button
* `success` — Green button
* `danger` — Red button

***

## Placeholders

### User Placeholders

| Placeholder         | Output            |
| ------------------- | ----------------- |
| `{user}`            | Username          |
| `{user.mention}`    | @mention          |
| `{user.id}`         | User ID           |
| `{user.tag}`        | Username#0000     |
| `{user.avatar}`     | Avatar URL        |
| `{user.joined_at}`  | Join date         |
| `{user.created_at}` | Account creation  |
| `{user.top_role}`   | Highest role name |
| `{user.nickname}`   | Server nickname   |
| `{user.boost}`      | true/false        |

### Server Placeholders

| Placeholder             | Output           |
| ----------------------- | ---------------- |
| `{guild.name}`          | Server name      |
| `{guild.id}`            | Server ID        |
| `{guild.icon}`          | Server icon URL  |
| `{guild.count}`         | Member count     |
| `{guild.owner}`         | Owner name       |
| `{guild.owner_mention}` | Owner mention    |
| `{guild.boost_count}`   | Boost count      |
| `{guild.boost_tier}`    | Boost tier (0-3) |

### Channel Placeholders

| Placeholder       | Output          |
| ----------------- | --------------- |
| `{channel}`       | Channel mention |
| `{channel.name}`  | Channel name    |
| `{channel.id}`    | Channel ID      |
| `{channel.topic}` | Channel topic   |

### Time Placeholders

| Placeholder   | Output         |
| ------------- | -------------- |
| `{time}`      | Relative time  |
| `{timestamp}` | Full timestamp |
| `{date}`      | Date only      |
| `{unix}`      | Unix timestamp |

### Special Placeholders

| Placeholder      | Output              |
| ---------------- | ------------------- |
| `{random.color}` | Random hex color    |
| `{author.url}`   | Discord profile URL |

***

## Usage Examples

<Tabs>
  <Tab title="Welcome Embed">
    ```bash theme={null}
    ~embed create {embed}
    $v{title: Welcome to {guild.name}!}
    $v{description: Hey {user.mention}, you're the {guild.member_count_ordinal} member!}
    $v{color: {random.color}}
    $v{thumbnail: {user.avatar}}
    $v{footer: Joined {time}}
    $v{footer_icon: {guild.icon}}
    $v{timestamp}
    {embed} --name welcome --welcome #welcome
    ```
  </Tab>

  <Tab title="Server Info">
    ```bash theme={null}
    ~embed create {embed}
    $v{author: {guild.name}}
    $v{author_icon: {guild.icon}}
    $v{title: Server Information}
    $v{description: Server stats and details}
    $v{field: Members && {guild.count} && true}
    $v{field: Boosts && {guild.boost_count} && true}
    $v{field: Owner && {guild.owner_mention} && true}
    $v{color: 5865F2}
    $v{thumbnail: {guild.icon}}
    $v{timestamp}
    {embed}
    ```
  </Tab>

  <Tab title="With Buttons">
    ```bash theme={null}
    ~embed create {embed}
    $v{title: Check out our links!}
    $v{description: Click the buttons below}
    $v{color: 00ff00}
    {button: label:Website && url:https://example.com && style:link && emoji:🌐}
    {button: label:Discord && url:https://discord.gg/example && style:link && emoji:💬}
    {button: label:Rules && url:https://example.com/rules && style:link && emoji:📜}
    {embed}
    ```
  </Tab>

  <Tab title="Interactive Builder">
    ```bash theme={null}
    # Start builder
    /embed builder

    # Click buttons to add:
    # 1. Click "Title" → Enter title
    # 2. Click "Description" → Enter text
    # 3. Click "Color" → Enter hex code
    # 4. Click "Thumbnail" → Enter image URL
    # 5. Click "Add Button" → Configure button
    # 6. Click "Save" → Enter name
    ```
  </Tab>

  <Tab title="Edit Saved">
    ```bash theme={null}
    # Edit with slash command
    /embed edit name:welcome

    # Or edit with prefix
    ~embed list
    ~embed copy <message_link>
    # Modify the code
    ~embed create {modified code} --name welcome
    ```
  </Tab>
</Tabs>

***

## VoiceMaster Buttons

Embeds can include VoiceMaster control buttons (requires Manage Server permission).

**How to Add:**

1. Use `/embed builder` or `/embed edit`
2. Click "Add VM Buttons"
3. Save the embed

**Buttons Included:**

* Lock/Unlock
* Hide/Reveal
* Kick
* Decrease/Increase limit
* Info
* Rename
* Claim

**Usage:**

* Send embed in channel
* Members click buttons to control their voice channels
* Requires VoiceMaster system enabled

***

## Permission Requirements

<CardGroup cols={2}>
  <Card title="Bot Permissions" icon="robot">
    The bot needs:

    * Send Messages
    * Embed Links
    * Manage Messages (for button interactions)
  </Card>

  <Card title="User Permissions" icon="user">
    Command Requirements:

    * **None** — Create/send/save embeds
    * **Administrator** — Slash commands visible to all
    * **Manage Server** — Add VM buttons
  </Card>
</CardGroup>

***

## Common Use Cases

<AccordionGroup>
  <Accordion title="Welcome messages with stats" icon="hand-wave">
    ```bash theme={null}
    ~embed create {embed}
    $v{title: Welcome {user}!}
    $v{description: You're member #{guild.count}}
    $v{color: {random.color}}
    {embed} --welcome #welcome
    ```

    Dynamic welcome with member count.
  </Accordion>

  <Accordion title="Server rules with buttons" icon="gavel">
    ```bash theme={null}
    ~embed create {embed}
    $v{title: Server Rules}
    $v{description: Please read our rules}
    {button: label:Full Rules && url:https://example.com/rules && style:link}
    {button: label:Accept && style:success && custom_id:accept_rules}
    {embed} --name rules
    ```

    Rules with clickable buttons.
  </Accordion>

  <Accordion title="Announcements with images" icon="bullhorn">
    ```bash theme={null}
    ~embed create {embed}
    $v{title: New Update!}
    $v{description: Check out our latest features}
    $v{image: https://example.com/update.png}
    $v{color: ff6b6b}
    $v{timestamp}
    {embed}
    ```

    Announcement with banner image.
  </Accordion>

  <Accordion title="Interactive voice panel" icon="microphone">
    ```bash theme={null}
    /embed builder
    # Click: Title → "Voice Controls"
    # Click: Description → "Control your voice channel"
    # Click: Add VM Buttons
    # Click: Save → "voice-panel"
    /embed send name:voice-panel channel:#voice-text
    ```

    VoiceMaster control panel.
  </Accordion>
</AccordionGroup>

***

## Tips & Tricks

<Info>
  **Script Tips**

  * Use `~embed preview` to test before sending
  * Copy existing embeds with `~embed copy` to learn syntax
  * Save frequently used embeds with `--name`
  * Combine multiple fields for organized info
</Info>

<Note>
  **Builder Tips**

  * Create multiple embeds at once with `number` option
  * Use "Select Embed" to switch between multiple embeds
  * Buttons expire after 20 minutes
  * VM buttons require VoiceMaster setup
</Note>

***

## Related Features

<CardGroup cols={2}>
  <Card title="Welcome Messages" icon="hand-wave" href="/welcome">
    Use embeds in welcome system
  </Card>

  <Card title="VoiceMaster" icon="microphone" href="/voicemaster-setup">
    Set up voice controls for VM buttons
  </Card>
</CardGroup>
