4.8.0 [Dev]

4.7.0 [Premium]

Major Features

1.14 Support

  • Full support for 1.14.4
  • Dropped support for 1.7, 1.9 and 1.10

New Mobs

  • Cat
  • Fox
  • Panda
  • Pillager
  • Ravager

New Particles

  • flash
  • landinglava
  • sneeze
  • composter
  • fallinglava
  • fallingwater

Better MetaSkills

MetaSkills can now in many places be put in-line instead of having to reference another skill. This means you will no longer have to make multiple small skills in order to use certain complex meta-skills, such as projectiles.

This is done by creating a new list of mechanics surrounded by square brackets []s instead of putting a skill name. You can do this to nest skills pretty much infinitely. Each new list of skills should be properly indented to make sure YAML reads them correctly.

Skills:
- projectile{
      interval=1; velocity=30; bulletType=BLOCK; material=MAGMA_BLOCK; tyo=0.5; g=1; bulletSpin=-40; hnp=true; stopatentity=false; duration=100;
      onHit=[
          - damage{amount=50}
          - ignite{ticks=20}
      ];
      onTick=[
          - particles{p=flame;a=20;hs=0.5;vs=0.5}
      ];
      onEnd=[
          - particles{p=largeexplode;a=50;speed=1;hs=0.05;vs=0.05}
          - effect:sound{s=entity.dragon_fireball.explode;p=0.6;v=2}
          - damage{amount=30} @ENO{r=5}
      ];
  } @targetlocation

Math/Placeholders

This feature is Premium-only.

You can now use math and numeric placeholders in lots of places! The plan is to expand this to be usable anywhere, but it's a big undertaking.

In order to use math where able, you can simply put placeholders and equations between '' where you'd normally put a number value.

For example:

Skills:
- damage{amount=1}
- damage{amount='5 + 5'}
- damage{amount='<caster.level> * 10'}

and so on

The following mechanics can use math so far:

  • damage
  • damagePercent
  • heal
  • healPercent
  • setLevel

Math is also usable in drop amounts:

Drops:
- gold_nugget '1 + (0.2 * <caster.level>)'

Projectile Bullets

Projectile mechanics can now specify a bullet type that will represent the projectile. No longer are projectiles just limited to particles!

These work with the projectile, missile, and orbital mechanics.

Bullet types available are:

  • ARROW - projectile{bulletType=ARROW;…}
  • BLOCK - projectile{bulletType=BLOCK;material=STONE;…}
  • ITEM - projectile{bulletType=ITEM;material=STONE;…}
  • MOB - projectile{bulletType=MOB;mob=SkeletonKing;…}

Yes, that's right, you can even shoot projectiles made up of other Mythic mobs! Mobs shot with the projectile skill cannot be interacted with, but will still use all their skills…

You can also use the new bulletSpin=# option to give your bullets some spin.

Mobs

Added support for all 1.14 mob types.

Mechanics

NEW: onShoot

A special Aura mechanic that adds a temporary onShoot skill to the target.

Skills:
- onShoot{auraName=fireball_bow;onShoot=[ shootfireball ];duration=200;charges=5} @self

In this example, the caster's next 5 bow shots will shoot fireballs instead of arrows.

NEW: Speak

Speak is similar to the message skill, but is used for making mobs “talk”. Mobs will talk in the chat using a configured syntax, and if you have a hologram plugin installed, they will also have speech bubbles!

  1. speak{m=“OH BOY I HAVE SPEECH BUBBLES NOW”} @trigger ~onInteract
  2. speak{m=“OW THAT HURTS I CANT BELIEVE YOU WOULD HIT AN INNOCENT MAN”} @trigger ~onDamaged

NEW: VariableMath

Conditions

NEW: DamageAmount

NEW: DamageCause

NEW: Health

NEW: Moving

Items

  • Added the Model option for setting an item's CustomModelData NBT tag.
  • Placeholders and variables are now usable in item lore

Drops

Math

  • *Premium Only* You can now use math equations and placeholders in drop amounts, surrounded by single-quotes.
  • Drop messages now use regular placeholders

NEW: cmd

  • Added a new drop type to run a command for the killer

