Structure
Start with{embed}$v and separate each block with $v. Spaces or line breaks after the prefix are also accepted. Each block uses {key: value}; keys are treated as data, never as executable code. Without {embed}$v, Headless keeps that module’s plain-text message format.
Where templates are used
The same parser powers welcome messages, level-up notices, Booster Roles announcements, Auto Responder replies, ticket-opening messages, and custom moderation messages. There is no configurable leave message. Each module supplies its own variables: a recognized key with no value in the current event renders asN/A. Welcome and Booster Roles have configuration previews; Auto Responder validates a template before saving it. Use a module’s test when available; a preview does not replace validation at send time.
Properties and syntax
Supported keys aremessage and content (aliases), title, description, url, color, image, thumbnail, timestamp, author, field, footer, and button. author uses name && [HTTPS icon] && [HTTPS URL]; field uses name && value [&& inline|true|false|yes|no|on|off]; footer uses text [&& HTTPS icon]. A button accepts URL && label or Link|URL && label && URL && enabled|disabled; disabled disables the link, and no button invokes a bot action.
Embed template
Template buttons are web links only; they cannot claim, close, grant roles, or trigger another bot action.
message/content are sent as regular text alongside the embed, and url sets the title link.
Limits and validation
title: 256 characters; description: 4,096; message/content: 2,000; field name: 256; field value: 1,024; author: 256; footer: 2,048; button label: 80. You can add up to 25 fields and 5 buttons. Combined text across title, description, author, footer, and fields must not exceed 6,000 characters. Embed, image, thumbnail, and icon URLs allow up to 2,048 characters and require HTTPS; URLs containing credentials are rejected. A button accepts HTTP or HTTPS and up to 512 characters. Color accepts 3- or 6-digit hexadecimal values, with an optional #. timestamp takes no argument.
Valid output
An embed requires visible content (title, description, field, author, footer, image, or thumbnail).message/content alone sends plain text with no embed; a button-only template can also send its button without an empty embed. url sets the title link. Unknown keys, unknown variables, empty values, incomplete syntax, invalid URLs, or exceeded limits stop delivery with a validation error.
Steps
1
Choose a module
Open the configuration for Welcome, Levels, Booster Roles, Auto Responder, Tickets, or moderation messages where you want to use the template.
2
Write a template
Use the exact prefix and separator; add each property as a brace-delimited block. To put text outside the embed, use
message or its content alias.3
Validate the result
Use the module preview or test when available. Fix variables that render as
N/A and any URL or limit errors before saving.