Skip to content
totemo edited this page Nov 10, 2019 · 51 revisions

Start: Home ⬩ Previous: Items ⬩ Next: Loot Tables


The /beast-mob command allows you to customise the properties of Minecraft mobs and to define new types of mobs.

Specifically, the /beast-mob command is used to:

  • list all known mob types,
  • add (define) new types of mobs,
  • remove custom mob type definitions,
  • spawn individual mobs, one per command, and
  • to set, show or clear the properties of mobs.

Note that /beast-mob does not control natural spawning of mobs in the world; to do that, you need to use a loot table, as discussed in the Loot Tables section.

Mob Types

Every mob spawned by BeastMaster has an associated mob type that defines the properties of the mob. Custom mobs are created by defining a new mob type in terms of some pre-existing type, and then configuring custom values for one or more of the new type's properties.

The /beast-mob list command enumerates all mob types, starting with a list of all vanilla Minecraft mob types, which are predefined:

The names of all of the predefined mob types are computed by converting the Bukkit API EntityType constants for mobs to lower case and removing underscores.

Note that EntityType is used to describe any kind of entity, including things like arrows and paintings that are not mobs and are therefore excluded from the list of predefined types.

Mob Type Ancestry and Inheritance

New custom mob types are defined in terms of some existing type, which is referred to as its "parent type". The newly defined type is the "child" of the "parent".

Mob types "inherit" the properties of their parent type (and all of its ancestors) as defaults. The child type is free to override these inherited default values.

Or, to put it another way, the default value of any property of a mob type is that specified by the nearest ancestor (parent, grandparent, great grandparent, etc) of the type. The default property value applies only when the property is not overridden by the mob type itself.

For example, consider a mob type ppp (based on the predefined type zombie) and another mob type ccc based on ppp:

/beast-mob add ppp zombie
/beast-mob add ccc ppp

In this example, ppp is the "parent" of ccc, and ccc is the "child" of ppp. The predefined type zombie is the grandparent of ccc.

We can inspect the properties of ccc by running /beast-mob info ccc:

Note that the child type, ccc, inherited the entity-type property from the grandparent type, zombie. The entity-type property cannot be changed. It's always inherited directly or indirectly from the oldest ancestor, which is always one of the predefined, built-in, vanilla Minecraft mobs and defines the 3-D model of the mob and its basic behaviours. You can, however, change parent-type property of custom mobs, and that will change the entity-type accordingly.

If we then set the health property of the ppp mob type by running /beast-mob set ppp health 50:

then when we inspect ccc again (/beast-mob info ccc), we see that ccc has inherited the parent's health value:

The /beast-mob info <mob-id> command shows the origin of the value of each property listed. In the above image, we can see that the health value was inherited from the parent type ppp and the entity-type property value, ZOMBIE, was inherited from the predefined type zombie.

If we were to change the value of the health property in type ppp, that change would immediately be reflected in ccc. Similarly, if we were to set additional properties of ppp, those would also immediately be inherited by ccc.

If we want to override the inherited value of a property (say health) then we simply set the property to a specific value on the type where it applies:

/beast-mob set ccc health 100

In the above example, mob type ccc has 100 health (in half-hearts), irrespective of the health value inherited from its parent type ppp.

Special Properties: parent-type and entity-type

When a new mob type is defined, with /beast-mob add <mob-id> <parent-id>, the parent-type property of the new type is set to the identifier (ID) of the parent type specified in the command.

If you set the parent-type property of a mob type, it will inherit default values for its properties from the new parent. For example, we could make ccc inherit its properties from skeleton:

/beast-mob set ccc parent-type skeleton

After the above command, ccc would no longer inherit any properties from ppp. It would only inherit the properties of the built in type skeleton (probably only entity-type value SKELETON).

Unset Properties

There are many properties that could be applied to a mob type, but by default they are all unset (with the exception of entity-type which is always computed automatically from the oldest ancestor). When a property is not set and a value has not been inherited for that property from any ancestors, BeastMaster just gives you a mob that is identical to a vanilla mob with regard to that property. So, for example, if you don't set main-hand-drop-percent for a mob type or any of its ancestors, then the effective main hand drop chance is the vanilla Minecraft default, 8.5%.

*Note that there is no way (currently) to clear a property to the vanilla default in an ancestor that has inherited a non-default property value: /beast-mob clear <mob-id> <property-id> makes a property unset, which means it is inherited. If an ancestor sets a value for that property, that value will be inherited.

Temporal Scope of Properties