Placeholders

  • Name-related placeholders will now show the entity's type instead of Unknown if the mob has no name
  • Added <trigger.luck> placeholder
  • Added <caster.enchantlevel.ENCHANT_NAME> placeholder
  • Added <caster.heldenchantlevel.ENCHANT_NAME> placeholder
  • Added <&nm> placeholder for number signs #

Spawns

  • Regular mobs will now obey the MaxMobsPerChunk option

Compatibility

Holographic Displays

All hologram-related things now support using Holographic Displays, including health bars, nameplates, and speech bubbles.

LibsDisguises

  • Added a bunch of missing disguises

Bug Fixes / Other

  • Fixed some bugs with serialization
  • Fixed missiles to hit the target's body instead of their feet
  • Fixed wearing condition
  • Fixed some egg-related crashes on 1.14
  • Fixed placeholders in drop messages
  • Fixed singlequotes breaking message mechanics
  • Fixed <.php> placeholders
  • Fixed the shootpotion mechanic
  • Fixed a bunch of errors related to world unloading
  • Fixed despawn event throwing an async error
  • Fixed despawning errors on shutdown
  • Fixed xp messages showing up even when disabled
  • Fixed droptable inline item display names not parsing special characters
  • Fixed inline OnBlock and WorldTime conditions
  • Fixed an error with recursive drops
  • Fixed several variable-related bugs
  • Fixed custom API drops not rolling amounts correctly
  • Fixed various errors with Random Spawns
  • Fixed particle effects appearing in the wrong world
  • Fixed delayed skills throwing errors when the world was unloaded
  • Fixed toggleLever not obeying the set duration
  • Fixed another error with shootpotion
  • Fixed MythicMobs breaking the Guilds plugin
  • Fixed onSurface option in summon mechanics

4.6.5 [Free]

  • Basic support for 1.14
  • Backported lots of bug fixes from 4.7

4.6.0 - 4.6.4

General

  • Added config option RandomSpawning.DisableVanillaSpawns
  • Skills can now be called with a new shorthand syntax skill:name
Skills:
- skill:someskill ~onAttack

Major Features

Better Saving

Mobs with Despawn: false will now save their information far more reliably, and now remember everything about themselves between restarts such as their owner, stance, etc.

Variables System

MythicMobs now includes many new mechanics and conditions for dealing with variables, with options for temporary, non-saving, or permanent variables that can be placed on mobs or players. See the variables page for more information.

Placeholders

The Placeholders (formerly called variables for some reason) system has been totally redone and is now much faster, in addition to having an assortment of new placeholders.

This refers to the system of having <> placeholders in any configured strings such as <caster.name>

This system now integrates with PlaceholderAPI, and you can use %placeholderapi% placeholders anywhere that you can use MM placeholders

Placeholders should now usable in any mechanics and conditions that allow strings.

Some of the new Placeholders include:

  • <caster.var.X> - gets the value of the variable X on the current caster
  • <target.var.X> - gets the value of the variable X on the current target
  • <trigger.var.X> - gets the value of the variable X on the current trigger
  • <skill.var.X> - gets the value of the variable X on the current skill tree
  • <random.#to#> - a random number between # and #

Variable placeholders can have a |default appended in-case the variable you're looking for isn't set.

<target.var.something|default>

In-Line Conditions

You can now use basic conditions within mechanics using the new ? “if” operator. These conditions only run as regular conditions (targeting the caster), can not have condition actions, and they always check if the condition is true.

For example:

Skills:
- message{m="hey i'm on a gold block!"} @trigger ?onBlock{t=GOLD_BLOCK} ~onInteract

Your mechanic lines can have as many of these as you want in it, multiples do work.

Mobs

  • Added Options.PreventSunburn: true for burnable mobs

Mechanics

NEW: BreakBlock

Breaks the block at the targeted location

Skills:
- breakblock @targetlocation

NEW: onAttack

A special Aura mechanic that adds a temporary onAttack skill to the target. Can also be used to modify damage done by the attack.

Skills:
- onAttack{auraName=fiery_strikes;onHit=FireStrike;duration=200;charges=5;multiplier=2} @self

In this example, the caster's next 5 physical hits within 10 seconds would trigger the FireStrike skill targeting whatever was hit and also deal 200% damage. However, if FireStrike's conditions failed, it would deal regular damage as the multiplier would not trigger either.

