Skip to main content
Items are definitions (immutable, shared) plus instances (the actual stack a character holds). You register a definition once; you mint instances at runtime.

Register a definition

Call forge-items:RegisterItem from your content package at bootstrap, after forge-items is ready.
Definitions are open tables. Consumer packages read their own optional blocks, equip for forge-equipment, weapon for the combat/cast glue, use for the consumable flow, and forge-items rides unknown blocks along untouched.

Common fields

Grant it to a character

Mint an instance, then add it to the character’s bag container (inv:<character_id>):

Equippable items

To make an item apply stats while worn, add an equip block, forge-equipment applies the modifiers as long as the item occupies an equip slot, and removes them on unequip:
Ship your own neutral default items by adding them to forge-itemsshared/data/items.lua and keeping ShipDefaults = true, same registration path, just framework-owned. See the content model.

Next: add an effect