Skip to content

PlaceholderAPI ​

collector-placeholder · version 0.6.0 · registers as placeholder · CI 2026-09-25

PlaceholderAPI — the last-resort connector.

Nine plugins hook into it on this server. This one exposes any of their placeholders as a metric, which covers in one go every plugin that will never have a module of its own. It's also the only connector that doesn't measure anything itself: it relays.

Hence three guards, none of them optional.

  • A whitelist, empty by default. This module does nothing until someone has written what they want. Exposing "every placeholder" makes no sense: there are hundreds, most of which render text.

  • Only what is numeric gets published, and what isn't is reported once then ignored. A placeholder renders a string; betting that it converts means silently publishing NaN for a misspelled name.

  • Resolved with no player. setPlaceholders(null, …) yields the global value. Per-player placeholders would reopen the door to cardinality, and for those a dedicated module exists — that's the whole point of this architecture.

On Folia the collection runs on the global region: placeholders that read global state work, those that read a world, a chunk or an entity are refused by Folia and rejected once, like a misspelt name.

Every placeholder is one series of a single metric, labelled by its name: %plan_players_online_total% becomes mc_placeholder_value{placeholder="plan_players_online_total"}. The placeholder domain says where the value comes from, which is exactly what you want to know about a relayed number.

Install ​

Put vania-metrics-collector-placeholder-0.6.0.jar in the plugins folder, next to the core and to PlaceholderAPI, then restart. The collector depends on both: without PlaceholderAPI it stays disabled, and the core keeps running.

  • Target plugin: PlaceholderAPI 2.12.3 — latest for Minecraft 1.21.11: 2.12.3
  • Built against: core v0.6.0
  • Download: vania-metrics-collector-placeholder-0.6.0.jar, with its SHA-512, from the v0.6.0 release
  • Collects: in the background, every 30 s — reading the plugin's state never blocks a scrape
  • Tested on: Java 21
  • Latest CI: success · 2026-09-25 11:38 UTC · commit fd22254 · run

Platforms ​

PlatformTarget pluginCollectorLatest CI
PaperyesPassedpaper ✓
PurpuryesPassedpurpur ✓
FoliayesPassedfolia ✓
SpigotyesPassedspigot ✓
CraftBukkityesPassedbukkit ✓
Spongenon/a—
Velocitynon/a—
BungeeCordnon/a—
Waterfallnon/a—
Geysernon/a—

See the compatibility matrix for every collector at once.

Metrics ​

mc_placeholder_value ​

gauge placeholder

Value of a placeholder, relayed as-is. Only what converts to a number is published — the rest is reported once then ignored.

Configuration ​

In metrics.properties, or as environment variables. See Configuration.

KeyDefaultEnvironment variable
collector.placeholdertrueVANIA_METRICS_COLLECTOR_PLACEHOLDER
collector.placeholder.interval30VANIA_METRICS_COLLECTOR_PLACEHOLDER_INTERVAL
collector.placeholder.listemptyVANIA_METRICS_COLLECTOR_PLACEHOLDER_LIST

Minecraft 1.21.11 · core 0.6.0 · rebuilt after every CI run