onAttack has the following options:

  • All options available to Auras
  • onHit=[skill] - A skill to execute while the aura is active
  • cancelEvent=true - Whether to cancel the event and do no base damage
  • multiplier=# - An optional multiplier on the original hit's damage
  • add=# - An optional static increase to the original hit's damage

NEW: onDamaged

A special Aura mechanic that adds a temporary onDamaged skill to the target. Can also be used to modify damage done by the attack.

Skills:
- onDamaged{auraName=fire_shield;onHit=FireShield;duration=200;charges=5;multiplier=0.5} @self

In this example, the caster's next 5 hits taken in 10 seconds would trigger the FireShield skill targeting whatever hit them and also deal 50% damage. However, if FireShield's conditions failed, it would deal regular damage as the multiplier would not trigger either.

onDamaged has the following options:

  • All options available to Auras
  • onHit=[skill] - A skill to execute while the aura is active
  • cancelEvent=true - Whether to cancel the event and damage taken
  • multiplier=# - An optional multiplier on the original hit's damage
  • sub=# - An optional static decrease (or increase if negative) to the original hit's damage

NEW: RemoveOwner

Removes the target mob's owner.

NEW: SendResourcePack

Forces the target player to download a resource pack. Player must have resource packs enabled on the server.'

Skills:
- sendResourcePack{url=www.website.com/resourcepack.zip} @target

NEW: SetFaction

Sets or changes the target mob's faction

Skills:
- setFaction{faction=X}

NEW: SetGameMode

Sets the game mode of the targeted player

Skills:
- setGameMode{mode=ADVENTURE} @trigger ~onInteract

NEW: Shield

Shields the target with absorption hearts for a set amount.

Skills:
- shield{amount=10;maxShield=20} @target

NEW: ShieldPercent

Shields the target with absorption hearts for a percentage of their maximum health.

Skills:
- shield{multiplier=0.5;maxShield=2} @target

MaxShield also acts as a multiplier, so the example shield would stack up to 2x the target's max health.

NEW: VariableSet

Sets a variable on the specified scope.

  setVariable{
      variable=[scope].[name];
      value=[the value];
      type=[variable_typpe];
      save=[true/false];
      duration=[optional_duration_in_ticks]
    }
Skills:
- setvariable{var=skill.testVar;value="hello";type=STRING} ~onInteract
- setvariable{var=caster.something;value=1;type=INTEGER;save=true} @self ~onInteract
- setvariable{var=target.temporaryVar;value="im temporary";type=STRING;duration=200} @target ~onAttack

Scope can be set by prefixing scope.name to the variable, or by using the scope=[scope] option.

NEW: VariableAdd

Adds an amount to a variable on the specified scope. Only works with numeric variable types.

Skills:
- variableadd{var=skill.testVar;amount=1} ~onInteract

NEW: VariableSubtract

Subtracts an amount to a variable on the specified scope. Only works with numeric variable types.

Skills:
- variablesubtract{var=skill.testVar;amount=1} ~onInteract

Auras

Added various options to Auras, and fixed many bugs:

Option Description
maxStacks=5 The maximum stacks of an aura that can exist on a target from a particular caster
mergeAll=false Defaults to false, auras from all casters on the same target will be merged and have their stacks increased
mergeSameCaster=true Defaults to true, auras from the same caster on the same target will be merged and have their stacks increased
refreshDuration=true Defaults to true, refreshes the duration on auras when a new stack is applied

Heal and HealPercent

  • Overhealing now applies absorption hearts instead of increasing maximum health.
  • Added MaxOverhealing option for both skills, working exactly like the similar shield mechanics.

PushButton

  • Fixed on 1.13
  • Now works with location targeters

Summon

  • Added summonerIsParent=false, summonerIsOwner=false options

ToggleLever

  • Fixed on 1.13
  • Now works with location targeters

Conditions

NEW: StringEquals

Returns true if the the two strings match. Both values can use placeholders.

Conditions:
- stringEquals{value1="yes";value2="<mob.var.ready|nope>"}
- stringEquals{value1="yes";value2="%essentials_godmode%"}

NEW: VariableEquals

Returns true if the variable matches the value. The value can contain placeholders/other variables/etc.

Conditions:
- variableEquals{variable=[scope].[variablename];value="[a value]"}
- variableEquals{variable=target.somevariable;value="hello"} true
BearGrowl:
  TargetConditions:
  - variableEquals{var=target.heardbear;value="yes"} cancel
  Skills:
  - message{m="You hear a growling noise"}
  - setvariable{var=target.heardbear;value="yes";duration=6000}

