Learn how to create custom items with zItems, from simple sticks to complex tools with effects, metadata, and recipes.
Your First Item
Create a file items/my_stick.yml:
Copy id : " my_stick "
material : STICK
display-name : " <aqua>My Custom Stick</aqua> "
lore :
- " <gray>My first custom item! " Reload and test :
Copy /zitems reload
/zitems item give <player-name> my_stick That's it! You've created your first custom item.
Items Directory
All item files go in plugins/zItems/items/:
Subdirectories are supported - organize items however you like!
Use snake_case: hammer_pickaxe.yml ✅
Avoid spaces: hammer pickaxe.yml ❌
Be descriptive: tool1.yml vs farming_hoe.yml ✅
Basic Configuration
Required Fields
Every item needs these fields:
id
Unique identifier for this item.
Rules :
Must be unique across all items
Only letters, numbers, underscore
Examples :
material
Bukkit Material enum value.
Examples :
Find materials : Bukkit Materialsarrow-up-right
display-name
Item name shown to players, using MiniMessage format.
Examples :
MiniMessage docs : Adventure MiniMessagearrow-up-right
Optional Fields
lore
List of lore lines displayed under the item name.
Tips :
Keep lines short (< 40 characters)
Use colors for organization
custom-model-data
Custom model data value for resource packs.
Use case : Custom textures/models via resource pack.
max-stack-size
Maximum stack size (1-99).
max-damage
Maximum durability (for tools/weapons).
Note : Requires unbreakable: false.
unbreakable
Make item unbreakable (infinite durability).
hide-tooltip
Hide all tooltip information (enchants, attributes, etc.).
trackable
Enable block tracking (for custom blocks).
Use case : Custom blocks that should drop the custom item when broken.
See: Block Tracking
Add vanilla enchantments to items:
Enchantment types : Bukkit Enchantmentarrow-up-right
Add vanilla attributes (armor, attack damage, etc.):
Attribute types :
armor_toughness - Armor toughness
attack_damage - Attack damage
attack_speed - Attack speed
knockback_resistance - Knockback resistance
movement_speed - Movement speed
Operations :
ADD_NUMBER - Add amount (e.g., +10 armor)
ADD_SCALAR - Add percentage (e.g., +50% = 0.5)
MULTIPLY_SCALAR_1 - Multiply by (1 + amount)
Slots (optional):
Attribute Merge Strategy
Control how custom attributes merge with default item attributes:
Strategies :
REPLACE - Replace all existing attributes (default)
ADD - Keep existing + add new (may create duplicates)
KEEP_HIGHEST - Keep highest value for each attribute
KEEP_LOWEST - Keep lowest value for each attribute
SUM - Sum values for each attribute
Example :
Apply custom effects to items:
Effects are effect IDs defined in effects/ directory.
See : Effects System
Effect Display Control
Control how effects appear in lore:
See : Effect Lore Display
Add special functionality using metadata:
Available metadata types :
potion - Potion effects and color
leather-armor - Leather armor color
enchant-storage - Stored enchantments (for books)
See : Metadata System
Add crafting recipes for your items:
Shaped Crafting
Pattern :
Use any character for ingredients
Shapeless Crafting
Order doesn't matter - just put ingredients anywhere.
Smelting
Smithing
Ingredient Types
Common tags :
stone_tool_materials - Cobblestone, blackstone, etc.
wooden_slabs - All wooden slabs
Recipe Examples
Complete Examples
Auto-Sell Pickaxe with Recipe
Trimmed Netherite Armor
Hidden Additional Effects
Usage :
Advanced Topics
Custom Model Data
Use resource packs for custom textures:
How it works :
Create resource pack with custom model
Assign model to custom model data value
Item displays with custom texture
Resource pack tutorial : Minecraft Model Guidearrow-up-right
Trackable Blocks
For custom blocks that should drop the custom item:
How it works :
Player places ruby_ore item as a block
BlockTracker remembers: "This block is ruby_ore"
Player breaks it (or uses Hammer/Vein Mining)
Drops ruby_ore item instead of STONE
See : Block Tracking
Effect Restrictions
Control which effects can be added:
Use case : Prevent overpowered combinations.
Testing Your Items
Step 1: Create Item File
items/my_pickaxe.yml:
Check console :
Step 3: Give Item
Or :
Test recipe (if applicable)
Step 5: Iterate
Edit YAML → /zitems reload → Test again
Item not loading
Symptoms :
/zitems item give says "Item not found"
Console shows no "Registered item: X"
Checklist :
Is file in plugins/zItems/items/ (or subdirectory)?
Are required fields present (id, material, display-name)?
Is YAML syntax valid? (Check for indentation errors)
Debug :
YAML syntax error
Error :
Common causes :
Inconsistent indentation (use spaces, not tabs)
Missing quotes around special characters
Example fix :
Recipe not working
Symptoms :
Recipe not shown in recipe book
Checklist :
Is recipe: block present?
Is type valid? (CRAFTING_SHAPED, CRAFTING_SHAPELESS, etc.)
Do ingredient materials exist?
For shaped: Is pattern valid? (Max 3x3)
Debug : Enable debug mode and check:
Effects not applying
Symptoms :
Item has effects in config
Effects don't work in-game
Checklist :
Do effect files exist in effects/?
Does effect's can-apply-to allow this material?
Test :
If this works, the effect is fine. Check item config.
Use descriptive IDs - hammer_pickaxe not item1
Organize with subdirectories - tools/, weapons/, armor/
Keep lore concise - Max 3-5 lines
Test after changes - /zitems reload is fast!
Use MiniMessage formatting - More powerful than legacy codes
Document complex items - Add comments in YAML
Balance effects - Don't make items too overpowered
Use recipes - Make items craftable for survival
Consistent naming - Use a naming convention and stick to it
Version control - Use git for your items directory!
Now that you can create items:
Effects System - Add powerful effects to items
Effect Handlers Reference - All available effects
Metadata System - Food, potions, trims, etc.
Effect Lore Display - Customize effect display
Need help? Join our Discordarrow-up-right or check GitHub Issuesarrow-up-right !