ITM file format
Applies to:
BG1, BG1: TotS, BG2, BG2: ToB, IWD, IWD:HoW, IWD:TotL
General Description
This file format describes an "item". Items include weapons, armor, books, scrolls, rings and more. Items can have attached abilties, occuring either when a target creature it hit, or when the item is equipped. ITM files have a similar structure to SPL files.

![]() |
Header: Size=114 Bytes | ![]() |
Ext. Header: Size= 56 Bytes | ![]() |
Feature Block: Size=48 Bytes |
Detailed Description
ITM files consist of a main header, zero or more extended headers (each containing zero or more feature blocks) and zero or more casting feature blocks. All the feature blocks are stored as a continuous data segment, with each extended header containing an offset into this data, and the main header containing an offset into this data for the casting feature blocks.
NB. A creature must meet the minimum stat requirements to be able to converse with an item.
Overall structure:
NB. A creature must meet the minimum stat requirements to be able to converse with an item.
Overall structure:
Offset | Size (datatype) | Description |
---|---|---|
0x0000 | 4 (char array) | Signature ('ITM ') |
0x0004 | 4 (char array) | Version ('V1 ') |
0x0008 | 4 (strref) | Unidentified Name (strref) |
0x000c | 4 (strref) | Identified Name (strref) |
0x0010 | 8 (resref) | Replacement Item (resref) |
0x0018 | 4 (dword) | Flags |
0x001c | 2 (word) | Item type |
0x001e | 1*4 (byte) | Usability bitmask |
0x0022 | 2 (char array) | Item animation |
0x0024 | 2 (word) | Min Level |
0x0026 | 2 (word) | Min Strength (unused in BG1) |
0x0028 | 1 (byte) | Min Strength Bonus (unused in BG1) Note: A strength of 19 or above is considered to have a Strength Bonus of 0, and would therefore not be able to equip any weapon with a Strength Bonus restriction. |
0x0029 | 1 (byte) | Kit Usability 1 |
0x002a | 1 (byte) | Min Intelligence (unused in BG1) |
0x002b | 1 (byte) | Kit Usability 2 |
0x002c | 1 (byte) | Min Dexterity (unused in BG1) |
0x002d | 1 (byte) | Kit Usability 3 |
0x002e | 1 (byte) | Min Wisdom (unused in BG1) |
0x002f | 1 (byte) | Kit Usability 4 |
0x0030 | 1 (byte) | Min Constitution (unused in BG1) |
0x0031 | 1 (byte) | Weapon Proficiency |
0x0032 | 2 (word) | Min Charisma |
0x0034 | 4 (dword) | Price |
0x0038 | 2 (word) | Stack amount |
0x003a | 8 (resref) | Inventory icon |
0x0042 | 2 (word) | Lore to ID |
0x0044 | 8 (resref) | Ground icon |
0x004c | 4 (dword) | Weight |
0x0050 | 4 (dword) | Unidentified Description (strref) |
0x0054 | 4 (dword) | Identified Description (strref) |
0x0058 | 8 (resref) | Description icon |
0x0060 | 4 (dword) | Enchantment |
0x0064 | 4 (dword) | Offset to extended headers |
0x0068 | 2 (word) | Count of extended headers |
0x006a | 4 (dword) | Offset to feature blocks |
0x006e | 2 (word) | Index into equipping feature blocks |
0x0070 | 2 (word) | Count of Equipping Feature Blocks |
Items can have several "abilities" that correspond to an action the item can do (e.g. melee attacks, projectile attacks, spell-casting etc.). Each of these abilities is specified through an extended header. Only the first three extended headers can have charges (extended headers further than this use the charges of the first extended header). Tooltips for item abilities are set through tooltips.2da.
NB. For items to be stackable, they must contain at least one extension header, even if it is empty.
NB. For an attack type of projectile, if the projectile type is set to 1,2 or 3, the weapon will use the attack speed of the ammunition.
NB. For items to be stackable, they must contain at least one extension header, even if it is empty.
NB. For an attack type of projectile, if the projectile type is set to 1,2 or 3, the weapon will use the attack speed of the ammunition.
Offset | Size (datatype) | Description |
---|---|---|
0x0000 | 1 (char) | Attack type
|
0x0001 | 1 (char) | ID Req.
|
0x0002 | 1 (char) | Location
|
0x0003 | 1 (char) | Alternative dice sides |
0x0004 | 8 (resref) | Use icon |
0x000c | 1 (char) | Target type
|
0x000d | 1 (char) | Target count |
0x000e | 2 (word) | Range |
0x0010 | 1 (byte) | Projectile type
|
0x0011 | 1 (byte) | Alternative dice thrown |
0x0012 | 1 (byte) | Speed |
0x0013 | 1 (byte) | Alternative damage bonus |
0x0014 | 2 (word) | THAC0 bonus A successful hit will always occur if any of the conditions below is true
|
0x0016 | 1 (byte) | Dice sides |
0x0017 | 1 (byte) | Primary type |
0x0018 | 1 (byte) | Dice thrown |
0x0019 | 1 (byte) | Secondary type |
0x001a | 2 (word) | Damage bonus |
0x001c | 2 (word) | Damage type
|
0x001e | 2 (word) | Count of feature blocks |
0x0020 | 2 (word) | Offset to feature blocks |
0x0022 | 2 (word) | Charges |
0x0024 | 2 (word) | Charge depletion behaviour
|
0x0026 | 4 (dword) | Flags |
0x002a | 2 (word) | Projectile animation (projectl.ids/missile.ids) |
0x002c | 2*3 (word) | Melee animation |
0x0032 | 2 (word) | Bow/Arrow qualifier (0=No, 1=Yes) |
0x0034 | 2 (word) | Crossbow/Bolt qualifier (0=No, 1=Yes) |
0x0036 | 2 (word) | Misc. Projectile qualifier (0=No, 1=Yes) |
Any action carried out by an item is done by feature blocks, each of which holds an effect number as well as targetting and timing information. The engine appears to roll a probability for each valid target type, rather than one probability per attack.
Offset | Size (datatype) | Description |
---|---|---|
0x0000 | 2 (word) | Opcode number |
0x0002 | 1 (char) | Target type
|
0x0003 | 1 (char) | Power |
0x0004 | 4 (dword) | Parameter 1 |
0x0008 | 4 (dword) | Parameter 2 |
0x000c | 1 (char) | Timing mode
|
0x000d | 1 (char) | Resistance The default behaviour is that effects cannot be dispelled and ignore resistance.
This can also be presented in the more traditional way:
|
0x000e | 4 (dword) | Duration |
0x0012 | 1 (char) | Probability 1 |
0x0013 | 1 (char) | Probability 2 Note: The BG1 engine treats probability as a single word, effects are applied in the range 0-probability. Note: Other engines treat probability as two values, effects are applied in the range probability <= x <= probability. Probability range is 0-99 |
0x0014 | 8 (resref) | Resource |
0x001c | 4 (dword) | Dice Thrown |
0x0020 | 4 (dword) | Dice Sides |
0x0024 | 4 (dword) | Saving throw type
|
0x0028 | 4 (dword) | Saving throw bonus |
0x002c | 4 (dword) | Special |
Header Flags
Bit | Byte 1 | Byte 2 | Byte 3 | Byte 4 |
---|---|---|---|---|
0 | Unsellable (critical item)* | Silver | Unused | Unused |
1 | Two-handed | Cold-Iron | Unused | Unused |
2 | Movable | Unsellable (stolen) / two handed animation Set offhand animations for 0x5###-0x6### animId series (excluding 0x64##) when weapon placed in offhand. |
Unused | Unused |
3 | Displayable | Conversable | Unused | Unused |
4 | Cursed | Unused | Unused | Unused |
5 | Cannot scribe to spellbook (scrolls) | Unused | Unused | Unused |
6 | Magical | Unused | Unused | Unused |
7 | Bow | Unused | Unused | Unused |
* In BG1, this flag does not affect whether the item can be sold.
Header Item Type
The item type of an item affects the pick-up/put-down sound when moving the item in the inventory, whether stores will buy the item and the ability ubttons shown on the item description screen.
Code | Item type |
---|---|
0x0000 | Books/misc |
0x0001 | Amulets and necklaces |
0x0002 | Armor |
0x0003 | Belts and girdles |
0x0004 | Boots |
0x0005 | Arrows |
0x0006 | Bracers and gauntlets |
0x0007 | Helms, hats, and other head-wear |
0x0008 | Keys (not in Icewind Dale?) |
0x0009 | Potions |
0x000a | Rings |
0x000b | Scrolls |
0x000c | Shields (not in IWD) |
0x000d | Food |
0x000e | Bullets (for a sling) |
0x000f | Bows |
0x0010 | Daggers |
0x0011 | Maces (in BG, this includes clubs) |
0x0012 | Slings |
0x0013 | Small swords |
0x0014 | Large swords |
0x0015 | Hammers |
0x0016 | Morning stars |
0x0017 | Flails |
0x0018 | Darts |
0x0019 | Axes (specifically, 1-handed axes -- halberds and 2-handed polearms not included) |
0x001a | Quarterstaff |
0x001b | Crossbow |
0x001c | Hand-to-hand weapons (fist, fist irons, punch daggers, etc) |
0x001d | Spears |
0x001e | Halberds (2-handed polearms) |
0x001f | Crossbow bolts |
0x0020 | Cloaks and robes |
0x0021 | Gold pieces (not an inventory item, but can appear as "monster dropped" treasure) |
0x0022 | Gems |
0x0023 | Wands |
0x0024 | Container/eye/broken armor |
0x0025 | Books/Broken shield/bracelet |
0x0026 | Familiars/Broken sword/earring |
0x0027 | Tattoos (PST) |
0x0028 | Lenses(PST) |
0x0029 | Buckler/teeth |
0x002a | Candle |
0x002b | Unknown |
0x002c | Clubs(IWD) |
0x002d | Unknown |
0x002e | Unknown |
0x002f | Large Shield(IWD) |
0x0030 | Unknown |
0x0031 | Medium Shield(IWD) |
0x0032 | Notes |
0x0033 | Unknown |
0x0034 | Unknown |
0x0035 | Small Shield(IWD) |
0x0036 | Unknown |
0x0037 | Telescope(IWD) |
0x0038 | Drink(IWD) |
0x0039 | Great Sword(IWD) |
0x003a | Container |
0x003b | Fur/pelt |
0x003c | Leather Armor |
0x003d | Studded Leather Armor |
0x003e | Chain Mail |
0x003f | Splint Mail |
0x0040 | Half Plate |
0x0041 | Full Plate |
0x0042 | Hide Armor |
0x0043 | Robe |
0x0044 | Unknown |
0x0045 | Bastard Sword |
0x0046 | Scarf |
0x0047 | Food(IWD2) |
0x0048 | Hat |
0x0049 | Gauntlet |
Header Usability
Bit | Byte 1 | Byte 2 | Byte 3 | Byte 4 |
---|---|---|---|---|
0 | Chaotic... | Cleric/Mage | Fighter/Mage/Thief | Dwarf |
1 | ...Evil | Cleric/Thief | Fighter/Thief | Half-Elf |
2 | ...Good | Cleric/Ranger | Mage | Halfling |
3 | ...Neutral | Fighter | Mage/Thief | Human |
4 | Lawful... | Fighter/Druid | Paladin | Gnome |
5 | Neutral... | Fighter/Mage | Ranger | Monk |
6 | Bard | Fighter/Cleric | Thief | Druid |
7 | Cleric | Fighter/Mage/Cleric | Elf | Half-Orc |
Header Animation
Value(ASCII) | Value(Hex) | Description |
---|---|---|
" " | 2020h | <none> |
"2A" | 3241h | Leather Armor |
"3A" | 3341h | Chainmail |
"4A" | 3441h | Plate Mail |
"2W" | 3257h | Robe |
"3W" | 3357h | Robe |
"4W" | 3457h | Robe |
"AX" | 4158h | Axe |
"BW" | 4257h | Bow |
"CB" | 4342h | Crossbow |
"CL" | 434Ch | Club |
"D1" | 4431h | Buckler |
"D2" | 4432h | Shield (Small) |
"D3" | 4433h | Shield (Medium) |
"D4" | 4434h | Shield (Large) |
"DD" | 4444h | Dagger |
"FL" | 464Ch | Flail |
"FS" | 4653h | Flame Sword |
"H0" | 4830h | Small Vertical Horns |
"H1" | 4831h | Large Horizontal Horns |
"H2" | 4832h | Feather Wings |
"H3" | 4833h | Top Plume |
"H4" | 4834h | Dragon Wings |
"H5" | 4835h | Feather Sideburns |
"H6" | 4836h | Large Curved Horns (incorrect paperdoll image) |
"HB" | 4842h | Halberd |
"MC" | 4D43h | Mace |
"MS" | 4D53h | Morning Star |
"QS" | 5153h | Quarter Staff (Metal) |
"S1" | 5331h | Sword 1-Handed |
"S2" | 5332h | Sword 2-Handed |
"SL" | 534Ch | Sling |
"SP" | 5350h | Spear |
"SS" | 5353h | Short Sword |
"WH" | 5748h | War Hammer |
"S3" | 5333h | Katana # |
"SC" | 5343h | Scimitar # |
Header Kit Usability
Bit | Byte 1 | Byte 2 | Byte 3 | Byte 4 |
---|---|---|---|---|
0 | Cleric of Talos | Stalker Ranger | Diviner | Beserker Fighter |
1 | Cleric of Helm | Beastmaster Ranger | Enchanter | Wizardslayer Fighter |
2 | Cleric of Lathlander | Assassin Thief | Illusionist | Kensai Fighter |
3 | Totemic Druid | Bounty Hunter Thief | Invoker | Cavalier Paladin |
4 | Shapeshifter Druid | Swashbuckler Thief | Necromancer | Inquisiter Paladin |
5 | Avenger Druid | Blade Bard | Transmuter | Undead Hunter Paladin |
6 | Barbarian | Jester Bard | All (no kit) | Abjurer |
7 | Wildmage | Skald Bard | Ferlain | Conjurer |
Header Proficiency
Value (hex) | Description |
---|---|
00h | None |
59h | Bastard Sword |
5Ah | Long Sword |
5Bh | Short Sword |
5Ch | Axe |
5Dh | Two-Handed Sword |
5Eh | Katana |
5Fh | Scimitar/Wakizashi/Ninja-To |
60h | Dagger |
61h | War Hammer |
62h | Spear |
63h | Halberd |
64h | Flail/Morningstar |
65h | Mace |
66h | Quarterstaff |
67h | Crossbow |
68h | Long Bow |
69h | Short Bow |
6Ah | Darts |
6Bh | Sling |
6Ch | Blackjack |
6Dh | Gun |
6Eh | Martial Arts |
6Fh | Two-Handed Weapon Skill |
70h | Sword and Shield Skill |
71h | Single Weapon Skill |
72h | Two Weapon skill |
73h | Club |
74h | Extra Proficiency 2 |
75h | Extra Proficiency 3 |
76h | Extra Proficiency 4 |
77h | Extra Proficiency 5 |
78h | Extra Proficiency 6 |
79h | Extra Proficiency 7 |
7Ah | Extra Proficiency 8 |
7Bh | Extra Proficiency 9 |
7Ch | Extra Proficiency 10 |
7Dh | Extra Proficiency 11 |
7Eh | Extra Proficiency 12 |
7Fh | Extra Proficiency 13 |
80h | Extra Proficiency 14 |
81h | Extra Proficiency 15 |
82h | Extra Proficiency 16 |
83h | Extra Proficiency 17 |
84h | Extra Proficiency 18 |
85h | Extra Proficiency 19 |
86h | Extra Proficiency 20 |
Extended Header MeleeAnimation
Value Word 1 | Value Word 2 | Value Word 3 | Data |
---|---|---|---|
00h | 14h | 50h | Dagger |
0Ah | 19h | 41h | Short Sword |
32h | 32h | 00h | Long Sword, Bastard Sword, Scimitar, Battle Axe, Warhammer, Club, Mace, Flail, Morning Star |
3Ch | 28h | 00h | Two-Handed Sword |
00h | 23h | 41h | Halberd |
00h | 00h | 64h | Spear |
0Ah | 46h | 14h | Staff |
00h | 00h | 00h | Any Missile Weapon (Bow, Arrow, CrossBow, Bolt, Sling, Bullet, Throwing Axe, Dart, Throwing Dagger, etc.) |
22h | 21h | 21h | Any Non-Weapon Item (Amulets, Rings, Wands, etc.) |
Extension Header Flags
Bit | Byte 1 | Byte 2 |
---|---|---|
0 | Add strength bonus | Unknown |
1 | Breakable | Unknown |
2 | Unknown | Hostile |
3 | Unknown | Recharges |
4 | Unknown | Unknown |
5 | Unknown | Unknown |
6 | Unknown | Unknown |
7 | Unknown | Unknown |