Skip to content
flankerDocs
Dashboard

Embed & card scripting

Everywhere flanker lets you customise a message (welcome and leave, embeds, tickets, autoresponders, tags, boosts and more) it uses one shared script format. The easiest way to build one is the visual editor on the dashboard, which previews the result live. This page documents the underlying format for power users.

How a script is structured

A script is a series of parts separated by $v. There are two message styles: a classic embed, and a Components V2 card.

{embed}$v{title: Welcome}$v{description: Hey {user.mention}!}$v{color: #5c6b8a}
{component}$v{container}$v{text: ## Welcome}$v{separator: small}$v{button: https://flanker.wtf && Website}$v{end}

Plain text with no $v and no leading { is sent as a normal message.

Embed tokens

Start with {embed}, then add any of these parts:

TokenWhat it does
{title: ...}Embed title
{description: ...}Main body
{color: #5c6b8a}Accent colour (hex, or a named colour)
{url: ...}Makes the title a link
{author: name} / {author.icon: url} / {author.url: url}Author line
{footer: text} / {footer.icon: url}Footer
{field: Name && Value && true}A field; the third part true makes it inline
{image: url}Large image
{thumbnail: url}Small thumbnail
{content: ...}Plain text above the embed

Card tokens (Components V2)

Start with {component}, open a {container}, add parts, and close it with {end}. Buttons and menus placed before {end} sit inside the card; placed after {end} they sit outside it.

TokenWhat it does
{container} … {end}Opens and closes a card container
{text: ...}A block of markdown text
{separator: small}A divider (small, large, or hidden for spacing only)
{section: text && button ...}Text with a button or thumbnail beside it
{media: url}An image or media gallery item
{button: ...}A button (see below)
{menu: ...}A select menu

Buttons

Parts are separated by &&. The first part decides the kind:

  • Link: {button: https://flanker.wtf && Website} (optionally a third part for an emoji).
  • Channel link: {button: channel link && #rules && #rules}.
  • Styled / role button: {button: primary && Label && role:ROLE_ID}. Styles are primary, secondary, success, danger, link. For role buttons the target can be role:ID (toggle), give:ID (add only) or take:ID (remove only).
  • Add disabled as any part to disable a button.

Variables

Any {dotted.key} token is replaced with live data when the message is sent, for example {user.mention} or {guild.name}. See Variables for the full list.

Edit Discord message JSON

In the shared message builder, open Script → Edit Discord JSON. This edits the actual Discord message payload rather than Flanker’s script format. A simple payload can contain content and embeds:

{
"content": "Hello, {user.mention}!",
"embeds": [{ "title": "Welcome", "description": "Read the rules before chatting." }]
}

Paste a message payload, not a webhook URL, editor project or full HTTP request. Check its validation errors and preview before saving. Variables and the feature’s mention restrictions still apply.

Supported content can return to the visual builder. Advanced fields with no visual equivalent stay in Script; inspect the explanation before repairing or converting them. Switching between JSON and Script should retain the message source. See welcome setup for a complete import-and-test flow.