Skip to main content

item.txt Full Reference

All item properties are defined as key = value lines in any .txt file. Blank lines and lines starting with # are ignored. Keys are case-insensitive.

note

name is a deprecated alias for id. It still works but logs a warning and will be removed in a future version.


Identity

KeyTypeDescription
idstringUnique internal identifier for this item. Never rename after release. Used to generate the stable save-compatible ItemId.
display_namestringThe item name shown in-game. Overridden by localization keys if present.
slot_typestringDetermines what kind of item this is. See Slot Types below.

Multi-file

KeyTypeDescription
priorityintControls merge order when multiple files share the same id. Lower values are processed first. Default: 0.

Lore

KeyTypeDescription
flavorstringFlavor text shown in the item tooltip. Overridden by localization keys if present.

Economy

KeyTypeDescription
priceintBuy price at shops.
sellableboolWhether the player can sell this item. Default: true.
qualitystringItem quality tier. Affects tooltip border color.

Inventory

KeyTypeDescription
inv_widthintWidth of the item in the inventory grid (in cells). Default: 1.
inv_heightintHeight of the item in the inventory grid (in cells). Default: 1.
artworkstringFilename of the icon image (.png). Resolved relative to the item file's folder. Falls back to artwork.png in the same folder if not specified.

Armor

KeyTypeDescription
max_durabilityfloatMaximum durability. Required for armor slot types (Head, Torso, Feet).
modifierstringAdds a stat modifier while the armor is equipped. Format: modifier = StatName value. Can be used multiple times. See Entity Attributes.

Passive

KeyTypeDescription
modifierstringAdds a stat modifier while the passive is in the player's inventory. Same as armor modifier. See Entity Attributes.

Consumable

KeyTypeDescription
addstringAdds a stat effect when the item is consumed. Format: add = StatName value. Can be used multiple times. See Entity Attributes.
removestringRemoves a negative status effect when consumed. Format: remove = NegativeEffect_Name. Can be used multiple times.
resourcestringGrants a resource (ammo, currency, etc.) when consumed. Format: resource = Resource_Name amount. Can be used multiple times.

Enchantment

KeyTypeDescription
enchantstringAdds a weapon stat modifier when the oil/scroll is applied. Format: enchant = StatName value. Can be used multiple times. See Item Attributes.
enchant_costs_durabilityboolWhether applying this enchantment costs weapon durability.
enchant_is_elementalboolMarks this enchantment as elemental (affects some game logic).

Sound

KeyTypeDescription
copy_soundsstringInternal name of a vanilla item whose sounds to copy (use, pickup, putdown).
sound_usestringCustom audio file for the use/consume event. Resolved relative to item folder.
sound_pickupstringCustom audio file for picking up in inventory. Resolved relative to item folder.
sound_putdownstringCustom audio file for placing down in inventory. Resolved relative to item folder.

Loot

KeyTypeDescription
loot_weightintWeight in the global loot table. Higher = more common. 0 disables.
loot_tablestringWhich global loot table to inject into. global / gadget (default) or scavenge.
loot_envstringPer-environment loot weight override. Format: loot_env = EnvironmentName weight. Can be used multiple times. A weight of 0 blocks the item in that environment.

Enemy Drops

KeyTypeDescription
drop_weightintWeight in enemy unit loot tables. Higher = more common.
drop_factionstringRestricts drops to a specific enemy faction. Matched by enum name or display name substring. Omit to drop from all factions. Can be used multiple times.

Shop

KeyTypeDescription
shop_weightintWeight in shop stock. Higher = more likely to appear.
shop_alwaysboolIf true, the item is always in stock (not random).
shop_npcstringRestricts the item to a specific shop NPC. Matched as a case-insensitive substring of the NPC's internal identifier. Omit to sell at all shops. Can be used multiple times.

Crafting

KeyTypeDescription
recipestringOne ingredient slot in the recipe. Format: recipe = itemId quantity. Use multiple lines for multiple ingredients.
recipe_outputintNumber of items produced per craft. Default: 1.
recipe_typestringCrafting station type.
recipe_knownboolIf true, the recipe is known from the start without needing to craft it first.

Localization

Localization keys use the format <lang>.<field>:

KeyExampleDescription
<lang>.nameen.name = Iron HelmetLocalized display name for the given language.
<lang>.flavorde.flavor = Schwer, aber zuverlässig.Localized flavor text.

Language codes accept ISO-639-1 short codes (en, de, zh-CN), lowercase full names (german), or full I2 language names (German).


Slot type values

ValueDescription
ConsumableSingle-use item. Supports add, remove, resource. Goes into gadget/scavenge loot pool.
HeadHelmet armor. Supports modifier, max_durability. Uses per-environment loot_env.
TorsoChest armor. Same as Head.
FeetBoot armor. Same as Head.
PassiveEnhancementsPassive trinket. Supports modifier. No durability. Goes into gadget loot pool.
EnchantmentOil or scroll. Dragged onto a weapon to permanently apply weapon stat modifiers. Uses the enchant key.
NoneSlotless. No equip or consume action. Can drop from enemies, appear in shops, and be used as a crafting ingredient.