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

# Embeds

> Las plantillas de embed de Headless convierten bloques de texto con una gramática limitada en contenido de Discord. El parser nunca ejecuta código del usuario.

## Estructura

Comienza con `{embed}$v` y separa cada bloque con `$v`. El parser admite también espacios o saltos de línea después del prefijo. Cada bloque usa `{clave: valor}`; las claves se procesan como datos y nunca como código. Si no usas `{embed}$v`, Headless conserva el formato de texto plano de ese módulo.

## Dónde se usa

El mismo parser se usa en los mensajes de bienvenida, avisos de nivel, anuncios de Booster Roles, respuestas automáticas, apertura de tickets y mensajes personalizados de moderación. No existe un mensaje de salida configurable. Cada módulo aporta sus propias variables: una clave reconocida sin valor en el evento actual se muestra como `N/A`. Welcome y Booster Roles tienen vistas previas; Auto Responder valida la plantilla antes de guardarla. Usa la prueba del módulo cuando exista: una vista previa no sustituye la validación al enviar.

## Propiedades y sintaxis

Se admiten `message` y `content` (alias), `title`, `description`, `url`, `color`, `image`, `thumbnail`, `timestamp`, `author`, `field`, `footer` y `button`. `author` usa `nombre && [icono HTTPS] && [URL HTTPS]`; `field` usa `nombre && valor [&& inline|true|false|yes|no|on|off]`; `footer` usa `texto [&& icono HTTPS]`. Un botón admite `URL && etiqueta` o `Link|URL && etiqueta && URL && enabled|disabled`; `disabled` desactiva el enlace y ningún botón ejecuta acciones del bot.

### `Embed template`

```headless-script Syntax theme={null}
{embed}$v{title: <texto>}$v{description: <texto>}
```

```headless-script Example theme={null}
{embed}$v{title: Aviso para {guild.name}}$v{description: Hola {user.display_name}}$v{color: #005D68}
```

```headless-script Syntax theme={null}
{embed}$v{field: <nombre> && <valor> [&& inline]}
```

```headless-script Example theme={null}
{embed}$v{message: Mira las novedades, {user.mention}}$v{author: {guild.name} && {guild.icon} && {guild.vanity}}$v{field: Estado && Activo && inline}$v{footer: Publicado por {author.name}}
```

```headless-script Syntax theme={null}
{embed}$v{button: <URL HTTPS> && <etiqueta>}
```

```headless-script Example theme={null}
{embed}$v{button: https://example.com/rules && Leer reglas}
```

```headless-script Syntax theme={null}
{embed}$v{message: <texto>}
```

```headless-script Example theme={null}
{embed}$v{button: Link && Leer reglas && https://example.com/rules && enabled}
```

> [!NOTE]
>
> Los botones de plantilla solo son enlaces web; no pueden reclamar, cerrar, dar roles ni ejecutar otra acción del bot.

**Nota:**

El catálogo completo de variables está en Variables y en Variables de tickets. Usa solo claves disponibles en el evento: `message`/`content` se envían como texto normal junto al embed, y `url` establece el enlace del título.

## Límites y validación

`title`: 256 caracteres; `description`: 4.096; `message`/`content`: 2.000; nombre de campo: 256; valor de campo: 1.024; `author`: 256; `footer`: 2.048; etiqueta de botón: 80. Se permiten hasta 25 campos y 5 botones. El texto combinado de título, descripción, autor, footer y campos no puede superar 6.000 caracteres. URLs del embed, imagen, thumbnail e iconos admiten hasta 2.048 caracteres y requieren HTTPS; se rechazan URLs con credenciales. Un botón acepta HTTP o HTTPS y hasta 512 caracteres. El color acepta 3 o 6 dígitos hexadecimales, con `#` opcional. `timestamp` no acepta argumento.

## Salida válida

Un embed requiere contenido visible (título, descripción, campo, autor, footer, imagen o thumbnail). `message`/`content` por sí solos envían texto normal sin embed; una plantilla solo de botón también puede enviar el botón sin un embed vacío. `url` establece el enlace del título. Propiedades desconocidas, variables desconocidas, valores vacíos, separadores incompletos, URL inválidas o límites excedidos detienen el envío con un error de validación.

## Pasos

**1. Elige el módulo**

Abre la configuración de Welcome, niveles, Booster Roles, Auto Responder, Tickets o mensajes de moderación donde quieras usar la plantilla.

**2. Escribe una plantilla**

Usa el prefijo y separador exactos; añade cada propiedad como un bloque entre llaves. Para poner texto fuera del embed usa `message` o su alias `content`.

**3. Valida el resultado**

Usa la vista previa o prueba del módulo cuando exista. Corrige las variables que aparezcan como `N/A` y cualquier error de URL o límites antes de guardar.

## Páginas relacionadas

* [Variables](/docs/resources/scripting/variables.md)
* [Variables de tickets](/docs/server/tickets/variables.md)
* [Welcome](/docs/server/welcome.md)
* [Auto Responders](/docs/server/auto-responders.md)
* [Booster Roles](/docs/server/roles/booster.md)
* [Tickets](/docs/server/tickets/messages.md)
* [Moderación](/docs/security/moderation.md)


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.