
EmakiLevel | Multi-track Leveling, Experience Sources
A multi-track leveling system beyond vanilla XP: 13 ready-made level types, nine experience triggers, six-tier layered scaling, auto and manual level-ups, upgrade costs and rewards, attribute contribution, leaderboards, PDC sync and MythicMobs integration.
Compatibility
Minecraft: Java Edition
Platforms
Creators
Details
EmakiLevel separates long-term progression from vanilla experience. A main level plus a dozen profession levels each grow independently, fed by a wide range of in-game actions, with scaling resolved through a six-priority layered system so you can tune the curve globally, per group, per type or per exact level. Levels can contribute to EmakiAttribute stats, expose leaderboards, sync to PDC and integrate with MythicMobs ā all driven by YAML.
Nothing is fixed. Add, remove, rename or disable level types; route any in-game action to any level; control whether each type auto-levels or requires a manual command; and decide what each level-up costs and rewards. Player data is stored per-UUID and back-fills new types automatically.

Key Highlights
- 13 ready-made level types ā A main level plus combat, mining, logging, gathering, farming, fishing, taming, crafting, brewing, smelting, cooking and forging, each with its own cap, requirement group, auto/manual policy and attribute contribution. Add or remove your own.
- Nine experience triggers ā Entity kill, MythicMob kill, block break, crop harvest, fishing, item craft, brew complete, furnace extract and entity tame, each with match fields and exp formulas.
- Six-tier layered scaling ā Requirements resolve through a strict priority chain: per-type exact values, per-type formula, group values, group formula, global values, then global formula ā so common curves live in one place and exceptions override precisely.
- Auto and manual level-ups ā Per-type toggles for auto-upgrade and manual upgrade, with an auto-upgrade step cap so one huge exp gain cannot loop infinitely.
- Upgrade costs and rewards ā Optional economy and material costs per level-up (with formulas), plus item rewards matched by level (all / single / list / range) with give-or-drop handling.
- Attribute contribution ā Each type can feed EmakiAttribute stats via per-level formulas, refreshed whenever a level changes; gracefully skipped if Attribute is absent.
- Leaderboards and placeholders ā Per-type leaderboards and a full set of player and ranking placeholders for scoreboards, chat and titles.
- MythicMobs integration ā Mob-kill exp by mob id, plus custom non-physical exp drops with their own formulas.
Feature Overview
Level types
- Each type is its own YAML with id, enabled, display name (MiniMessage), description, primary flag, start/max level, requirement (group / formula / values), upgrade policy, PDC toggle and attribute contribution.
- The 13 defaults: main (cap 100, auto+manual, contributes combat power); combat (cap 80, contributes physical attack and crit rate); mining (cap 60, manual by default); logging, gathering, farming, fishing, taming (cap 60, auto+manual); crafting, brewing, smelting, cooking, forging (cap 60, auto+manual). Cooking and forging ship as reserved hooks.
- Types can be added, removed, disabled or renamed, as long as commands, placeholders, sources and actions reference the same type id.
Experience sources and nine triggers
- Source files cover combat, MythicMobs, block actions (mining / logging / gathering / farming), fishing, crafting, brewing, smelting and taming.
- The nine triggers and what they match:
- Entity kill (by entity type, killer or last-damager attribution, with an include-players option).
- MythicMob kill (by mob id, with mythic id and level variables).
- Block break (by block, for mining / logging / gathering).
- Crop harvest (breaking a fully-grown crop).
- Player fish (by fishing state such as caught-fish or caught-entity).
- Item craft (by result item source, with a count-result-amount option).
- Brew complete (attributed to the last player at the stand, with an expiry).
- Furnace extract (by result item source).
- Entity tame (player taming only).
- Each source rule has enabled, type, trigger, include-players, an anti-abuse ignore-player-placed-blocks flag, ordered rules (first match wins) and an exp formula; empty match fields mean unrestricted.
Layered upgrade requirements
- Requirements resolve through six priorities (exact values above formulas): per-type values, per-type formula, group values, group formula, global values, global formula.
- Default groups: global, main, profession and crafting_profession, each with a formula and exact values.
- Formula variables include current level, target level, max level, exp and total exp; a debug command shows which source a requirement resolved from.

