Skip to content
totemo edited this page Jan 24, 2023 · 72 revisions

Start: Home ⬩ Previous: Items ⬩ Next: Loot Tables
See also: Mob Command Reference


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:

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). 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.

Tag Set Properties

Several mob properties, such as tags, groups and friend-groups, only accept comma-separated, sorted sets of strings. compared case-insensitively.

Under this scheme, the text "E,D,a,C,b" signifies the set of values {"a", "b", "C", "D", "E"} and is considered equivalent to the set of the same values with different letter cases. So, in the example, "A" is a member of the set, and "a,b,c,d,e" is another representation of the set, as is "A,B,C,D,E".

Note that normally we would use longer tag names, e.g. boss, rather than just single letters. Adding a tag or set of tags to a mob labels that mob as belonging to some user-defined category.

For example, you might want to label undead mobs with a custom "undead" group:

/beast-mob set skeleton groups undead,shooty
/beast-mob set zombie groups undead

/beast-mob set skeleton friend-groups undead
/beast-mob set zombie friend-groups undead

The above example puts skeletons and zombies in the custom undead group, and sets the friend-groups property of those mob types to undead so that they will not target or hurt each other. The skeleton mob type also has the shooty group, but the example makes no further use of that.

The tag mob type property allows BeastMaster to configure the vanilla Minecraft scoreboard tags of mobs. Scoreboard tags are used in vanilla Minecraft target selectors to select particular entities as the targets of vanilla commands. Scoreboard tags can also be operated upon using the vanilla Minecraft /tag command.

As an example, you could use BeastMaster to apply the tag friends to all cats and dog, and then murder them all with a vanilla command:

/beast-mob set cat tag friends
/beast-mob set dog tag friends
/kill @e[tag=friends]

Sound Properties

Various mob type properties encode sound effects. Sounds are input as <type> [<range>] [<pitch>|random], where the <type> is a Bukkit API Sound constant, and is case-insensitive. When omitted, the default range is 15 metres, and the default pitch (playback speed) is random, meaning it is selected randomly in the range 0.5 to 2.0.

Examples:

