# ITM v1 (BG, IWD, BG2, EE)

Sorted alphabetically (sort by order in the file)

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.

Special keys

Key | Type
--- | ---
both_names | Sets these: unidentified_name,identified_name
both_names-strref | Sets these: unidentified_name-strref,identified_name-strref

Standard keys

Key | Type
--- | ---
adamantine | Boolean
category | Integer
cold_iron | Boolean
conversable | Boolean
critical_item | Boolean
cursed | Boolean
desc_image | String (8 bytes)
displayable | Boolean
droppable | Boolean
enchantment | Integer
equipped_appearance | String (2 bytes)
fake_two_handed | Boolean
forbid_offhand | Boolean
ground_icon | String (8 bytes)
icon | String (8 bytes)
identified_description | Strref
identified_name | Strref
left_handed | Boolean
lore_to_identify | Integer
magical | Boolean
max_in_stack | Integer
min_cha | Integer
min_con | Integer
min_dex | Integer
min_int | Integer
min_level | Integer
min_str | Integer
min_str_ex | Integer
min_wis | Integer
not_copyable | Boolean
off_handed | Boolean
price | Integer
proficiency | id lookup (stats)
silver | Boolean
toggle_critical_hits | Boolean
two_handed | Boolean
undispellable | Boolean
unidentified_description | Strref
unidentified_name | Strref
used_up_item | String (8 bytes)
weight | Integer

Usability flags

Key | Type
--- | ---
unusable_abjuration | Boolean
unusable_abjurer | Boolean
unusable_alteration | Boolean
unusable_archer | Boolean
unusable_assassin | Boolean
unusable_avenger | Boolean
unusable_barbarian | Boolean
unusable_bard | Boolean
unusable_beastmaster | Boolean
unusable_berserker | Boolean
unusable_blade | Boolean
unusable_bounty_hunter | Boolean
unusable_cavalier | Boolean
unusable_chaotic | Boolean
unusable_cleric | Boolean
unusable_cleric_mage | Boolean
unusable_cleric_of_helm | Boolean
unusable_cleric_of_lathander | Boolean
unusable_cleric_of_talos | Boolean
unusable_cleric_ranger | Boolean
unusable_cleric_thief | Boolean
unusable_conjuration | Boolean
unusable_conjurer | Boolean
unusable_divination | Boolean
unusable_diviner | Boolean
unusable_druid | Boolean
unusable_dwarf | Boolean
unusable_elf | Boolean
unusable_enchanter | Boolean
unusable_enchantment | Boolean
unusable_evil | Boolean
unusable_fighter | Boolean
unusable_fighter_cleric | Boolean
unusable_fighter_druid | Boolean
unusable_fighter_mage | Boolean
unusable_fighter_mage_cleric | Boolean
unusable_fighter_mage_thief | Boolean
unusable_fighter_thief | Boolean
unusable_generalist | Boolean
unusable_geneutral | Boolean
unusable_gnome | Boolean
unusable_good | Boolean
unusable_half_elf | Boolean
unusable_half_orc | Boolean
unusable_halfling | Boolean
unusable_human | Boolean
unusable_illusion | Boolean
unusable_illusionist | Boolean
unusable_inquisitor | Boolean
unusable_invocation | Boolean
unusable_invoker | Boolean
unusable_jester | Boolean
unusable_kensai | Boolean
unusable_lawful | Boolean
unusable_lcneutral | Boolean
unusable_mage | Boolean
unusable_mage_thief | Boolean
unusable_monk | Boolean
unusable_necromancer | Boolean
unusable_necromancy | Boolean
unusable_paladin | Boolean
unusable_ranger | Boolean
unusable_shapeshifter | Boolean
unusable_skald | Boolean
unusable_stalker | Boolean
unusable_swashbuckler | Boolean
unusable_thief | Boolean
unusable_totemic_druid | Boolean
unusable_transmutation | Boolean
unusable_transmuter | Boolean
unusable_undead_hunter | Boolean
unusable_wild_mage | Boolean
unusable_wizard_slayer | Boolean

## Ability (ab)

Standard keys

Key | Type
--- | ---
add_strength_bonus | Boolean
alternate_damagebonus | Integer
alternate_dicenumber | Integer
alternate_dicesize | Integer
attack_bonus | Integer
attack_strength_bonus | Boolean
backhand | Integer
break_sanctuary | Boolean
breakable | Boolean
bypass_armor | Boolean
cannot_target_invisible | Boolean
damage_bonus | Integer
damage_strength_bonus | Boolean
damage_type | Lookup (0=None, 1=Piercing, 2=Crushing, 3=Slashing, 4=Missile, 5=Fist, 6=PiercingCrushing, 7=PiercingSlashing, 8=CrushingSlashing, 9=BluntMissile)
dicenumber | Integer
dicesize | Integer
exclusive_effects | Boolean
hostile | Boolean
icon | String (8 bytes)
is_arrow | Integer
is_bolt | Integer
is_bullet | Integer
keen_edge | Boolean
launcher | Lookup (0=None, 1=Bow, 2=Crossbow, 3=Sling, 40=Spear, 100=ThrowingAxe)
location | Lookup (0=None, 1=Weapon, 2=Spell, 3=Item, 4=Innate)
number_charges | Integer
overhand | Integer
primary_type | Integer
projectile[1] | id lookup (projectl) with off-by-one correction
range | Integer
recharge_after_resting | Boolean
secondary_type | Integer
speed | Integer
target | Lookup (0=Invalid, 1=LivingActor, 2=Inventory, 3=DeadActor, 4=PointWithinRange, 5=Caster, 6=Crash, 7=CasterSpecial)
target_count | Integer
thrust | Integer
toggle_backstab | Boolean
type | Lookup (0=None, 1=Melee, 2=Ranged, 3=Magical, 4=Launcher)
usable_after_id | Boolean
usable_before_id | Boolean
when_drained | Lookup (0=Remains, 1=Vanishes, 2=UsedUp, 3=Recharges)

## Effect (fx)

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

Standard keys

Key | Type
--- | ---
blue | Integer
bypass_mirror_image | Boolean
damage_type | Lookup (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)
damagetype | Lookup (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)
dicenumber | Integer
dicesize | Integer
dispel_resist | Lookup (0=Nonmagical, 1=DispelResist, 2=NoDispelIgnoreResist, 3=DispelIgnoreResist)
drain_hp_to_caster | Boolean
duration | Integer
green | Integer
ignore_difficulty | Boolean
ignore_primary_target | Boolean
ignore_secondary_target | Boolean
opcode | Integer
parameter1 | Integer
parameter2 | Integer
parameter2a | Integer
parameter2b | Integer
power | Integer
probability1[100] | Integer
probability2 | Integer
red | Integer
resource | String (8 bytes)
save_for_half | Boolean
save_vs_breath | Boolean
save_vs_poison | Boolean
save_vs_polymorph | Boolean
save_vs_spell | Boolean
save_vs_wand | Boolean
savebonus | Integer
special | Integer
target | Lookup (0=None, 1=Self, 2=PresetTarget, 3=Party, 4=Everyone, 5=EveryoneExceptParty, 6=CasterGroup, 7=TargetGroup, 8=EveryoneExceptSelf, 9=OriginalCaster)
timing | Lookup (0=InstantLimited, 1=InstantPermanent, 2=Equipped, 3=DelayLimited, 4=DelayPermanent, 5=DelayEquipped, 6=LimitedAfterDuration, 7=PermanentAfterDuration, 9=InstantPermanentAfterDeath)