Skip to main content

Creating Items

webapp_banner.jpg

Creating Custom Items

What are Custom Items?

Custom Items are items as defined by EliteMobs through configuration files. You can customize several aspects about these items, such as the level of the item, the enchantments, name, lore, texture and more!

Webapp

You can easily and quickly create Custom Loot here!

Before you begin

Where do Custom Items go?

Custom item files go into the configuration folder ~/plugins/EliteMobs/customitems

It is possible to create subfolders, such as ~/plugins/EliteMobs/customitems/myitems. 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.

Smallest possible configuration

Please note that the smallest possible configuration file for a Custom Item is:

Note how this is just an empty file. This will default to using a wooden sword called "Default name". Everything in this page is optional!

Example item

Let's take a look at an example of what an item file looks like.

Example
isEnabled: true
material: WOODEN_AXE
name: '&4Test item'
lore:
- This is a cool item
- It has cool lore
enchantments:
- DAMAGE_ALL,4
- FLAMETHROWER,1
potionEffects:
- FAST_DIGGING,0,self,onHit
- POISON,0,target,onHit
- GLOWING,0,self,continuous
dropWeight: dynamic
scalability: scalable
itemType: custom

Custom Item settings

The following is a list of all the things you can configure for custom items:


isEnabled

Sets if the item is enabled. Does not affect items that have already been generated.

KeyValuesDefault
isEnabledtrue / falsetrue
Example
isEnabled: true

material

Sets the item material.

KeyValuesDefault
materialPick from this list!WOODEN_SWORD
Example
material: DIAMOND_SWORD

level

Sets the item level.

KeyValuesDefault
levelInteger0

Leaving this at the default of 0 makes EliteMobs derive the level from the material instead of using a fixed one.

Note that this setting isn't relevant if you set the item scalability to be scalable, since the level then comes entirely from the boss. If you set it to be limited, this is the highest possible level of the item.

Armor materials also carry a built-in base defence, expressed as a level: leather and gold count as 3, chainmail as 5, iron as 6, diamond as 7 and netherite as 8. The level you set here is always the one stored on the item and shown in its lore, but setting it below the material's own value grants no elite defence bonus at all — the piece simply performs like the plain vanilla material.

Example
level: 100

name

Sets the display name of the item.

KeyValuesDefault
nameString with color codes"Default name"
Example
name: "&2Cool item"

create_item_name.jpg


lore

Sets the lore of the item.

KeyValuesDefault
loreList with color codesnone
Example
lore:
- "&2This is the coolest sword"
- "&2of all time!"

create_item_lore.jpg


enchantments

Sets the enchantments on the item.

KeyValuesDefault
enchantmentsList with Minecraft enchantments or EliteMobs Custom Enchantmentsnone

Note that these entries follow the format enchantmentName,enchantmentLevel. Check the example below!

Example
enchantments: 
- "DAMAGE_UNDEAD,8"
- "DURABILITY,4"
- "DAMAGE_ALL,7"
- "LOUD_STRIKES,3"

create_item_enchantments.jpg

Also note that enchantments like sharpness become elite sharpness by default if the level start going over vanilla Minecraft limits.

Be aware that scalable and limited items reshuffle their enchantment levels on every single drop. The total number of enchantment levels you configured is preserved, but it gets redistributed at random across the enchantments you listed, so two copies of the same item can end up with different splits. Only items with fixed scalability always use the exact levels written in the file.


potionEffects

Sets the potion effects the item will have. These can be applied to the player or to an entity damaged by the player.

KeyValuesDefault
potionEffectsList with Minecraft potion effectsnone

Furthermore, potion effects use a specific format that allows admins to select who gets affected and when:

SettingDescriptionValuesDefault
Potion effect levelSets the level of the potion effect. Potion effects start at level 0!Integernone
Affected entitySets who gets affected by the potion effect.self (the player) / target (entity that gets hit)none
Application methodSets when the potion effect gets applied.onHit / continuous (constantly reapplies)none

The format for potion effects is potionEffectName,potionEffectLevel,affectedEntity,applicationMethod. The last two parameters (affectedEntity and applicationMethod) are optional and default to self and continuous if not specified. Check the example below!

Potion Effect Durations:

  • Continuous effects are refreshed every second while the item is held or equipped (each application lasts 2 seconds, so the effect never lapses)
  • Night Vision receives a special duration of 15 seconds
  • On-Hit effects use durations based on server configuration

When examining an item with potion effects, you will see icons that indicate how the effect is applied:

  • ☠️ Skull – Targets enemies.
  • 🛡️ Shield – Targets the user/player.
  • ⚔️ Swords – Activates on hit.
  • 🔄 Repeating Circle – Applies continuously while the item is worn or held.