Most properties are appied only once, to configure a mob in the process of spawning. If you spawn a mob, and then change the properties of its type, then the previously spawned mob will have properties that differ from the mob type definition. However, any subsequently spawned mobs will be in synchrony with the new mob type definition.

Customising the Predefined Mob Types

You are free to set the properties of any of the predefined mob types, e.g. creeper, zombie, skeleton, etc. For example:

/beast-mob set creeper speed 0.4

makes all subsequently spawned creepers disconcertingly fast. If none of the mob types derived from creepers change the speed property, they will also be the same speed, because they inherit that property value.

Setting the properties of all predefined types is a simple way to customise mobs without needing to define new custom mob types. For example, you can customise the drops of a predefined type:

/beast-mob set shulker drops shulker-drops

assuming that shulker-drops is a loot table that drops items, this would change the drops of all shulkers spawned in a world. This could be used to make shulkers drop more than the default number of shulker shells, for instance.

Spawning Mobs

You can spawn a mob of any vanilla or custom type at your current location with /beast-mob spawn <type> here. For example:

/beast-mob spawn creeper here

Alternatively, you can spawn a mob at the location in your crosshairs with /beast-mob spawn <type> there. Or if you know the specific coordinates of the spawn location, you can specify them as world x y z, e.g.:

/beast-mob spawn zombie world_nether 0.5 76 0.5

For the purposes of previewing the appearance of mobs, or safely displaying mobs to players, you can spawn an inert version of a mob (whose AI has been disabled) using /beast-mob statue .... For example:

/beast-mob statue spider there

The statue sub-command supports the same options as /beast-mob spawn ... for specifying the location of the mob, i.e. here, there and world x y z.

Mob Property Reference

All mob properties can be set on any mob type, but some properties that are specific to a particular kind of mob will have no effect. For example, charged-percent has no effect when it is applied to a mob type that is not based on creeper.

Property Description Valid Values
parent-type The Mob Type from which this mob inherits default values for its properties. Any mob type other than the mob's own type.
entity-type The EntityType of the vanilla mob that this mob type is based on. This property cannot be directly set, but will change to match the entity type of the mob's parent-type. Any entity type corresponding to a mob.
drops The ID of a Loot Table that overrides the mob's vanilla drops. Any Loot Table ID.
health The health of the mob in half-hearts. Most mobs have 20 half-hearts of health. 1 or greater
experience The integer number of experience points in the XP orb dropped by the mob on death. (Note that this is not the same as XP levels. Typical hostile overworld mobs drop 5 XP.) 0 or more
follow-range The value of the mob's generic.followRange attribute, which is how far away (in blocks) a target must get before the mob loses interest. 0.0 to 2048.0 blocks
attack-damage The value of the mob's generic.attackDamage attribute, which is the damage dealt in half-hearts. 1.0 to 2048.0
attack-speed The value of the mob's generic.attackSpeed attribute. Note: it turns out that the generic.attackSpeed attribute does not affect mobs, so this property will be removed in a future version.
speed The value of the mob's generic.movementSpeed attribute. The mob's maximum speed in blocks/second is a bit over 43 times this value, but can be affected by various conditions. See the Minecraft wiki entry for more information. 0.0 to 1024.0
fying-speed The generic.flyingSpeed attribute of parrots in some unknown units. Other flying mobs are unaffected by this. 0.0 to 1024.0
pick-up-percent The percentage chance that the mob will be able to pick up items. Whether a mob can pick up items or not is selected when the mob spawns and does not change (unless altered by a command). 0.0 to 100.0
baby-percent The percentage chance that a mob is a baby. 0.0 to 100.0
charged-percent The percentage chance that a creeper is charged. 0.0 to 100.0
size The integer size of a slime or phantom. 1 or greater.
glowing Whether the mob is rendered with a white glowing outline. true, false, yes, no and single letter abbreviations.
name The name of the mob, shown in death messages and on the name plate. Text, including formatting codes beginning with &.
show-name-plate Whether the mob's name is visible on its name plate when the player is not looking directly at the mob. true, false, yes, no and single letter abbreviations.
breath-seconds The number of seconds the mob can hold its breath before it starts to suffocate. 0.0 or more
helmet The ID of the Item in the mob's helmet slot, or the ID of a Loot Table used to randomly select an item to wear. An Item ID or Loot Table ID.
helmet-drop-percent The percentage chance that the mob will drop its helmet on death. (Note that if the mob is wearing an item it picked up, that item is guaranteed to drop.) 0.0 to 100.0
chest-plate The ID of the Item in the mob's chest plate slot, or the ID of a Loot Table used to randomly select an item to wear. An Item ID or Loot Table ID.
chest-plate-drop-percent The percentage chance that the mob will drop its chest plate on death. (Note that if the mob is wearing an item it picked up, that item is guaranteed to drop.) 0.0 to 100.0
leggings The ID of the Item in the mob's leggings slot, or the ID of a Loot Table used to randomly select an item to wear. An Item ID or Loot Table ID.
leggings-drop-percent The percentage chance that the mob will drop its leggings on death. (Note that if the mob is wearing an item it picked up, that item is guaranteed to drop.) 0.0 to 100.0
boots The ID of the Item in the mob's boots slot, or the ID of a Loot Table used to randomly select an item to wear. An Item ID or Loot Table ID.
boots-drop-percent The percentage chance that the mob will drop its boots on death. (Note that if the mob is wearing an item it picked up, that item is guaranteed to drop.) 0.0 to 100.0
main-hand The ID of the Item in the mob's main hand, or the ID of a Loot Table used to randomly select an item to hold. An Item ID or Loot Table ID.
main-hand-drop-percent The percentage chance that the mob will drop the item held in its main hand on death. (Note that if the mob is holding an item it picked up, that item is guaranteed to drop.) 0.0 to 100.0
off-hand The ID of the Item in the mob's off hand, or the ID of a Loot Table used to randomly select an item to hold. An Item ID or Loot Table ID.
off-hand-drop-percent The percentage chance that the mob will drop the item held in its off hand on death. (Note that if the mob is holding an item it picked up, that item is guaranteed to drop.) 0.0 to 100.0
can-despawn Whether the mob will despawn when players get too far away. By default, shulkers and named mobs don't despawn. Fox example, to make shulkers despawn, you could do: /beast-mob set shulker can-despawn yes. true, false, yes, no and single letter abbreviations.
potion-buffs The ID of a Potion Set that randomly selects potion buffs applied to the mob when it spawns. See Potion Sets.
attack-potions The ID of a Potion Set that randomly selects potion effects applied to the victim of the mob's melee and projectile attacks when the victim takes damage. See Potion Sets.
disguise The disguise applied to the mob in LibsDisguises syntax. See Disguises.
passenger The ID of a Loot Table that spawns a passenger mob or the ID of a Mob Type to be spawned as a passenger. Note that BeastMaster allows mobs to stack no more than 10 creatures tall. For example, if you set every creeper to spawn with a creeper as its passenger (/beast-mob set creeper passenger creeper) then every creeper spawned will be part of a stack of creepers 10 mobs tall. Loot Table ID or Mob Type ID
passenger-percent The percentage chance that a passenger will be spawned when passenger is set. If passenger-percent is unset, it is considered to be implicitly 100% when passenger has a value. 0.0 to 100.0

