ATStaffMode

Placeholders

The PlaceholderAPI placeholders ATStaffMode exposes and what each one returns.

ATStaffMode registers a PlaceholderAPI expansion so you can put staff mode state, freeze state, report counts and click rates into a scoreboard, a tab list, a hologram or anything else that runs placeholders.

Before you start

PlaceholderAPI has to be installed. ATStaffMode checks for it once at startup, so install PlaceholderAPI first and restart the server. There is no way to register the expansion later without a restart.

When it works, the console prints this line during startup.

[ATStaffMode] PlaceholderAPI found! Placeholders registered.

If PlaceholderAPI is missing you get this instead, and every placeholder below stays as raw text.

[ATStaffMode] PlaceholderAPI not found. Placeholders skipped.

The expansion identifier is atstaffmode, so every placeholder starts with %atstaffmode_.

Viewer placeholders

These describe the player the placeholder is being rendered for. Put them on a scoreboard and each player sees their own values.

PlaceholderReturns
%atstaffmode_staffmode%True if the player is in staff mode, otherwise False
%atstaffmode_vanished%True if the player is vanished, otherwise False
%atstaffmode_staffchat%Enabled if staff chat is toggled on, otherwise Disabled
%atstaffmode_frozen%True if the player is frozen, otherwise False
%atstaffmode_cps%The player's left click rate
%atstaffmode_cps_left%The player's left click rate
%atstaffmode_cps_right%The player's right click rate
%atstaffmode_reports_active%How many reports are not marked done, server wide
%atstaffmode_reports_total%How many reports exist in total, server wide
%atstaffmode_reports_assigned%How many reports are assigned to this player
%atstaffmode_staff_online%How many online players have atstaffmode.use
%atstaffmode_staff_in_mode%How many players are currently in staff mode
%atstaffmode_vanished_count%How many online players are vanished

Every viewer placeholder returns an empty string if the viewer is offline. That matters for anything that renders for offline players, such as a leaderboard built from stored player data.

Target placeholders

These take a player name instead of using the viewer, so they work in contexts with no viewer at all, like a console driven hologram or a Discord bridge.

PlaceholderReturns
%atstaffmode_cps_<player>%That player's left click rate
%atstaffmode_cps_left_<player>%That player's left click rate
%atstaffmode_cps_right_<player>%That player's right click rate
%atstaffmode_frozen_<player>%True if that player is frozen, otherwise False

Replace <player> with the exact in game name, for example %atstaffmode_cps_Steve%.

The name has to match exactly, and the player has to be online. If the name does not resolve to an online player, the CPS placeholders return 0 and the frozen placeholder returns False. You cannot tell "offline" apart from "not frozen" or "zero clicks" from the output alone.

Capitalisation matters

The values come back capitalised exactly as shown, True, False, Enabled and Disabled. Plugins that compare placeholder output against a literal are usually case sensitive, so a condition written against true will never match. Compare against the capitalised form, or lowercase the value first if your plugin can.

# Correct
condition: "%atstaffmode_frozen% == True"

# Never matches
condition: "%atstaffmode_frozen% == true"

A worked example

A staff scoreboard that shows the state of the viewer alongside the size of the report queue.

title: "&b&lSTAFF"
lines:
  - "&7Staff mode: &f%atstaffmode_staffmode%"
  - "&7Vanished: &f%atstaffmode_vanished%"
  - "&7Staff chat: &f%atstaffmode_staffchat%"
  - ""
  - "&7Open reports: &e%atstaffmode_reports_active%"
  - "&7Mine: &e%atstaffmode_reports_assigned%"
  - ""
  - "&7Staff online: &a%atstaffmode_staff_online%"

Notes on the CPS values

The click rate placeholders read the same counter the in game CPS checker uses, a rolling one second window. They update as fast as whatever renders them, so a scoreboard refreshing once a second gives a readable number while a slower refresh will look like it is lagging behind.

Clicks are only counted while the CPS feature is enabled. If you turn it off in Configuration, every CPS placeholder returns 0.

On this page