EliteMobs also features custom items that function as charms. These items do nothing else but provide potion effects to the player when the item is being held or is equipped in a slot.

WARNING: Using the INSTANT_DAMAGE potion effect will heal undead mobs upon impact, as this is a default mechanic in vanilla Minecraft.

Effects that do not work:

  • ABSORPTION and HEALTH_BOOST are skipped by the item potion effect system entirely. They never get applied, whether you set them to continuous or onHit.
  • LEVITATION, SLOWNESS and BLINDNESS applied to the target on hit are ignored when the entity you hit is an elite with a health multiplier above 1, which covers essentially every Custom Boss. They still work on regular elites and on vanilla mobs.
Example
potionEffects: 
- "POISON,0,target,onHit"
- "HEAL,1,self,onHit"
- "NIGHT_VISION,0,self,continuous"

create_item_potion_effects.jpg

With this set of potion effects, the following things will happen:

On hit, the poison potion effect (level 1) will be applied to the entity that got hit by the player. Additionally, the player will be affected by a level 2 instant heal potion effect.

Continuously, the player will be given night vision. This means that the player will have night vision for as long as they are wearing or holding the item.


scalability

Sets how the level of the item grows with the level of the boss that drops it.

KeyValuesDefault
scalabilityfixed, limited or scalable. Check below!scalable

Check this list to understand what the different options do!

SettingDescription
fixedThe item level will always be the level set in the configuration file.
limitedThe max item level will be limited by the one set in the configuration file or the level of the boss, whichever is lowest.
scalableThe level of the item will be entirely based on the level of the boss that drops it.

Note that items with a dropWeight will always have a fixed scalability.

Example
scalability: "scalable"

itemType

Sets where you can obtain the item from.

KeyValuesDefault
itemTypecustom, unique, or droppable. Check below!custom

There are three item types:

SettingDescription
customThe item will be able to drop from any EliteMobs mob able to drop loot, and will be in the custom shop.
uniqueThe item will not be dropped by any boss and will not be in the custom shop. The only way to obtain it is by configuring a Custom Boss to drop it through its uniqueLootList!
droppableThe item enters the random elite drop pool just like custom, but is excluded from shops — players can find it as a normal elite drop but can never simply buy it. Useful for items that should feel earned but don't need to be locked to a specific boss.
Example
itemType: "unique"

dropWeight

Sets the loot table the item will fit into.

KeyValuesDefault
dropWeightdynamic or an Double value.dynamic

EliteMobs has 5 different loot tables for custom items, excluding the ones configured directly like the uniqueLootList on Custom Bosses.

These are as follows:

Loot tableDescriptionDefault weight
Procedurally generated itemsItems that are randomly generated based on server configuration files90.0
Weighed itemsItems that have a weight other than dynamic1.0
Fixed itemsItems that have a fixed scalability10.0
Limited itemsItems that have limited scalability3.0
Scalable itemsItems that are scalable6.0

When a boss dies, one item from these tables is selected based on the ItemSettings.yml configuration file. The defaults for the weights are listed above in Default weight. The higher the weight, the more likely an item is to drop.

Weighed items have a small Default weight, meaning they will not drop very often. Items with a dropWeight that is not dynamic are meant to be rare and are only used in the defaults for the charms bosses drop - items not used directly for combat, but rather for buffing players with potion effects.

The dropWeight you set here sets the chance of a specific Weighed item dropping from the list of Weighed items. It does not increase the chance of Weighed items dropping.

If you are confused and just want to make weapons and armor, skip this setting as it correctly defaults to be dynamic.

Weighed items usually have a weight of 1.0.

Note that setting a numeric dropWeight forces the item into the fixed and weighed drop pools even when its itemType is unique. If you want a boss-only item, leave dropWeight as dynamic.

Example
dropWeight: "dynamic"

customModelID

Note: This setting has been removed. It is no longer read from configuration files. Use customModelV2 instead, which is the only model ID setting recognized since Minecraft 1.21.4+ (EliteMobs 9.1.13+). Any existing customModelID entries in your configuration files will be ignored.

Sets the texture of the item. Requires using a valid texture from the resource pack!

KeyValuesDefault
customModelIDIntegernone
Example (no longer functional)
material: DIAMOND_SWORD
customModelID: 1

This setting no longer works. Migrate to customModelV2 instead.


customModelV2

Starting with Minecraft version 1.21.4 (EM 9.1.13), this is the new required setting for configuring custom item model IDs. Sets the texture of the item. Requires using a valid texture from the resource pack!

KeyValuesDefault
customModelV2Stringnone

