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 custom item. Multiple bosses, chests or quests can reference that item 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 |
Native entries use the Bukkit enchantment names shown below. Custom effects require lowercase provider IDs such as elitemobs:loud_strikes,3 or freeminecraftmodels:multicast,2. Do not use the former unnamespaced custom names: those disable the item with a diagnostic, and are not converted.
Example
enchantments:
- "DAMAGE_UNDEAD,8"
- "DURABILITY,4"
- "DAMAGE_ALL,7"
- "elitemobs:loud_strikes,3"

Also note that enchantments like sharpness become elite sharpness by default if the level start going over vanilla Minecraft limits.
scalable and limited items roll their native enchantments on each drop. The
constructor draws ceil(total configured native levels * 0.5) enchantment units
without replacement from the configured levels. It does not preserve the full
configured total or guarantee a particular native enchantment. Custom enchantments
retain their configured levels outside that budget. Optional procedural enchantments
can add further levels afterward when enabled. Global enchantment settings and caps
still apply. fixed items use their configured levels subject to those settings.
Automatic class loot uses the same budget principle with configurable difficulty/rank profiles, independent rule chances and a configurable minimum primary enchantment. Use that system for consistent baseline equipment; keep separate custom-item files for deliberately exceptional rewards.
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/items.magmaguys_toothpickselects the item definitionassets/elitemobs/items/equipment/magmaguys_toothpick.json. That definition references the actual model underassets/<namespace>/models/.
Item definition path:
\.minecraft\resourcepacks\elitemobs_resource_pack\assets\elitemobs\items\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.
weaponType and fmmItemModel
Use weaponType: WANDS or weaponType: STAVES for magic weapons. Other weapon skills follow the material. fmmItemModel identifies an FMM authored weapon or a display-only model:
material: BLAZE_ROD
name: "&bApprentice's Wand"
lore: []
weaponType: WANDS
fmmItemModel: fmm_default_arcane_wand
enchantments:
- "POWER,3"
- "freeminecraftmodels:multicast,1"
scalability: scalable
A magic weapon requires an available, compatible FMM weapon definition matching the declared type. A missing magic identity prevents item generation; merely changing a material or display model does not create a functioning wand. For a non-weapon display model, a missing model instead logs a warning and leaves the vanilla material appearance.
FMM-owned presentation takes precedence over customModelV2, equipmentModelID, and automatic level-based skins. EliteMobs retains its name, lore, enchantments, level, and ownership systems. See FMM magic weapons.
scriptedItem
This older field remains an FMM authored-item identity/display bridge. It no longer runs equipped-item Lua scripts. The referenced item ID must exist in FMM's item catalog, without .yml; an item definition containing a nonempty scripts: list is no longer valid.
Use fmmItemModel and, for magic weapons, weaponType for new content. Do not combine an authored magic weapon with scriptedItem; generation rejects that combination. Neither bridge copies FMM's name, lore, or enchantments onto an EliteMobs item.
consumable
Service items use explicit roles, not marker enchantments:
material: PAPER
name: "&aRepair Scrap"
lore: []
consumable:
type: repair_scrap
tier: 2
| Type | Extra fields | Role |
|---|---|---|
repair_scrap | Integer tier, 1 through 5 | Repairman scrap, Tiny through Huge |
lucky_ticket | None | Lucky ticket used by the upgrade system |
unbind | None | Soulbind removal item |
Only repair scrap accepts tier. Unknown fields, missing/invalid types, invalid material, or an out-of-range scrap tier disable the definition. The service checks the current custom-item identity and material, not an old REPAIR, LUCKY_SOURCE, or UNBIND enchantment.
CLASS_LOOT items
Set itemType: CLASS_LOOT in an ordinary custom-item file, then reference it from a boss's ordinary loot table. Author valid material, name, and lore fields; lore: [] is accepted. Armor additionally needs a matching classLootFamily, such as TANK_HELMETS.
The class loot guide covers family inference, profile rolls, authored overrides, and selection. Boss-side classLootItems presentation is no longer read.
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.