NEW: VariableIsSet

Returns true if the variable is set on the target scope.

  1. variableIsSet{variable=[scope].[variablename]}
  2. variableIsSet{variable=target.somevariable} true

NEW: VariableInRange

Returns true if the variable is within the given range. Only works with numeric variables.

  1. variableInRange{variable=[scope].[variablename];range=[range]}
  2. variableInRange{variable=target.somevariable;range⇒10} true

Triggers

NEW: onDespawn

After years of people asking, we've finally figured out how to add a decent ~onDespawn trigger. This should fire whenever the mob stops existing for any reason other than death.

Items

NBT Support

  • You can now specify NBT tags on items in the format:

Item:

  Id: DIAMOND_SWORD
  NBT:
    Base:
      ATag: 20
      SomeOtherTag: something
    GemSlots:
      RedGem: 0
    'Denizen NBT':
      somedenizentag: a_string

This allows cross-over with a lot of other plugins, or just for storing some custom information.

For the more technically-inclined, anything under 'Base' will go under the item's base compound tag, and anything else will go under the corresponding key (or if no sub-items are defined, everything will go under the base tag).

If using with Denizen, all tags you want to use in Denizen must go under 'Denizen NBT' and must be lower-case to work in your Denizen scripts.

Drop Tables

  • Added “nothing” droptype for helping with weighted droptables
  • Finally fixed/implemented BonusLevelItems and BonusLuckItems

BonusLevelItems: [number]/[range]

  • A modifier on the number of items dropped based on the mob's level
  • Can be set as a range, i.e. 0.2to0.5
  • Works like: amount = amount + (mob_level * bonus_level_items)
  • Requires that TotalItems, MinItems, or MaxItems be set on the table to work

BonusLuckItems: [number]/[range]

  • A modifier on the number of items dropped based on the killer's luck stat
  • Can be set as a range, i.e. 0.15to8
  • Works with Luck attribute, Luck-based enchants/curses, and Luck potion effects
  • Works like: amount = amount + (luck * bonus_luck_items)
  • Requires that TotalItems, MinItems, or MaxItems be set on the table to work

RandomSpawns

  • Optimized and improved random spawn point generation
  • Fixed RandomSpawns not obeying MaxMobsPerChunk option

PositionType

  • Added PositionType: [LAND/SEA] option, defaults to LAND
  • Land spawns will only ever spawn on land
  • Sea will only ever spawn in water

Compatibility

PlaceholderAPI

Placeholders from PlaceholderAPI can now be used anywhere MythicMobs placeholders can be used, including in mechanics, conditions, etc.

  1. message{m=“<trigger.name> has God-Mode? %essentials_godmode%”} @trigger ~onDamaged

WorldGuard

  • Readded WorldGuard 6 support for Minecraft 1.8-1.12

API

Added MythicMobDespawnEvent, which should trigger whenever mob stops existing for any reason that isn't death.

Bugs/Other

  • Fixed MPets compatibility
  • Fixed bugs with new particle options
  • Fixed potential dupe glitch with consumeHeldItem mechanic and Artifacts
  • Fixed bugs with item durability not applying on 1.13+
  • Fixed various bugs with item generation
  • Fixed SkillAPI and McMMO xp messages showing even when disabled
  • Fixed RandomSpawns not obeying MaxMobsPerChunk option
  • Fixed targeter sort=RANDOM not returning any targets
  • Fixed <trigger.name> not displaying when trigger is a mob
  • Fixed particle projectiles being stopped by half-slabs
  • Fixed console spam from WorldGuard
  • Fixed some spawner issues involving not tracking despawning mobs correctly
  • Fixed imported bukkit items not loading
  • Fixed cast/castinstead condition actions not obeying cooldowns
  • Fixed many legacy items not converting properly in droptables
  • Fixed damaged mobs not dying with ignoreArmor=true
  • Fixed mobs spawning multiple mounts in some scenarios
  • Fixed mob owner and cooldowns not saving between restarts
  • Fixed threat tables not dropping targets that change worlds

Older Changelogs

changelog.txt · Last modified: 2019/08/09 19:24 by xikage