MythicMobs Integration
EmakiAttribute integrates with MythicMobs for attribute damage mechanics, attribute conditions, and mob attribute configuration.
NOTE
MythicMobs is a soft dependency. If it is not installed, related features are skipped.
Skill mechanic: emaki_damage
Aliases: emakiattribute_damage, attribute_damage.
| Parameter | Type | Default | Description |
|---|---|---|---|
damage | double | skill power | Base damage. |
damage_type | string | — | Damage type id, such as physical or spell. |
allow_critical | boolean | true | Whether critical hits are allowed. |
allow_target_dodge | boolean | false | Whether target dodge is allowed. |
calculate_target_defense | boolean | true | Whether target defense is calculated. |
trigger_mythic_on_damaged | boolean | false | Whether MythicMobs on-damaged behavior is triggered. |
Example:
FireBlast:
Skills:
- emaki_damage{damage=50;damage_type=spell;allow_critical=true} @targetSkill mechanics: temporary attributes
These mechanics target skill targets (@target, @self, etc.) and work on both players and mobs. Temporary attributes are removed automatically on expiry and are not persisted (they are lost on restart).
Upgrade notes: timed attribute behaviour changes
emaki_attribute_add_tagno longer produces composite effect IDs.effect_prefix=poisonused to write one separatepoison:<attributeId>record per matched attribute; they now all join a singlepoisoneffect group. Configuration deleting a composite ID no longer matches — useemaki_attribute_remove{effect_id=poison}instead, which previously removed nothing and now works.- Multi-group SET (
set=true) on the same attribute now has a defined winner: the last write, no longer dependent on internal hash-map iteration order.
Single-attribute skill configuration is unaffected. Also note that low-level refusals (unregistered attribute, invalid stack_mode, NaN) used to still return SUCCESS; they now return INVALID_CONFIG and log a console warning.
emaki_attribute_add
Alias: emakiattribute_add. Adds one temporary attribute to the target.
| Parameter | Type | Default | Description |
|---|---|---|---|
effect_id | string | — | Effect group id. Several attributes can share one id: they coexist and emaki_attribute_remove clears the whole group. The stack mode only applies when the same attribute is re-applied inside the same group. Aliases: effectid, id. |
attribute | string | — | Attribute id. An unregistered id returns INVALID_CONFIG and logs a warning. Aliases: attribute_id, attributeid. |
value | double | 0 | Temporary value. NaN / ±Inf return INVALID_CONFIG. Aliases: amount, v. |
duration | int | — | Duration in ticks, must be greater than 0. Aliases: duration_ticks, ticks, d. |
stack_mode | string | attribute default | REPLACE or STACK. Falls back to the attribute's temporary_stack_mode; any other value returns INVALID_CONFIG instead of silently falling back. Aliases: stackmode, mode. |
set | boolean | false | When true, uses overwrite (SET) instead of additive (ADD). Alias: override_value. |
A target that is not a LivingEntity returns INVALID_TARGET.
emaki_attribute_remove
Alias: emakiattribute_remove. Clears every temporary attribute inside the effect_id group.
| Parameter | Type | Description |
|---|---|---|
effect_id | string | Effect group id to clear; every attribute in that group is removed. Returns CONDITION_FAILED when the target carries no such group, and INVALID_TARGET when the target is not a LivingEntity. Aliases: effectid, id. |
emaki_attribute_add_tag
Alias: emakiattribute_add_tag. Adds a temporary attribute for every attribute whose tags contain the given tag, placing them all into one effect group, so emaki_attribute_remove with that group id clears the whole set at once.
| Parameter | Type | Default | Description |
|---|---|---|---|
tag | string | — | Attribute tag (e.g. DEBUFF), case-insensitive. Aliases: tags, t. |
value | double | 0 | Value applied to every matching attribute. Aliases: amount, v. |
duration | int | — | Duration in ticks, must be greater than 0. Aliases: duration_ticks, ticks, d. |
effect_prefix | string | tag:<tag> | Effect group id that every matched attribute joins. Aliases: effectprefix, prefix. |
stack_mode | string | per-attribute default | REPLACE or STACK. Falls back to each attribute's temporary_stack_mode; any other value returns INVALID_CONFIG. Aliases: stackmode, mode. |
A target that is not a LivingEntity returns INVALID_TARGET.
emaki_attribute_clear_tag
Alias: emakiattribute_clear_tag. Clears every temporary attribute whose attribute carries the given tag.
| Parameter | Type | Description |
|---|---|---|
tag | string | Attribute tag, case-insensitive. Aliases: tags, t. A target that is not a LivingEntity returns INVALID_TARGET. |
Example:
CurseStrike:
Skills:
- emaki_attribute_add{effect_id=curse_slow;attribute=movement_speed;value=-2;duration=100} @target
- emaki_attribute_add_tag{tag=DEBUFF;value=-10;duration=100;stack_mode=STACK} @target
Purify:
Skills:
- emaki_attribute_clear_tag{tag=DEBUFF} @targetCondition: emaki_attribute
Aliases: emakiattribute_attribute, attribute_value, attribute_resource.
| Parameter | Description |
|---|---|
attribute | Attribute id when checking an attribute value. |
resource | Resource id when checking a resource value. Players only. |
field | Resource field: current (aliases current_value, value), max (alias current_max), default (alias default_max), bonus (alias bonus_max), or percent. Defaults to current. |
operator | Comparison operator. |
value | Comparison value. |
value_2 | Second value for between. |
| Operator | Aliases | Description |
|---|---|---|
> | gt | Greater than. |
>= | gte | Greater than or equal (default). |
< | lt | Less than. |
<= | lte | Less than or equal. |
!= | <>, ne | Not equal. |
between | — | Between value and value_2, inclusive and order-independent. |
NOTE
Omitting operator or supplying an unrecognized one falls back to >=. There is no dedicated equality operator.
Conditions:
- emaki_attribute{resource=health;field=percent;operator=<;value=30} trueMob attributes
MythicMobs mobs can define an EmakiAttribute section:
FireDragon:
Type: ENDER_DRAGON
Health: 500
EmakiAttribute:
- "physical_attack: 100"
- "physical_defense: 50"
- "spell_attack: 80"
- "health: 500"Every entry must be quoted
EmakiAttribute is a string list. Written unquoted as - physical_attack: 100, YAML parses each entry as a mapping instead of a string, the whole section is skipped, the mob receives no attributes, and nothing is logged.
To check: run /ea debug on and enter combat, then look for your attribute IDs in the attacker snapshot. Seeing only default_profile entries means the section was not read.
Attributes are synchronized when Mythic mobs spawn, and active Mythic mobs are resynced after MythicMobs reloads.