Repository navigation
PlaceholderAPI
Alkatraz registers a PlaceholderAPI expansion (alkatraz) that exposes player stats, spell data, research progress, hotbar info, and server-wide leaderboards.
- Install PlaceholderAPI on your server.
- Start the server once with both Alkatraz and PlaceholderAPI installed.
- Alkatraz automatically registers its expansion — no placeholder download command is needed.
- Use any
%alkatraz_...%placeholder in chat plugins, scoreboards, holograms, etc.
Leaderboard placeholders are cached and refreshed periodically. Adjust these settings in config.yml:
placeholders:
leaderboard:
enabled: true
refresh_interval_minutes: 5
max_entries: 10All placeholders follow the format %alkatraz_<category>_<params>%. Player-specific placeholders return an empty string if the player's profile is not loaded.
| Placeholder | Description |
|---|---|
%alkatraz_stats_circle% |
Current Magic Circle level (0–9) |
%alkatraz_stats_circle_roman% |
Current circle as a Roman numeral (I, II, III, ...) |
%alkatraz_stats_mana% |
Current mana |
%alkatraz_stats_max_mana% |
Maximum mana |
%alkatraz_stats_mana_percent% |
Mana as a percentage (0–100) |
%alkatraz_stats_mana_regen% |
Mana regeneration rate |
%alkatraz_stats_spell_power% |
Spell Power attribute |
%alkatraz_stats_stat_points% |
Available stat points to invest |
%alkatraz_stats_reset_tokens% |
Remaining reset tokens |
%alkatraz_stats_arcane_knowledge% |
Arcane Knowledge earned |
%alkatraz_stats_research_points% |
Available research points |
%alkatraz_stats_casting% |
true if currently casting |
%alkatraz_stats_stealth% |
true if in stealth mode |
%alkatraz_stats_can_cast% |
true if able to cast |
%alkatraz_stats_cast_mode% |
Current cast mode |
%alkatraz_stats_disguise% |
Current disguise name |
%alkatraz_stats_tutorial_seen% |
true if tutorial has been seen |
%alkatraz_stats_total_spells% |
Total spells in the registry |
%alkatraz_stats_total_enabled_spells% |
Total enabled spells |
%alkatraz_stats_discovered_count% |
Number of spells the player has discovered |
Replace <element> with one of: fire, water, air, earth, light, dark.
| Placeholder | Description |
|---|---|
%alkatraz_elements_points_<element>% |
Stat points invested in this element |
%alkatraz_elements_affinity_<element>% |
Elemental affinity |
%alkatraz_elements_resistance_<element>% |
Elemental resistance |
%alkatraz_elements_magic_affinity% |
Magic (unaligned) affinity |
%alkatraz_elements_magic_resistance% |
Magic (unaligned) resistance |
Examples:
%alkatraz_elements_affinity_fire%
%alkatraz_elements_resistance_water%
%alkatraz_elements_points_earth%
Replace <spell_id> with the spell's internal ID (e.g. magic_missile, fireball, heal).
| Placeholder | Description |
|---|---|
%alkatraz_spells_has_<spell_id>% |
true if the player has discovered this spell |
%alkatraz_spells_name_<spell_id>% |
Display name of the spell |
%alkatraz_spells_element_<spell_id>% |
Element of the spell (FIRE, WATER, etc.) |
%alkatraz_spells_circle_<spell_id>% |
Required Magic Circle level |
%alkatraz_spells_mana_cost_<spell_id>% |
Mana cost |
%alkatraz_spells_code_<spell_id>% |
Cast code (e.g. RRRRR) |
%alkatraz_spells_mastery_<spell_id>% |
Current mastery level |
%alkatraz_spells_mastery_<spell_id>_percent% |
Mastery as a percentage |
%alkatraz_spells_mastery_<spell_id>_max% |
Maximum mastery for the spell |
%alkatraz_spells_cooldown_<spell_id>% |
Remaining cooldown in seconds (0 if ready) |
%alkatraz_spells_cooldown_<spell_id>_ready% |
true if off cooldown |
%alkatraz_spells_cooldown_time_<spell_id>% |
Base cooldown time in seconds |
Examples:
%alkatraz_spells_has_fireball%
%alkatraz_spells_name_heal%
%alkatraz_spells_mastery_magic_missile_percent%
%alkatraz_spells_cooldown_fireball_ready%
Replace <research_id> with the research node's internal ID.
| Placeholder | Description |
|---|---|
%alkatraz_research_completed_count% |
Total completed research nodes |
%alkatraz_research_has_<research_id>% |
true if this research is completed |
%alkatraz_research_state_<research_id>% |
State of the research (e.g. COMPLETED, LOCKED, AVAILABLE) |
Examples:
%alkatraz_research_completed_count%
%alkatraz_research_has_arcane_basics%
%alkatraz_research_state_advanced_enchanting%
| Placeholder | Description |
|---|---|
%alkatraz_hotbar_slot_<slot>% |
Spell ID assigned to hotbar slot (1–9) |
%alkatraz_hotbar_count% |
Number of spells assigned to hotbar |
Examples:
%alkatraz_hotbar_slot_1%
%alkatraz_hotbar_count%
The leaderboard is ranked by Arcane Knowledge and is periodically refreshed based on your config.
| Placeholder | Description |
|---|---|
%alkatraz_leaderboard_total_players% |
Total players on the leaderboard |
%alkatraz_leaderboard_rank% |
The viewing player's rank (1-indexed) |
%alkatraz_leaderboard_top_<position>_name% |
Username at the given position |
%alkatraz_leaderboard_top_<position>_uuid% |
UUID at the given position |
%alkatraz_leaderboard_top_<position>_ak% |
Arcane Knowledge at the given position |
%alkatraz_leaderboard_top_<position>_circle% |
Circle level at the given position |
<position> is 1-indexed (1 = top player).
Examples:
%alkatraz_leaderboard_rank%
%alkatraz_leaderboard_top_1_name%
%alkatraz_leaderboard_top_3_ak%
§6§lArcane Leaderboard
§e#1 §f%alkatraz_leaderboard_top_1_name% §7- §e%alkatraz_leaderboard_top_1_ak% AK
§e#2 §f%alkatraz_leaderboard_top_2_name% §7- §e%alkatraz_leaderboard_top_2_ak% AK
§e#3 §f%alkatraz_leaderboard_top_3_name% §7- §e%alkatraz_leaderboard_top_3_ak% AK
§bMana: §f%alkatraz_stats_mana%/%alkatraz_stats_max_mana%
§6Circle: §f%alkatraz_stats_circle_roman%
§aRank: #%alkatraz_leaderboard_rank%
§6Fireball
§7Element: §c%alkatraz_spells_element_fireball%
§7Mana Cost: §b%alkatraz_spells_mana_cost_fireball%
§7Mastery: §e%alkatraz_spells_mastery_fireball_percent%%%
§7Cooldown: %alkatraz_spells_cooldown_fireball_ready%
§e%player% has reached Circle %alkatraz_stats_circle_roman%!
§eTotal spells discovered: %alkatraz_stats_discovered_count%
-
Leaderboard caching: The leaderboard cache refreshes at the interval defined in
config.yml(default: 5 minutes). During this window, the data is stale. Set a shorter interval if your server has fewer players. - Offline players: The leaderboard reads player data files directly and can rank offline players, but only online players can use player-specific placeholders (stats, spells, hotbar).
- Empty returns: If a placeholder returns an empty string, verify the player is online, the spell/research ID is correct, and the profile is loaded.
-
Spell IDs: Use internal spell IDs (lowercase with underscores), not display names. Run
/spellsto see your spells, or check Spells for a full list. -
Research states: Possible values for
%alkatraz_research_state_<id>%correspond to theResearchStateenum (e.g.COMPLETED,LOCKED,AVAILABLE).