Kafal Items Mappings
Support for Item Models without Nexo, Oraxen or ItemsAdder
Overview
Kafal-Items is a mapping system for converting Java 1.21+ item model systems to Bedrock Edition. It reads item definitions from either CSV files or a JSON configuration and generates the appropriate Geyser mappings.
Supported Formats
Kafal-Items supports two input formats:
CSV files — Simple, spreadsheet-friendly format
JSON configuration — Advanced format with additional options
CSV Format
File Location
Place CSV files in a csv/ folder within your resource pack:
your-pack.zip
├── csv/
│ ├── weapons.csv
│ ├── armor.csv
│ └── tools.csv
└── assets/
└── ...CSV Structure
Columns (in order):
namespace
Resource pack namespace
netherite, custom, mypack
base_item
Bukkit Material name
NETHERITE_SWORD, BOW, DIAMOND_HELMET
item_id
Model or item definition path
netherite:skins/knight/bow
custom_model_data
CMD value (for reference only)
1001, 2050
CSV Examples
Basic weapons and tools:
Multiple files approach:
csv/weapons.csv:
csv/armor.csv:
Important CSV Notes
JSON Format
File Location
Place a single kafal-items.json file in the root of your resource pack:
JSON Structure
JSON Field Reference
baseItem
string
✅
Bukkit Material name (e.g., NETHERITE_SWORD)
itemId
string
✅
Model path or item definition path
equipmentId
string
❌
Equipment model ID for equippable items
equipmentSlot
string
❌
Equipment slot: head, chest, legs, feet, mainhand, offhand
equipmentNamespace
string
❌
Namespace for equipment (defaults to minecraft)
maxDamage
number
❌
Maximum durability for the item
maxStackSize
number
❌
Maximum stack size (auto-set to 1 for equippable items)
JSON Examples
Basic items:
Items with durability:
Equippable armor:
Complex example with mixed types:
Item ID Resolution
The itemId field supports two strategies:
Direct Model Path (Most Common) Points directly to a model file location:
Item Definition Path References an item definition file that contains the model reference:
Material Names
Use standard Bukkit Material enum names for baseItem:
Common materials:
Swords:
WOODEN_SWORD,STONE_SWORD,IRON_SWORD,GOLDEN_SWORD,DIAMOND_SWORD,NETHERITE_SWORDTools:
WOODEN_PICKAXE,STONE_AXE,IRON_SHOVEL,DIAMOND_HOE, etc.Armor:
LEATHER_HELMET,CHAINMAIL_CHESTPLATE,IRON_LEGGINGS,DIAMOND_BOOTS, etc.Ranged:
BOW,CROSSBOW,TRIDENTOther:
STICK,FISHING_ROD,SHIELD,ELYTRA,CARROT_ON_A_STICK
Note: Legacy material names (e.g., LEGACY_IRON_SWORD) are automatically cleaned.
Equipment Slots
When using equipmentSlot for equippable items:
head
Helmets, hats, crowns
chest
Chestplates, tunics
legs
Leggings, pants
feet
Boots, shoes
mainhand
Main hand equipment (default)
offhand
Off-hand equipment
Troubleshooting
Example Project Structure
If you want, I can also:
Convert any CSV examples into separate step-by-step import instructions, or
Add a ready-to-copy sample
kafal-items.jsonfile for a specific use case.
Last updated