/beast-mob set iron-giant spawn-sound block_anvil_fall
/beast-mob set herobrine death-sound ENTITY_WITHER_DEATH 50.00 0.50
/beast-mob set angry-bee entity_bee_hurt 20 random

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
anger-ticks The duration in ticks of anger for bees and pigzombies. A positive value makes wolves angry for an indeterminate period. Enderman anger apparently can't be set through the Bukkit API. 0 or more
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-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.
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.
baby-percent The percentage chance that a mob is a baby. 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
breath-seconds The number of seconds the mob can hold its breath before it starts to suffocate. 0.0 or more
burning-percent The percentage chance that a mob will spawn with the appearance of being on fire. The fire does not damage the mob; it is only visual. 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. "Truthy" Yes/No values
charged-percent The percentage chance that a creeper is charged. 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
death-sound The sound played on mob death. Any Sound.
disguise The disguise applied to the mob in LibsDisguises syntax. Any Disguise.
drops The ID of a Loot Table that overrides the mob's vanilla drops. Any Loot Table ID.
entity-type The EntityType of the vanilla mob that this mob type is based on. Any entity type corresponding to a mob.
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
explosion-radius The explosion power of a creeper, as set by the Spigot API setExplosionRadius(). This gets serious fast. Start with a value below 10. Note that this property does not alter the explosion power of charged creepers. 0 to 127
fying-speed The generic.flyingSpeed attribute of parrots in some unknown units. Other flying mobs are unaffected by this. 0.0 to 1024.0
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
friend-groups The set of groups that the mob type refuses to target or damage. The plugin consults the groups property of each potential target mob and does not target it if it is a "friend". This property also protects "friends" from accidental damage, for example with projectiles. A comma-separated set of strings.
fuse-ticks The duration in ticks of the fuse of ignited creepers. 0 or more
glowing Whether the mob is rendered with the glow effect, a glowing white outline. "Truthy" Yes/No values
glowing-percent The percentage chance that a mob will spawn with the glow effect. 0.0 to 100.0
groups The set of groups a mob type belongs to. A comma-separated set of strings.
health The health of the mob in half-hearts. Most mobs have 20 half-hearts of health. 1 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
hurt-teleport-percent The percentage chance the mob will teleport away when hurt (playing the teleport-sound). This prevents mobs from standing still when the player has the upper hand. Damage below three health points is ignored to allow the mobs to take small falls without teleporting. 0.0 to 100.0
ignited-percent The percentage chance that a creeper-based mob will spawn with its fuse lit, i.e. already primed to explode. 0.0 to 100.0
invisible-percent The percentage chance that a mob will spawn invisible. Note that this invisibility is not potion-based, so there will be no visible potion swirls. This invisibility does not prevent the glow effect from rendering a visible outline. 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
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
melee-hurt-sound The sound played for all non-projectile damage to the mob. Any Sound.
name The name of the mob, shown in death messages and on the name plate. Text, including formatting codes beginning with &.
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
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.
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. A 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
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
potion-buffs The ID of a Potion Set that randomly selects potion buffs applied to the mob when it spawns. See Potion Sets.
projectile-disguise The disguise applied to all projectiles launched by the mob. Any Disguise.
projectile-hurt-sound The sound played when the mob is hurt by a projectile. Any Sound.
projectile-immunity-percent The percentage chance that a given projectile will bounce off the mob. 0.0 to 100.0
projectile-immunity-sound The sound played when a projectile bounces off the mob due to projectile immunity. Any Sound.
projectile-launch-sound The sound played when the mob launches a projectile. Any Sound.
projectile-mobs The ID of a loot table or mob type that replaces any projectiles launched by the mob. In the case of a loot table, the DEFAULT drop causes the projectile to not be replaced. A Loot Table ID or Mob Type ID.
projectile-removed If true, removes projectiles launched by the mob on impact, rather than sticking around until despawned. This is useful for removing awkward-looking disguised projectiles. "Truthy" Yes/No values
show-name-plate Whether the mob's name is visible on its name plate when the player is not looking directly at the mob. "Truthy" Yes/No values
silent Prevents the mob from playing its default vanilla sounds. This is useful for disguised mobs that don't sound like their disguise. "Truthy" Yes/No values
size The integer size of a slime or phantom. 1 or more
slime-can-split If true or equivalent, a slime spawns smaller slimes upon death. Setting this property to false prevents slimes from "splitting". "Truthy" Yes/No values
sonic-boom-damage-scale Scale factor applied to the damage inflicted by a warden's sonic boom attack, e.g. 0.5 to halve the damage. 0.0 or more
spawn-sound The sound played when the mob spawns. Any Sound.
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
support-health How low the mob's health must be for it to start summoning support mobs. If unset, it is taken to be the mob's maximum health. 0.0 or more
support-health-step How much the mob's health must decrease since the last time it spawned support mobs before it will again spawn support mobs. If unset, any health decrease is an opportunity to spawn support mobs. 0.0 or more
support-mobs The loot table ID or mob type ID that selects mobs to spawn when the mob is damaged. A Loot Table ID or Mob Type ID.
support-percent The percentage chance of spawning support mobs when the mob is damaged. If unset, it is effectively a 100% chance. 0.0 to 100.0
tags The set of scoreboard tags to be added to the mob when it spawns. Scoreboard tags can be used to restrict the targets of vanilla Minecraft commands using the @e[tag=value] or @e[tag=!value] target selectors. A comma-separated set of strings.
target-damager When true, mobs with this property immediately target their attacker (mob or player) when damaged. "Truthy" Yes/No values
teleport-sound The sound played when the mob teleports. Any Sound.

/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