Arklynn

Protection, moderation and the fun parts. All of it free.

Support server
ProductCommandsDashboardEmbed BuilderTemplates
BoardsLast.fmAniListAnalyticsStatus
MoreDocsTeamDonateUpdates
LegalTermsPrivacyRefund
© 2024–2026 Arklynn TeamBuilt by nex.tm and xiupobre

Start

  • Getting started
  • The website dashboard

Protection

  • Anti-nuke
  • Tripwire
  • Moderation
  • Logging
  • Verification

Community

  • Welcome and leave
  • Leveling
  • Tickets
  • Giveaways
  • VoiceMaster
  • Starboard
  • Autoroles and stat channels

Creating things

  • Embeds and the script
  • Panels
  • Scheduled announcements

Fun

  • Economy
  • Last.fm
  • AniList
  • Counting
  • Birthdays

Support

  • Arklynn is free

Help

  • When something does not work

Embeds and the script

The full reference for the {braces} syntax, every command that accepts it, and the editor that shows you the result.

An embed is the bordered box with a colour down the side. Arklynn builds them from a small script: each instruction in braces, in any order, on one line or several. The same script works in announcements, welcome messages, leave messages, booster messages, level-up messages and scheduled announcements - learn it once.

If you would rather not learn it: arklynn.xyz/embed builds the script for you with a live preview, and the dashboard Embed Editor does the same and can post the result. The script is here because it is faster once you know it, and because a script can be pasted into a command.

The shortest possible one

{embed}{description: Hello}

Everything is optional except that you need either some content or an embed with something in it. Plain text with no braces at all is also fine in the commands that accept a message.

Every instruction

Outside the embed

InstructionWhat it does
{content: ...}Normal message text above the embed. This is where a ping goes - a mention inside an embed is text, not a notification.
{embed}Starts an embed. Write it again to start a second one.
{delete: 30}Delete the message after that many seconds.

Inside the embed

InstructionWhat it does
{title: ...}The heading, in bold at the top.
{description: ...}The body. Discord markdown works - bold, links, lists.
{color: #ffffff}The stripe down the left. A hex code, with or without the hash.
{image: url}A large picture at the bottom. Must be a real URL.
{thumbnail: url}A small picture top right. {member.avatar} here is the usual trick.
{footer: text}Small grey text at the bottom. {footer: text && icon url} adds a small icon.
{author: name}A line above the title. {author: name && icon url && link} for the icon and a link.
{field: Name && Value}A labelled block. Write it several times for several fields.
{field: Name && Value && true}The same, side by side with the next one instead of below it.
{timestamp}Puts the current time in the footer.

Buttons

InstructionWhat it does
{button: link && Open the docs && https://...}A button that opens a link. Needs a real URL - it is checked.
{button: primary && Press me && some_id}A coloured button. primary, secondary, success and danger are the four styles.
{button: link && Docs && https://... && }A fourth part puts an emoji on the button.

A non-link button needs something to do. On its own it is a button that presses and does nothing. If you want buttons that open more embeds, that is a panel - see the Panels page.

The && separator

Four instructions take more than one part, and the parts are separated by two ampersands: field, footer, author and button. It is && rather than a single character because a title or a label can contain almost anything, and a separator people type by accident is a separator that breaks their message.

{field: When && Saturday at 20:00 && true}

Line breaks

You cannot press Enter inside a slash command option, so write $v where you want a new line.

{embed}{description: First line$vSecond line}

Variables

The same set as the Welcome page: {user.name}, {user.mention}, {guild}, {guild.count}, {channel}, {member.avatar} and the rest. They work in every part of an embed - title, description, fields, footer, author, and in image URLs.

A complete example

{content: @everyone}
{embed}
{title: Server event on Saturday}
{description: Starts at 20:00.$vBring a friend - we are {guild.count} and there is room for more.}
{field: When && Saturday 20:00 && true}
{field: Where && Voice: Main Stage && true}
{thumbnail: {guild.icon}}
{color: #ffffff}
{footer: Posted by {user.name}}
{timestamp}
{button: link && Add to calendar && https://example.com}

Where the script works

CommandWhat it is for
.annPost an announcement to a channel now. Also .announcement and .embed. Needs Administrator, and shows you a preview to confirm before it sends.
/announcementThe same thing as a slash command.
.setup_welcomeThe message for somebody joining.
.setup_leaveThe message for somebody leaving.
.setup_boosterThe message for somebody boosting.
.setup_levelup_messageThe message when somebody levels up.
/schedule addAn announcement that goes out later.

When it will not parse

What it saysWhat it means
Unbalanced braces in scriptA { with no matching }. Usually a missing one at the very end.
title outside of embedYou wrote {title: ...} before any {embed}. Add {embed} in front of it.
Unknown command: xA typo in an instruction name, or an instruction that does not exist.
Multiple content commandsTwo {content: ...} in one script. There can only be one.
No message content or embed providedThe script parsed but produces nothing. Plain text with no braces does this too - wrap it in {content: ...}.
field requires name and valueYou used a single | instead of &&. It is {field: Name && Value}.
button requires type and labelSame thing: {button: link && Label && https://...}.
link button needs a valid URLThe third part of a link button has to be a real URL, and it is checked.

Errors come back before anything is sent, so a broken script is never a broken message in your announcement channel.

From the website

The dashboard Embed Editor is the same thing with a preview beside it. It has two modes: Message, which sends one message, and Panel, which builds an embed with buttons that open other embeds. Either way it can post straight to a channel - there is no copying a script back into Discord.

arklynn.xyz/embed is the public version. It has no idea what server you are in and no way to send anything, so it is a preview and a script generator: build it there, copy the script, paste it into a command. arklynn.xyz/embed/templates has ready-made ones to start from.

Start

  • Getting started
  • The website dashboard

Protection

  • Anti-nuke
  • Tripwire
  • Moderation
  • Logging
  • Verification

Community

  • Welcome and leave
  • Leveling
  • Tickets
  • Giveaways
  • VoiceMaster
  • Starboard
  • Autoroles and stat channels

Creating things

  • Embeds and the script
  • Panels
  • Scheduled announcements

Fun

  • Economy
  • Last.fm
  • AniList
  • Counting
  • Birthdays

Support

  • Arklynn is free

Help

  • When something does not work