/beast-mob Command Help

As with all BeastMaster commands, you can run /beast-mob help to see a description of all command options in chat. Equivalently, you can run /help /beast-mob, optionally appending a page number.

If you type an incomplete /beast-mob command, you will see an error message describing the parameters of the command.

In the case of /beast-mob set, you will also get a list of all properties of mob types that can be set.

/beast-mob Command Reference

  • /beast-mob help - Show usage help.

  • /beast-mob add <mob-id> <parent-id> - Define a new mob type as a subtype of the specified parent mob type. Mob type IDs are case insensitive, and all Bukkit API mob types are pre-defined with underscores omitted from their names.

  • /beast-mob remove <mob-id> - Remove the definition of the specified mob type.

  • /beast-mob list - List all mob types.

  • /beast-mob info <mob-id> - Describe the specified mob type.

  • /beast-mob get <mob-id> <property> - Get the configured value of the specified property of the mob type.

  • /beast-mob set <mob-id> <property> <value> - Set the configured value of the specified property of the mob type. The value default sets the property to that inherited from the parent mob type. That is equivalent to using /beast-mob clear ....

  • /beast-mob clear <mob-id> <property> - Clear the specified property of the mob type, so that it will be inherited from the parent type.

  • /beast-mob spawn <mob-id> (here|there|<world> <x> <y> <z>) - Spawn a mob of the specified mob type either here (player location), there (where the player is looking) or at explicitly specified coordinates in a named world. A player must be in-game to use the here or there variants. Examples:

    • /beast-mob spawn zombie here
    • /beast-mob spawn zombie there
    • /beast-mob spawn zombie world_the_end 10 64 20
  • /beast-mob statue <mob-id> (here|there|<world> <x> <y> <z>) - Spawn a mob of the specified mob type, as with /beast-mob spawn ..., but the spawned mob will have no AI and will therefore not move.


Start: Home ⬩ Previous: Items ⬩ Next: Loot Tables

You can’t perform that action at this time.