Placeholders
With PlaceholderAPI installed, Cultivation registers a cultivation expansion. Anything that runs text through PlaceholderAPI — chat formats, scoreboards, tab lists, holograms, signs — can show a cultivator's standing.
Nothing needs configuring: installing PlaceholderAPI is the whole setup. Run /papi info cultivation in game for the live list.
{: .note }
Names are English. A placeholder returns plain text and PlaceholderAPI carries no language, so every name here is the English one. Where you want to localise it yourself, the matching _key placeholder returns the server.lang key instead — %cultivation_realm% gives "Golden Core Formation", %cultivation_realm_key% gives the key that translates to it.
Progression
| Placeholder | Example | ||||||
|---|---|---|---|---|---|---|---|
%cultivation_realm% | Golden Core Formation | ||||||
%cultivation_realm_key% | the server.lang key for it | ||||||
%cultivation_realm_id% | GOLDEN_CORE_FORMATION | ||||||
%cultivation_realm_index% | 4 (1-based) | ||||||
%cultivation_stage% | Late-Stage | ||||||
%cultivation_stage_key% · %cultivation_stage_id% | key / LATE | ||||||
%cultivation_rank% | Golden Core Formation Late-Stage | ||||||
%cultivation_level% · %cultivation_max_level% | 14 / 27 | ||||||
%cultivation_is_max_level% | yes / no | ||||||
%cultivation_qi% | 1240 | ||||||
%cultivation_qi_required% | 2000, or - at max level | ||||||
%cultivation_qi_percent% | 62 | ||||||
%cultivation_qi_bar% | `\ | \ | \ | \ | \ | \ | ......` |
%cultivation_ready% | yes / no | ||||||
%cultivation_ready_type% | breakthrough, advancement, or empty |
%cultivation_rank% is the one most chat formats actually want.
State
| Placeholder | Example |
|---|---|
%cultivation_meditating% | yes / no |
%cultivation_ritual% | breakthrough, advancement, none |
%cultivation_ritual_percent% | 41 |
%cultivation_qi_flow% | Qi per second being drawn |
Race, Dao and the skill tree
| Placeholder | Example |
|---|---|
%cultivation_race% · _key · _id | Demon |
%cultivation_dao% · _key · _id | Lightning |
%cultivation_has_dao% | yes / no |
%cultivation_yin% · %cultivation_yang% | 62 / 38 |
%cultivation_karma% | blood on the ledger |
%cultivation_path% · _key · _id | Righteous / Devil / Unaligned |
%cultivation_skill_points% | unspent points |
%cultivation_skill_debt% | points owed after a demotion |
Sect
| Placeholder | Example |
|---|---|
%cultivation_sect% | the sect's name, or empty |
%cultivation_in_sect% | yes / no |
%cultivation_sect_rank% · _id | Leader / Elder / Disciple |
%cultivation_sect_members% | roster size |
%cultivation_sect_motto% | the sect's motto |
%cultivation_sect_has_hall% | yes / no |
Sect placeholders answer from a UUID-keyed registry rather than the player's entity, so they work for offline players too.
Companion, home and the ground underfoot
| Placeholder | Example |
|---|---|
%cultivation_has_beast% · %cultivation_beast% | yes / the species |
%cultivation_beast_level% · %cultivation_beast_summoned% | 12 / yes |
%cultivation_has_abode% · %cultivation_abode_spring% | yes / banked Qi |
%cultivation_vein_qi% · %cultivation_vein_max% | the chunk you are standing in |
%cultivation_vein_percent% | 74 |
%cultivation_vein_tier% | Normal / Rich / Dragon |
The vein_* set reads the chunk without creating or writing anything, so a scoreboard polling it every second costs nothing and seeds no data.
Rankings — no player needed
| Placeholder | Example |
|---|---|
%cultivation_top_name_1% | the highest cultivator's name |
%cultivation_top_level_1% · %cultivation_top_qi_1% | their level / banked Qi |
%cultivation_top_realm_1% · %cultivation_top_stage_1% | their rank |
The trailing number is the position, 1-based — %cultivation_top_name_3% is third place. These answer with no player context at all, which is what makes a leaderboard sign possible. A position beyond the number of ranked cultivators returns empty rather than an error, so a top-10 board on a three-player server renders blank rows.
Relational
Used by formats that compare a speaker to a viewer:
| Placeholder | Example |
|---|---|
%rel_cultivation_same_sect% | yes / no |
%rel_cultivation_sect_relation% | same / rival / none |
%rel_cultivation_realm_difference% | +3 levels between them |
%rel_cultivation_higher_realm% | yes / no |
%rel_cultivation_dueling% | whether they are duelling right now |
For developers
Placeholders are read on the world thread of the player being asked about — PlaceholderAPI's own documentation puts that obligation on the caller, via player.getWorld().execute(). Cultivation's expansion never writes and guards every lookup, so a careless caller gets a stale read rather than a crash, but it is still worth getting right.
To check the expansion is live before writing a format that depends on it:
if (CultivationAPI.isPlaceholderApiRegistered()) { ... }