Skip to content

Placeholders

Reece Williams edited this page Sep 2, 2026 · 2 revisions

Placeholders

ServerTools ships its own PlaceholderAPI expansion (identifier stools) and can also parse other plugins' PAPI placeholders inside a few of its messages.

Requires: PlaceholderAPI (optional - placeholders only register when PAPI is installed).

Custom stools placeholders

These come from the stools expansion. They only work if PlaceholderAPI is installed (see below).

Placeholder Returns
%stools_isvisible% true if the player is hidden via /visibility, else false
%stools_age_<EPOCHTIME>% Time between now and the given epoch seconds, formatted like 3d 4h 12m 5s. See notes below.
%stools_commandspy% on if the player has CommandSpy watching, else off
%stools_chatcolor% The player's chat color as an & code (e.g. &e)
%stools_staffafk% true if the player is staff-AFK, else false

Any unknown key under stools returns STOOLS-PAPI-ERROR.

%stools_age_% notes

The <EPOCHTIME> part is a Unix timestamp in seconds (grab one from something like epochconverter.com). It works both ways:

  • if the timestamp is in the future, you get the time until then
  • if it's in the past, you get the time since then

Format drops empty units, so you might see 2d 5h or just 45s. If you leave off the timestamp entirely (%stools_age%), it just echoes back %stools_age_<EPOCHTIME>%. A non-numeric value returns nothing (null).

%stools_age_1622318400%  ->  e.g. "4y 32d 1h ..."

Using other plugins' PAPI placeholders

ServerTools can run external PAPI placeholders (like %server_uptime%, %vault_eco_balance%, etc.) through some of its own messages. All of these need PlaceholderAPI installed.

Feature Where Toggle
Chat format Player chat messages Chat.ChatFormat.EnabledPAPIinMessages (also needs the chat.placeholder.message permission, and the message must contain a %)
Join MOTD The join message lines None - parses automatically when PAPI is installed
Holograms Hologram lines None - parses automatically when PAPI is installed (uses a random online player, so non-player placeholders like %server_uptime% work)
Fancy announce /fancyannounce text None - parses automatically when PAPI is installed
Server info commands Configured info command replies None - parses automatically when PAPI is installed

So Chat.ChatFormat.EnabledPAPIinMessages is the only config toggle. The rest just turn on by themselves once PlaceholderAPI is present.

Clone this wiki locally