Skip to content

MythicMobs Integration ​

How EmakiLevel and MythicMobs work together: how to enable each path, how to fill in the parameters, and how to choose between the two

EmakiLevel provides two MythicMobs integration paths:

  1. Kill sources: grant exp when a player kills configured MythicMob IDs through sources/mythicmobs.yml
  2. Custom drops: write emakilevel_exp{...} or elv_exp{...} in MythicMobs Drops to grant intangible level exp directly

Both can be used together or independently

Enable switches ​

Prerequisite: 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:

yaml
mythicmobs:
  enabled: true
  kill_sources: true
  drops:
    enabled: true
    names:
      - "emakilevel_exp"
      - "elv_exp"
FieldTypeRequiredDefaultRangeDescription
mythicmobs.enabledbooleannotruetrue / falseGlobal MythicMobs switch. When false, kill sources and drops are ignored
mythicmobs.kill_sourcesbooleannotruetrue / falseEnables mythic_mob_kill source rules
mythicmobs.drops.enabledbooleannotruetrue / falseRegisters custom MythicMobs drops
mythicmobs.drops.nameslist<string>noemakilevel_exp, elv_exp—Recognized drop names. Empty list falls back to defaults

Run /elv reload after editing to apply changes

MythicMob kill sources ​

Default file: plugins/EmakiLevel/sources/mythicmobs.yml

yaml
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"

Trigger timing and behavior:

  • When a player kills an entity, CoreLib publishes the entity_kill shared event first, then checks whether the entity is a MythicMob and publishes an additional mythic_mob_kill event when it is
  • A single kill can therefore match both entity_kill and mythic_mob_kill sources
  • mob_ids are matched case-normalized
  • Matched exp is written to the source type, default combat
  • This source also supports anti_abuse.exp_cooldown_ticks, ignore_near_spawner, and spawner_scan_radius

Formula variables:

VariableDescription
%mythic_id%MythicMob internal ID
%mythic_level%MythicMob level, supplied by the CoreLib shared event

Example:

yaml
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:

yaml
Drops:
  - emakilevel_exp{type=main;amount=120}
  - elv_exp{type=combat;amount=80;reason=mythic_drop}

Parameters:

ParameterDefaultDescription
typeconfig.yml > primary_typeTarget level type ID
amount1Base exp amount. Can be a number or expression
amount_formula%amount% * %drop_amount%Final exp formula
reasonmythic_dropOperation reason, exposed to level action variable %reason%
auto_upgradetrueWhether this exp operation can trigger auto-upgrade
silentfalseSilent flag passed into the level service

amount_formula variables:

VariableDescription
%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 ​

yaml
Drops:
  - emakilevel_exp{type=combat;amount=50}

Scale by drop amount ​

yaml
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 ​

yaml
Drops:
  - elv_exp{type=main;amount=200;amount_formula="%amount% + %generations% * 25";reason=boss_reward}

Add exp without auto-upgrade ​

yaml
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 ​

yaml
Drops:
  - elv_exp{type=combat;amount=25;silent=true;reason=mob_drop}

Useful for frequent small mob rewards, avoiding excessive feedback when combined with actions

Choosing source rules or drops ​

MethodBest for
mythic_mob_kill sourceCentralized exp rules by MythicMob ID inside EmakiLevel
MythicMobs dropRewards 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 ​

Failure handling: the custom drop target must resolve to a Bukkit Player. If MythicMobs gives the drop to a non-player entity, EmakiLevel skips it

Likewise, if the final formula result is less than or equal to 0, the exp grant is skipped