Skip to content

Messages

File: config/frontier/messages.conf

All player-facing text in Frontier is configurable through this file. Messages use MiniMessage format for rich text styling.

The messages config is organized into four top-level sections:

chat {
prefix = "<gray>[<gradient:gold:yellow>Frontier</gradient><gray>]</gray>"
queue { ... }
match { ... }
challenge { ... }
milestone { ... }
season { ... }
turnTimer { ... }
error { ... }
}
rdDescriptions { ... }
tierColors { ... }
tooltips { ... }
prefix = "<gray>[<gradient:gold:yellow>Frontier</gradient><gray>]</gray>"

The {prefix} placeholder is available in all chat messages and is automatically prepended.

queue {
joined = "{prefix} <green>You have joined the <white>{ladder}</white> queue."
left = "{prefix} <red>You have left the queue."
timeout = "{prefix} <gray>Your queue timed out after <white>{time}</white>. No match was found."
matchFound = "{prefix} <green><bold>Match found!</bold></green> Preparing battle against <yellow>{opponent}</yellow>..."
alreadyQueued = "{prefix} <red>You are already in a queue."
invalidTeam = "{prefix} <red>Your team does not meet the requirements for <white>{ladder}</white>. <gray>{reason}"
}
KeyPlaceholders
joined{ladder}
left
timeout{time}
matchFound{opponent}
alreadyQueued
invalidTeam{ladder}, {reason}
match {
victory = "{prefix} <green><bold>Victory!</bold></green> You defeated <yellow>{opponent}</yellow>! <gray>(</gray><green>+{ratingChange}</green> <gray>-></gray> <white>{newRating}</white><gray>)</gray>"
defeat = "{prefix} <red><bold>Defeat.</bold></red> You lost to <yellow>{opponent}</yellow>. <gray>(</gray><red>{ratingChange}</red> <gray>-></gray> <white>{newRating}</white><gray>)</gray>"
surrender = "{prefix} <yellow>{player}</yellow> has forfeited the match."
opponentDisconnected = "{prefix} <yellow>{opponent}</yellow> disconnected. You win by default!"
declinePenalty = "{prefix} <red>You declined the match. You are on cooldown for <white>{time}</white>."
}
KeyPlaceholders
victory{opponent}, {ratingChange}, {newRating}
defeat{opponent}, {ratingChange}, {newRating}
surrender{player}
opponentDisconnected{opponent}
declinePenalty{time}
challenge {
sent = "{prefix} <green>Challenge sent to <yellow>{player}</yellow>!"
received = "{prefix} <yellow>{player}</yellow> has challenged you! <green><bold><click:run_command:'/frontier challenge accept {player}'>[Accept]</click></bold></green> <red><bold><click:run_command:'/frontier challenge decline {player}'>[Decline]</click></bold></red>"
accepted = "{prefix} <green>Challenge accepted! Preparing battle..."
declined = "{prefix} <red>The challenge has been declined."
disabled = "{prefix} <red>That player has challenges disabled."
expired = "{prefix} <gray>The challenge from <yellow>{player}</yellow> has expired."
}
KeyPlaceholders
sent{player}
received{player}
accepted
declined
disabled
expired{player}

The received message includes clickable [Accept] and [Decline] buttons using MiniMessage’s click tag.

milestone {
achieved = "{prefix} <gold><bold>Milestone!</bold></gold> You've reached <yellow>{milestone}</yellow> wins on <white>{ladder}</white>! <green>Check /frontier rewards."
}
KeyPlaceholders
achieved{milestone}, {ladder}
season {
ending = "{prefix} <yellow><bold>Season Ending!</bold></yellow> <white>{season}</white> ends in <red>{time}</red>. Play your final matches!"
ended = "{prefix} <gold><bold>Season Complete!</bold></gold> <white>{season}</white> has ended. Final standings have been recorded."
}
KeyPlaceholders
ending{season}, {time}
ended{season}
turnTimer {
warning60 = "{prefix} <yellow>60 seconds remaining on your turn timer."
warning30 = "{prefix} <gold>30 seconds remaining!"
warning10 = "{prefix} <red><bold>10 seconds!</bold></red> Make your move!"
expired = "{prefix} <red>Turn timer expired. A random move has been selected."
}

No placeholders — these are static messages.

error {
notInMatch = "{prefix} <red>You are not currently in a match."
notInQueue = "{prefix} <red>You are not currently in a queue."
noArenas = "{prefix} <red>No arenas are available right now. Please try again later."
banned = "{prefix} <red>You are banned from ranked play. <gray>Reason: {reason}"
onCooldown = "{prefix} <red>You are on cooldown. Please wait <white>{time}</white>."
}
KeyPlaceholders
notInMatch
notInQueue
noArenas
banned{reason}
onCooldown{time}

MiniMessage color tags mapped to rank tier names. Used for coloring tier names throughout GUIs and messages.

tierColors {
Unranked = "<gray>"
"Poke Ball" = "<white>"
"Great Ball" = "<blue>"
"Ultra Ball" = "<yellow>"
"Master Ball" = "<light_purple>"
"Beast Ball" = "<gradient:red:gold>"
}

Labels shown in GUIs based on a player’s rating deviation (confidence level):

rdDescriptions {
stable = "<green>Stable"
uncertain = "<yellow>Uncertain"
volatile = "<red>Volatile"
}
KeyRD Range
stableRD 50 or below
uncertainRD 50-100
volatileRD above 100

The tooltips section contains all GUI item display text, organized by GUI screen. Each tooltip has a name and lore list using MiniMessage format.

Tooltip sections: hub, ladder, preview, leaderboard, challenge, rules, rewards, common.

Here’s an example from the hub section:

tooltips {
hub {
ladderButton {
name = "<green><bold>Ranked Ladder</bold></green>"
lore = [
"<gray>Queue up for competitive"
"<gray>ranked battles."
""
"<dark_gray>Click to view ladders"
]
}
}
}

All tooltip text supports the same MiniMessage formatting as chat messages. Use <!italic> at the start of item names and lore to prevent Minecraft’s default italic styling.

Common tags used in Frontier messages:

TagPurpose
<gold>Color tag — gold text
<bold>Style tag — bold
<italic>Style tag — italic
<!italic>Anti-style — prevents default italic in lore
<gradient:gold:yellow>Smooth color transition
<click:run_command:'/cmd'>Runs a command on click
<hover:show_text:'tip'>Shows tooltip on hover

For the full MiniMessage spec, see the Adventure documentation.