MythicMobs Integration
EmakiLevel provides two MythicMobs integration paths:
- Kill sources: grant exp when a player kills configured MythicMob IDs through
sources/mythicmobs.yml. - Custom drops: write
emakilevel_exp{...}orelv_exp{...}in MythicMobsDropsto grant intangible level exp directly.
Both can be used together or independently.
Enable switches
MythicMobs is an optional dependencies.server entry in paper-plugin.yml. If MythicMobs is not installed, EmakiLevel skips these bridges and the rest of the plugin still works.
Main config:
mythicmobs:
enabled: true
kill_sources: true
drops:
enabled: true
names:
- "emakilevel_exp"
- "elv_exp"| Field | Description |
|---|---|
mythicmobs.enabled | Global MythicMobs switch. When false, kill sources and drops are ignored. |
mythicmobs.kill_sources | Enables mythic_mob_kill source rules. |
mythicmobs.drops.enabled | Registers custom MythicMobs drops. |
mythicmobs.drops.names | Recognized drop names. Defaults to emakilevel_exp and elv_exp; empty list falls back to defaults. |
Run /elv reload after editing.
MythicMob kill sources
Default file: plugins/EmakiLevel/sources/mythicmobs.yml
id: "mythicmobs_sources"
enabled: true
sources:
mythic_mob_kill:
enabled: true
type: "combat"
trigger: "mythic_mob_kill"
anti_abuse:
exp_cooldown_ticks: 5
ignore_near_spawner: true
spawner_scan_radius: 8
rules:
- mob_ids: ["SkeletonKing", "UndeadKnight"]
exp_formula: "50 + %mythic_level% * 5"
- mob_ids: ["ForestBoss"]
exp_formula: "300 + %mythic_level% * 20"Behavior:
- When a player kills an entity, CoreLib publishes the
entity_killshared event first, then checks whether the entity is a MythicMob and publishes an additionalmythic_mob_killevent when it is. - A single kill can therefore match both
entity_killandmythic_mob_killsources. mob_idsare matched case-normalized.- Matched exp is written to the source
type, defaultcombat. - This source also supports
anti_abuse.exp_cooldown_ticks,ignore_near_spawner, andspawner_scan_radius.
Formula variables:
| Variable | Description |
|---|---|
%mythic_id% | MythicMob internal ID. |
%mythic_level% | MythicMob level, supplied by the CoreLib shared event. |
Example:
sources:
dungeon_boss_level:
enabled: true
type: "main"
trigger: "mythic_mob_kill"
rules:
- mob_ids: ["DungeonBoss"]
exp_formula: "500 + %mythic_level% * 50"Custom drops
When MythicMobs is installed and mythicmobs.drops.enabled: true, EmakiLevel listens to MythicDropLoadEvent and registers intangible exp drops. These drops do not create items; they grant level exp to the target player.
Minimal example:
Drops:
- emakilevel_exp{type=main;amount=120}
- elv_exp{type=combat;amount=80;reason=mythic_drop}Parameters:
| Parameter | Default | Description |
|---|---|---|
type | config.yml > primary_type | Target level type ID. |
amount | 1 | Base exp amount. Can be a number or expression. |
amount_formula | %amount% * %drop_amount% | Final exp formula. |
reason | mythic_drop | Operation reason, exposed to level action variable %reason%. |
auto_upgrade | true | Whether this exp operation can trigger auto-upgrade. |
silent | false | Silent flag passed into the level service. |
amount_formula variables:
| Variable | Description |
|---|---|
%amount% | Parsed base amount from the amount parameter. |
%drop_amount% | Drop amount multiplier passed by MythicMobs. |
%metadata_amount% | MythicMobs DropMetadata amount. |
%generations% | MythicMobs DropMetadata generations. |
%tick% | MythicMobs DropMetadata tick. |
%player% | Target player name. |
%type% | Target level type. |
%drop% | Matched drop name. |
If amount is not a plain number, it is evaluated as an expression first. In that expression, %drop_amount%, %metadata_amount%, %generations%, and %tick% are available.
Drop examples
Fixed exp
Drops:
- emakilevel_exp{type=combat;amount=50}Scale by drop amount
Drops:
- emakilevel_exp{type=main;amount=100;amount_formula="%amount% * %drop_amount%"}If MythicMobs passes a drop amount of 3, the final exp is 300.
Boss scaling by generations
Drops:
- elv_exp{type=main;amount=200;amount_formula="%amount% + %generations% * 25";reason=boss_reward}Add exp without auto-upgrade
Drops:
- elv_exp{type=mining;amount=500;auto_upgrade=false;reason=event_reward}The exp remains in the current level until the player manually runs /elv levelup mining.
Silent reward
Drops:
- elv_exp{type=combat;amount=25;silent=true;reason=mob_drop}Useful for frequent small mob rewards.
Choosing source rules or drops
| Method | Best for |
|---|---|
mythic_mob_kill source | Centralized exp rules by MythicMob ID inside EmakiLevel. |
| MythicMobs drop | Rewards that should live with MythicMobs mob configs, drop tables, conditions, or groups. |
If both are configured, one kill can grant both source exp and drop exp. A recommended split:
- Basic exp for normal MythicMob kills:
sources/mythicmobs.yml. - Bosses, events, rare rewards, condition-based rewards: MythicMobs
Drops.
Target restrictions
The custom drop target must resolve to a Bukkit Player. If MythicMobs gives the drop to a non-player entity, EmakiLevel skips it.
If the final formula result is less than or equal to 0, the exp grant is skipped.