Skip to content
Clexus edited this page Sep 12, 2023 · 17 revisions

Magic Mobs

Magic lets you create custom mobs that you can spawn into the world. There are several built-in default mobs that you can look at in the survival mobs.

Magic Mobs can have custom equipment, health, names and loot drops. They can also randomly cast spells.

Magic mob loot can include magic items and Skill Points.

Spawning Via Command

You can spawn a Magic Mob in-game at your target location with the "mmob spawn" command, e.g.

/mmob spawn warlock
/mmob spawn mutant_captain

As always, use tab-completion for options in-game!

You can also spawn mobs from other plugins or via command blocks by providing a location:

/mmob spawn warlock 100 64 100 world

Customizing and Adding new Mobs

You may edit the plugins/Magic/mobs.yml file to add Magic Mobs or customize existing ones, just like you would with spells or wands.

Triggers

Magic mobs can cast spells or run commands when certain triggers occur.

  • On a specific interval
  • On death
  • On damage

For interval triggers, you may specify an interval in milliseconds with the interval property.

Spellcasting uses a probability table to randomly choose a spell to cast, commands use a simple list of commands to run.

For example:

  interval: 5000
  triggers:
    damage:
      cast:
        push|4: 150
        none: 50
    death:
      cast:
        neutron: 10
        fury: 50
      commands: 
      - broadcast A bomb went off!
      - kill @damagers
    interval:
      cast:
        missile|4: 20
        railgun: 10
        fury: 5
        none: 20

Every second this mob will randomly choose a spell to cast. There is a chance it will cast nothing, otherwise it will chose to cast "Magic Missile level 4" (most often) Railgun (Less often) or Fury (rarely).

On death, this mob will cast either Fury or Neutron (rarely), and execute a list of commands, killing anyone that damaged it and announcing it to the whole server.

On damage, the mob may cast Push Level 4.

Trigger definitions can include multiple triggers of the same type, using the "type" property. They may also have certain qualifiers. For example:

  triggers:
    damage1:
      type: damage
      min_health: 100
      cast:
        push|4: 150
        push|3: 100
        none: 50
    damage2:
      type: damage
      max_health: 100
      cast:
        missile|4: 150
        railgun: 100
        push|4: 70
        shell: 20
        none: 20

This mob will get more aggressive as its health gets lower.

Qualifiers:

  • min_health : This trigger will only fire if the mob has at least this much health
  • max_health : This trigger will only fire if the mob has less than this much health
  • min_health_percentage : This trigger will only fire if the mob has at least this much health (as a percentage of max health)
  • max_health_percentage : This trigger will only fire if the mob has less than this much health (as a percentage of max health)
  • min_damage : This trigger will only fire if the mob takes at least this much damage (only valid on damage triggers)
  • max_damage : This trigger will only fire if the mob takes than this amount of damage (only valid on damage triggers)

Command Parameters

Valid parameters for commands include:

  • @x, @y, @z, @world for the location of the mob at time of death
  • @name for the name of the mob
  • @killer for the last player to have damaged the mob before death
  • @damager for the player that did the most damage to the mob
  • @damagers for all players that damaged the mob

Other Magic Mob Properties

  • name : A custom name for a mob, which is required for most other functionality to work
  • type : The EntityType of this mob, required.
  • potion_effects : Permanent potion effects can be added
  • aggro : Magic mobs who cast spells or have other special behavior will auto-target players that damage them. use "aggro: true" to turn on this behavior for simple magic mobs as well.
  • health : How much health the mob has
  • default_drops : Set to false to avoid dropping vanilla loot on death
  • drops : A list of custom items to drop on death

Magic Mob Triggers

Mobs can cast spells, perform commands or run effects based on some triggers. For example:

  interval: 1000
  triggers:
    interval:
      cast:
        missile: 20
        poison: 30
        pull: 100

This will automatically cast one spell, chosen with a weighted random pick, every second (1000 ms).

Other available triggers include:

  • interval : Every interval milliseconds
  • death : When the mob dies
  • damage : When the mob is damaged
  • launch : When the mob launches a projectile
  • deal_damage : When the mob deals damage
  • kill : When the mob kills another mob or player
  • spawn : When the mob is first spawned
  • respawn : When the mob is respawned due to spell undo or chunk reload (for persistent mobs)

Mob Spawner Blocks

  • NOTE: Due to a vanilla feature, you must be opped to place mob spawners.

A mob spawner configured to spawn a mob with the same base type and display name as a Magic Mob (e.g. Zombie and "Warlock") will spawn a magic mob instead.

This bypasses WorldGuard and other spawn restrictions, so you can use this to set up tightly controlled dungeons with natural spawning disabled!

See the "spawnershop" spell/shop or the "warlockspawner" item for examples.

Natural Spawning

You can use /mconfig example add spawnmobs to turn on the spawnmobs example, making Magic Mobs spawn naturally in your worlds.

You will get some instructions in chat showing you how to customize the spawn rules.

Region-Based Spawning

By adding tags to spawn rules you can provide custom spawning per-region.

TODO: Update example....

See the Region Mix-in for an (outdated) example (that may still work)

In-game you would use

/region flag <some region> spawn-tags arena

To tag the region you want these spawn rules to apply in.

This can be combined with vanilla spawners (or Magic Block spawners to add Magic Mob spawners to specific areas. See http://minecraft.tools/en/spawn.php for a good spawner creation tool.

User-Submitted Mobs

Clone this wiki locally