-
Notifications
You must be signed in to change notification settings - Fork 65
[Guide] Creating Custom Bosses
Boss files go into the configuration folder ~/plugins/EliteMobs/custombosses
.
It is possible to create subfolders, such as ~/plugins/EliteMobs/custombosses/mybosses
. This is recommended to keep things organized.
Files are stored in the .yml
file format and Notepad++ is the recommended file editing software for configuration work. One file defines one boss, though it is possible to spawn the same boss several times and even set several spawn locations for the same boss file.
It is possible to use the webapp to quickly and easily create custom bosses and more.
Please note that the smallest possible configuration file for a Custom Boss is:
Note how this is just an empty file. This will still spawn a zombie custom boss with a custom name, as those are the defaults. Everything in this page is optional!
Let's take a look at an example of what a bossfile looks like.
Example
isEnabled: true
entityType: ZOMBIE
name: '&eTest boss'
level: dynamic
timeout: 10
isPersistent: false
healthMultiplier: 2.0
damageMultiplier: 0.5
helmet: GOLDEN_HELMET
chestplate: IRON_CHESTPLATE
leggings: LEATHER_LEGGINGS
boots: CHAINMAIL_BOOTS
mainHand: GOLDEN_AXE
offHand: SHIELD
isBaby: false
powers:
- invulnerability_knockback.yml
spawnMessage: A test boss has been spawned!
deathMessage: A test boss has been slain by $players!
escapeMessage: A test boss entity has escaped!
locationMessage: 'Test entity: $location'
uniqueLootList:
- magmaguys_toothpick.yml:1
dropsEliteMobsLoot: true
dropsVanillaLoot: true
trails:
- BARRIER
onDamageMessages:
- "I've hit you!"
onDamagedMessages:
- "I've been hit!"
The following value types are frequently used in the plugin:
Strings are words or sentences, and should be placed between single quotes ('example 1'
) or double quotes ("example 2"
).
String values can frequently have color codes. This uses the traditional color code system, which you can find here.
Example:
name: "&cRed Boss"
Integers are whole numbers, such as -100
, 0
, 123
and so on.
Example:
level: 10
Doubles are non-whole numbers, such as -11.12391
and 2391.1234
.
Example:
healthMultiplier: 1.2
Multipliers are just a specific application of doubles. Taking health multipliers as an example, numbers between 0.0
and 1.0
lower the boss health, and numbers between 1.0
and infinity increase the boss health. 0.5
will result in halving an amount, and 2.0
will double an amount.
Example:
healthMultiplier: 0.5
Sets if the boss is enabled.
Key | Values | Default |
---|---|---|
isEnabled |
true / false
|
true |
Example
isEnabled: true
Sets the entity type of the boss.
Key | Values | Default |
---|---|---|
entityType |
Pick from here. Value must also be present in ~plugins/EliteMobs/mobproperties . |
ZOMBIE |
Example
entityType: ZOMBIE
Sets the name of the boss.
Key | Values | Default |
---|---|---|
name |
String, accepts color codes and the placeholders listed below | "Default Name" |
Placeholder | Description | Example | Output (for a level 10 boss) |
---|---|---|---|
$level |
Replaces with the level | "$level Cool boss" | 10 Cool boss |
$normalLevel |
Replaces with the level, made for normal mobs | "$normalLevel Cool boss" |
[10] Cool boss |
$minibossLevel |
Replaces with the level, made for minibosses | "$minibossLevel Cool boss" |
〖10〗 Cool boss |
$bossLevel |
Replaces with the level, made for bosses | "$bossLevel Cool boss" |
『10』 Cool boss |
$reinforcementLevel |
Replaces with the level, made for reinforcements | "$reinforcementLevel Cool boss" |
〔10〕 Cool Boss |
$eventBossLevel |
Replaces with the level, made for event bosses | "$eventBossLevel Cool boss" |
「10」 Cool boss |
Example
name: "$normalLevel &cCool boss!"
Sets the level of the boss.
Key | Values | Default |
---|---|---|
entityType |
Positive integer numbers or dynamic
|
dynamic |
dynamic
is used for events and adjusts to the level of nearby players at the time of the boss spawn.
It is not recommended for regional bosses.
Example
level: 1
Sets the health of the boss.
Key | Values | Default |
---|---|---|
healthMultiplier |
Multiplier | 1.0 |
Example
healthMultiplier: 1.5
Sets the damage multiplier of the boss.
Key | Values | Default |
---|---|---|
damageMultiplier |
Multiplier | 1.0 |
Example
damageMultiplier: 1.5
Sets if the boss uses the baby variant of the mob. Can only be applied to mobs with baby variants.
Key | Values | Default |
---|---|---|
isBaby |
true / false
|
false |
Example
isBaby: true
Sets the armor of the boss. Not all minecraft models are able to show armor. Boss armor is purely cosmetic and does not affect gameplay.
Key | Values | Default |
---|---|---|
helmet |
Material | none |
chestplate |
Material | none |
leggings |
Material | none |
boots |
Material | none |
mainHand |
Material | none |
offHand |
Material | none |
Note: This field also lets you set custom models for items. To set the custom model ID, add the ID after the material type following this format: ITEM_MATERIAL:ID
. Example: DIAMOND_SWORD:1
sets the boss to wear a diamond sword with the custom model #1 in your texture pack.
Note 2: This field also lets you set custom leather colors with the format ITEM_MATERIAL:CODE
where the code is the hexadecimal representation of the color. Example: LEATHER_LEGGINGS:ffa500
would create orange leggings. You can use hex codes, just remove the #
when you get them from here.
Example
helmet: 198c4123-cafc-45df-ba79-02a421eb8ce7
chestplate: DIAMOND_CHESTPLATE:1
leggings: LEATHER_LEGGINGS:ffa500
boots: NETHERITE_BOOTS
mainHand: DIAMOND_SWORD
offHand: SHIELD
Sets the powers the boss has.
Key | Values | Default |
---|---|---|
powers |
Refer to the list below | none |
Example
powers:
- hyper_loot.yml
A full list of powers can be found in the ~/plugins/EliteMobs/powers
folder. The following list is not necessarily complete since you can make custom powers and some dungeons come with their own powers.
List of premade elite powers
Power filename | Description |
---|---|
attack_fireworks.yml |
Boss shoots fireworks when hit. |
arrow_rain.yml |
Makes arrows rain from the sky. |
attack_arrow.yml |
Makes the boss shoot arrows. |
attack_blinding.yml |
Gives the blindness potion effect on attack. |
attack_confusing.yml |
Gives the nausea potion effect on attack. |
attack_fire.yml |
Sets players on fire on attack. |
attack_fireball.yml |
Makes the boss shoot fireballs. |
attack_freeze.yml |
Makes the boss freeze players on hit. |
attack_gravity.yml |
Gives the levitation potion effect on attack. |
attack_lightning.yml |
Strikes lightning at nearby players. |
attack_poison.yml |
Applies poison on attacks. |
attack_push.yml |
Increases knockback of attacks. |
attack_vaccuum.yml |
Pulls players towards the boss on attack. |
attack_weakness.yml |
Applies the weakness potion effect on attack. |
attack_web.yml |
Spawns a web at the player location on player damage. |
attack_wither.yml |
Applies the wither potion effect on attack. |
bonus_coins.yml |
Drops extra coins. |
bonus_loot.yml |
Drops extra loot. |
bullet_hell.yml |
Makes the boss levitate and shoot several tracking arrows. |
channel_healing.yml |
Makes the boss heal other nearby bosses. |
corpse.yml |
Spawns a bone block on boss death. |
death_slice.yml |
Creates a damage zone around the boss. |
ender_dragon_aimed_fireball.yml |
Makes the dragon shoot fireballs. |
ender_dragon_arrow_bombardment.yml |
Makes the dragon shoot arrows. |
ender_dragon_disco_fireballs.yml |
Makes the dragon rotate fireballs around itself and then shoot them. |
ender_dragon_empowered_lightning.yml |
Makes lightning strike with a custom block animation for destruction. |
ender_dragon_ender_fireball_bombardment.yml |
Makes the dragon shoot ender fireballs. |
ender_dragon_endermite_bombardment.yml |
Makes the dragon spawn endermite reinforcements. |
ender_dragon_fireball_bombardment.yml |
Makes the dragon shoot fireballs. |
ender_dragon_potion_bombardment.yml |
Makes the dragon shoot potions. |
ender_dragon_shockwave.yml |
Makes the dragon destroy the combat arena. |
ender_dragon_tornado.yml |
Makes the dragon spawn a tornado. |
firestorm.yml |
Spawns several damaging flame pillars. |
fireworks_barrage.yml |
Makes the boss shoot several fireworks rockets. |
flame_pyre.yml |
Makes a flame pillar appear on the boss. |
flamethrower.yml |
Makes the boss shoot a flamethrower. |
frost_cone.yml |
Makes the boss shoot snowballs in a direction. |
frost_walker.yml |
Gives the boss frost walking boots to walk on water. |
gold_explosion.yml |
Spawns damaging gold nuggets on the boss that can be blocked. |
gold_shotgun.yml |
Spawns damaging gold nuggets in a direction that can be blocked. |
ground_pound.yml |
Makes the boss jump and drop to the floor with knockback. |
hyper_loot.yml |
Drops 10x the normal loot. |
implosion.yml |
Pulls all nearby entities towards the boss on death. |
invisibility.yml |
Makes the boss invisible. |
invulnerability_arrow.yml |
Makes the boss immune to projectiles. |
invulnerability_fall_damage.yml |
Makes the boss immune to fall damage. |
invulnerability_fire.yml |
Makes the boss immune to fire damage. |
invulnerability_knockback.yml |
Makes the boss immune to damage knockback. |
lightning_bolts.yml |
Spawns lightning bolts. |
meteor_shower.yml |
Spawns several fireballs from the sky. |
moonwalk.yml |
Makes the boss jump extra high. |
movement_speed.yml |
Makes the boss extra fast. |
photon_ray.yml |
Spawns a damaging ray that will bounce off of walls. |
plasma_blaster.yml |
Spawns a slow moving green projectile. |
shield_wall.yml |
Spawns shields that will protect the boss from a specific direction until destroyed. |
skeleton_pillar.yml |
Spawns two pillars of particles that damage players in the zone. |
skeleton_tracking_arrow.yml |
Spawns a tracking arrow. |
spirit_walk.yml |
Makes the boss teleport to a nearby safe location if it keeps getting hit without being able to damage a player. |
summon_embers.yml |
Summons the embers reinforcement. |
summon_the_returned.yml |
Summons the returned reinforcement. |
taunt.yml |
Taunts the player with messages. |
taze.yml |
Tazes the player, shocking it and applying knockback. |
thunderstorm.yml |
Spawns several lightning bolts. |
tracking_fireball.yml |
Spawns a fireball that follows a player. |
zombie_bloat.yml |
Knocks players away from the boss. |
zombie_friends.yml |
Spawns the zombie friends reinforcement. |
zombie_necronomicon.yml |
Makes the boss channel summoning reinforcements. |
zombie_parents.yml |
Spawns the zombie parents reinforcement. |
Note that some of the powers are in the Elite Script format, and can be customized.
Example
powers:
- hyper_loot.yml
- summonType: ON_COMBAT_ENTER
filename: test_boss.yml
spawnNearby: true
inheritAggro: true
inheritLevel: true
- filename: movement_speed.yml
difficultyID:
- myDifficultyName
Reinforcements also go into the powers category, using the following settings:
Reinforcement settings
Key | Description | Values | Default |
---|---|---|---|
summonType |
What triggers the reinforcement spawn. Mandatory. | Refer to the list below | none |
filename |
Filename of the boss to spawn as a reinforcement. Mandatory. | String | none |
chance |
Chance of the reinforcement spawning. Optional. | Double | 1.0 |
amount |
Sets the amount of reinforcements to spawn. Optional. | Integer | 1 |
inheritAggro |
Makes the reinforcement inherit the aggro from the boss. Optional. |
true / false
|
false |
spawnNearby |
Makes the reinforcements spawn in a 30 block radius from the boss. Optional. |
true / false
|
false |
inheritLevel |
Makes the reinforcement inherit the level of the boss. Optional |
true / false
|
false |
customSpawn |
Makes the reinforcement spawn using the custom spawn system. Only used for summonType: GLOBAL
|
||
location |
Spawn location. Optional. |
world_name,x,y,z or x,y,z for a location relative to the boss. The offset is relative to the spawn location for regional bosses. |
none |
lightningRod |
Special setting for summonType: ON_COMBAT_ENTER_PLACE_CRYSTAL . Makes end crystals spawn lightning around them. Optional. |
true / false
|
none |
Summon types set the conditions for the reinforcements spawning. The following is a list of the valid summon types:
Summon types
Value | Description |
---|---|
ONCE |
Only spawns the reinforcements once, the first time the boss is damaged. |
ON_HIT |
Spawns the reinforcements on hit. |
ON_COMBAT_ENTER |
Spawns the reinforcements when the boss enters combat. |
GLOBAL |
Spawns a reinforcement for every online player. Requires the customSpawn key to have a valid custom spawn set. |
ON_COMBAT_ENTER_PLACE_CRYSTAL |
Places end crystal reinforcements on combat enter, only for use with custom dragon fights. |
Note that it is possible to spawn reinforcements through Elite Scripts, so there are more customizable ways of spawning reinforcements.
Example
powers:
- summonType: ON_COMBAT_ENTER
filename: test_boss.yml
spawnNearby: true
inheritAggro: true
inheritLevel: true
It is possible to create your own powers, either on the boss file itself or as a new configuration file in the powers folder. You can learn more about that here.
Instanced dungeons can have difficulty settings, and it is possible to make it so a specific power is only enabled for specific difficulties.
Limiting power options
This will only apply to instanced dungeons.
Example
powers:
- filename: movement_speed.yml
difficultyID:
- myDifficultyName
Sets the message to send when the boss spawns. Requires setting up the announcementPriority.
Key | Values | Default |
---|---|---|
spawnMessage |
Strings and color codes | none |
Example
announcementPriority: 3
spawnMessage: I rise once more!
Sets the list of messages to send when the boss dies. Requires setting up the announcementPriority.
Key | Values | Default |
---|---|---|
deathMessages |
Strings, color codes and the placeholders below | none |
Example
announcementPriority: 3
deathMessages:
- '&e&l---------------------------------------------'
- '&4The Test Boss has been killed!'
- '&c&l 1st Damager: $damager1name &cwith $damager1damage damage!'
- '&6&l 2nd Damager: $damager2name &6with $damager2damage damage!'
- '&e&l 3rd Damager: $damager3name &ewith $damager3damage damage!'
- '&4Slayers: $players'
- '&e&l---------------------------------------------'
Death messages use the following placeholders:
Placeholders
Value | Description |
---|---|
$damager1name |
The name of the top damager |
$damager2name |
The name of the second top damager |
$damager3name |
The name of the third top damager |
$damager1damage |
The damage amount of the top damager |
$damager2damage |
The damage amount of second top damager |
$damager3damage |
The damage amount of the third top damager |
$players |
Displays a list of all damagers |
Sets the amount of time, in minutes, before the Custom Boss despawns.
Key | Values | Default |
---|---|---|
healthMultiplier |
Multiplier | 1.0 |
Example
timeout: 20
Sets if the boss can survive a chunk unload. Only recommended for event bosses.
Key | Values | Default |
---|---|---|
isPersistent |
true / false
|
false |
Example
Example:
isPersistent: true
Sets weapons that bosses can be strong or weak against.
Key | Values | Default |
---|---|---|
damageModifiers |
Material | none |
Example
damageModifiers:
- material:DIAMOND_SWORD,multiplier:0.8
- material:TRIDENT,multiplier:2.0
In this example, bosses will only take 80% damage from diamond swords (or 20% less), but will take 200% damage from tridents (or 2x more).
Modifies the boss' damage and max health to match the values of the normalized entity in ~/plugins/EliteMobs/mobproperties
. This is the default for regional bosses to guarantee a smooth difficulty curve.
Key | Values | Default |
---|---|---|
normalizedCombat |
true / false
|
false |
Example
Example:
normalizedCombat: true
Sets the message that gets broadcasted to players when the boss escapes through the timeout mechanic. Requires announcementPriority to be configured.
Key | Values | Default |
---|---|---|
escapeMessage |
String | none |
Example
announcementPriority: 3
timeout: 60
escapeMessage: "Sayonara!"
Sets the message show in the boss bar. This is used to track both Custom Boss health and its location in the server. Requires the annoucementPriority to be configured.
Key | Values | Default |
---|---|---|
locationMessage |
String, Color codes and the placeholders listed below | none |
Placeholders:
Value | Description |
---|---|
$distance |
Gets replaced with the distance the player is from the Custom Boss. This is the preferable option. |
$location |
Gets replaced with the x y z location coordinates of the Custom Boss |
Example
announcementPriority: 3
locationMessage: "&4Cool boss: $distance blocks away!"
This would show something like Cool boss: 10 blocks away!
Sets the Custom Items that drop from the boss.
Key | Values | Default |
---|---|---|
uniqueLootList |
List | none |
Loot entries in the Custom Loot follow the Loot Table format. Info about that here!
Example
- magmaguys_toothpick.yml:1
- minecraft:type=DIAMOND:amount=1:chance=0.9
- SCRAP:level=5-10:amount=10-20:ignorePlayerLevel=false:chance=0.5
- UPGRADE_ITEM:level=5-10:amount=1-2:ignorePlayerLevel=false:chance=0.1
- magmaguys_toothpick.yml:0.5:elitemobs.*
Sets if the boss will drop EliteMobs loot, excluding items in uniqueLootList
. Includes coins.
Key | Values | Default |
---|---|---|
dropsEliteMobsLoot |
true / false
|
true |
Recommended to set to false for reinforcement mobs.
Example
dropsEliteMobsLoot: true
Sets whether the Custom Boss will drop the vanilla loot usually associated to its vanilla mob type.
Key | Values | Default |
---|---|---|
dropsVanillaLoot |
true / false
|
true |
Example
dropsVanillaLoot: true
Sets whether the Custom Boss will drop procedurally generated loot from EliteMobs. Does not include elite coins.
Key | Values | Default |
---|---|---|
dropsRandomLoot |
true / false
|
true |
Example
dropsRandomLoot: true
Sets the trail that the boss leaves behind when moving.
Key | Values | Default |
---|---|---|
trails |
Particles or item materials | none |
Example
trails:
- CLOUD
Sets the message that the Boss Mob displays when they hit a player. This is a list, and the one used is randomized from the list.
Key | Values | Default |
---|---|---|
onDamageMessages |
List | none |
Example
onDamageMessages:
- "I hit you!"
- "Haha I hit you!"
Sets the message that the Boss Mob displays when damaged by a player. This is a list, and the one used is randomized from the list.
Key | Values | Default |
---|---|---|
onDamagedMessages |
List | none |
Example
onDamageMessages:
- "You hit me!"
Sets the entity that the boss will mount.
Key | Values | Default |
---|---|---|
onDamagedMessages |
Filename of the boss to mount or entity type | none |
Don't try to make the boss try to mount itself.
Example
mountedEntity: balrog.yml
Note: Regional bosses will share their leash with the entity they're mounting, meaning they'll both be dragged back to the spawn location if they exceed the distance allowed by their leash.
Sets the priority level for announcements. Lower priorities mean no announcements are made, higher priorities can announce not only on chat but also on discord if configured.
Key | Values | Default |
---|---|---|
announcementPriority |
Integer | 1 |
Here is a list of what the priorities do:
Value | Description |
---|---|
0 |
The boss will be fully silent, with no announcement messages. |
1 |
This is the default. Bosses can send chat messages, on spawn message, on death and escape messages. |
2 |
On top of the things in 1 , the boss will be set to be trackable by players through the /em menu. |
3 |
On top of the things in 2 , broadcast messages will be mirrored on Discord if configured. Discord configuration info here.
|
Here's an example of a boss that is trackable, is able to send spawn/death/escape messages on chat and on Discord:
Example
announcementPriority: 3
Note: You will have to configure the spawnMessage, deathMessage/deathMessages, escapeMessage for chat and discord announcements and the locationMessage for the tracking feature if you wish to use the corresponding Announcement Priority level.
Set the distance at which bosses aggro and enter combat.
Key | Values | Default |
---|---|---|
followDistance |
Double | none, uses defaults from Minecraft |
Note 1: Regional bosses have half the followDistance
when out of combat. This is so they don't aggro from too far away, which can cause annoying combat issues due to leash constraints.
Note 2: The higher the followDistance
, the more intensive on the CPU the boss becomes. Use carefully and responsibly!
Example
followDistance: 30
Sets a range of 30 blocks where if a player gets within that distance near the boss it will start chasing/attacking the player.
Sets the list of commands to run on custom boss death.
Key | Values | Default |
---|---|---|
onDeathCommands |
List | none |
The list supports the following placeholders:
Value | Description |
---|---|
$level |
Placeholder for the boss level. |
$name |
Placeholder for the boss name. |
$chance=x$ |
Makes a command have a chance to run. |
$players |
Makes the command run once for every player in the damagers list and replaces each time with the username of a different player on that list. |
$locationX |
X coordinate of the boss at the time of death. |
$locationY |
Y coordinate of the boss at the time of death. |
$locationZ |
Z coordinate of the boss at the time of death. |
Take a look at the example below to get a better understanding of how these work.
Example
onDeathCommands:
- "broadcast $players has killed $name! That was level $level!"
- "$chance=0.5$ What a kill!"
If Player1, Player2 and Player3 all damaged the boss before killing it, this is what the command output will be from console:
broadcast Player1 has killed CustomBossName! That was level X!
broadcast Player2 has killed CustomBossName! That was level X!
broadcast Player3 has killed CustomBossName! That was level X!
Additionally, there is a 50% chance that the following will also be output:
What a kill!
Sets the list of commands that will run on boss spawn.
Key | Values | Default |
---|---|---|
onSpawnCommands |
List | none |
This uses the same placeholders as onDeathCommands! Damager placeholders won't apply as there won't be any damagers at this time.
Example
onSpawnCommands:
- broadcast Boss has spawned!
Sets the list of commands that will run when the boss enters combat.
Key | Values | Default |
---|---|---|
onCombatEnterCommands |
List | none |
This uses the same placeholders as onDeathCommands! Damager placeholders won't apply as there won't be any damagers at this time.
Example
onCombatEnterCommands:
- broadcast Boss has entered combat!
Sets teh list of commands to run when the boss leaves combat.
Key | Values | Default |
---|---|---|
onCombatLeaveCommands |
List | none |
This uses the same placeholders as onDeathCommands!
Example
onCombatLeaveCommands:
- broadcast Boss has left combat!
Sets the LibsDisguises disguise if that plugin is enabled. More info here.
Key | Values | Default |
---|---|---|
disguise |
String | none |
customDisguiseData |
String | none |
Example
disguise: custom:the_beast_sanctuary_beast
customDisguiseData: player the_beast_sanctuary_beast setskin {"id":"44e6d42b-bd8d-4e48-873b-fae7afed36e4","name":"Unknown","properties":[{"name":"textures","value":"ewogICJ0aW1lc3RhbXAiIDogMTY2NjcwNjYwODA1MCwKICAicHJvZmlsZUlkIiA6ICI3MmY5MTdjNWQyNDU0OTk0YjlmYzQ1YjVhM2YyMjIzMCIsCiAgInByb2ZpbGVOYW1lIiA6ICJUaGF0X0d1eV9Jc19NZSIsCiAgInNpZ25hdHVyZVJlcXVpcmVkIiA6IHRydWUsCiAgInRleHR1cmVzIiA6IHsKICAgICJTS0lOIiA6IHsKICAgICAgInVybCIgOiAiaHR0cDovL3RleHR1cmVzLm1pbmVjcmFmdC5uZXQvdGV4dHVyZS82YmYyMTY4NmM1MGQ1ODhmZmExMDZhZDdjNmViZTk1ZWZiMjE2NDU5ODRjZDFjZWYwODkzNDc4NzMzNmI2YTI3IiwKICAgICAgIm1ldGFkYXRhIiA6IHsKICAgICAgICAibW9kZWwiIDogInNsaW0iCiAgICAgIH0KICAgIH0KICB9Cn0=","signature":"jSsQvpUeWVtyqjtnydPadormkrZLVihetiX4dFQb3+BF/1x6wOgsNKRnnwj6J1mfu2im79LYEJbL+fQ9p1SJIW1uZ6hV7vPSAGUopyXGHNibNXorfV/dGjM77S0t86Jls50XWgJAnLn5RdhQcHahDAHHZ8to6K0HW5gvKKSalR5X/myaiV0E5ujJ+LUFWIiuDmtsmyxTX1zsohyYrVMo/4sD0DpBN+as95wO476gLb5fDTDV569QwExlDOt60W8qSzPw6ncYsOKJIiRE3EddspUm3/NrfDiKApUh8UbzVtwu1XlVAxWNgYN3PkqhWKuE4kvORQuoSJzOgSHkiqdXsQOED2HXfOKdfsnpZUwjepIU5A+/mu0gc3mPQPToKSss2bC1nXn//0bOZZSuQRgTS6PkKDHIQ1nClSZQZlJIsiLmaaN2k1tIHTIlDquKN6G1Ta9c3t6G5kugjqRo78ebbt7l3e0Z3BcdOkuO2WbvBjIg5Uiqyf+cYDZedJ+OEOqL/U6VVlsmbw0rd5deHrbnPn9cRzmWGjrXnxIlAszl+0Uqabj/BrkWcbBCwZJEPaV1hHpC4nJX1m5xvKZHB2Bw0AYWaQ3f3tRBbCA/xqwCS0Px1QohzV0nvtiMbjB38ziT1M5DgLtAVLcHPio7THZMxXAi4IjEIMac9ODbh5OxthA="}],"legacy":false}
Sets a custom disguise from skindex. Check this page to learn how to correctly format this data.
Sets the custom model to use, if you have a custom model and ModelEngine. More info here.
Key | Values | Default |
---|---|---|
customModel |
String | none |
Example
customModel: your_model
Sets if the boss can move. Frozen bosses can still attack.
Key | Values | Default |
---|---|---|
frozen |
true / false
|
false |
Example
frozen: true
Sets the music a boss will play, starting when it spawns. Require the ogg file for the song to be in the resource pack
Key | Values | Default |
---|---|---|
song |
String | none |
Example
There are two ways to set up songs. Here is the first one:
song: name=elitemobs:ice_queen.idle length=76370
This will play the song ice_queen.idle for 76370 ticks and then loop it. Note that the location of the song is determined by the resource pack.
Here is the second way of setting up songs:
song: name=elitemobs:ice_queen.end_transition length=14328->name=elitemobs:ice_queen.end_loop length=28657
This will play the song ice_queen.end_transition for 14328 ticks and then transition to ice_queen.end_loop for 28657 ticks and loop the end_loop.
This allows bosses to have an "intro" or "transition" song and then a main track that loops.
Sets if the reinforcements of the boss will be removed when the boss dies.
Key | Values | Default |
---|---|---|
cullReinforcements |
true / false
|
true |
Example
frozen: true
Bosses can have phases that change when the boss reaches a certain percentage of health. When this happens, the boss starts using a different configuration file, meaning that everything about the boss can change, including things like the entity type.
Key | Description | Values | Default |
---|---|---|---|
phases |
Sets the phases that the boss will have. Mandatory | List | none |
phaseSpawnLocation |
Sets where the phase boss spawns. Optional | String | none |
Example
For this example, we are going to show three different configuration files.
First boss configuration file: phase_1_boss.yml
name: "Phase 1"
entityType: ZOMBIE
phases:
- phase_2_boss.yml:0.60
- phase_3_boss.yml:0.30
Second boss configuration file: phase_2_boss.yml
name: "Phase 2"
entityType: SKELETON
Third boss configuration file: phase_3_boss.yml
name: "Phase 3"
phaseSpawnLocation: same_as_boss,10,64,100,0,0
entityType: RAVAGER
This boss would change to the configuration file phase_2_boss.yml
at 60% health, and to the configuration file phase_3_boss.yml
at 30% health in the same world as phase 2 and at coordinates x=10, y=64 and z=100. The entity type and name of the boss would also change.
The format for an entry is filename:healthPercentage
.
phaseSpawnLocation is optional, if it is not set the boss will change phases where it's standing.
The following things are important to know when designing a phase boss:
//todo: this will need more info
- The configuration file for the first phase sets all phases of the boss.
- Threat / damage counted is kept between phases for players.
- Switching phases is based on the percentage of health lost, which is preserved when switching to a different phase. This means increasing or decreasing the healthMultiplier between phases will not heal or damage the boss, it will still switch with the same percentage, but will have more or less health for that phase.
- Phase bosses revert to phase 1 if they go out of combat.
- Phase bosses which are also regional bosses share the same leash radius and timeout mechanic across all phases, and will respawn as the phase 1 boss when the timer is finished.
- The configuration file for the last phase sets the loot for the boss.
- Phases can not be skipped - overkill damage will still make the boss switch phases at the percentage defined.
- Phase bosses that have mounts cease to be mounted when switching phases.
Regional bosses are a specific type of Custom Bosses that spawn at a specific configured location and are able to respawn at that location after a delay. Additionally, they can have leashes that make sure they stay in a specific zone, among other features.
These are used for all of the dungeon content.
Key | Description | Values | Default |
---|---|---|---|
isRegionalBoss |
Sets if the boss is regional. Should be true if you want a regional boss. |
true / false
|
false |
spawnLocation |
Sets the spawn locations of the boss. | Add these through the /em addSpawnLocation [filename.yml] command! |
none |
spawnCooldown |
Sets the respawn cooldown of the boss, in minutes. | Integer | 0 |
leashRadius |
Sets the distance the boss can go from its spawn point before getting pulled back. | Double | none |
onSpawnBlockStates |
Sets the blocks the boss will modify when it spawns. | Check commands below | none |
onRemoveBlockStates |
Sets the blocks the boss will modify when it despawns. | Check commands below | none |
As indicated, Regional Bosses can have onSpawnBlockStates
and onRemoveBlockStates
.
This is a very useful feature for modifying combat arenas during combat, especially when combined with phase switches, as it becomes possible to open and close combat arenas through changing block states.
The format for these is too complex to write manually, so a few commands exist to help you set them up:
Command | Description |
---|---|
/em registerblocks [regional_boss_file.yml] [on_spawn/on_remove] | Starts registering manual block selections for on spawn or on remove block states. |
/em registerblocksedit [regional_boss_file.yml] [on_spawn/on_remove] | Edits the on spawn or on remove block states. |
/em registerblocksarea [regional_boss_file.yml] [on_spawn/on_remove] | Allows admins to select large areas of blocks to save as states. |
/em registerblocksareaedit [regional_boss_file.yml] [on_spawn/on_remove] | Allows admins to edit large areas of blocks to save as states. |
Example use:
Let's say you want to make a fight where a boss spawns in an arena that has an open door, and you want to make it so the door closes when the fight starts and reopens when the fight is over.
To do this, you will need two boss phases and to register three different sets of block states. For this example, I will name these phases phase_1_boss.yml and phase_2_boss.yml respectively.
- Use
/em registerblocks phase_1_boss.yml on_spawn
or/em registerblocksedit phase_1_boss.yml on_spawn
to register the door blocks in their open state.
This means registering the air blocks. Area selection is recommended here.
This is necessary to make sure that the door is open when the boss spawns so players are guaranteed to have a way in.
- Use
/em registerblocks phase_2_boss.yml on_spawn
or/em registerblocksedit phase_2_boss.yml on_spawn
to register the door blocks in their closed state.
This means registering the solid blocks of the door that would prevent the player from leaving.
This is necessary to change the door to be solid when the boss enters phase 2, preventing players from leaving.
- Use
/em registerblocks phase_2_boss.yml on_remove
or/em registerblocksedit phase_2_boss.yml on_remove
to register the door blocks in their open state.
This means registering the same blocks from the first step again (the air blocks).
This is necessary to open the door when the boss dies, allowing players to leave the arena.
Instanced bosses are a subtype of Regional Bosses used in Instanced Dungeons.
Key | Description | Values | Default |
---|---|---|---|
instanced |
Makes the custom boss instanced. Mandatory. |
true / false
|
false |
Setting bosses to instanced is mandatory for instanced dungeons to work correctly.
Example
instanced: true
Basic:
- Quick Setup
- Understanding the basics of EliteMobs
- Prestige System
- Config files
- Instanced Dungeon Difficulty
- Permissions and commands
- Dungeons
- FAQ
Custom Enchantments
Creation & Customization Guides:
- Creating custom bosses
- Creating custom items
- Creating custom events
- Creating custom spawns
- Creating custom quests
- Creating custom NPCs
- Creating treasure chests
- Creating Wormholes
- Creating Custom Powers / Elite Scripting
- Creating Arenas
- Dungeon Packager / Packaging EliteMobs content
- Item Upgrade System
- How damage works
Premade content:
Mechanics:
Game Modes:
Third party support: