Skip to content

Custom mobs

Daniel Saukel edited this page Oct 18, 2020 · 3 revisions

See also: Categorizable

A custom mob within the sense of Caliburn is a template for a spawned mob. Thus, custom mobs do not have current health or other non-permanent status effects.

Caliburn stores custom mob under plugin/Caliburn/custom/mobs. The file name (without the .yml extension) is the ID of the mob.

Some settings may only be available on latest Minecraft versions.

species: SKELETON
idType: METADATA # See https://github.com/DRE2N/CaliburnAPI/wiki/identifier-types

# All of the following settings are optional.
# If you do not include them, the mob will behave like a Vanilla mob.
name: "Custom Name"
isCustomNameVisible: true
isGlowing: true
hasGravity: true
isInvulnerable: false
isSilent: true
isPersistent: false
passengers: [MY_CUSTOM_MOB, ZOMBIE]
# potionEffects TODO
# Either:
equipment: NameOfMyEquipmentLootTable
# Or:
equipment:
  ==: de.erethon.caliburn.loottable.LootTable
  'leggings':
    item:
      ==: org.bukkit.inventory.ItemStack
      v: 2580
      type: DIAMOND_LEGGINGS
    chance: 100.0
  'mainHand':
    item:
      ==: org.bukkit.inventory.ItemStack
      v: 2580
      type: ENCHANTED_BOOK
      meta:
        ==: ItemMeta
        meta-type: ENCHANTED
        stored-enchants:
          OXYGEN: 3
    chance: 100.0
removeWhenFarAway: true
hasAI: true
isCollidable: true
canPickupItems: true
maxAir: 20
# Either:
drops: NameOfMyDropsLootTable
# Or:
drops:
  ==: de.erethon.caliburn.loottable.LootTable
  '0':
    item:
      ==: org.bukkit.inventory.ItemStack
      v: 2580
      type: DIAMOND_LEGGINGS
    chance: 100.0
  '1':
    item:
      ==: org.bukkit.inventory.ItemStack
      v: 2580
      type: ENCHANTED_BOOK
      meta:
        ==: ItemMeta
        meta-type: ENCHANTED
        stored-enchants:
          OXYGEN: 3
    chance: 100.0

# These OPTIONAL settings should specify a class
# that provides custom handlers implemented through a custom Java plugin.
# They do not need to be included in most cases.
attackHandler: "de.erethon.mycustommobplugin.MyMobAttackHandler"
damageHandler: "de.erethon.mycustommobplugin.MyMobDamageHandler"
deahHandler: "de.erethon.mycustommobplugin.MyMobDeathHandler"
interactHandler: "de.erethon.mycustommobplugin.MySMobInteractHandler"

It is recommended to use ItemsXL's /ixl registerMob command to read the traits from a spawned mob automatically.

API

Registration

Damage modifiers

ActionHandlers

To do