Enhanced Vanilla Item Module Sample Output: Lore, Enchants, Durability, and NBT Data
Quick Answer: The mojang-items.json module sample in bedrock-samples provides basic item definitions. For extended data (lore, supported enchants, durability, NBT), developers must parse the vanilla data files directly or use third-party tools like bedrock-data or prismarine-data.
Details
Issue #23 requests updating the vanilladata_modules/mojang-items.json sample to include additional item metadata: lore text, supported enchantments, durability values, and NBT data structures for special blocks (chests, entities).
Current Module Sample Structure
The existing mojang-items.json contains basic item definitions with identifiers, display names, and basic components. It does not include:
- Lore/description text
- Supported enchantment lists per item
- Durability/max damage values
- NBT/data component structures for complex items
- Special block data (chest loot tables, entity definitions)
Alternative Data Sources
1. Vanilla Data Extraction — Extract items.json, blocks.json, and entities.json from the vanilla resource/behavior packs using tools like bedrock-unpack or mcpack-util.
2. Prismarine/bedrock-data — The bedrock-data npm package provides parsed vanilla data for all supported versions:
const { items, blocks, entities } = require('bedrock-data')('1.21.0');
// Get diamond sword data
const sword = items[276]; // minecraft:diamond_sword
console.log(sword.maxDamage); // 1561
console.log(sword.enchantable); // true
3. Wiki Data — The Minecraft Wiki (minecraft.fandom.com) documents enchantments, durability, and lore for every item.
Educational Module Request
The issue also requests educational modules explaining:
- NBT Data in Bedrock — Bedrock uses Data Components (1.20.50+) instead of classic NBT. Components are typed, versioned, and attached to items/blocks/entities.
- Special Blocks — Chests use
minecraft:containercomponent with loot tables; entities useminecraft:entitywith component groups. - Format Version Tracking — Each data file has a
format_versionfield indicating the schema version.
Last updated: 2026-07-17