Automatic skin tiers: if you leave both this and equipmentModelID unset, EliteMobs applies its own level-based skins from the EliteMobs resource pack. The tier is picked from the item's level:

Minimum item levelTier
20bronze
40palladium
60corrupted
80living
100ultimatium

Items below level 20 get no tier skin. Tiers are only applied to swords, axes, hoes (which are rendered as scythes), bows, crossbows, helmets, chestplates, leggings and boots. Tridents are deliberately excluded.

Setting either customModelV2 or equipmentModelID opts the item out of that automatic system: the key you set is used as-is, and the key you left out falls back to the tier model for the item's level. Items that use their own model keys also skip the vanilla attribute scaling the tier system applies — this only affects the vanilla attack damage, attack speed, armor, toughness and knockback resistance numbers, not EliteMobs' own damage and defence values.

Example
customModelV2: elitemobs:equipment/magmaguys_toothpick

This setting assigns a specific texture to an item. Here’s how it works:

  • elitemobs: is the main directory in the resource pack's assets folder.
  • equipment is a subdirectory inside assets/elitemobs/models.
  • magmaguys_toothpick is the model file located in assets/elitemobs/models/equipment in the resource pack.

The full path to the model file in this example would be: \.minecraft\resourcepacks\elitemobs_resource_pack\assets\elitemobs\models\equipment\magmaguys_toothpick.json

This will use the custom texture magmaguys_toothpick from the EliteMobs resource pack the player is using. It is recommended you set your server up to give players resource packs on login if you want to use this feature correctly.


equipmentModelID

Sets a separate model for the item when equipped or worn. Requires using a valid texture from the resource pack!

KeyValuesDefault
equipmentModelIDStringnone

Like customModelV2, setting this key opts the item out of the automatic level-based skin tiers.

Example
equipmentModelID: elitemobs:equipment/helmet_texture

This sets a specific texture that appears when the item is worn, separate from the item's inventory appearance.


scriptedItem

Links the item to a FreeMinecraftModels scripted item. When set, the item gains FMM's 3D model and Lua script behavior while keeping all of EliteMobs' name, lore, enchantments, level, and soulbind systems.

This requires FreeMinecraftModels to be installed on the server. If FMM is not installed, this setting is silently ignored and the item functions normally without a model or script.

The value is the FMM item ID — the filename of the model's YML config in FMM's models folder, without the .yml extension. For example, if FMM has a model config at plugins/FreeMinecraftModels/models/flame_blade.yml with material: IRON_SWORD and scripts: [flame_blade.lua], you would reference it as flame_blade.

When scriptedItem is set, it takes priority over customModelV2 and equipmentModelID — EliteMobs will skip its own model system and use FMM's model instead.

KeyValuesDefault
scriptedItemString (FMM item ID)none
Example
material: IRON_SWORD
name: "&cFlame Blade"
lore:
- "&7Burns with eternal fire"
enchantments:
- "FIRE_ASPECT,2"
- "DAMAGE_ALL,5"
scalability: scalable
scriptedItem: flame_blade

In this example:

  • EliteMobs controls the item name, lore, enchantments, level scaling, and soulbind behavior
  • FMM provides the 3D item model and runs the flame_blade.lua script (e.g., particle effects on equip, custom attack behavior)
  • The material: IRON_SWORD is used as the base item type by EliteMobs

showSource

Note: This setting currently does nothing. The key is still read from the configuration file without erroring, but no part of the plugin reads the resulting value, so setting it to false will not hide the item's source lore.

Whether the source line appears at all is instead controlled by the $itemSource placeholder in the itemLoreStructureV2 list of ItemSettings.yml. Remove that placeholder to drop the source line from every elite item.

KeyValuesDefault
showSourceBooleantrue

permission

Sets the permission required in order to obtain the item.

KeyValuesDefault
permissionStringnone

You will need a permission management plugin to give players permissions.

The permission is only checked at the moment the item is generated or dropped for a player. Nothing re-checks the node afterwards, so trading or dropping the item can still move it to a player who does not have the permission. Leaving soulbound enabled is the practical way to prevent that.

Example
permission: "elitemobs.cool.permission"

With this setup, only players with the permission elitemobs.cool.permission will be able to obtain this item.


soulbound

Sets if the item should be soulbound on drop.

KeyValuesDefault
soulboundBooleantrue
Example
soulbound: true

Testing your item

Two admin commands generate a configured item on demand, which saves you from having to farm a boss every time you tweak a file:

CommandWhat it does
/em loot give <player> <filename>Gives the item at the level written in its configuration file.
/em loot reward <player> <filename>Gives the item scaled to the target player's combat level.

Both require the elitemobs.loot.admin permission.