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 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.

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

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"

create_item_enchantments.jpg

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.

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/items.
  • magmaguys_toothpick selects the item definition assets/elitemobs/items/equipment/magmaguys_toothpick.json. That definition references the actual model under assets/<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!

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.


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
TypeExtra fieldsRole
repair_scrapInteger tier, 1 through 5Repairman scrap, Tiny through Huge
lucky_ticketNoneLucky ticket used by the upgrade system
unbindNoneSoulbind 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.

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.