Auto and manual level-ups
- Per-type toggles: enabled, auto-upgrade and manual-upgrade.
- Auto-upgrade chains level-ups after gaining exp, bounded by an auto-upgrade step cap so a single huge exp gain cannot loop forever.
- Manual upgrade via a command, gated by the manual-upgrade toggle.
- The upgrade flow adds exp and total exp, runs a gain action, then loops auto-upgrades checking required exp / max level / policy / economy / materials, running success or failure actions (with a failure reason), then syncs PDC and refreshes attributes.
- At max level, total exp can keep accumulating while the in-level exp stops.
Upgrade costs and rewards
- Economy cost (only when enabled): provider (auto / vault / excellenteconomy), currency, base cost and a cost formula.
- Material cost: item sources consumed in order, a base amount and an amount formula.
- Item rewards matched by level (all / single / a comma list / a range), with give-or-drop handling when the inventory is full.
Level-up actions
- Gain / success / failure action hooks run CoreLib actions with a rich context: type, display name, level, old/new level, exp, old/new exp, total exp, required exp, progress, progress percent, amount, reason ā supporting chance-gated actions, action bars, messages, broadcasts and sounds.

Leaderboards
- A per-type leaderboard command shows the top players from the current cache (online players plus loaded data), sorted by total exp.
- Leaderboard placeholders expose rank name, level, total exp.
Attribute contribution
- Globally toggled with a provider id; per-type, an attributes block maps attribute ids to formulas (with level / exp / total-exp variables).
- Online players' attribute contributions refresh when a level changes via exp, command or reload; skipped automatically if EmakiAttribute is not installed.
PDC sync and storage
- PDC sync (toggle plus per-event toggles for join / exp change / level change / reload) writes per-type level, exp, total exp, required exp and progress.
- Each player has a per-UUID data file with a schema version; new types back-fill starting data on next load; saved on quit and shutdown.
Anti-abuse and MythicMobs
- Anti-abuse tracks player-placed blocks (so placing then breaking gives no exp by default) and tracks the last damager (so kill credit survives indirect kills, within an expiry).
- MythicMobs: mob-kill exp by mob id (with mythic id and level variables), plus custom non-physical exp drops with their own formulas; the target must resolve to a player and a non-positive result is skipped.
API, actions and Web Console
- A static API facade (
EmakiLevelApi) reads and modifies level/exp and performs level-ups, returning a result object with success and reason. - CoreLib actions add/set/remove exp and level by type, with target, reason, auto-upgrade and silent options.
- Web Console structured editing for config, requirements, types, sources, GUI and language.
Commands
| Command | Description |
|---|---|
/elv |
View all level types |
/elv info [type] |
View a level type's detail |
/elv levelup [type] |
Manual level-up (alias up) |
/elv top [type] |
View a type's leaderboard |
/elv giveexp|takeexp|setexp <player> <type> <amount> |
Manage exp (admin) |
/elv addlevel|takelevel|setlevel <player> <type> <value> |
Manage level (admin) |
/elv reset <player> [type] |
Reset data (admin) |
/elv reload |
Reload configuration |
/elv debug requirement <type> <level> / debug pdc <player> |
Debug requirement resolution / PDC |
Main command /emakilevel, aliases /elv, /elevel.
Permissions
emakilevel.useā basic commands (default: true)emakilevel.levelupā manual level-up (default: true)emakilevel.topā view leaderboards (default: true)emakilevel.reloadā reload configuration (default: op)emakilevel.debugā debug commands (default: op)emakilevel.adminā administrative commands (default: op)
PlaceholderAPI
Expansion identifier emakilevel:
- Player:
%emakilevel_level_<type>%,_exp_<type>%,_total_exp_<type>%,_required_exp_<type>%,_progress_<type>%,_progress_percent_<type>% - Leaderboard:
%emakilevel_top_<type>_<rank>_name%,_level%,_total_exp% - Integers print as integers, non-integers keep two decimals, progress is 0ā1 and progress percent is 0ā100.
Compatibility & Dependencies
| Item | Details |
|---|---|
| Java | 25 |
| Bukkit API | 1.21 |
| Server | Spigot / Paper and downstream forks |
| Folia | Supported |
| Required | EmakiCoreLib |
| Optional | MythicMobs, EmakiAttribute, EmakiCooking, EmakiForge, PlaceholderAPI |
Installation & Quick Start
- Install
EmakiCoreLib.jarfirst (required dependency). - Place
EmakiLevel.jarintoplugins/. - Start the server to generate the default level types, experience sources, requirements and GUIs.
- Configure types / sources / scaling / rewards, then
/elv reloadand check/elv debug requirement <type> <level>.
Links
- Documentation: https://jiuwu02.github.io/Emaki_Series/
- Discord: https://discord.gg/FV4GFQbvCM
- QQ Group: https://qm.qq.com/q/GqGrzHp0wU

