Creating Items
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.
| Key | Values | Default |
|---|---|---|
isEnabled | true / false | true |
Example
isEnabled: true
material
Sets the item material.
| Key | Values | Default |
|---|---|---|
material | Pick from this list! | WOODEN_SWORD |
Example
material: DIAMOND_SWORD
level
Sets the item level.
| Key | Values | Default |
|---|---|---|
level | Integer | 0 |
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.
| Key | Values | Default |
|---|---|---|
name | String with color codes | "Default name" |
Example
name: "&2Cool item"
lore
Sets the lore of the item.
| Key | Values | Default |
|---|---|---|
lore | List with color codes | none |
Example
lore:
- "&2This is the coolest sword"
- "&2of all time!"

enchantments
Sets the enchantments on the item.
| Key | Values | Default |
|---|---|---|
enchantments | List with Minecraft enchantments or EliteMobs Custom Enchantments | none |
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"

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.
| Key | Values | Default |
|---|---|---|
potionEffects | List with Minecraft potion effects | none |
Furthermore, potion effects use a specific format that allows admins to select who gets affected and when:
| Setting | Description | Values | Default |
|---|---|---|---|
| Potion effect level | Sets the level of the potion effect. Potion effects start at level 0! | Integer | none |
| Affected entity | Sets who gets affected by the potion effect. | self (the player) / target (entity that gets hit) | none |
| Application method | Sets 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:
ABSORPTIONandHEALTH_BOOSTare skipped by the item potion effect system entirely. They never get applied, whether you set them tocontinuousoronHit.LEVITATION,SLOWNESSandBLINDNESSapplied to thetargeton 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"

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.
| Key | Values | Default |
|---|---|---|
scalability | fixed, limited or scalable. Check below! | scalable |
Check this list to understand what the different options do!
| Setting | Description |
|---|---|
fixed | The item level will always be the level set in the configuration file. |
limited | The max item level will be limited by the one set in the configuration file or the level of the boss, whichever is lowest. |
scalable | The 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.
| Key | Values | Default |
|---|---|---|
itemType | custom, unique, or droppable. Check below! | custom |
There are three item types:
| Setting | Description |
|---|---|
custom | The item will be able to drop from any EliteMobs mob able to drop loot, and will be in the custom shop. |
unique | The 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! |
droppable | The 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.
| Key | Values | Default |
|---|---|---|
dropWeight | dynamic 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 table | Description | Default weight |
|---|---|---|
| Procedurally generated items | Items that are randomly generated based on server configuration files | 90.0 |
| Weighed items | Items that have a weight other than dynamic | 1.0 |
| Fixed items | Items that have a fixed scalability | 10.0 |
| Limited items | Items that have limited scalability | 3.0 |
| Scalable items | Items that are scalable | 6.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!
| Key | Values | Default |
|---|---|---|
customModelID |
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!
| Key | Values | Default |
|---|---|---|
customModelV2 | String | none |
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 level | Tier |
|---|---|
20 | bronze |
40 | palladium |
60 | corrupted |
80 | living |
100 | ultimatium |
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'sassetsfolder.equipmentis a subdirectory insideassets/elitemobs/models.magmaguys_toothpickis the model file located inassets/elitemobs/models/equipmentin 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!
| Key | Values | Default |
|---|---|---|
equipmentModelID | String | none |
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.
| Key | Values | Default |
|---|---|---|
scriptedItem | String (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.luascript (e.g., particle effects on equip, custom attack behavior) - The
material: IRON_SWORDis 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.
| Key | Values | Default |
|---|---|---|
showSource | Boolean | true |
permission
Sets the permission required in order to obtain the item.
| Key | Values | Default |
|---|---|---|
permission | String | none |
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.
| Key | Values | Default |
|---|---|---|
soulbound | Boolean | true |
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:
| Command | What 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.
