ITM v1 (original BG1 and BG2, Enhanced Editions)

Sorted by order in the file (sort alphabetically)

Effect headers ('fx') occur either as top-level headers (on-equip effects) or as child headers of ability headers ('ab_fx'). Note that the spec for the itm_v1_fx header is hardcoded by SFO to clone the spl_v1_fx header spec.

Main Header

For readability, 'unusable' flags are listed separately.

Standard keys
KeyType
unidentified_nameStrref
identified_nameStrref
used_up_itemString (8 bytes)
critical_itemBoolean
two_handedBoolean
droppableBoolean
displayableBoolean
cursedBoolean
not_copyableBoolean
magicalBoolean
left_handedBoolean
silverBoolean
cold_ironBoolean
off_handedBoolean
conversableBoolean
fake_two_handedBoolean
forbid_offhandBoolean
adamantineBoolean
undispellableBoolean
toggle_critical_hitsBoolean
categoryInteger
equipped_appearanceString (2 bytes)
min_levelInteger
min_strInteger
min_str_exInteger
min_intInteger
min_dexInteger
min_wisInteger
min_conInteger
proficiencyid lookup (stats)
min_chaInteger
priceInteger
max_in_stackInteger
iconString (8 bytes)
lore_to_identifyInteger
ground_iconString (8 bytes)
weightInteger
unidentified_descriptionStrref
identified_descriptionStrref
desc_imageString (8 bytes)
enchantmentInteger

Usability flags
KeyType
unusable_chaoticBoolean
unusable_evilBoolean
unusable_goodBoolean
unusable_geneutralBoolean
unusable_lawfulBoolean
unusable_lcneutralBoolean
unusable_bardBoolean
unusable_clericBoolean
unusable_cleric_mageBoolean
unusable_cleric_thiefBoolean
unusable_cleric_rangerBoolean
unusable_fighterBoolean
unusable_fighter_druidBoolean
unusable_fighter_mageBoolean
unusable_fighter_clericBoolean
unusable_fighter_mage_clericBoolean
unusable_fighter_mage_thiefBoolean
unusable_fighter_thiefBoolean
unusable_mageBoolean
unusable_mage_thiefBoolean
unusable_paladinBoolean
unusable_rangerBoolean
unusable_thiefBoolean
unusable_elfBoolean
unusable_dwarfBoolean
unusable_half_elfBoolean
unusable_halflingBoolean
unusable_humanBoolean
unusable_gnomeBoolean
unusable_monkBoolean
unusable_druidBoolean
unusable_half_orcBoolean
unusable_cleric_of_talosBoolean
unusable_cleric_of_helmBoolean
unusable_cleric_of_lathanderBoolean
unusable_totemic_druidBoolean
unusable_shapeshifterBoolean
unusable_avengerBoolean
unusable_barbarianBoolean
unusable_wild_mageBoolean
unusable_stalkerBoolean
unusable_beastmasterBoolean
unusable_assassinBoolean
unusable_bounty_hunterBoolean
unusable_swashbucklerBoolean
unusable_bladeBoolean
unusable_jesterBoolean
unusable_skaldBoolean
unusable_divinerBoolean
unusable_enchanterBoolean
unusable_illusionistBoolean
unusable_invokerBoolean
unusable_necromancerBoolean
unusable_transmuterBoolean
unusable_generalistBoolean
unusable_archerBoolean
unusable_berserkerBoolean
unusable_wizard_slayerBoolean
unusable_kensaiBoolean
unusable_cavalierBoolean
unusable_inquisitorBoolean
unusable_undead_hunterBoolean
unusable_abjurerBoolean
unusable_conjurerBoolean

ab

Standard keys
KeyType
typeLookup (0=None, 1=Melee, 2=Ranged, 3=Magical, 4=Launcher)
usable_after_idBoolean
usable_before_idBoolean
exclusive_effectsBoolean
locationLookup (0=None, 1=Weapon, 2=Spell, 3=Item, 4=Innate)
alternate_dicesizeInteger
iconString (8 bytes)
targetLookup (0=Invalid, 1=LivingActor, 2=Inventory, 3=DeadActor, 4=PointWithinRange, 5=Caster, 6=Crash, 7=CasterSpecial)
target_countInteger
rangeInteger
launcherLookup (0=None, 1=Bow, 2=Crossbow, 3=Sling, 40=Spear, 100=ThrowingAxe)
alternate_dicenumberInteger
speedInteger
alternate_damagebonusInteger
attack_bonusInteger
dicesizeInteger
primary_typeInteger
dicenumberInteger
secondary_typeInteger
damage_bonusInteger
damage_typeLookup (0=None, 1=Piercing, 2=Crushing, 3=Slashing, 4=Missile, 5=Fist, 6=PiercingCrushing, 7=PiercingSlashing, 8=CrushingSlashing, 9=BluntMissile)
number_chargesInteger
when_drainedLookup (0=Remains, 1=Vanishes, 2=UsedUp, 3=Recharges)
add_strength_bonusBoolean
breakableBoolean
damage_strength_bonusBoolean
attack_strength_bonusBoolean
break_sanctuaryBoolean
hostileBoolean
recharge_after_restingBoolean
bypass_armorBoolean
keen_edgeBoolean
toggle_backstabBoolean
cannot_target_invisibleBoolean
projectile[1]Integer
overhandInteger
backhandInteger
thrustInteger
is_arrowInteger
is_boltInteger
is_bulletInteger

fx

Effects can occur as top-level headers (on-equip effects) or as child headers of ability headers. Use the 'ab_fx' special type to edit child headers.

Standard keys
KeyType
opcodeInteger
targetLookup (0=None, 1=Self, 2=PresetTarget, 3=Party, 4=Everyone, 5=EveryoneExceptParty, 6=CasterGroup, 7=TargetGroup, 8=EveryoneExceptSelf, 9=OriginalCaster)
powerInteger
parameter1Integer
parameter2Integer
parameter2aInteger
parameter2bInteger
damagetypeLookup (0=Crushing, 1=Acid, 2=Cold, 4=Electricity, 8=Fire, 16=Piercing, 32=Poison, 64=Magic, 128=Missile, 256=Slashing, 512=MagicFire, 1024=MagicCold, 2048=Stunning)
timingLookup (0=InstantLimited, 1=InstantPermanent, 2=Equipped, 3=DelayLimited, 4=DelayPermanent, 5=DelayEquipped, 6=LimitedAfterDuration, 7=PermanentAfterDuration, 9=InstantPermanentAfterDeath)
dispel_resistLookup (0=Nonmagical, 1=DispelResist, 2=NoDispelIgnoreResist, 3=DispelIgnoreResist)
durationInteger
probability1[100]Integer
probability2Integer
resourceString (8 bytes)
dicenumberInteger
dicesizeInteger
save_vs_spellBoolean
save_vs_breathBoolean
save_vs_poisonBoolean
save_vs_wandBoolean
save_vs_polymorphBoolean
bypass_mirror_imageBoolean
savebonusInteger
specialInteger

test title
KeyType
ignore_primary_targetBoolean
ignore_secondary_targetBoolean
ignore_difficultyBoolean