Skip to content

EmakiLevel ​

What the EmakiLevel plugin does, how to install it, which files it releases by default, and which level types ship with it are described below

EmakiLevel is the Emaki Series level and multi-experience-type plugin. It stores long-term player progression separately from vanilla experience and can manage multiple level tracks such as main, combat, mining, fishing, crafting, brewing, smelting, and taming

It integrates level types, experience sources, requirements, rewards, attribute contributions, PlaceholderAPI, CoreLib actions, and MythicMobs drops into one runtime plugin

Module facts ​

ItemValue
Module version1.6.9
Runtime plugin jarEmakiLevel-1.6.9.jar
Developer API jaremaki-level-api-1.6.6.jar
Main classemaki.jiuwu.craft.level.EmakiLevelPlugin
Main command/emakilevel
Aliases/elv, /elevel
Hard dependencyEmakiCoreLib
Soft dependenciesMythicMobs, EmakiAttribute, EmakiCooking, EmakiForge, PlaceholderAPI
Main permissionsemakilevel.use (default true), emakilevel.levelup (true), emakilevel.top (true), emakilevel.reload (op), emakilevel.debug (op), emakilevel.admin (op)
Data storageplugins/EmakiLevel/data/<uuid>.yml
Java / platformJava 25 project baseline, api-version: 26.1, folia-supported: true

Installation ​

Install only runtime plugin jars on the server:

text
plugins/
├─ EmakiCoreLib-*.jar
└─ EmakiLevel-1.6.9.jar

Do not put emaki-level-api-*.jar into the server plugins/ directory. The API jar is only for third-party developers as a Maven provided or Gradle compileOnly dependency. The runtime plugin jar shades its own API

Optional plugins enable additional features:

Optional pluginEnabled capability
PlaceholderAPIRegisters %emakilevel_*% placeholders
MythicMobsEnables MythicMob kill sources and emakilevel_exp / elv_exp intangible drops
EmakiAttributeConverts attributes.values from level types into attribute contributions
EmakiCooking / EmakiForgeCan grant level experience through CoreLib actions from recipes or processes

Features ​

  • Multiple level types: each types/*.yml file defines one level type. Defaults include main, combat, mining, fishing, crafting, brewing, smelting, and taming
  • Per-player YAML data: one file per player storing level, exp, total_exp, and update time for every level type
  • Layered requirements: required experience resolves from type overrides, then requirement groups, then global defaults. Exact values and formulas are both supported
  • Automatic and manual level-up: each type can control auto-upgrade, manual /elv levelup, economy costs, material costs, item rewards, and action phases
  • Experience listeners: vanilla kills, MythicMobs kills, block breaking, mature crop harvest, fishing, crafting, brewing, furnace extraction, and taming
  • Anti-abuse helpers: tracks player-placed blocks and recent damagers
  • CoreLib actions: other Emaki plugins or third-party integrations can add/remove exp or levels
  • PDC sync: online players receive PDC values for level, exp, total exp, required exp, and progress
  • Attribute bridge: when EmakiAttribute is installed, level formulas can contribute attributes

Runtime folder ​

On first startup, default resources are released by the CoreLib Bootstrap flow (the boot-time initialization sequence):

text
plugins/EmakiLevel/
├─ config.yml
├─ requirements.yml
├─ types/
│  ├─ main.yml
│  ├─ combat.yml
│  ├─ mining.yml
│  └─ ...
├─ sources/
│  ├─ combat.yml
│  ├─ block_actions.yml
│  ├─ mythicmobs.yml
│  └─ ...
├─ gui/
│  ├─ level_gui.yml
│  └─ top_gui.yml
├─ lang/
│  ├─ zh_CN.yml
│  └─ en_US.yml
└─ data/
   └─ <uuid>.yml

config.yml > release_default_data: true controls whether missing bundled data files such as requirements.yml, types/, sources/, and gui/ should be released. Customized existing files are not overwritten by normal restarts

Default level types ​

Type IDPurposeMax levelRequirement groupDefault upgrade modeDefault attributes
mainMain progression100mainauto + manualattribute_power = %level% * 0.5
combatVanilla and MythicMobs combat80combatauto + manualphysical_attack, physical_crit_rate
miningMining60miningmanual, auto disabled by defaultmining_power = %level% * 0.2
loggingLog chopping60loggingauto + manualdisabled
gatheringPlant gathering60gatheringauto + manualdisabled
farmingMature crop harvest60farmingauto + manualdisabled
fishingFishing60fishingauto + manualdisabled
tamingEntity taming60tamingauto + manualdisabled
craftingCrafting60craftingauto + manualdisabled
brewingBrewing stand completion60brewingauto + manualdisabled
smeltingFurnace extraction60smeltingauto + manualdisabled
cookingReserved for cooking gameplay60cookingauto + manualdisabled
forgingReserved for forging gameplay60forgingauto + manualdisabled

Default types are templates. You may add, remove, disable, or rename types/*.yml entries, but commands, placeholders, source rules, and actions must reference the same type ID

Basic workflow ​

Work through these steps in order to get the level system running:

  1. Install and start EmakiCoreLib and EmakiLevel
  2. Review plugins/EmakiLevel/types/ and keep only the level types you need
  3. Configure requirement curves in requirements.yml
  4. Configure experience sources in sources/*.yml
  5. If manual level-up should cost money or materials, edit types/<type>.yml > upgrade.cost
  6. If EmakiAttribute is installed, configure types/<type>.yml > attributes.values
  7. Run /elv reload
  8. Verify with /elv info, /elv debug requirement <type> <level>, and PlaceholderAPI

Player data overview ​

yaml
schema_version: 1
uuid: "00000000-0000-0000-0000-000000000000"
name: "PlayerName"
levels:
  main:
    level: 1
    exp: 0.0
    total_exp: 0.0
    updated_at: 1730000000000

Level-up flow:

  1. Resolve the level type and ensure it is enabled
  2. Add current-level exp and total_exp
  3. Execute upgrade.actions.gain
  4. If auto-upgrade is allowed, try level-ups up to level.max_auto_upgrade_steps
  5. Check requirement exp, max level, manual/auto switches, money costs, and material costs
  6. On success, consume requirement exp, increase level, grant rewards, and execute upgrade.actions.success
  7. On failure, execute upgrade.actions.failure with failure_reason
  8. Sync PDC and refresh EmakiAttribute contributions when available

Documentation pages ​

  • Commands: player/admin commands, permissions, and examples
  • Placeholders: all %emakilevel_*% placeholders and leaderboard placeholders
  • Configuration: main config, level types, requirements, costs, rewards, PDC, and attributes
  • Experience Sources: sources/*.yml triggers, match fields, formula variables, and anti-abuse behavior
  • MythicMobs Integration: MythicMob kill exp and custom drops
  • CoreLib Actions: actions EmakiLevel registers in the CoreLib action registry
  • API: developer API, CoreLib actions, static facade, and provider helper usage
  • Events: Bukkit events in emaki.jiuwu.craft.level.api.event and their cancellability