Skip to content

Placeholder Reference ​

PlaceholderAPI Placeholders ​

Expansion identifier: emakiskills

Prerequisite: PlaceholderAPI is installed. With it present, EmakiSkills registers the following placeholders with no extra configuration. Matching is lower-cased; a placeholder returns an empty string when the player profile is not loaded or the parameters cannot be parsed. Verify: put the placeholder into lore or chat and confirm it resolves to the value shown in the Example column

Global Placeholders ​

PlaceholderDescriptionExample
%emakiskills_cast_mode%Whether the player is in cast modetrue
%emakiskills_global_cooldown%Global cooldown remaining in seconds, 1 decimal1.5
%emakiskills_unlocked_count%Number of unlocked skills: the union of skill ids bound to slots and skill ids present in the profile8
%emakiskills_slot_count%The player's skill slot count (binding list length, set by slots.default_count)6
%emakiskills_level_total%Sum of all skill levels in the profile24

Skill Placeholders ​

PlaceholderDescriptionExample
%emakiskills_level_<skill_id>%Level of the specified skill; 0 when the profile has no entry for it3
%emakiskills_cooldown_<skill_id>%Remaining cooldown in seconds, 1 decimal; 0 when there is none12.5

Skill Slot Placeholders ​

PlaceholderDescriptionExample
%emakiskills_slot_<n>_skill%Skill ID bound to slot n; empty string for an empty slotfireball
%emakiskills_slot_<n>_name%Display name of the skill in slot nFireball
%emakiskills_slot_<n>_trigger%Trigger ID for slot n; empty string when unboundright_click
%emakiskills_slot_<n>_empty%Whether slot n is emptyfalse

An out-of-range slot index (negative or beyond the slot count) returns an empty string. Error handling: when you get an empty value, first check that <n> is between 0 and the slot count minus 1

Resource Placeholders ​

The resource id is taken verbatim from id in resources/*.yml and must be written the same way inside the placeholder

PlaceholderDescriptionExample
%emakiskills_resource_<id>_current%Current value of the resource, at most 2 decimals85
%emakiskills_resource_<id>_max%Maximum from the resource definition, at most 2 decimals; 0 when the definition is missing120
%emakiskills_resource_<id>_percent%Current value as a percentage of the maximum, at most 2 decimals; 0 when the definition or state is missing, or max <= 070

Usage Example ​

yaml
lore:
  - '<gray>Cast Mode: <white>%emakiskills_cast_mode%'
  - '<gray>Fireball Level: <white>%emakiskills_level_fireball%'
  - '<gray>Cooldown: <white>%emakiskills_cooldown_fireball%s'
  - '<gray>Mana: <aqua>%emakiskills_resource_mana_current%/%emakiskills_resource_mana_max%'
  - '<gray>Slot 1: <white>%emakiskills_slot_0_name% (%emakiskills_slot_0_trigger%)'

Upgrade action context variables ​

When skill upgrade actions (upgrade.levels.<n>.actions.success / .failure) run through the CoreLib action pipeline, the following context variables are injected automatically; reference them exactly as spelled in the table:

VariableDescriptionExample
%skills_skill_id%Skill definition IDfireball
%skills_phase%Upgrade action phase: skill_upgrade_success or skill_upgrade_failureskill_upgrade_success
%skill% / %skill_id%Skill display name / skill IDFireball / fireball
%level% / %current_level% / %target_level% / %max_level%Current level / current level / target level / maximum level2
%success_rate% / %success_rate_raw%Success rate as formatted text / raw number90
%roman_level%Target level in Roman numerals (1-10; Arabic numerals beyond that)III
%player%Player nameSteve

Action Example ​

yaml
upgrade:
  levels:
    3:
      actions:
        success:
          - 'send_message text="<green>Skill %skills_skill_id% upgraded to level %target_level%."'
        failure:
          - 'send_message text="<red>Upgrade failed, success rate was %success_rate%%."'

Notes ​

  • Cooldown placeholders change frequently; avoid overly short scoreboard refresh intervals
  • <n> in slot placeholders is the slot index, starting from 0
  • <id> in resource placeholders is the resource definition ID (e.g., mana, stamina) and must match the id in resources/*.yml
  • CoreLib built-in context variables (%player_name%, etc.) are also available in skill actions