Skip to content

PlaceholderAPI

When PlaceholderAPI is installed, EmakiLevel registers the emakilevel expansion. These placeholders can be used in scoreboards, menus, chat formats, BossBars, ActionBars, and other plugins that support PlaceholderAPI.

If PlaceholderAPI is not installed, EmakiLevel still runs normally; only external %emakilevel_*% placeholders are not registered.

Player level placeholders

Player placeholders require a player context.

PlaceholderReturns
%emakilevel_level_<type>%Current level.
%emakilevel_exp_<type>%Current-level exp.
%emakilevel_total_exp_<type>%Total exp.
%emakilevel_totalexp_<type>%Total exp, no-underscore alias.
%emakilevel_total_<type>%Total exp, short alias.
%emakilevel_required_exp_<type>%Required exp for the next level.
%emakilevel_requiredexp_<type>%Required exp, no-underscore alias.
%emakilevel_required_<type>%Required exp, short alias.
%emakilevel_progress_<type>%Progress from 0 to 1.
%emakilevel_progress_percent_<type>%Progress from 0 to 100.

Examples:

text
%emakilevel_level_main%
%emakilevel_exp_main%
%emakilevel_required_exp_main%
%emakilevel_progress_percent_main%
%emakilevel_level_combat%
%emakilevel_total_exp_mining%

If <type> does not exist or player data cannot be loaded, the placeholder returns an empty string.

Leaderboard placeholders

Leaderboards use the plugin's currently cached player level data. Online players and already-loaded data can appear in the cache; this is not a full offline database scan.

PlaceholderReturns
%emakilevel_top_<type>_<rank>_name%Player name at rank.
%emakilevel_top_<type>_<rank>_level%Level at rank.
%emakilevel_top_<type>_<rank>_total_exp%Total exp at rank.
%emakilevel_top_<type>_<rank>_totalexp%Total exp, no-underscore alias.
%emakilevel_top_<type>_<rank>_total%Total exp, short alias.

Examples:

text
%emakilevel_top_main_1_name%
%emakilevel_top_main_1_level%
%emakilevel_top_main_1_total_exp%
%emakilevel_top_combat_3_name%

Leaderboard placeholders are parsed as top_<type>_<rank>_<field>. Default type IDs do not contain underscores. If you create custom type IDs with underscores, player placeholders can still parse them, but leaderboard placeholders should use type IDs without underscores to avoid ambiguity.

Number formatting

  • Integer values are displayed as integers, for example 120.
  • Decimal values keep two decimal places, for example 12.50.
  • progress is a value from 0 to 1.
  • progress_percent is a value from 0 to 100 and does not include the % symbol.

Scoreboard example:

text
Main Level: Lv.%emakilevel_level_main%
Main Exp: %emakilevel_exp_main%/%emakilevel_required_exp_main%
Progress: %emakilevel_progress_percent_main%%
Combat Level: Lv.%emakilevel_level_combat%
Top #1: %emakilevel_top_main_1_name% Lv.%emakilevel_top_main_1_level%

In %emakilevel_progress_percent_main%%, %emakilevel_progress_percent_main% is the placeholder and the last % is literal text.

Common usage

Menu lore:

yaml
lore:
  - "<gray>Main Level: <yellow>Lv.%emakilevel_level_main%</yellow>"
  - "<gray>Exp: <green>%emakilevel_exp_main%</green>/<green>%emakilevel_required_exp_main%</green>"
  - "<gray>Progress: <aqua>%emakilevel_progress_percent_main%%</aqua>"

Condition plugins:

text
%emakilevel_level_combat% >= 20
%emakilevel_progress_percent_mining% >= 75

Chat display:

text
[Lv.%emakilevel_level_main%] %player_name%: %message%

Difference from internal action variables

PlaceholderAPI placeholders are external %emakilevel_*% variables. EmakiLevel's types/<type>.yml > upgrade.actions.* provides internal action variables such as %level%, %new_level%, %amount%, and %failure_reason%. Both use %key% syntax, but their scopes are different.

See Configuration for action variables.