-
Notifications
You must be signed in to change notification settings - Fork 5
Mobs
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.
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.
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
.
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
).
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.
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]
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
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.
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.
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
.
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. |
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 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 valuedefault
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 eitherhere
(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 thehere
orthere
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