Modules πŸ–ΌοΈ MOTD

πŸ” Placeholders

On this page, you will find all the placeholders you can use inside your MOTD and player count.

These work in the message, the server icon name and every Player Count option. PlaceholderAPI placeholders also work.

A name nobody recognises is left in the message exactly as you wrote it, so a stray { never eats the rest of the line.

#Player

Nobody is logged in when a ping arrives, so these come from the last player seen on that address. On a first-ever ping from an unknown address they resolve empty.

Placeholder Returns
{player name} Name of the last player from that IP
{player uuid} Their UUID
{player protocol} Client protocol number
{player version} Client version name
{player hasPlayedBefore} true / false
{player isBanned} true / false
{player isWhitelisted} true / false

#Server

Placeholder Returns
{server playersOnline} Current player count
{server playersMax} Slot count
{server host} Address the client pinged
{server whitelistEnabled} true / false
{server version} Server version

#Maintenance

Placeholder Returns
{maintenance maintenanceEnabled} true / false
{maintenance timer} Time left until maintenance ends

See Maintenance for what puts the server into that state.

#Date

{date current} prints the server's clock, and the three comparisons answer true or false so they can be fed into a PlaceholderAPI condition to swap a message around a date.

The results below are what a ping arriving on 24/12/2026 at 18:30 would produce.

Placeholder Example result
{date current} 24/12/2026 18:30:00
{date current dd/MM/yyyy} 24/12/2026
{date current HH:mm} 18:30
{date current EEEE} Thursday
{date current 'Day' D 'of' yyyy} Day 358 of 2026
{date isBefore 25/12/2026 00:00:00} true
{date isAfter 2026-12-01} true
{date isExact 24/12/2026 18:30:00} true

The pattern after current is a Java date pattern, and anything wrapped in single quotes inside it is printed as written. A pattern that cannot be read falls back to dd/MM/yyyy HH:mm:ss.

The date the three comparisons take is written either as dd/MM/yyyy HH:mm:ss, or as 2026-12-25 for midnight on that day. A date that cannot be read answers false rather than breaking the message.

circle-info

{date isExact} is true for the whole minute you name, since the seconds are ignored on both sides. A ping landing at 18:30:41 still matches 18:30:00.

#Proxy

Behind a proxy the ping never reaches this server, so the MOTD has to be set in the PhoenixLobby proxy config.yml under motds.motd instead. Everything above works there too, with three differences.

Placeholder Returns
{proxy status <server>} Whether that backend is reachable
{proxy players <server>} Players on that backend
{proxy maxPlayers <server>} Slot count of that backend

{maintenance maintenanceEnabled} and {maintenance timer} take an optional server name on the proxy, so {maintenance timer lobby} answers for that backend rather than the whole network.

{player isBanned}, {player isWhitelisted} and {server whitelistEnabled} have no proxy equivalent and are not available there.

circle-exclamation

The older ${player name} spelling, with a dollar in front, still resolves, so an existing setup keeps working. New messages should use {player name}.

Last updated about 1 hour ago
My Cart (0 items)

Oops... looks like the spiders padded through here

Add products to your cart and remove them from here Lets buy