MineDown & MiniMessage Formatting
The [Text](arguments) and <tag> syntax SlateChat accepts in chat and in config files.
Every SlateChat config file — channel formats, /chatcolor messages, all of
it — accepts two formatting syntaxes at the same time:
MineDown ([Text](args)) and
MiniMessage
(<tag>text</tag>). They're independent — use whichever fits, or mix both in
the same string. Players can also type either directly in chat with
chat.colored. Legacy &/§ codes and raw hex (#RRGGBB) work everywhere
too — see the colors reference. If
ItemsAdder is
installed, its :name: font images (emoji, rank badges, custom icons) are
resolved too — see ItemsAdder Compatibility
below.
MiniMessage
MiniMessage is Adventure's tag-based format, and what channel format:
strings in channels.yml are written in by default.
Colors
<red>Red text</red>
<gold>Gold text</gold>
<#FF5733>Custom hex color</#FF5733>Named colors match the standard 16 Minecraft colors — see the colors reference for the full list.
Formatting
<bold>Bold</bold>
<italic>Italic</italic>
<underlined>Underlined</underlined>
<strikethrough>Strikethrough</strikethrough>
<obfuscated>Obfuscated</obfuscated>
<reset>Reset formatting</reset>Closing tags are optional if the rest of the string should stay formatted, but recommended for clarity.
Gradients & rainbow
<gradient:#FF0000:#0000FF>Gradient text</gradient>
<rainbow>Rainbow text</rainbow>Click & hover events
<click:run_command:/spawn>Click to teleport</click>
<click:open_url:https://example.com>Visit our site</click>
<hover:show_text:'Hover message'>Hover over me</hover>Events combine, hover wrapping click:
<hover:show_text:'Go to spawn'><click:run_command:/spawn><green>Click here</green></click></hover>Placeholders
PlaceholderAPI resolves before MiniMessage parsing, so placeholders sit safely inside or around tags:
<yellow>%luckperms_prefix% <player></yellow>Requires chat.colored
Color/gradient/rainbow tags typed by a player (e.g. via /chatcolor) are
stripped without chat.colored. MiniMessage baked directly into
channels.yml is config, not player input, so it always renders.
MineDown
Basic format
[Display Text](arguments)- Display Text — what shows up in chat
- arguments — colors, formatting, links, hover text, space separated
Automatic hover
Using a link or command always shows a hover — by default it's just the link/command itself, so players know what they're about to click before they click it.
| Written as | Shows | Hover shows |
|---|---|---|
[Click here](/kill) | Click here | /kill (automatic) |
[Visit](https://example.com) | Visit | https://example.com (automatic) |
Custom hover needs a permission
Adding your own hover text ([Click here](/kill Execute the kill command))
only works for players with chat.hover.bypass. Without it, the custom text
is ignored and the automatic link/command hover is shown instead.
Examples
Clickable link
[Visit our website](https://example.com)Shows "Visit our website", opens the site on click, hovers the URL automatically.
Clickable command
[Click here](/help)Shows "Click here", runs /help on click, hovers /help automatically.
Command with custom hover (needs chat.hover.bypass)
[View rules](/rules Click to see server rules)With the permission, hovering shows "Click to see server rules." Without it,
the automatic /rules hover is shown instead — the custom text is dropped
silently, not an error.
Hover only, no link
[Information](Hover for more details)Any argument that isn't a link or command just becomes hover text. No permission needed if there's no link attached.
Colors
[Colored text](red)
[Hex color text](#FF5733)Requires chat.colored
Solid colors, gradients and rainbow are silently ignored for players without
chat.colored — the text just falls back to whatever color already surrounds
it. Links, hover and plain formatting (bold, italic, underline, strikethrough,
obfuscated) still work regardless.
Formatting
[Bold text](bold)
[Italic text](italic)
[Underlined text](underline)
[Strikethrough text](strikethrough)
[Obfuscated text](obfuscated)Combinations
Arguments stack, space separated:
[Admin](red bold)
[Click here](green underline /warp spawn Teleport to spawn)
[Website](aqua https://example.com Visit our website!)Gradients
[Colored text](#FF0000-#0000FF)Rainbow
[Rainbow](rainbow)
[Slow rainbow](rainbow:50)Escaping
Prefix the [ with a backslash to show the raw syntax instead of triggering
it — handy when explaining the format to someone instead of using it:
\[Click here](/kill)This prints [Click here](/kill) as literal, non-clickable text.
Processing order
- The first argument starting with
/orhttp(s)://becomes the link or command - Anything after that becomes hover text
- Colors and formatting apply to the display text
- With no link at all, every unrecognized argument becomes hover text
Hover text is resolved outside of the click action, which is resolved outside of formatting, which is outside of color — in that order.
Common mistake
[/kill](Click here)This is backwards — it displays the literal text "/kill" and "Click here" never becomes clickable. The link/command always goes in the parentheses:
[Click here](/kill)In chat
Players can type MineDown directly:
Hello [everyone](yellow bold)! [Click here](/warp spawn Go to spawn)"Hello" renders as normal text, "everyone" comes out yellow and bold, and
"Click here" becomes clickable — running /warp spawn with a "Go to spawn"
hover.
ItemsAdder Compatibility
If ItemsAdder is
installed and enabled, SlateChat automatically resolves its :name:
font-image shorthand — emoji, rank/prefix badges, custom icons, anything
registered as a font image — no extra setup beyond having ItemsAdder
installed (toggle: itemsadder in config.yml, on by default).
:smile:Works when a player types it in chat, when it's baked directly into a
channel's format: string (e.g. as a prefix icon), and even through a
resolved placeholder — like a LuckPerms rank prefix (%luckperms_prefix%)
set to a font image in LuckPerms' own config. Each font image's own
permission (if set in ItemsAdder's config) is respected — without it, a
player just sees the literal :name: text.
Independent from MineDown/MiniMessage
This is resolved through ItemsAdder's own API, separately from MineDown/MiniMessage — mix it freely with either syntax in the same message.
Permissions
| Permission | Grants |
|---|---|
chat.hover.bypass | Setting custom hover text on links/commands, instead of the automatic one |
chat.colored | Using colors, gradients and rainbow (see Commands & Permissions) |
