Skip to content

MythicMobs Integration

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

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"
FieldDescription
mythicmobs.enabledGlobal MythicMobs switch. When false, kill sources and drops are ignored.
mythicmobs.kill_sourcesEnables mythic_mob_kill source rules.
mythicmobs.drops.enabledRegisters custom MythicMobs drops.
mythicmobs.drops.namesRecognized 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

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"

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.

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

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.