Skip to content

Messages

Every string players see is customizable. They’re all in messages.conf and support MiniMessage formatting.

File: config/courier/messages.conf

Here’s what customizing the login notification looks like:

login {
header = "<gradient:#FFD700:#FFA500>================================</gradient>"
unread = "<yellow>You have <white><bold>{count}</bold></white> unread message{plural}."
hint = "<gray>Type <white>/mail</white> to check your inbox."
footer = "<gradient:#FFD700:#FFA500>================================</gradient>"
}

When a player logs in with unread mail, they’ll see a gold gradient border with their unread count and a hint to open their inbox.


The file’s organized by context:

SectionWhat It Controls
loginLogin notification (header, unread count, hint, footer)
deliveryMail arrival notifications for each notification level
successSuccess confirmations (sent, blocked, archived)
errorsPlayer-facing error messages
adminErrorsAdmin command errors
infoProgress and informational messages
statsStats display (player and admin)
debugAdmin debug output
guiIn-GUI messages (claimed, archived, deleted)
guiSendCompose GUI messages
lockerPackage locker messages
miscMiscellaneous (plural suffix, etc.)
inboxText-mode inbox display

Courier uses MiniMessage for all text formatting.

Colors:

<red>Red text</red>
<#FF5555>Hex color text</#FF5555>

Gradients:

<gradient:gold:yellow>Gradient text</gradient>

Styles:

<bold>Bold</bold>
<italic>Italic</italic>
<underlined>Underlined</underlined>
<strikethrough>Strikethrough</strikethrough>

Hover and click events:

<hover:show_text:'<gray>Click to open inbox'><click:run_command:/mail>Click here</click></hover>

These work across most message sections:

PlaceholderDescription
{player}The current player’s name
{sender}The mail sender’s name
{recipient}The mail recipient’s name
{subject}The mail subject line
{count}Number (unread count, selected count, etc.)
{seconds}Cooldown or time remaining
{preset}Preset name (for admin commands)
{error}Error detail message

Not every placeholder works in every section — Courier resolves them based on context. If a placeholder isn’t relevant (e.g., {sender} in a login message), it won’t be replaced.


  1. Tooltips — customize GUI hover text with templates and fragments
  2. GUI Layouts — adjust slot positions and item appearances