PSTEE Opcodes


#0 (0x0) Stat: AC vs. Damage Type Modifier Variants: IWD2
Parameter #1: AC Modifier
Parameter #2: Type
Description:
Applies the modifier value specified by the AC Modifier field to the category specified by the Type field.

Known values for Type are:
  • 0 ⟶ All
  • 1 ⟶ Crushing
  • 2 ⟶ Missile
  • 4 ⟶ Piercing
  • 8 ⟶ Slashing
  • 16 ⟶ Base AC setting
    • Sets the targets AC to the value specified by the AC Modifier field. If the targets AC is already AC Modifier or below, this effect will do nothing.

Each modifier type to AC from this opcode is capped to the range [-20,20]. Each AC type total is capped to the range [-32768,32767].

Note: IWD1 and PST use a slightly different version. The “Base AC” sets to field - 1 instead.
IWD2 uses different parameters altogether.
Note:

#1 (0x1) Stat: Attacks Per Round Modifier Variants: BG1
Parameter #1: Key Modifier
Parameter #2: Type
Description:
Alters a characters Attacks per Round, by changing the Key by the modifier value specified by the Key Value field, in the style specified by Type field.

Key Attacks per Round
0 0
1 1
2 2
3 3
4 4
5 5
6 0.5
7 1.5
8 2.5
9 3.5
10 4.5


Known values for Type are:
  • 0 ⟶ Cumulative Modifier: Key = Key + 'Key Modifier' value
  • 1 ⟶ Flat Value Modifier: Key = 'Key Modifier' value
  • 2 ⟶ Percentage Modifier: Key = (Key * 'Key Modifier' value) / 100
  • 3 ⟶ Final Value Modifier: Key = 'Key Modifier' value


This effect modifies NUMBEROFATTACKS.
Info: When this opcode is stacked, the number of attacks are stacked, not the values of the Key Modifier.
Note: Key Modifier can take negative values. These values match their positive counterparts (e.g., "-6" corresponds to "-0.5").
Info: Type=3 (Set Final):
  • Only functions when using Timing Modes 2/5/8 (even in SPLs).
  • Haste and Slow affect it as normal, though the displayed APR in the Record Screen won't change.
  • Overrides base, Type=0, Type=1, Type=2, proficiency and warrior class APR bonuses.
    • Type=1 just overrides the base and previous Type=1 and Type=2 effects.
  • Only the first Type=3 effect will take hold; any later ones will be skipped.
Important: Timing Modes 1/4/7 alters the creature's base APR stat, leaving behind no removable effect.

#2 (0x2) Cure: Sleep
Parameter #1: Irrelevant
Parameter #2: Irrelevant
Description:
Removes opcode #39 effects and the STATE_SLEEPING flag from the targeted creature(s).
This effect ignores durations attributed to it.
Note: Does not remove the STATE_HELPLESS flag.
Note: At least in EEs, it can remove opcode #177 effects targeting an EFF with opcode #39. Does not always work when delayed.

#3 (0x3) State: Berserking Variants: IWD1
Parameter #1: Irrelevant
Parameter #2: Type
Description:
Applies the berserk effect to the targeted creature(s) in the style specified by the Type field.
Target will uncontrollably attack enemies if any are in view, and will occasionally attack neutral creatures.
Known values for Type are:
  • 0 ⟶ Default/In Combat: only berserk while in combat.
  • 1 ⟶ Constant: always berserk, maintains BERSERK_ALWAYS_ACTIVE and sets BERSERKSTAGE2 to 1.
  • 2 ⟶ Blood Rage: doesn't exist in EE's, values 2+ function the same as 0.

This opcode sets the STATE_BERSERK flag.

Note: Being “in combat” is reliant upon the presence of visible, non-sleeping enemies, but they will attack anyone they can see (including sleeping creatures), ally, neutral, or enemy, without preference (beyond whom is closer).
Info: STATE_BERSERK specs:
  • Grants a +2 bonus to THAC0 and Damage.
  • While "in combat" or "Constant":
    • Creature is unseletectable, Inventory is disabled.
    • The creature's AI scripts are disabled.
    • The creature will randomly execute action ~ AttackReevaluate([ANYONE],15) (or similar, the exact attack action is unknown).
    • Disables Saving while affecting a Party Member (Displayed message: "You do not control all your Party Members")
Note:
  • Forces creature(s) to use a melee weapon if possible.
    • If a certain creature is equipped with a Cursed ranged weapon, this opcode will not force it to switch to a melee weapon.
Note: This effect only affects party members (this is not true for EE games, it works fine on non-party creatures.)
Note: The second paragraph hasn’t been verified for PST and BG1 yet, but likely holds.
Important: Used with Timing Modes 1/4/7 results in setting STATE_BERSERK when it triggers (and using its default behavior), rather than attaching a removable effect with selected behavior.
Note: “Morale Failure: Berserk” does NOT use this or any of the other berserk opcodes, nor does it set STATE_BERSERK.

#4 (0x4) Cure: Berserking
Parameter #1: Irrelevant
Parameter #2: Irrelevant
Description:
Removes opcode #3 effects and STATE_BERSERK from the targeted creature(s). Does not remove opcode #245, opcode #246 and opcode #247 effects.
This effect ignores durations attributed to it.
Important: Both parameters should be 0 (zero).
Note: At least in BG2 and EEs, this effect only affects player characters.
Note: At least in BG2 and EEs, this effect can remove opcode #177 effects targeting an EFF with opcode #3.

#5 (0x5) Charm: Charm Specific Creature Variants: IWD1 IWD2 PST
Parameter #1: General Type
Parameter #2: Charm Type
Description:
Charms the targeted creature(s) according to value in the Charm Type field, if the target is matched by the value in the General Type field. Values for General Type are from GENERAL.IDS.
Known values for Charm Type are:
  • 0 ⟶ Neutral Charm
    • Does not alter targets allegiance stat.
    • Maintains REALLYCHARMED on the target if the caster is GOODCUTOFF.
    • Maintains CHARMED_PC on the target if the caster is NOTGOOD.
    • Maintains Portrait Icon Charm on the target.
    • Effect ends if the creature is attacked by GOODCUTOFF.
    • Target displays "charmed" string.
  • 1 ⟶ Hostile Charm
  • 2 ⟶ Neutral Dire Charm
    • Does not alter targets allegiance stat.
    • Maintains CONTROLLED on the target if the caster is GOODCUTOFF.
    • Maintains ENEMY on the target if the caster is NOTGOOD.
    • Maintains Portrait Icon Dire Charm on the target.
    • Effect ends if the creature is attacked by GOODCUTOFF.
    • Target displays "dire charmed" string.
  • 3 ⟶ Hostile Dire Charm
  • 4 ⟶ Controlled by Cleric
  • 5 ⟶ Thrull Charm
    • Does not alter targets allegiance stat.
    • Maintains ENEMY on the target (regardless of casters Allegience).
    • Sets THRULLCHARM to 1.
    • Maintains Portrait Icon Charm on the target.
    • Target displays "Charmed" string.
  • 1000 ⟶ Neutral Charm (no Feedback)
    • Same as 0, but target does not display any string.
  • 1001 ⟶ Hostile Charm (no Feedback)
    • Same as 1, but target does not display any string.
  • 1002 ⟶ Neutral Domination. Same as 2, except:
    • Maintains Portrait Icon Domination on the target.
    • Target does not display any string.
  • 1003 ⟶ Hostile Domination. Same as 3, except:
    • Maintains Portrait Icon Domination on the target.
    • Target does not display any string.
  • 1004 ⟶ Controlled by Cleric (no Feedback)
    • Same as 4, but target does not display any string.
  • 1005 ⟶ Thrull Charm (no Feedback)
    • Same as 5, but target does not display any string.
Note: If this effect turns a party member hostile, it will disable all of their scripts.
Note: In EEs, the Dice Thrown parameter can be used to override the maintained EA Value. It is used in all but the first application of the effect.

#6 (0x6) Stat: Charisma Modifier Variants: IWD1 PST
Parameter #1: Statistic Modifier
Parameter #2: Type
Description:
Applies the modifier value specified by the Statistic Modifier field in the style specified by the Type field.
Known values for Type are:
  • 0 ⟶ Cumulative Modifier: Charisma = Charisma + 'Statistic Modifier' value
  • 1 ⟶ Flat Value Modifier: Charisma = 'Statistic Modifier' value
  • 2 ⟶ Percentage Modifier: Charisma = (Charisma * 'Statistic Modifier' value) / 100

Statistic Modifier can be positive or negative.

The effect modifies CHR.
Info: All games but EEs:
  • With a Timing Modes of Permanent or Delayed, if Type = 0 and Statistic Modifier is positive, the statistic will alter and remain shown in white text, and a message 'Charisma raised permanently' will be shown.
  • With a Timing Modes of Permanent or Delayed, if Type is 1 or 2, or Statistic Modifier is negative, the statistic will alter and remain shown in white text, though no message is shown.
  • With all other Timing Modes, the statistic will alter and be shown in red text.
On EEs:
  • There's no feedback message about stat being raised permanently in the EE's – it must be done separately with opcode #139.
  • The opcode itself provides no coloring anymore (it's been externalized through "UI.menu")
    • An effective value > base value ⟶ green.
    • An effective value < base value ⟶ red.
    • An effective value = base value ⟶ white/default.
Important: With Timing Modes 1/4/7, the creature's base Charisma is altered, leaving behind no removable effect.
Info: Final values are capped to the bound range (0,25) in game (40 in IWD2).

#7 (0x7) Colour: Set Character colours by Palette Variants: IWD1
Parameter #1: Gradient Number
Parameter #2: Location
Description:
Alters the colour of the area specified by the Location field, to the colour gradient specified by the Gradient Number field.
Known values for Location are:
  • 0 – 6: Avatar/Armor
    • 00 ⟶ Belt Buckle (on armour) or amulets (on robes) – entire body for some animations
    • 01 ⟶ Minor colour
    • 02 ⟶ Major colour
    • 03 ⟶ Skin colour
    • 04 ⟶ Strap colour (on armour) or minor trimming (on robes – the centre strip down a robe and the hem on some robes)
    • 05 ⟶ Armor colour (and major trimming on robe – cross trim and cape trim on Robe of Archmagi)
    • 06 ⟶ Hair colour
  • 16 – 22: Weapon
    • 16 ⟶ Quillons or Crossguard
    • 20 ⟶ Grip (usually not visible as it's in the characters hand)
    • 21 ⟶ Blade or major portion of weapon
  • 32 – 40: Shield
    • 32 ⟶ Shield hub
    • 33 ⟶ Shield interior
    • 34 ⟶ Shield panelling
    • 37 ⟶ Shield rim
  • 48 – 54: Helmet
    • 48 ⟶ Helm ornamentation – i.e. wings
    • 49 ⟶ Helm ornamentation – i.e. feathers/horsehair
    • 50 ⟶ Helm ornamentation – i.e. feathers/horsehair
    • 52 ⟶ Helm face
    • 53 ⟶ Helm – the main covering
  • 255 ⟶ Whole Body (at least in IWD2 and EEs)
Warning: Other values crash immediately or when opening or manipulating Inventory.
Info:
  • Each Item Type has 7 slots/locations, corresponding to a different set of Palette indexes that they will replace.
  • Near Infinity lists them as Grey, Cyan/Teal, Magenta/Pink, Yellow, Red, Blue, and Green.
    While these colors are arbitrary, they best represent the palette used in animation/paperdoll BAMs by default (before being recolored), so you can look at the BAM file and know which colors will be replaced.
  • 0=Grey, 1=Cyan, 2=Magenta, 3=Yellow, 4=Red, 5=Blue, 6=Green.
    +16 for weapons, +32 for shields, +48 for helmets.
  • The names already listed for some of these locations in IESDP are accurate, as they correspond to their general use in the vanilla game, but all 7 slots can be used for each item, provided their BAM file makes use of them.
  • Palette indexes will be replaced by the gradient specified for those locations:
    • Index 0–3 are reserved for Transparency and Shadows, they are not replaced.
    • Index 4–15: Grey
    • Index 16–27: Cyan
    • Index 28–39: Pink
    • Index 40–51: Yellow
    • Index 52–63: Red
    • Index 64–75: Blue
    • Index 76–87: Green
      (7 groups of 12 indexes, each exclusive to one location)
    • Index 88–95: (Grey + Cyan)
    • Index 96–103: (Grey + Magenta)
    • Index 104–111: (Grey + Yellow)
    • Index 112–119: (Grey + Red)
    • Index 120–127: (Grey + Blue)
    • Index 128–135: (Grey + Green)
    • Index 136–143: (Cyan + Magenta)
    • Index 144–151: (Cyan + Yellow)
    • Index 152–159: (Cyan + Red)
    • Index 160–167: (Cyan + Blue)
    • Index 168–175: (Cyan + Green)
    • Index 176–183: (Magenta + Yellow)
    • Index 184–191: (Magenta + Red)
    • Index 192–199: (Magenta + Blue)
    • Index 200–207: (Magenta + Green)
    • Index 208–215: (Yellow + Red)
    • Index 216–223: (Yellow + Blue)
    • Index 224–231: (Yellow + Green)
    • Index 232–239: (Red + Blue)
    • Index 240–247: (Red + Green)
    • Index 248–255: (Blue + Green)
      (21 groups of 8 indexes, each shared by a different combination of two locations)

#8 (0x8) Colour: Change by RGB Variants: BG1 IWD1 PST
Parameter #1: RGB colour
Parameter #2: Location
Description:
Alters the colour of the area specified by the Location field, to the colour specified by the RGB Colour field.
The RGB Colour field is handled as follows:
  • Second byte = Red (0–255)
  • Third byte = Green (0–255)
  • Fourth byte = Blue (0–255)

Known values for Location are:
  • 0 – 6: Avatar/Armor
    • 00 ⟶ Belt Buckle (on armour) or amulets (on robes) – entire body for some animations
    • 01 ⟶ Minor colour
    • 02 ⟶ Major colour
    • 03 ⟶ Skin colour
    • 04 ⟶ Strap colour (on armour) or minor trimming (on robes – the centre strip down a robe and the hem on some robes)
    • 05 ⟶ Armor colour (and major trimming on robe – cross trim and cape trim on Robe of Archmagi)
    • 06 ⟶ Hair colour
  • 16 – 22: Weapon
    • 16 ⟶ Quillons or Crossguard
    • 20 ⟶ Grip (usually not visible as it's in the characters hand)
    • 21 ⟶ Blade or major portion of weapon
  • 32 – 40: Shield
    • 32 ⟶ Shield hub
    • 33 ⟶ Shield interior
    • 34 ⟶ Shield panelling
    • 37 ⟶ Shield rim
  • 48 – 54: Helmet
    • 48 ⟶ Helm ornamentation – i.e. wings
    • 49 ⟶ Helm ornamentation – i.e. feathers/horsehair
    • 50 ⟶ Helm ornamentation – i.e. feathers/horsehair
    • 52 ⟶ Helm face
    • 53 ⟶ Helm – the main covering
  • 255 ⟶ Whole Body (at least in IWD2 and EEs)
Warning: Other values crash immediately or when opening or manipulating Inventory.
See opcode #7 for further details about this topic.

#9 (0x9) Colour: Glow Pulse Variants: BG1 IWD1 PST
Parameter #1: RGB Colour
Parameter #2: Location and Speed
Description:
Pulses the area specified by the Location field, at the rate specified by the Speed field, with the colour specified by the RGB Colour field. If the colour values are all set to 0, the glow effect only occurs if the creature is in darkness; outside at night, inside a building, or standing in shadows.
The RGB Colour field is handled as follows:
  • Second byte = Red (0–255)
  • Third byte = Green (0–255)
  • Fourth byte = Blue (0–255)

The Location and Speed field is handled as follows:
  • First byte = Location
  • Third byte = Speed (0–255)

A speed of 0 does not pulsate. A speed of 1 is fastest, and a speed of 255 is slowest.
Known values for Location are:
  • 0 – 6: Avatar/Armor
    • 00 ⟶ Belt Buckle (on armour) or amulets (on robes) – entire body for some animations
    • 01 ⟶ Minor colour
    • 02 ⟶ Major colour
    • 03 ⟶ Skin colour
    • 04 ⟶ Strap colour (on armour) or minor trimming (on robes – the centre strip down a robe and the hem on some robes)
    • 05 ⟶ Armor colour (and major trimming on robe – cross trim and cape trim on Robe of Archmagi)
    • 06 ⟶ Hair colour
  • 16 – 22: Weapon
    • 16 ⟶ Quillons or Crossguard
    • 20 ⟶ Grip (usually not visible as it's in the characters hand)
    • 21 ⟶ Blade or major portion of weapon
  • 32 – 40: Shield
    • 32 ⟶ Shield hub
    • 33 ⟶ Shield interior
    • 34 ⟶ Shield panelling
    • 37 ⟶ Shield rim
  • 48 – 54: Helmet
    • 48 ⟶ Helm ornamentation – i.e. wings
    • 49 ⟶ Helm ornamentation – i.e. feathers/horsehair
    • 50 ⟶ Helm ornamentation – i.e. feathers/horsehair
    • 52 ⟶ Helm face
    • 53 ⟶ Helm – the main covering
  • 255 ⟶ Whole Body (at least in IWD2 and EEs)
Warning: Other values crash immediately or when opening or manipulating Inventory.
See opcode #7 for further details about this topic.

#10 (0xA) Stat: Constitution Modifier Variants: IWD1 PST
Parameter #1: Statistic Modifier
Parameter #2: Type
Description:
Applies the modifier value specified by the Statistic Modifier field in the style specified by the Type field.
Known values for Type are:
  • 0 ⟶ Cumulative Modifier: Constitution = Constitution + 'Statistic Modifier' value
  • 1 ⟶ Flat Value Modifier: Constitution = 'Statistic Modifier' value
  • 2 ⟶ Percentage Modifier: Constitution = (Constitution * 'Statistic Modifier' value) / 100

Statistic Modifier can be positive or negative.

The effect modifies CON.
Info: All games but EEs:
  • With a Timing Modes of Permanent or Delayed, if Type = 0 and Statistic Modifier is positive, the statistic will alter and remain shown in white text, and a message 'Constitution raised permanently' will be shown.
  • With a Timing Modes of Permanent or Delayed, if Type is 1 or 2, or Statistic Modifier is negative, the statistic will alter and remain shown in white text, though no message is shown.
  • With all other Timing Modes, the statistic will alter and be shown in red text.
On EEs:
  • There's no feedback message about stat being raised permanently in the EE's – it must be done separately with opcode #139.
  • The opcode itself provides no coloring anymore (it's been externalized through "UI.menu")
    • An effective value > base value ⟶ green.
    • An effective value < base value ⟶ red.
    • An effective value = base value ⟶ white/default.
Important: With Timing Modes 1/4/7, the creature's base Constitution is altered, leaving behind no removable effect.
Info: Final values are capped to the bound range (0,25) in game (40 in IWD2).

#11 (0xB) Cure: Poison
Parameter #1: Irrelevant
Parameter #2: Irrelevant
Description:
Removes opcode #25 poison effects and STATE_POISONED from the targeted creature(s).
Info: This effect ignores durations attributed to it.
Info: At least in EEs, this effect can remove opcode #177 effects targeting an EFF with opcode #25.

#12 (0xC) HP: Damage Variants: BG2 PST BG1
Parameter #1: Damage Amount
Parameter #2: Mode & Damage Type
Special: Flags
Description:
Damages the target by the value specified by the Damage Amount field, with the damage type specified by the Type field.
Known values for Mode & Damage Type are:

Value (hex) Damage Type Mode
0x00000000 CRUSHING Normal
0x00000001 CRUSHING Set to Value
0x00000002 CRUSHING Set to Percentage
0x00000003 CRUSHING Reduce by Percentage
0x00010000 ACID Normal
0x00010001 ACID Set to Value
0x00010002 ACID Set to Percentage
0x00010003 ACID Reduce by Percentage
0x00020000 COLD Normal
0x00020001 COLD Set to Value
0x00020002 COLD Set to Percentage
0x00020003 COLD Reduce by Percentage
0x00040000 ELECTRICITY Normal
0x00040001 ELECTRICITY Set to Value
0x00040002 ELECTRICITY Set to Percentage
0x00040003 ELECTRICITY Reduce by Percentage
0x00080000 FIRE Normal
0x00080001 FIRE Set to Value
0x00080002 FIRE Set to Percentage
0x00080003 FIRE Reduce by Percentage
0x00100000 PIERCING Normal
0x00100001 PIERCING Set to Value
0x00100002 PIERCING Set to Percentage
0x00100003 PIERCING Reduce by Percentage
0x00200000 POISON Normal
0x00200001 POISON Set to Value
0x00200002 POISON Set to Percentage
0x00200003 POISON Reduce by Percentage
0x00400000 MAGIC Normal
0x00400001 MAGIC Set to Value
0x00400002 MAGIC Set to Percentage
0x00400003 MAGIC Reduce by Percentage
0x00800000 MISSILE Normal
0x00800001 MISSILE Set to Value
0x00800002 MISSILE Set to Percentage
0x00800003 MISSILE Reduce by Percentage
0x01000000 SLASHING Normal
0x01000001 SLASHING Set to Value
0x01000002 SLASHING Set to Percentage
0x01000003 SLASHING Reduce by Percentage
0x02000000 MAGICFIRE Normal
0x02000001 MAGICFIRE Set to Value
0x02000002 MAGICFIRE Set to Percentage
0x02000003 MAGICFIRE Reduce by Percentage
0x04000000 MAGICCOLD Normal
0x04000001 MAGICCOLD Set to Value
0x04000002 MAGICCOLD Set to Percentage
0x04000003 MAGICCOLD Reduce by Percentage
0x08000000 STUNNING Normal
0x08000001 STUNNING Set to Value
0x08000002 STUNNING Set to Percentage
0x08000003 STUNNING Reduce by Percentage

The Dice values can be used to inflict varying damage amounts – e.g. 2d6 would do 2–12 damage (Damage type is still specified by the Type value).

Damage Amount can be positive or negative (though the damage sound will play in either case).
If Damage Amount and the Dice values are both non-zero, the total damage inflicted is: 'Damage Amount' + Dice value.

Note: STUNNING damage does not stun the target. STUNNING damage cannot kill a creature, creatures are reduced to 1 HP and are knocked unconscious.

Useful bit values for Save Type are:

Note: Damage type POISON automatically uses save flag Bypass Mirror Image.


Known bit values for Flags are:
  • Bit 0 ⟶ Drain HP to caster (cumulative)
  • Bit 1 ⟶ As bit 0 but caster and target are reversed (cumulative)
  • Bit 2 ⟶ Fist damage only (source has to have fists equipped, delays later effects)
  • Bit 3 ⟶ Drain HP to caster (non-cumulative)
  • Bit 4 ⟶ As bit 3 but caster and target are reversed (non-cumulative)
  • Bit 5 ⟶ Suppress combat log feedback string
  • Bit 6 ⟶ Damage inflicted is limited to amount available by target (checks MINHITPOINTS and works in reverse if bits 1 or 4 are set)
  • Bit 7 ⟶ Damage inflicted is limited to the caster's (MAXHITPOINTS - CURRENTHP) (works in reverse if bits 1 or 4 are set)
  • Bit 8 ⟶ Save for half
  • Bit 9 ⟶ Fail for half: A failed (or lack of) saving throw results in half damage.
  • Bit 10 ⟶ Does not wake sleepers
Info:
  • Bits 0, 1, 3, and 4 are mutually exclusive, while bits 6 and 7 do not require any of the HP drain bits to be set to function.
    • However, bits 6 and 7 are often used together to achieve desired HP drain behavior. For instance, bit7 in conjunction with bit1 is used in IWD:EE/SoD's "Shadow Pact" ability ("SPIN195.spl"/"BDSHPACT.spl") for shadows to prevent them from inflicting more damage on reverse HP drain than necessary to heal them to normal max HP.
  • In all cases, HP drain now only increases maximum HP if the character is at full health and there are extra HP remaining from the drain, which can happen even during the drain. Current HP gained is always cumulative (bits 0,1,3,4) if the caster is injured. Extra HP gained by non-cumulative HP drain (bits 3,4) may still coexist on the same creature. This means that the caster can still benefit from lower HP drain if the effect expires later than the higher HP drain effect.
  • Example: The caster at 3/4 HP can increase his/her HP to 7/7 with one casting of Larloch's Minor Drain (if 4 is rolled) and 8/8 with another casting if 4 is rolled again, otherwise nothing seems to happen despite the damage inflicted. The caster may further benefit with additional castings if injured, but cannot go beyond 8/8 HP. This all assumes there is sufficient HP to drain (since bit 6 is now set in "SPWI119.spl").
  • Extra maximum HP effects carried on the creature now have their mschool, msectype, resource, resist_dispel, dispel_level etc properly set. See opcode #18 for how non-cumulative HP gain is stored.
Note: If this effect reduces target to -20 (Allegiance: PC) or -9 (any other Allegiance value) hit points, it also applies opcode #13 of the specified type:
  • CRUSHING/SLASHING/PIERCING: Exploding Death
  • ACID/Unlisted: Acid Death
  • COLD/MAGICCOLD: Frozen Death
  • FIRE/MAGICFIRE: Burning Death
  • ELECTRICITY: Electrified Death
  • MAGIC/MISSILE/POISON: Normal Death
Info: Just in case anyone is doing UI feedback text replacement, these are the hex colors for the various damage types:
^0xaabbggrr (aa = alpha/transparency, bb = Blue, gg = Green, rr = Red)
  • CRUSHING, SLASHING, PIERCING, MISSILE, STUNNING: 0xffbed7d7
  • POISON: 0xff76e4c7
  • FIRE, MAGICFIRE: 0xff002a9c
  • COLD, MAGICCOLD: 0xffffbf00
  • ELECTRICITY: 0xfffff97d
  • ACID: 0xff19bba8
  • MAGIC: 0xff00d7ff

#13 (0xD) Death: Instant Death Variants: BG1 IWD1 PST
Parameter #1: Text Notification
Parameter #2: Death Type
Description:
Instantly kills the targeted creature(s), in the style specified by the Death Type value.
Known values for Text Notification are:
  • 0 ⟶ Show death message
  • 1 ⟶ Don't show death message


Known values for Death Type are:
  • 0 ⟶ Acid death
  • 1 ⟶ Burning death
    • Sets STATE_FLAME_DEATH, STATE_DEAD
    • Character Tint Solid, character color ~[0x00404040] (Darkens avatar)
    • Kicked from party, drops inventory
  • 2 ⟶ Crushed death
  • 4 ⟶ Normal death
  • 8 ⟶ Chunked death
    • Sets STATE_EXPLODING_DEATH, STATE_DEAD
    • Sets ANIMATE[0x230][EXPLODING_TORSO]
    • Plays sound ("GORE.WAV")/("GORE2.WAV")
    • Kicked from party, drops inventory, sets all color indexes to 70
  • 16 ⟶ Stoned death
    • Sets STATE_STONE_DEATH
    • Any hostile action against the creature(s) applies an Exploding Stoned Death to them
    • Kicked from party, retains inventory, overlay's color index 72
  • 32 ⟶ Freezing death
    • Applies Exploding Freezing Death to the target with a (random) 0-5 second delay
    • Sets STATE_FROZEN_DEATH
    • Any hostile action against the creature applies an Exploding Freezing Death to the target
    • Kicked from party, retains inventory, overlay's color index 71
  • 64 ⟶ Exploding stoned death/Level Drain death
  • 128 ⟶ Exploding freezing death
  • 256 ⟶ Electrified death
    • Sets STATE_FLAME_DEATH, STATE_DEAD
    • Character Tint Solid, character color ~[0x00404040] (Darkens avatar)
    • Kicked from party, drops inventory
  • 512 ⟶ Disintegration death
  • 1024 ⟶ Destruction (in IWD2)
    • Sets STATE_EXPLODING_DEATH (0x00000100), STATE_DEAD (0x00000800)
    • Sets ANIMATE[0x230][EXPLODING_TORSO]
    • Plays sound ("GORE.WAV")/("GORE2.WAV")
    • Kicked from party, retains inventory, sets all color indexes to 70
  • Other
    • Removes all death states, but does not restore HP
    • Drops inventory
  • Any ⟶ Removes death states that they do not set (e.g, a normal Death will remove STATE_FROZEN_DEATH).

#14 (0xE) Graphics: Defrost Variants: PST
Parameter #1: Irrelevant
Parameter #2: Irrelevant
Description:
Removes STATE_FROZEN_DEATH from the targeted creatures and restores them to 1 HP. Does not affect creatures without STATE_FROZEN_DEATH.

#15 (0xF) Stat: Dexterity Modifier Variants: IWD1 IWD2 PST
Parameter #1: Statistic Modifier
Parameter #2: Type
Description:
Applies the modifier value specified by the Statistic Modifier field in the style specified by the Type field.
Known values for Type are:
  • 0 ⟶ Cumulative Modifier: Dexterity = Dexterity + 'Statistic Modifier' value
  • 1 ⟶ Flat Value Modifier: Dexterity = 'Statistic Modifier' value
  • 2 ⟶ Percentage Modifier: Dexterity = (Dexterity * 'Statistic Modifier' value) / 100
  • 3 ⟶ Cat's Grace (EE only)

Statistic Modifier can be positive or negative.

The effect modifies DEX.
Info: All games but EEs:
  • With a Timing Modes of Permanent or Delayed, if Type is 0 and Statistic Modifier is positive, the statistic will alter and remain shown in white text, and a message 'Dexterity raised permanently' will be shown.
  • With a Timing Modes of Permanent or Delayed, if Type is 1 or 2, or Statistic Modifier is negative, the statistic will alter and remain shown in white text, though no message is shown.
  • With all other Timing Modes, the statistic will alter and be shown in red text.
On EEs:
  • There's no feedback message about stat being raised permanently in the EE's – it must be done separately with opcode #139.
  • The opcode itself provides no coloring anymore (it's been externalized through "UI.menu")
    • An effective value > base value ⟶ green.
    • An effective value < base value ⟶ red.
    • An effective value = base value ⟶ white/default.
Info: When Type=3:
  • Statistic Modifier is unused: it uses the value listed in CLSSPLAB.2da for the creature's base class, or defaults to 1 if the file isn't present (it only exists by default in IWDEE).
  • A single instance of this opcode (using Type=3) cannot raise Dexterity above 20 (hardcoded), but multiple instances of it can.
    • This is because it only checks the limit against the creature's base score, not its effective score.
  • Like the other modes, applying the effect with Timing Mode 1 will affect the creature's base stat, leaving no removable effect.
  • Once applied to a creature, Statistic Modifier will store the exact DEX increase granted (only useful for lookup/editing through EEkeeper/NI).
  • When you apply this effect in an External EFF, (via op177 / op283):
    • Parameter1 in the EFF will determine the exact Dexterity increase (so it must be set manually, and ignores any limit).
Important: With Timing Modes 1/4/7, the creature's base Dexterity is altered, leaving behind no removable effect.
Info: Final values are capped to the bound range (0,25) in game (40 in IWD2).

#16 (0x10) State: Haste Variants: IWD1
Parameter #1: Irrelevant
Parameter #2: Type
Description:
Applies the Haste effect, in the style specified by the Type value.
Known values for Type are:
  • 0 ⟶ Normal Haste – double the movement rate and grants an additional Attack Per Round (APR), rounded down (capped at 6)
  • 1 ⟶ Improved Haste – double the movement rate and doubles APR (capped at 10)
  • 2 ⟶ Weak Haste – Speed haste without attack bonuses, round APR up (capped at 5)


All of them set STATE_HASTED. Improved/Weak function by setting an additional STAT value, which modifies the behavior of STATE_HASTED:

The Normal and Improved haste types grant a -2 initiative (Weapon Speed) bonus. All types:

Info: This effect will cancel out the slow opcode.
Warning: BG1 only supports haste type 0.

This opcode will set the STATE_HASTED flag and nothing else when applied with Timing Mode 1, and cannot be removed within the game by any means, only suppressed by Slow.
This only works when applying Normal/Improved haste (there’s no difference, since the STAT for Improved haste doesn’t get set this way), Weak haste does not do anything with Timing Mode 1.

#17 (0x11) HP: Current HP Modifier Variants: IWD2 BG1
Parameter #1: Statistic Modifier
Parameter #2: Type
Description:
Applies the modifier value specified by the Statistic Modifier field in the style specified by the Type field.
Known values for Type are:
  • 0 ⟶ Cumulative Modifier: HP = HP + 'Statistic Modifier' value
  • 1 ⟶ Flat Value Modifier: HP = 'Statistic Modifier' value
  • 2 ⟶ Percentage Modifier: HP = (HP * 'Statistic Modifier' value) / 100


Statistic Modifier can be positive or negative.
Note: If Statistic Modifier and the Dice values are both non-zero, the total HP change is: 'Statistic Modifier' + Dice value.


The upper word of the Type field can further control the style.
Known values for the upper word of Type are:
  • BIT0 ⟶ Raise dead
  • BIT1 ⟶ Remove all effects with a limited Timing Mode (not equipped(2) or permanent(9)), but also any ITM in the Magical Weapon Slot.
Important: Unlike opcode #12, this opcode does not apply any death effect (opcode #13) to the creature if it reduces their hit points to zero or less. The creature will remain in a bugged state (no HP but not dead) until they take further damage, or the game is saved & reloaded, at which point they will die properly.

#18 (0x12) HP: Maximum HP Modifier
Parameter #1: Statistic Modifier
Parameter #2: Type
Special: Mode
Description:
Applies the modifier value specified by the Statistic Modifier field in the style specified by the Type field.
Known values for Type are:
  • 0 ⟶ Cumulative Modifier: HP = HP + 'Statistic Modifier' value (affects current and max HP)
  • 1 ⟶ Flat Value Modifier: HP = 'Statistic Modifier' value (affects current and max HP)
  • 2 ⟶ Percentage Modifier: HP = (HP * 'Statistic Modifier' value) / 100 (affects current and max HP)
  • 3 ⟶ As 0 (does not affect current HP)
  • 4 ⟶ As 1 (does not affect current HP)
  • 5 ⟶ As 2 (does not affect current HP)
  • 6 ⟶ Non-cumulative Modifier: HP = HP + 'Statistic Modifier' value (affects current and max HP) (EE only)


Statistic Modifier can be positive or negative.

Known values for Mode are:
  • 0 ⟶ Normal: Effect functions as dictated by the Type field.
  • 1 ⟶ Do not update current HP.
    • This value is set automatically once the effect has been initially processed on a creature.
    • For normal operation, the special field MUST be zero.
Info: To differentiate non-cumulative HP gain from other forms of HP gain, Type is set internally to 6. As mentioned here, multiple effects of Type=6 can be carried by the creature at the same time and only the largest value is used when calculating extra HP. Hence the term “noncumulative coexisting”. This functionality doesn’t interact with other forms (Type != 6) of HP gain, and cumulative HP drain doesn’t use Type=6.
Note: For non-permanent timing modes of Type 2 or 5 use the base maximum HP value, and therefore override other Type 2 or 5 modifiers.
Note: If Statistic Modifier and the Dice values are both non-zero, the total HP change is: 'Statistic Modifier' + Dice value.
Note:
  • Maximum HP cannot be reduced below a creature's level/HD (average level rounded up for multiclasses).
  • It is still able to reduce current HP below the creature's level/HD, and has the same bugged death as opcode #17 if it reduces a creature to zero or less HP.

#19 (0x13) Stat: Intelligence Modifier Variants: IWD1
Parameter #1: Statistic Modifier
Parameter #2: Type
Description:
Applies the modifier value specified by the Statistic Modifier field in the style specified by the Type field.
Known values for Type are:
  • 0 ⟶ Cumulative Modifier: Intelligence = Intelligence + 'Statistic Modifier' value
  • 1 ⟶ Flat Value Modifier: Intelligence = 'Statistic Modifier' value
  • 2 ⟶ Percentage Modifier: Intelligence = (Intelligence * 'Statistic Modifier' value) / 100

Statistic Modifier can be positive or negative.

The effect modifies INT.
Info: All games but EEs:
  • With a Timing Modes of Permanent or Delayed, if Type is 0 and Statistic Modifier is positive, the statistic will alter and remain shown in white text, and a message 'Intelligence raised permanently' will be shown.
  • With a Timing Modes of Permanent or Delayed, if Type is 1 or 2, or Statistic Modifier is negative, the statistic will alter and remain shown in white text, though no message is shown.
  • With all other Timing Modes, the statistic will alter and be shown in red text.
On EEs:
  • There's no feedback message about stat being raised permanently in the EE's – it must be done separately with opcode #139.
  • The opcode itself provides no coloring anymore (it's been externalized through "UI.menu")
    • An effective value > base value ⟶ green.
    • An effective value < base value ⟶ red.
    • An effective value = base value ⟶ white/default.
Important: With Timing Modes 1/4/7, the creature's base Intelligence is altered, leaving behind no removable effect.
Info: Final values are capped to the bound range (0,25) in game (40 in IWD2).

#20 (0x14) State: Invisibility Variants: BG1 IWD1 IWD2 PST
Parameter #1: Irrelevant
Parameter #2: Type
Description:
Applies the invisibility effect, in the style specified by the Type value.

Known values for Type are:
  • 0 ⟶ Normal Invisibility
    • Grants a +4 bonus to melee attacks only.
    • Applying Normal Invisibility with Timing Modes other than 1/4/7 in an external EFF through opcode #183 will NOT terminate early due to hostile/aggressive action (similar to the constant invisibility provided by Mislead). Applying the same through opcode #177 or opcode #283 DOES terminate due to hostile/aggressive action as normal.
    • Applying Normal Invisibility with Timing Modes 1/4/7 will set the creature's base state STATE_INVISIBLE, while still leaving behind a removable (but irrelevant) effect. This state is not cleared on death, but it is still terminated by any hostile/aggressive action that would normally terminate invisibility.
  • 1 ⟶ Improved Invisibility
    • Affected creature stays invisible after attack.
    • Does not provide saving throw bonuses outside EEs, where it provides a bonus of 4 to all.
    • Lingers after the duration is spent and act as permanent if used as a 'While Equipped' effect.
    • Applying Improved Invisibility will cause the effect to be duplicated, with the duplicate using Normal invisibility. There's no reason to apply both Normal and Improved invisibility in the same spell/item (unless you want them to have different probabilities/hd limits).
    • Applying Improved Invisibility with Timing Modes 1/4/7 will set the creature's base state STATE_IMPROVEDINVISIBILITY, and because it duplicates itself as Normal invisibility, STATE_INVISIBLE as well, while still leaving behind a removable (but irrelevant) effect for each. These states are not cleared on death.
    • The effects that remain when setting the base STATEs are irrelevant, at least in-game, because everything that can remove the STATEs will also remove the effect. The STATEs can however be removed separately through NI or EEkeeper, at which point the effect will once again reapply its STATE immediately upon loading the game.
  • 2 ⟶ Weak Invisibility (EE only)
    • It's the same type of invisibility as Improved Invisibility after you take a hostile action and reveal yourself.
    • Applying "Weak" Invisibility with Timing Modes 1/4/7 will function no differently than Timing Mode 0, aside from having no natural expiration timer.
    • Applying "Weak" Invisibility is otherwise the same as Improved Invisibility, except it doesn't duplicate itself with a Normal version, which is why it doesn't quality for backstabs.
Info: Any attack a character makes while invisible will ignore the target’s AC dexterity bonus (see dexmod.2da)

To be exact, the attack must follow these rules:
  1. Attacker must have a backstab multiplier of 2 or higher (see backstab.2da)
  2. Attacker must be STATE_INVISIBLE
  3. Attacker's weapon must not be RANGED
Class / Kit doesn’t matter, sneakatt.2da doesn’t matter (even though the backstab multiplier isn’t used to calculate damage under “Game Option: 3E Sneak Attack”, the creature still has its multiplier calculated / assigned), weapon backstab suitability doesn’t matter.

In the following example:
  • Attacking character THAC0 = 17
  • Attacked character AC = 0, (dexterity contributing -4 bonus)
The thief's attack only requires a total roll of 13 to hit, even though a roll of 17 is required normally:

However, this mechanic isn't implemented properly...

If the attacked character has a penalty to AC due to dexterity, they will be harder to hit while being attacked under the above conditions.
In the following example:
  • Attacking character THAC0 = 17
  • Attacked character AC = 9, (dexterity contributing +5 penalty)
The thief's attack should only require a total roll of 8 to hit, though a roll of 13 is now required:
Note: The “Stealth” modal ability of Thieves/Rangers/Monks applies this effect with the following values:
  • Parameter1 = 1 (unknown if any purpose)
  • Parameter2 = 0
  • Duration = 20
Note: Creatures attacking an invisible creature suffer a -4 penalty to hit, unless they are affected by opcode #193. Moreover, you cannot target an improved/weak invisible creature with spells unless you’re affected by opcode #193 or the spell can target invisible creatures.
Note: This opcode itself just sets or maintains (with a duration) the relevant STATEs. Everything else is a feature of STATE_INVISIBLE and/or STATE_IMPROVEDINVISIBILITY.

#21 (0x15) Stat: Lore Modifier Variants: IWD2
Parameter #1: Statistic Modifier
Parameter #2: Type
Description:
Applies the modifier value specified by the Statistic Modifier field in the style specified by the Type field.
Known values for Type are:
  • 0 ⟶ Cumulative Modifier: Lore = Lore + 'Statistic Modifier' value
  • 1 ⟶ Flat Value Modifier: Lore = 'Statistic Modifier' value
  • 2 ⟶ Percentage Modifier: Lore = (Lore * 'Statistic Modifier' value) / 100

Statistic Modifier can be positive or negative.

The effect modifies LORE.
Warning: This effect does not work with Timing Mode 1.

#22 (0x16) Stat: Cumulative Luck Bonus Variants: IWD2
Parameter #1: Statistic Modifier
Parameter #2: Type
Description:
Applies the modifier value specified by the Statistic Modifier field in the style specified by the Type field. Luck affects the minimum damage caused by a weapon (up to the normal maximum damage of the weapon) and the attack roll modifier (up to a maximum of 20, excluding natural attack roll modifiers, e.g. high STR, invisibility etc) by Statistic Modifier amount. Statistic Modifier also affects the damge rolls of opponents (in feature blocks, not extension headers). The effect does not set STATE_LUCK.
Known values for Type are:
  • 0 ⟶ Cumulative Modifier: Luck = Luck + 'Statistic Modifier' value
  • 1 ⟶ Flat Value Modifier: Luck = 'Statistic Modifier' value
  • 2 ⟶ Percentage Modifier: Luck = (Luck * 'Statistic Modifier' value) / 100
Info: Effects of Luck:
  • Modifies a creature's weapon damage die rolls (up/down to its maximum/minimum).
  • Modifies a creatures's attack roll [1d20] (up/down to its maximum/minimum).
  • Modifies non-weapon damage die rolls dealt to the creature (up/down to its maximum/minimum).
  • Modifies a creatures's initiative roll [1d6 - 4] for weapon attacks (up/down to its maximum/minimum). See opcode #190 for further details about weapon/attack speed.
  • Modifies a creatures's initiative roll [1d8 - 1] for movement (up/down to its maximum/minimum).
  • Modifies a creatures's skill roll [1d100] for Hiding in Shadows (up/down to its maximum/minimum).
  • Modifies a creatures's skill roll [1d100] for Set Traps (up/down to its maximum/minimum).
  • Modifies a creatures's skill roll [1d10] for Open Locks (up/down to its maximum/minimum).
  • Modifies a creatures's skill roll [1d10] for Bash Doors (up/down to its maximum/minimum).
  • Modifies a creatures's skill roll [1d10] for Disarm Trap (up/down to its maximum/minimum).
  • Modifies the chance for a Mirror Image to be struck, chance = ('number of images' + 'Statistic Modifier') / ('number of images' + 1).
Info: Here’s more info about initiative roll for movement:
  • Apparently, there is intentionally a random wait time between when a creature attempts to move to another creature, and when they will actually start pathing. Luck helps with this...
    Wait Time = 0, when roll = 0
    Wait Time = (8 - roll), when roll != 0
  • The natural roll range is [0,7], but like many other rolls Luck alters this slightly. For every point in Luck the highest bound of the roll is converted into the lower bound.
  • So with 1 Luck the roll becomes [0,6], with 0 having a probability of 25% instead of 12.5%. Negative luck works the same, but in reverse.
  • 1 is the worst roll you can get, yet it is neither of the extremes. So, -1 Luck is bad because it prevents you from bypassing the wait time, (rolling a 0), but if Luck must be negative, the lower the better.
    • Luck = "-1": Worst roll possible is a 1, you will be waiting for 7 AI updates (or, if you prefer, 715ths of a second).
    • Luck = "-7": Worst roll possible is a 7, you will be waiting for 1 AI update (or, if you prefer, 115th of a second)!!
  • Positive Luck will always increase the likelihood of instantaneous pathing.
  • Note that this wait time is only applied to creature-to-creature pathing, and never to on-the-ground destinations.
  • Also, every creature rolls for their own delay when they go to target a creature.

#23 (0x17) Stat: Morale Modifier Variants: BG2
Parameter #1: Statistic Modifier
Parameter #2: Type
Special: Mode
Description:
Applies the modifier value specified by the Statistic Modifier field in the style specified by the Type field.
Known values for Type are:
  • 0 ⟶ Cumulative Modifier: Morale = Morale + 'Statistic Modifier' value
  • 1 ⟶ Flat Value Modifier: Morale = 'Statistic Modifier' value
  • 2 ⟶ Percentage Modifier: Morale = (Morale * 'Statistic Modifier' value) / 100

Statistic Modifier can be positive or negative.

At least in EEs, known values for Mode are:
  • 0 ⟶ BG2 mode – It's hardcoded to fill the following values:
    • Statistic Modifier = 10
    • Type = 1
    • m_done = 1 (internal field that immediately removes the effect from creature, no matter duration)
    • In addition, it checks if the creature is berserking, and if it is, it returns without doing anything.
  • 1 ⟶ BG1 mode – Default (functions as expected)
Note: Any Morale-based effect (i.e. Panic) may be added or removed by this effect.

#24 (0x18) State: Horror Variants: IWD1
Parameter #1: Irrelevant
Parameter #2: Type
Description:
Applies the horror effect to the targeted creature(s) in the style specified by the Type field, which is suspected to be an EE extension. It sets the STATE_PANIC state.
Known values for Type are:
  • 0 ⟶ Default
  • Non-zero ⟶ Bypass opcode #101 (Immunity to effect)

#25 (0x19) State: Poison Variants: BG1 IWD1 IWD2 PST BG2
Parameter #1: Amount_1
Parameter #2: Type
Parameter #3: Amount_2
Parameter #4: Frequency Multiplier
Special: Icon
Description:
Damages the target by a certain amount, in the style specified by the Type field. It sets the STATE_POISONED state.
Known values for Type are:
  • 0 ⟶ Inflict 1 HP per second
    • Amount_2 and Frequency Multiplier are ignored – Amount_1 needs to be non-zero
  • 1 ⟶ Inflict 1 HP per second
    • for best results, leave Amount_2 and Frequency Multiplier at 0, Amount_1 between 1 and 101
  • 2 ⟶ Deal Amount_1 damage every Frequency Multiplier second(s)
  • 3 ⟶ Deal one damage every 'Amount_1' * 'Frequency Multiplier' second(s)
  • 4 ⟶ Deal Amount_2 damage every 'Amount_1' * 'Frequency Multiplier' second(s) – This is the only one that must be in external EFF files
  • 5+ ⟶ Crash

Icon defines the index from STATDESC.2DA for custom portrait icons. Default value is Poisoned.

Important: The Damage Amount parameters should be set to a positive value.
Info: If Frequency Multiplier = 0, its value is treated as 1. This is the default value for SPL/ITM effects.
Note: When the effect is NOT attached through opcode #177, Frequency Multiplier will be replaced when using opcode #329 (Slow Poison) – not necessarily “slow” though, as it can increase or decrease the frequency.
Note: When the Type field is 1:
  • if the Frequency Multiplier field is non-zero, damage is always dealt.
  • if the Amount_1 field is less than 256, damage is dealt while HP >= 100 / 'Amount_1'.

#26 (0x1A) Item: Remove Curse Variants: PST
Parameter #1: Irrelevant
Parameter #2: Irrelevant
Description:
Removes Cursed items in addition to all opcode #283 effects from the targeted creature(s).

#27 (0x1B) Stat: Acid Resistance Modifier Variants: IWD2
Parameter #1: Statistic Modifier
Parameter #2: Type
Description:
Applies the modifier value specified by the Statistic Modifier field in the style specified by the Type field.
Known values for Type are:
  • 0 ⟶ Cumulative Modifier: Resistance = Resistance + 'Statistic Modifier' value
  • 1 ⟶ Flat Value Modifier: Resistance = 'Statistic Modifier' value
  • 2 ⟶ Percentage Modifier: Resistance = (Resistance * 'Statistic Modifier' value) / 100

Statistic Modifier can be positive or negative.

The effect modifies RESISTACID.

#28 (0x1C) Stat: Cold Resistance Modifier Variants: IWD2
Parameter #1: Statistic Modifier
Parameter #2: Type
Description:
Applies the modifier value specified by the Statistic Modifier field in the style specified by the Type field.
Known values for Type are:
  • 0 ⟶ Cumulative Modifier: Resistance = Resistance + 'Statistic Modifier' value
  • 1 ⟶ Flat Value Modifier: Resistance = 'Statistic Modifier' value
  • 2 ⟶ Percentage Modifier: Resistance = (Resistance * 'Statistic Modifier' value) / 100

Statistic Modifier can be positive or negative.

The effect modifies RESISTCOLD.

#29 (0x1D) Stat: Electricity Resistance Modifier Variants: IWD2
Parameter #1: Statistic Modifier
Parameter #2: Type
Description:
Applies the modifier value specified by the Statistic Modifier field in the style specified by the Type field.
Known values for Type are:
  • 0 ⟶ Cumulative Modifier: Resistance = Resistance + 'Statistic Modifier' value
  • 1 ⟶ Flat Value Modifier: Resistance = 'Statistic Modifier' value
  • 2 ⟶ Percentage Modifier: Resistance = (Resistance * 'Statistic Modifier' value) / 100

Statistic Modifier can be positive or negative.

The effect modifies RESISTELECTRICITY.

#30 (0x1E) Stat: Fire Resistance Modifier Variants: IWD2
Parameter #1: Statistic Modifier
Parameter #2: Type
Description:
Applies the modifier value specified by the Statistic Modifier field in the style specified by the Type field.
Known values for Type are:
  • 0 ⟶ Cumulative Modifier: Resistance = Resistance + 'Statistic Modifier' value
  • 1 ⟶ Flat Value Modifier: Resistance = 'Statistic Modifier' value
  • 2 ⟶ Percentage Modifier: Resistance = (Resistance * 'Statistic Modifier' value) / 100

Statistic Modifier can be positive or negative.

The effect modifies RESISTFIRE.

#31 (0x1F) Stat: Magic Damage Resistance Modifier Variants: BG1
Parameter #1: Statistic Modifier
Parameter #2: Type
Description:
Applies the modifier value specified by the Statistic Modifier field in the style specified by the Type field.
Known values for Type are:
  • 0 ⟶ Cumulative Modifier: Resistance = Resistance + 'Statistic Modifier' value
  • 1 ⟶ Flat Value Modifier: Resistance = 'Statistic Modifier' value
  • 2 ⟶ Percentage Modifier: Resistance = (Resistance * 'Statistic Modifier' value) / 100

Statistic Modifier can be positive or negative.

The effect modifies MAGICDAMAGERESISTANCE.

#32 (0x20) Cure: Death (Raise Dead) Variants: IWD2
Parameter #1: Irrelevant
Parameter #2: Restore creature animation?
Description:
Raises the targeted creature(s) from the dead.
Known values for Restore creature animation? are:
  • 0 ⟶ No
  • 1 ⟶ Yes

This effect ignores durations attributed to it.
Info: The new animation is selected just as it would be at Character Generation.
Base Animation = 0x6000
  • + Class:
    • 0x0000 (Cleric/Druid/Shaman/Default)
    • 0x0100 (Fighter/Paladin/Ranger)
    • 0x0200 (Mage/Sorcerer)
    • 0x0300 (Thief/Bard)
    • 0x0500 (Monk)
    • Mutliclasses prioritize (Warrior > Priest > Rogue > Wizard)
  • + Gender:
    • 0x0000 (Male/Default)
    • 0x0010 (Female)
  • + Race:
    • 0x0000 (Human/Default)
    • 0x0001 (Elf/Half-Elf/Tiefling)
    • 0x0002 (Dwarf)
    • 0x0003 (Halfling)
    • 0x0004 (Gnome)
    • 0x0005 (Halforc)
Note:
  • This opcode will only restore life to creatures with STATE_DEAD. Frozen and Petrified creatures do not qualify until after they shatter (at which point you can no longer target them outside of scripts, so it doesn't really matter).
  • The animation reset is not dependent on the target's death state.
Info: The presence of this opcode in any of a spell’s ability headers will force any Wild Surge of that spell to use the “Cast Normally” result.

#33 (0x21) Stat: Save vs. Death Modifier Variants: IWD2
Parameter #1: Statistic Modifier
Parameter #2: Type
Description:
Applies the modifier value specified by the Statistic Modifier field in the style specified by the Type field.
Known values for Type are:
  • 0 ⟶ Cumulative Modifier: Save = Save + 'Statistic Modifier' value
  • 1 ⟶ Flat Value Modifier: Save = 'Statistic Modifier' value
  • 2 ⟶ Percentage Modifier: Save = (Save * 'Statistic Modifier' value) / 100
  • 3 ⟶ Increment Instantly: Save = Save + 'Statistic Modifier' value (EE only)

Statistic Modifier can be positive or negative.

The effect modifies SAVEVSDEATH.
Info: When Type = 3, this opcode processes before saving throws are checked for effects proceeding it in the same effect stack; when Type = 0, it processes after.
Bug: Since at least version 2.5, Type = 3 modifies instantly SAVEVSWANDS instead of SAVEVSDEATH.
As a result, saving throws for effects in the same effect stack and after this opcode are not processed as expected.
Effects proceeded after the stack are treated normaly like Type = 0.

#34 (0x22) Stat: Save vs. Wands Modifier Variants: IWD2
Parameter #1: Statistic Modifier
Parameter #2: Type
Description:
Applies the modifier value specified by the Statistic Modifier field in the style specified by the Type field.
Known values for Type are:
  • 0 ⟶ Cumulative Modifier: Save = Save + 'Statistic Modifier' value
  • 1 ⟶ Flat Value Modifier: Save = 'Statistic Modifier' value
  • 2 ⟶ Percentage Modifier: Save = (Save * 'Statistic Modifier' value) / 100
  • 3 ⟶ Increment Instantly: Save = Save + 'Statistic Modifier' value (EE only)

Statistic Modifier can be positive or negative.

The effect modifies SAVEVSWANDS.
Info: When Type = 3, this opcode processes before saving throws are checked for effects proceeding it in the same effect stack; when Type = 0, it processes after.

#35 (0x23) Stat: Save vs. Petrification/Polymorph Modifier Variants: IWD2
Parameter #1: Statistic Modifier
Parameter #2: Type
Description:
Applies the modifier value specified by the Statistic Modifier field in the style specified by the Type field.
Known values for Type are:
  • 0 ⟶ Cumulative Modifier: Save = Save + 'Statistic Modifier' value
  • 1 ⟶ Flat Value Modifier: Save = 'Statistic Modifier' value
  • 2 ⟶ Percentage Modifier: Save = (Save * 'Statistic Modifier' value) / 100
  • 3 ⟶ Increment Instantly: Save = Save + 'Statistic Modifier' value (EE only)

Statistic Modifier can be positive or negative.

The effect modifies SAVEVSPOLY.
Info: When Type = 3, this opcode processes before saving throws are checked for effects proceeding it in the same effect stack; when Type = 0, it processes after.

#36 (0x24) Stat: Save vs. Breath Weapons Modifier Variants: IWD2
Parameter #1: Statistic Modifier
Parameter #2: Type
Description:
Applies the modifier value specified by the Statistic Modifier field in the style specified by the Type field.
Known values for Type are:
  • 0 ⟶ Cumulative Modifier: Save = Save + 'Statistic Modifier' value
  • 1 ⟶ Flat Value Modifier: Save = 'Statistic Modifier' value
  • 2 ⟶ Percentage Modifier: Save = (Save * 'Statistic Modifier' value) / 100
  • 3 ⟶ Increment Instantly: Save = Save + 'Statistic Modifier' value (EE only)

Statistic Modifier can be positive or negative.

The effect modifies SAVEVSBREATH.
Info: When Type = 3, this opcode processes before saving throws are checked for effects proceeding it in the same effect stack; when Type = 0, it processes after.

#37 (0x25) Stat: Save vs. Spells Modifier Variants: IWD2
Parameter #1: Statistic Modifier
Parameter #2: Type
Description:
Applies the modifier value specified by the Statistic Modifier field in the style specified by the Type field.
Known values for Type are:
  • 0 ⟶ Cumulative Modifier: Save = Save + 'Statistic Modifier' value
  • 1 ⟶ Flat Value Modifier: Save = 'Statistic Modifier' value
  • 2 ⟶ Percentage Modifier: Save = (Save * 'Statistic Modifier' value) / 100
  • 3 ⟶ Increment Instantly: Save = Save + 'Statistic Modifier' value (EE only)

Statistic Modifier can be positive or negative.

The effect modifies SAVEVSSPELL.
Info: When Type = 3, this opcode processes before saving throws are checked for effects proceeding it in the same effect stack; when Type = 0, it processes after.

#38 (0x26) State: Silence
Parameter #1: Irrelevant
Parameter #2: Irrelevant
Description:
Applies the silence effect to the targeted creature(s). Sets STATE_SILENCED to true.
A silenced creature cannot cast spells / use special abilities (unless flagged as Castable when silenced), bard song or initiate dialog.
The engine is hard-coded to allow these spells to be cast by a silenced creature:
  • "SPWI219" (Vocalize)
  • "SPIN649" (Teleport to Pocket Plane) in BG2/BGEE

#39 (0x27) State: Unconsciousness Variants: IWD2 PST
Parameter #1: Irrelevant
Parameter #2: Wake on Damage?
Special: Icon
Description:
Applies the unconsciousness effect to the targeted creature(s).
Known values for Wake on Damage? are (only in EEs):
  • 0 ⟶ Yes
  • 1 ⟶ No

Icon defines the index from STATDESC.2DA for custom portrait icons (EE only). Default value is Sleep. If it is set, also spell state PRONE will be set. Otherwise the creature will be moved to the backlist and become untargettable by most scripts.

This opcode sets the STATE_SLEEPING and STATE_HELPLESS flag bits.

Note: In case of Timing Modes 1/4/7 the bits cannot be removed in-game.
Moreover, the STATE_SLEEPING works as the Wake on Hit option. It’s just not usable because of the unremovable STATE_HELPLESS.
Note: Immunity to this opcode does not prevent unconsciousness from stunning damage done by normal fists.

#40 (0x28) State: Slow
Parameter #1: Irrelevant
Parameter #2: Irrelevant
Description:
Applies the slow effect to the targeted creature(s). It automatically grants the Slow portrait icon.
Info: This effect will cancel out the haste opcode.
Note: This effect doubles the Casting Time of all spells. Not verified for IWD2.
Warning: This opcode will set the STATE_SLOWED flag and nothing else when applied with Timing Mode 1, and cannot be removed within the game by any means, only suppressed by Haste.

#41 (0x29) Graphics: Sparkle Variants: BG1 IWD1 IWD2 PST BG2
Parameter #1: Amount
Parameter #2: Type
Description:
Produces a sparkle effect by playing BAM animation instances specified by the resource key, with the behavior defined by Type. Amount defines the number of additional BAM copies displayed by each animation instance.

A non-zero Dice Number value appears to influence the probability of showing the effect. Higher values indicate higher probabilities of showing the effect. Value seems to be capped at 256.

Known values for Type are:
  • 1 ⟶ Explosion
    • Plays a random amount of animation instances, including no instances at all, which follow a random path away from the target to simulate an "explosion" effect.
    • Duration is defined by the number of BAM animation frames.
  • 2 ⟶ Swirl
    • Plays a number of animation instances a certain distance over the target, with each instance using a slightly shifted offset to simulate a "swirl" effect.
    • Duration is defined by the number of BAM animation frames.
  • 3 ⟶ Sparkle Shower
    • Plays a number of animation instances a certain distance over the target. Each instance is generated following a circular pattern and slowly falling down to simulate a "shower" effect.
    • Duration is defined by the number of BAM animation frames.

#42 (0x2A) Spell: Wizard Spell Slots Modifier Variants: BG1
Parameter #1: Slot Amount Modifier
Parameter #2: Spell Level
Description:
Alters the number of wizard spell slots available to the targeted creature(s), as specified by the Slot Amount Modifier field, at the level specified by the Spell Level field. Wizard spells are used by Bards, Sorcerers and Wizards in IWD2.

Known values for Spell Level are:
  • 0 ⟶ Double spells
    • The amount of spell slots is doubled for the level specified by the Slot Amount Modifier value and all levels below
  • BIT0 ⟶ Level 1
  • BIT1 ⟶ Level 2
  • BIT2 ⟶ Level 3
  • BIT3 ⟶ Level 4
  • BIT4 ⟶ Level 5
  • BIT5 ⟶ Level 6
  • BIT6 ⟶ Level 7
  • BIT7 ⟶ Level 8
  • BIT8 ⟶ Level 9
  • BIT9 ⟶ Double spells
    • The amount of spell slots is doubled exclusively for the level specified by Slot Amount Modifier

The target creature(s) must have at least 1 slot at the selected level to have their slot count changed.

Negative slots start at 65535 (-1), and go from there. Even though the spellbook has room to display only 12 slots at once, the slots are still there and usable.

Slot Amount Modifier can be positive or negative.

Note:
  • If the number of current spell slots is 1:
    • applying a -1 modifier will result in zero current slots and prevent further applications of this opcode from altering spell slots (until this effect terminates or is removed, or the base amount changes).
    • applying a -2 modifier instead would bypass zero and result in 65535 (-1). Then applying a +1 modifier would result in zero current slots and a repeat of the above.
  • Regardless of whether the value can be altered, the effect is still attached to the creature, rather than being discarded entirely. They can still take effect should the creature's base spell slots be altered (such as from leveling up).
  • Applying multiple effects in increments of -1 will insure that spell slots do not go below zero (and thus will not wrap around to maximum).

#43 (0x2B) Cure: Stone to Flesh
Parameter #1: Irrelevant
Parameter #2: Irrelevant
Description:
Removes STATE_STONE_DEATH from the targeted creatures and restores them to 1 HP. Does not affect creatures without STATE_STONE_DEATH.
Important: Both parameters should be 0 (zero).
Note:
  • Will not remove a currently delayed (untriggered) Petrification effect.
  • Nor will it remove the False Petrification mode of opcode #109.

#44 (0x2C) Stat: Strength Modifier Variants: IWD1 IWD2 PST
Parameter #1: Statistic Modifier
Parameter #2: Type
Description:
Applies the modifier value specified by the Statistic Modifier field in the style specified by the Type field.
Known values for Type are:
  • 0 ⟶ Cumulative Modifier: Strength = Strength + 'Statistic Modifier' value
  • 1 ⟶ Flat Value Modifier: Strength = 'Statistic Modifier' value
  • 2 ⟶ Percentage Modifier: Strength = (Strength * 'Statistic Modifier' value) / 100
  • 3 ⟶ Bull's Strength (EE only)

Statistic Modifier can be positive or negative.

The effect modifies STR.
Info: All games but EEs:
  • With a Timing Modes of Permanent or Delayed, if Type is 0 and Statistic Modifier is positive, the statistic will alter and remain shown in white text, and a message 'Strength raised permanently' will be shown.
  • With a Timing Modes of Permanent or Delayed, if Type is 1 or 2, or Statistic Modifier is negative, the statistic will alter and remain shown in white text, though no message is shown.
  • With all other Timing Modes, the statistic will alter and be shown in red text.
On EEs:
  • There's no feedback message about stat being raised permanently in the EE's – it must be done separately with opcode #139.
  • The opcode itself provides no coloring anymore (it's been externalized through "UI.menu")
    • An effective value > base value ⟶ green.
    • An effective value < base value ⟶ red.
    • An effective value = base value ⟶ white/default.
Info: When Type=3:
  • Statistic Modifier is unused: it uses the value listed in CLSSPLAB.2da for the creature's base class, or defaults to 1 if the file isn't present (it only exists by default in IWDEE).
  • A single instance of this opcode (using Type=3) cannot raise Strength above 18 (hardcoded), but multiple instances of it can.
    • This is because it only checks the limit against the creature's base score, not its effective score.
      • A Cleric with 12 base STR could gain up to +6 from the effect each time. Two max roll effects would take them to 24 STR.
      • A Cleric with 16 base STR could only gain up to +2 from the effect each time.
    • Warrior classes also gain a % Strength score, their maximum is actually 18/100. Every /10 is counted as +1 from their die roll. Warriors will not exceed 18/100 though, as once they hit 18, the remaining dice roll converts to a % increase, preventing their score from exceeding 18/100 (18/100 + /10 doesn't convert to 19).
      For instance, if a PALADIN with 17 STR rolls, say, 5, he will end up with 18/40 STR.
  • Like the other modes, applying the effect with Timing Mode 1 will affect the creature's base stat, leaving no removable effect.
  • Once applied to a creature, Statistic Modifier will store the exact STR increase granted, while the Special field will store any Exceptional STR increase granted (only useful for lookup/editing through EEkeeper/NI).
  • When you apply this effect in an External EFF, (via op177 / op283):
    • Parameter1 in the EFF will determine the exact Strength increase (so it must be set manually, and ignores any limit).
    • If Parameter1 is non-zero, Exceptional STR will still be rolled as normal (and only for appropriate Classes).
      • It will be equal to 10 * (Roll - (18 - Base)), capped (0,100).
    • If Parameter1 is zero, no Exceptional STR will be granted.
    • The actual increase for Exceptional STR will be stored in the Special field of op177 / op283 (after it's been applied to the creature).
    • Basically, it works exactly like Type=0, except that warriors will still gain a random Exceptional STR increase (of course it's only noticeable if their resulting STR is 18).
Important: With Timing Modes 1/4/7, the creature's base Strength is altered, leaving behind no removable effect.
Info: Final values are capped to the bound range (0,25) in game (40 in IWD2).

#45 (0x2D) State: Stun Variants: IWD1
Parameter #1: Irrelevant
Parameter #2: Irrelevant
Description:
Stuns the targeted creature(s) and sets HELD to 1. In particular:
  • Maintains Portrait Icon Stun (EE only).
  • Immobilizes the creature, limiting it to instantaneous actions (INSTANT.IDS).
  • Maintains STATE_STUNNED.
    • Renders the creature unselectable and disable the Inventory.
  • Maintains STATE_HELPLESS.
    • Renders the creature unselectable and disable the Inventory.
    • Causes all attacks against the creature to automatically hit, disabling Critical Hits and misses.
Note: Applied with Timing Modes 1/4/7: will set the creature’s base STATE_STUNNED flag, while still leaving behind a separate removable effect.
  • Should you remove the effect without removing the state (through means other than opcode #46), the creature will be fully functional, just not controllable by the player (if it was).
  • By itself, STATE_STUNNED does not disable any scripts or limit which actions the creature may take. It needs its opcode's immobilization effect as well as STATE_HELPLESS to fully work.

#46 (0x2E) Cure: Stun (Unstun) Variants: PST
Parameter #1: Irrelevant
Parameter #2: Irrelevant
Description:
Unstuns the targeted creature(s) (opcode #45 and opcode #109). Also removes STATE_STUNNED from the creature.
This effect ignores durations attributed to it.

#47 (0x2F) Cure: Invisibility
Parameter #1: Irrelevant
Parameter #2: Irrelevant
Description:
Removes the invisibility effect from the targeted creature(s) if they don't have STATE_NONDETECTION set. Also removes STATE_INVISIBLE and STATE_IMPROVEDINVISIBILITY.
This effect ignores durations attributed to it.
Important: Both parameters should be 0 (zero).

#48 (0x30) Cure: Silence (Vocalize)
Parameter #1: Irrelevant
Parameter #2: Irrelevant
Description:
Removes the silence effect and STATE_SILENCED from the targeted creature(s).
This effect ignores durations attributed to it.

#49 (0x31) Stat: Wisdom Modifier Variants: IWD1 PST
Parameter #1: Statistic Modifier
Parameter #2: Type
Description:
Applies the modifier value specified by the Statistic Modifier field in the style specified by the Type field.
Known values for Type are:
  • 0 ⟶ Cumulative Modifier: Wisdom = Wisdom + 'Statistic Modifier' value
  • 1 ⟶ Flat Value Modifier: Wisdom = 'Statistic Modifier' value
  • 2 ⟶ Percentage Modifier: Wisdom = (Wisdom * 'Statistic Modifier' value) / 100

Statistic Modifier can be positive or negative.

The effect modifies WIS.
Info: All games but EEs:
  • With a Timing Modes of Permanent or Delayed, if Type is 0 and Statistic Modifier is positive, the statistic will alter and remain shown in white text, and a message 'Wisdom raised permanently' will be shown.
  • With a Timing Modes of Permanent or Delayed, if Type is 1 or 2, or Statistic Modifier is negative, the statistic will alter and remain shown in white text, though no message is shown.
  • With all other Timing Modes, the statistic will alter and be shown in red text.
On EEs:
  • There's no feedback message about stat being raised permanently in the EE's – it must be done separately with opcode #139.
  • The opcode itself provides no coloring anymore (it's been externalized through "UI.menu")
    • An effective value > base value ⟶ green.
    • An effective value < base value ⟶ red.
    • An effective value = base value ⟶ white/default.
Important: With Timing Modes 1/4/7, the creature's base Wisdom is altered, leaving behind no removable effect.
Info: Final values are capped to the bound range (0,25) in game (40 in IWD2).

#50 (0x32) Colour: Glow by RGB (Brief) Variants: BG1 IWD1 IWD2 PST
Parameter #1: RGB Colour
Parameter #2: Location and Speed
Description:
The targeted creature(s) entire animation glows the colour specified by the RGB Colour field, at the speed specified by the (3rd byte of the) Speed field.
The RGB Colour field is handled as follows:
  • Second byte = Red (0 — 255)
  • Third byte = Green (0 — 255)
  • Fourth byte = Blue (0 — 255)

The Location and Speed field is handled as follows:
  • First byte = Location (not implemented in 2.5)
  • Third byte = Speed (0 — 255)

A speed of 0 does not pulsate. A speed of 1 is fastest, and a speed of 255 is slowest. The duration of the effect is controlled by the Speed field.
Known values for Location are:
  • 0 — 6: Avatar/Armor
    • 00 ⟶ Belt Buckle (on armour) or amulets (on robes) — entire body for some animations
    • 01 ⟶ Minor colour
    • 02 ⟶ Major colour
    • 03 ⟶ Skin colour
    • 04 ⟶ Strap colour (on armour) or minor trimming (on robes — the centre strip down a robe and the hem on some robes)
    • 05 ⟶ Armor colour (and major trimming on robe — cross trim and cape trim on Robe of Archmagi)
    • 06 ⟶ Hair colour
  • 16 — 22: Weapon
    • 16 ⟶ Quillons or Crossguard
    • 20 ⟶ Grip (usually not visible as it's in the characters hand)
    • 21 ⟶ Blade or major portion of weapon
  • 32 — 40: Shield
    • 32 ⟶ Shield hub
    • 33 ⟶ Shield interior
    • 34 ⟶ Shield panelling
    • 37 ⟶ Shield rim
  • 48 — 54: Helmet
    • 48 ⟶ Helm ornamentation — i.e. wings
    • 49 ⟶ Helm ornamentation — i.e. feathers/horsehair
    • 50 ⟶ Helm ornamentation — i.e. feathers/horsehair
    • 52 ⟶ Helm face
    • 53 ⟶ Helm — the main covering
  • 255 ⟶ Whole Body (at least in IWD2 and EEs)
Warning: Other values crash immediately or when opening or manipulating Inventory.
See opcode #7 for further details about this topic.

#51 (0x33) Colour: Strong/Dark by RGB Variants: BG1 IWD1 IWD2
Parameter #1: RGB Colour
Parameter #2: Location
Description:
Alters the colour of the area specified by the Location and Speed field, to the colour specified by the RGB Colour field.
The RGB Colour field is handled as follows:
  • Second byte = Red (0–255)
  • Third byte = Green (0–255)
  • Fourth byte = Blue (0–255)

Known values for Location are:
  • 0 – 6: Avatar/Armor
    • 00 ⟶ Belt Buckle (on armour) or amulets (on robes) – entire body for some animations
    • 01 ⟶ Minor colour
    • 02 ⟶ Major colour
    • 03 ⟶ Skin colour
    • 04 ⟶ Strap colour (on armour) or minor trimming (on robes – the centre strip down a robe and the hem on some robes)
    • 05 ⟶ Armor colour (and major trimming on robe – cross trim and cape trim on Robe of Archmagi)
    • 06 ⟶ Hair colour
  • 16 – 22: Weapon
    • 16 ⟶ Quillons or Crossguard
    • 20 ⟶ Grip (usually not visible as it's in the characters hand)
    • 21 ⟶ Blade or major portion of weapon
  • 32 – 40: Shield
    • 32 ⟶ Shield hub
    • 33 ⟶ Shield interior
    • 34 ⟶ Shield panelling
    • 37 ⟶ Shield rim
  • 48 – 54: Helmet
    • 48 ⟶ Helm ornamentation – i.e. wings
    • 49 ⟶ Helm ornamentation – i.e. feathers/horsehair
    • 50 ⟶ Helm ornamentation – i.e. feathers/horsehair
    • 52 ⟶ Helm face
    • 53 ⟶ Helm – the main covering
  • 255 ⟶ Whole Body (at least in IWD2 and EEs)
Warning: Other values crash immediately or when opening or manipulating Inventory.
See opcode #7 for further details about this topic.

#52 (0x34) Colour: Very Bright by RGB Variants: BG1 IWD1 IWD2 PST
Parameter #1: RGB Colour
Parameter #2: Location
Description:
Alters the colour of the area specified by the Location field, to the colour specified by the RGB Colour field.
The RGB Colour field is handled as follows:
  • Second byte = Red (0–255)
  • Third byte = Green (0–255)
  • Fourth byte = Blue (0–255)


Known values for Location are:
  • 0 – 6: Avatar/Armor
    • 00 ⟶ Belt Buckle (on armour) or amulets (on robes) – entire body for some animations
    • 01 ⟶ Minor colour
    • 02 ⟶ Major colour
    • 03 ⟶ Skin colour
    • 04 ⟶ Strap colour (on armour) or minor trimming (on robes – the centre strip down a robe and the hem on some robes)
    • 05 ⟶ Armor colour (and major trimming on robe – cross trim and cape trim on Robe of Archmagi)
    • 06 ⟶ Hair colour
  • 16 – 22: Weapon
    • 16 ⟶ Quillons or Crossguard
    • 20 ⟶ Grip (usually not visible as it's in the characters hand)
    • 21 ⟶ Blade or major portion of weapon
  • 32 – 40: Shield
    • 32 ⟶ Shield hub
    • 33 ⟶ Shield interior
    • 34 ⟶ Shield panelling
    • 37 ⟶ Shield rim
  • 48 – 54: Helmet
    • 48 ⟶ Helm ornamentation – i.e. wings
    • 49 ⟶ Helm ornamentation – i.e. feathers/horsehair
    • 50 ⟶ Helm ornamentation – i.e. feathers/horsehair
    • 52 ⟶ Helm face
    • 53 ⟶ Helm – the main covering
  • 255 ⟶ Whole Body (at least in IWD2 and EEs)
Warning: Other values crash immediately or when opening or manipulating Inventory.
See opcode #7 for further details about this topic.

#53 (0x35) Graphics: Animation Change Variants: IWD1 IWD2 PST
Parameter #1: Animation ID
Parameter #2: Type
Description:
Alters the animation of the targeted creature(s) to the animation specified by the Animation ID field, in the style specified by the Type field.
Known values for Animation ID are: (from ANIMATE.IDS – in decimal)
Known values for Type are:
  • 0 ⟶ Change target's animation to Animation ID (Low Priority)
  • 1 ⟶ Change target's animation to Source's Base Animation (Low Priority)
    • Normally used targeting oneself to reassert their base animation over previous op53,p2=0 effects.
  • 2 ⟶ Change target's animation to Animation ID (High Priority)
    • Has priority over other op53 effects using either p2=0 or p2=1, regardless of stacking order.
Important: Applied with Timing Modes 1/4/7, sets the creature's base animation, leaving no removable effect.

#54 (0x36) Stat: THAC0 Modifier Variants: IWD2
Parameter #1: Statistic Modifier
Parameter #2: Type
Description:
Applies the modifier value specified by the Statistic Modifier field in the style specified by the Type field.
Known values for Type are:
  • 0 ⟶ Cumulative Modifier: THAC0 = THAC0 + 'Statistic Modifier' value
  • 1 ⟶ Flat Value Modifier: THAC0 = 'Statistic Modifier' value
  • 2 ⟶ Percentage Modifier: THAC0 = (THAC0 * 'Statistic Modifier' value) / 100
Note: This effect adjusts the base stat, rather than modified THAC0.

#55 (0x37) Death: Kill Creature Type Variants: PST
Parameter #1: IDS Entry
Parameter #2: IDS File
Description:
Kills the targeted creature(s) with HD less than those specified by the Dice values, if the target(s) match the IDS mask.
Known values for IDS File are:
IDS Entry is a value from the specified IDS file, indicating the specific creature type to affect.

#56 (0x38) Alignment: Invert Variants: PST
Parameter #1: Irrelevant
Parameter #2: Irrelevant
Description:
Inverts the alignment of the targeted creature(s).
Important: Both parameters should be 0 (zero).

#57 (0x39) Alignment: Change Variants: PST
Parameter #1: Irrelevant
Parameter #2: Alignment
Description:
Alters the alignment of the targeted creature(s) to the value specified by Alignment.
Known values for Alignment are:
  • 00 ⟶ None
  • 17 ⟶ Lawful Good
  • 18 ⟶ Lawful Neutral
  • 19 ⟶ Lawful Evil
  • 33 ⟶ Neutral Good
  • 34 ⟶ True Neutral
  • 35 ⟶ Neutral Evil
  • 49 ⟶ Chaotic Good
  • 50 ⟶ Chaotic Neutral
  • 51 ⟶ Chaotic Evil

#58 (0x3A) Cure: Dispellable Effects (Dispel Magic) Variants: BG1
Parameter #1: Level
Parameter #2: Dispel Type & Magic Weapon Dispel Type
Description:
Dispels magic from the targeted creature(s). Depending on the value of the Type field, the Level field can be used to set the level of the effect.
The Dispel Type & Magic Weapon Dispel Type field is handled as follows:
  • First word = Dispel Type
    • 0 ⟶ Always dispel
    • 1 ⟶ Use Caster Level
    • 2 ⟶ Use Level field
  • Second word = Magic Weapon Dispel Type
Info: When Dispel Type = 1 or Dispel Type = 2 (Level-based Dispel):
  • Base chance is 49%.
    • This chance is modified by the relative levels of the dispeller to the caster. Each level below gives a -10% chance, each level above gives a +5% chance.
  • Maximum is 99% chance to dispel.
  • There is no minimum threshold for succeeding the dispel check, at 5 levels or more below it will always fail.
  • Effects with caster levels 1932735279 to 1932735534 (as impractical as they may be), corresponding to levels 0 – 255, effectively use an inverted success/failure rate, due to overflow.

#59 (0x3B) Stat: Stealth Modifier
Parameter #1: Statistic Modifier
Parameter #2: Type
Description:
Applies the modifier value specified by the Statistic Modifier field in the style specified by the Type field.
Known values for Type are:
  • 0 ⟶ Cumulative Modifier: Stealth = Stealth + 'Statistic Modifier' value
  • 1 ⟶ Flat Value Modifier: Stealth = 'Statistic Modifier' value
  • 2 ⟶ Percentage Modifier: Stealth = (Stealth * 'Statistic Modifier' value) / 100
Note: In BG2 and EEs, this effect alters the Move Silently skill.
Important: Timing Modes 1/4/7 permanently alter the creature's Move Silently score, leaving no removable effect.
Note: (EE only) When Type = 0 and Timing Mode = 9, it modifies MOVESILENTLYMTPBONUS. The final value for this stat is multiplied by its percentage entry in THIEFSCL.2DA, capped to the range [0,255], before being included in the creature’s Move Silently score.

#60 (0x3C) Stat: Miscast Magic Variants: IWD1 BG1
Parameter #1: Percent Chance
Parameter #2: Type
Description:
The targeted creature(s) will fail to cast the type of spell specified by the Type field, Percent Chance percent of the time.
Known values for Type are:
  • 0 ⟶ Mage Spells
  • 1 ⟶ Cleric Spells
  • 2 ⟶ Innate Abilities
  • 3 ⟶ Mage Spells
  • 4 ⟶ Cleric Spells
  • 5 ⟶ Innate Abilities
This opcode increments SPELLFAILUREMAGE, SPELLFAILUREPRIEST and SPELL_FAILURE_INNATE, each of which is capped 0 — 100.

Type values of 0,1 or 2 display a message — "Spell Failed: casting failure" (on EE games, this string is specified by STRREF_FEEDBACK_SPELLFAILED_CASTFAILURE)

Type values of 3,4 or 5 display a message — "Spell failed due to dead magic" (on EE games, this string is specified by STRREF_FEEDBACK_SPELLFAILED_CASTFAILUREDEAD)
Note:
  • This opcode is cumulative with itself and the Deafness effect.
  • Spells with Ignore Dead/Wild Magic ignore the spell failure chance from this effect (regardless of using the Dead Magic mode).

#61 (0x3D) Creature RGB color fade Variants: IWD2 BG1
Parameter #1: RGB Colour
Parameter #2: Location and Fade Speed
Description:
Works similar to opcode #8/opcode #9, except:
  • It always affects the entire creature (not a specific location).
  • It is always "instantaneous". No effect is attached to the creature, it's all handled by internal mechanics, but it still uses the specified duration. Saving & Reloading will remove the effect.
  • The creature will instantly be covered by a color overlay which then fades out. The color overlay will not fade back in. It's otherwise similar to opcode #50, where the color overlay fades onto the creature and then fades back out.

The RGB Colour field is handled as follows:
  • Second byte = Red (0–255)
  • Third byte = Green (0–255)
  • Fourth byte = Blue (0–255)

The Location and Fade Speed field is handled as follows:
  • First byte = Location (unused, it always affects everything. Leave it at 0)
  • Third byte = Fade Speed (0–255)

A speed of 0 does not pulsate. A speed of 1 is fastest, and a speed of 255 is slowest.

#62 (0x3E) Spell: Priest Spell Slots Modifier Variants: IWD1
Parameter #1: Slot Amount Modifier
Parameter #2: Spell Level
Description:
Alters the number of priest spell slots available to the targeted creature(s), as specified by the Slot Amount Modifier field, at the level specified by the Spell Level field.

Known values for Spell Level are:
  • 0 ⟶ Double spells
    • The amount of spell slots is doubled for the level specified by the Slot Amount Modifier value and all levels below
  • BIT0 ⟶ Level 1
  • BIT1 ⟶ Level 2
  • BIT2 ⟶ Level 3
  • BIT3 ⟶ Level 4
  • BIT4 ⟶ Level 5
  • BIT5 ⟶ Level 6
  • BIT6 ⟶ Level 7
  • BIT9 ⟶ Double spells
    • The amount of spell slots is doubled exclusively for the level specified by Slot Amount Modifier

The target creature(s) must have at least 1 slot at the selected level to have their slot count changed.

Negative slots start at 65535 (-1), and go from there. Even though the spellbook has room to display only 12 slots at once, the slots are still there and usable.

Slot Amount Modifier can be positive or negative.

Note:
  • If the number of current spell slots is 1:
    • applying a -1 modifier will result in zero current slots and prevent further applications of this opcode from altering spell slots (until this effect terminates or is removed, or the base amount changes).
    • applying a -2 modifier instead would bypass zero and result in 65535 (-1). Then applying a +1 modifier would result in zero current slots and a repeat of the above.
  • Regardless of whether the value can be altered, the effect is still attached to the creature, rather than being discarded entirely. They can still take effect should the creature's base spell slots be altered (such as from leveling up).
  • Applying multiple effects in increments of -1 will insure that spell slots do not go below zero (and thus will not wrap around to maximum).

#63 (0x3F) State: Infravision
Parameter #1: Irrelevant
Parameter #2: Irrelevant
Description:
Gives the targeted creature(s) infravision and sets STATE_INFRAVISION.
Important: Both parameters should be 0 (zero).
Info: STATE_INFRAVISION specs:
While a creature with Infravision is currently selected,
  • all visible creatures with body heat that are currently in a "shadowed" part of the area receive a "warm" (red-shifted) overlay
  • body heat is determined by a creature's animation (INI file) using detected_by_infravision=1, or by opcode #342 (p1=1 & p2=1)
  • "shadowed" is determined by each area's Light Map "AR####LM.BMP"
    • Some areas have a separate Light Map for "nighttime" hours, "AR####LN.BMP"

#64 (0x40) State: Remove Infravision
Parameter #1: Irrelevant
Parameter #2: Irrelevant
Description:
Removes infravision from the targeted creature(s).
This effect ignores durations attributed to it.
Note: This will not remove racial infravision.
Important: Both parameters should be 0 (zero).

#65 (0x41) Overlay: Blur
Parameter #1: Irrelevant
Parameter #2: Irrelevant
Description:
Applies the blur effect to the targeted creature(s) and sets STATE_BLUR. Graphical displacement is affected by movement rate.
Important: Both parameters should be 0 (zero).
Note:
  • STATE_BLUR will maintain the effects of this opcode, once this opcode expires, but only until you save & reload.
  • If you set STATE_BLUR on a CRE file, it won't do anything by itself.
  • If you later apply opcode #65 to the creature, once it expires, the blur visual will remain until you save & reload, but will no longer update based on your movement rate (it will remain stuck at whatever it was when the opcode expired).

#66 (0x42) Graphics: Transparency Fade Variants: IWD1 PST
Parameter #1: Fade Amount
Parameter #2: Visual Effect
Description:
Fades the targeted creature(s) by the value in the amount specified by the Fade Amount field in the style specified by the Visual Effect field.
Known values for Fade Amount are:
  • 0 ⟶ Fully visible
  • ...
  • 255 ⟶ Fully transparent

A creature's TRANSLUCENT stat is stored in a single byte (0-255) on the CRE file.
This opcode only reads the first byte (out of four) of Fade Amount, so the value will always be 0-255.

Known values for Visual Effect are:
  • 0 ⟶ Draw instantly
  • 1 ⟶ Fade in
  • 2 ⟶ Fade out

Visual Effect = 0 sets the TRANSLUCENT stat directly, based on the timing mode.
Visual Effect = 1 and Visual Effect = 2 call a hardcoded process that decreases/increases the TRANSLUCENT stat by Fade Amount every tick, until it reaches 0/255.

Note:
  • Any transparency inherit in the animation (see for instance 7703.INI — SHADOW) will stack with that of the TRANSLUCENT stat.
    • It's likely multiplied (so that 50% * 50% = 25%), or something similar, but not additive.
  • On EE games, If you have the game option "Sprite Outlines" enabled, TRANSLUCENT values 1 - 127 are treated as 0.
    • If you also have the game option "Highlight selected sprites" enabled, TRANSLUCENT values 1 - 127 will display correctly, but only while the mouse is over the creature.

#67 (0x43) Summon: Creature Summoning Variants: IWD2 PST
Parameter #1: Irrelevant
Parameter #2: Mode
Description:
Summons a creature, with position and EA based on the Mode field. The Resource key should be set to the filename of the creature to summon.
Known values for Mode are:
Mode Position EA
0, 1 effect align with target creature
3 target creature align with target creature
4 target creature CRE file
5 effect align against target creature
2, else effect CRE file
Info: Mode details:
  • Position:
    • 3, 4 ⟶ summon at target creature's position
    • else ⟶ summon at effect position
  • EA:
    • 0, 1, 3 ⟶ align with target creature:
      • target creature EA ≤ GOODCUTOFF (30) ⟶ summon as ALLY (4)
      • target creature EA ≥ EVILCUTOFF (200) ⟶ summon as ENEMY (255)
      • else ⟶ summon as CRE file
    • 5 ⟶ align against target:
      • target creature EA ≤ GOODCUTOFF (30) ⟶ summon as ENEMY (255)
      • target creature EA ≥ EVILCUTOFF (200) ⟶ summon as ALLY (4)
      • else ⟶ summon as CRE file
Bug: Mode = 5 fails to make creatures summoned as ALLY (4) controllable. This is fixed upon reload.
Info:
  • (EE only) Resource 2 (external EFFs): Animation VVC/BAM file to be played at the summoned creature's location.
    Default is a hardcoded VVC using "SPBOOM.BAM" and palette #65. This is generally used as the "portal" animation.
  • (EE only) Resource 3 (external EFFs): Animation VVC/BAM file to be played at the location of the ability target.
  • Applies an opcode #271 to the summoned creature based on the duration of the Resource 2 (not exact). Creature will not appear/spawn until this animation finishes.
  • Applies a delayed opcode #215 with resource = "SPGFLSH1" to the summoned creature, delayed duration = 5 ticks less than the opcode #271.
  • Applies a delayed opcode #68 to the summoned creature based on effect duration (unless permanent).
  • When summoned, any temporary changes (such as from equipped items) to the creature's gender are made permanent.

#68 (0x44) Summon: Unsummon Creature
Parameter #1: Text Notification
Parameter #2: Irrelevant
Description:
Unsummons a creature, with feedback controlled by Text Notification.
Known values for Text Notification are:
  • 0 ⟶ No text notification
  • 1 ⟶ Show text notification
Note: At least in BG2 and EEs, the Resource key should be set to the filename of the animation to play when unsummoning the creature, and defaults to "SPGFLSH1" if left empty.
Note:
  • Has no effect on Party Members.
  • Moves the targeted creature(s) to area ".ARE" (a non-existant area). This deletes non-global creatures from the game.
  • Global creatures can still be recovered through scripts actions, such as MoveGlobalObject().

#69 (0x45) Protection: From Detection (Non-Detection)
Parameter #1: Irrelevant
Parameter #2: Irrelevant
Description:
Applies the non-detection effect to the targeted creature(s), setting STATE_NONDETECTION while active. This effect is negated by opcode #70. While in the non-detection state, the creature is immune to opcode #47 and opcode #116, though they are affected by effects that remove illusionary protections by school or secondary type.
Important: Timing Modes 1/4/7 will permanently set the creature's STATE_NONDETECTION flag, leaving no removable effect. This flag is not cleared on death.

#70 (0x46) Cure: Non-Detection Variants: IWD2 PST
Parameter #1: Irrelevant
Parameter #2: Irrelevant
Description:
Removes opcode #69 and the STATE_NONDETECTION flag from the targeted creature(s).
This effect ignores durations attributed to it.

#71 (0x47) IDS: Sex Change
Parameter #1: Gender Modifier
Parameter #2: Type
Description:
Alters the gender of the targetted creature(s) to the value specified by the Gender Modifier field, in the style specified by the Type value.
Known values for Type are:
  • 0 ⟶ Reverse Gender
  • 1 ⟶ Flat Value Modifier: Gender = 'Statistic Modifier' value (values from GENDER.IDS)


The effect modifies SEX_CHANGED.
Note:
  • Reverse Gender also switches the second BIT of the lower BYTE of the creature's animation, which (for PC races), will switch between their male/female animations (0x60000x6010).
  • Other races can be setup this way, but do not occupy the necessary animation slots by default.
    For instance, VAMPIRE is 0x7F12, VAMPIRE_FEMALE is 0x7F22 (Male should be 0x7F02 and female 0x7F12 for it to work).

#72 (0x48) IDS: Set IDS State Variants: BG1 IWD2 PST
Parameter #1: IDS Entry
Parameter #2: IDS File
Description:
Alters the IDS state of the targeted creature(s) specified by the IDS File field, to the value specified by the IDS Entry field.
Known values for IDS File are:
Important:
  • Only reliable timing mode is Timing Mode 1 (all others are bugged and can convert to this timing mode under various circumstances).
  • Timing Modes 1/4/7 will permanently set the creature(s) IDS value, leaving no removable effect.

#73 (0x49) Stat: Extra Damage Modifier Variants: IWD1
Parameter #1: Statistic Modifier
Parameter #2: Modifier Type
Description:
Applies the modifier value specified by the Statistic Modifier field in the style specified by the Type field. The effect is an additive modifier, like adding +10 damage.
Known values for Type are:
  • 0 ⟶ Cumulative Modifier: Damage = Damage + 'Statistic Modifier' value
  • 1 ⟶ Flat Value Modifier: Damage = 'Statistic Modifier' value
  • 2 ⟶ Percentage Modifier: Damage = (Damage * 'Statistic Modifier' value) / 100
Note: PST treats all Type values above 1 as 1 – it does not support the percentage modifier.

#74 (0x4A) State: Blindness Variants: BG1
Parameter #1: Irrelevant
Parameter #2: Irrelevant
Description:
Applies the blindness effect to the targeted creature(s). This sets VISUALRANGE to 2, sets STATE_BLIND to true and incurs a cummulative 10 point base THAC0 penalty (4 on EE games, plus a cumulative 4 point base AC penalty. All of that is unverified in PST). Maintains its own portrait icon Blind.
Important:
  • Timing Modes 1/4/7 will permanently set the creature's STATE_BLIND flag, leaving no removable effect.
  • Related: the -4 penalty to AC and THAC0 are apparently tied to the effect, not STATE_BLIND.
    • So for instance you will not be able to 100% cure a creature affected by CLERIC_NATURE_BEAUTY — "sppr704.spl" (it applies opcode #74 with timing_mode=1).
      • As a workaround, you might want to stick with a limited timing_mode and set duration to a very high random value.
Note: In the EE’s, the -4 penalties it applies are not cumulative.

#75 (0x4B) Cure: Blindness
Parameter #1: Irrelevant
Parameter #2: Irrelevant
Description:
Removes the blindness effect and the STATE_BLIND flag from the targeted creature(s).
This effect ignores durations attributed to it.
Important: Both parameters should be 0 (zero).

#76 (0x4C) State: Feeblemindedness Variants: IWD2
Parameter #1: Irrelevant
Parameter #2: Irrelevant
Description:
Applies the feeblemind effect to the targeted creature(s) – creatures are unselectable, immobile and do not respond to combat. Maintains the target's Intelligence to 3 (stacks normally with opcode #19).
Important: A creature's scripts do not run while the creature is feebleminded.

#77 (0x4D) Cure: Feeblemindedness
Parameter #1: Irrelevant
Parameter #2: Irrelevant
Description:
Removes the feeblemind effect and the STATE_FEEBLEMINDED flag from the targeted creature(s).
This effect ignores durations attributed to it.
Important: Both parameters should be 0 (zero).

#78 (0x4E) State: Disease Variants: BG1 BG2 IWD1 PST
Parameter #1: Amount
Parameter #2: Type
Parameter #4: Frequency Multiplier
Special: Icon
Description:
Set the Amount parameter as the amount of damage, and the Type parameter as how the disease functions.
Known values for Type are:
  • 0 ⟶ Inflict 1 HP per second
    • Frequency Multiplier is ignored – Amount needs to be non-zero)
  • 1 ⟶ Inflict 1 HP per second
    • for best results, leave Frequency Multiplier at 0, Amount between 1 and 101
  • 2 ⟶ Deal Amount damage every Frequency Multiplier second(s)
  • 3 ⟶ Deal one damage every 'Amount' * 'Frequency Multiplier' second(s)
  • 4 ⟶ Reduce Strength score by Amount
  • 5 ⟶ Reduce Dexterity score by Amount
  • 6 ⟶ Reduce Constitution score by Amount
  • 7 ⟶ Reduce Intelligence score by Amount
  • 8 ⟶ Reduce Wisdom score by Amount
  • 9 ⟶ Reduce Charisma score by Amount
  • 10 ⟶ Slow Effect
  • 11 ⟶ Mold touch/Single
  • 12 ⟶ Mold touch/Decrement
  • 13 ⟶ Contagion

Amount can be positive (penalty) or negative (bonus).

Icon defines the index from STATDESC.2DA for custom portrait icons. Default value is None (no icon).

Important: Permanent timing modes require a duration for this effect to work.
Info: This opcode deals POISON damage, except Mold Touches, which deal MAGIC damage.
Info: If Frequency Multiplier = 0, its value is treated as 1. This is the default value for SPL/ITM effects.
Info: The Slow effect is no different from that caused by opcode #40 (Slow), including its stacking interaction with Haste, except that it is blocked/removed as a disease, not as a slow effect.
Info: Contagion is a composite of Strength, Dexterity, Charisma drain and the Slow effect, each ability score reduced by Amount.
Note: When the Type field is 1:
  • if the Frequency Multiplier field is non-zero, damage is always dealt.
  • if the Amount field is less than 256, damage is dealt while HP > 100 / 'Amount'.
Info: Maintains DISEASED on the target.
Info: Mold Touch is complicated: the general idea is that it deals x or xd6 damage and applies the SPL file specified by the resource key (default: "original resource" + B) every (round or second) for either 1 round (single) or across multiple rounds dealing less each round (decrement). In particular:
  • If Type=11:
    • Timing Mode should be 3 (with no duration).
    • In SPLs/ITMs, it always causes 1d6 damage.
    • In external EFFs it functions identically to 'Mold Touch/Decrement', in every way (see below for further details).
  • if Type=12:
    • The first hit doesn't occur immediately, but instead at 80 ticks (exactly), the second hit occurs at 90 ticks (6 seconds), then later hits occur 1 round apart. So:
      1st hit: 5.33s(80t), 2nd hit: 6s(90t), 3rd hit: 12s(180t), etc...
      Oddly, this effect measures rounds as 6 seconds (90 ticks) intervals, not 100 ticks.
    • As far as damage dealt is concerned, in SPLs/ITMs:
      • x = 'Amount'(d6), decrementing the amount by 1 die every round, until zero.
      • Should always use Timing Mode 1, 3 or 4, and only a non-zero duration if using Timing Mode 4.
      • If Timing Mode is 1 or 4, the portrait icon, and DISEASED remain until cured/death.
      • If Timing Mode is 3 (with no duration), it will expire 1 round after the final damage (when it realizes the amount has reached zero). Timing Mode 3 and duration = 0 should be the "default" setting for this mode right now.
    • As far as damage dealt is concerned, in external EFFs:
      • x = (remaining 'Duration' / 6)(d6), or just (remaining 'Duration' / 6) if Frequency Multiplier >= 65536.
      • The damage dice is rounded down.
      • Because the first hit doesn't occur until 80 ticks, any duration shorter will have no triggers.
      • The Portrait Icon and DISEASED will remain for the full specified duration.
    • The SPL resource is applied at the same/every time as the damage, though the damage occurs first.
Frequency Multiplier determines whether it deals damage every second or every round, and whether it deals x or xd6 damage.
  • Frequency Multiplier = 0xd6 per round
  • Frequency Multiplier = 65536 or greater (must be even) ⟶ x per second
  • Frequency Multiplier = 65537 or greater (must be odd) ⟶ x per round
Regardless, the value of x decrements only once per round.

#79 (0x4F) Cure: Disease
Parameter #1: Irrelevant
Parameter #2: Irrelevant
Description:
Removes the disease and feeblemind effects from the targeted creature(s).
This effect ignores durations attributed to it. It also unsets the feeblemind state bit.
Important: Both parameters should be 0 (zero).

#80 (0x50) State: Deafness Variants: IWD2
Parameter #1: Irrelevant
Parameter #2: Irrelevant
Description:
Applies the Deafness effect on the targeted creature(s) – creatures suffer a casting failure rate of 50% (20% in bg1, unknown in iwd1). The casting failure rate refers to Wizard and Priest spells only. This is cumulative with Miscast Magic.
Warning: PST: it is unclear if this effect exist or does anything!
Info: Maintains DEAFENED on the target (EE only).

#81 (0x51) Cure: Deafness
Parameter #1: Irrelevant
Parameter #2: Irrelevant
Description:
Removes the deafness effect from the targeted creature(s).
This effect ignores durations attributed to it.
Important: Both parameters should be 0 (zero).
Warning: PST: it is unclear if this effect exists or does anything!

#82 (0x52) Set AI Script Variants: PST
Parameter #1: Irrelevant
Parameter #2: Type
Description:
Sets the script type specified by the Type value to the contents of the resource key.
Known values for Type are:
  • 0 ⟶ OVERRIDE
  • 1 ⟶ AREA
  • 2 ⟶ SPECIFICS
  • 4 ⟶ CLASS
  • 5 ⟶ RACE
  • 6 ⟶ GENERAL
  • 7 ⟶ DEFAULT
Warning: This effect can unset scripts from a creature, which can break the game.
Note:
  • Effect is always instantaneous/delayed.
  • AREA and SPECIFICS can only be set on non-global creatures (not potential party members or familiars), and are lost upon saving & reload.

#83 (0x53) Protection: From Projectile Variants: BG1 IWD1 IWD2 PST
Parameter #1: Irrelevant
Parameter #2: Projectile Index
Description:
Protects the targeted creatures(s) from any effect(s) delivered by the specified projectile.
Values for Projectile Index are taken from PROJECTL.IDS.
Important: Area-Effect projectiles only impact through their explosion and/or secondary projectiles, so they are what must be specified in Projectile Index.
Note: Cannot protect against the projectile used by Melee weapon attacks (this is contrast to opcode #197, which CAN reflect them (by specifying projectile #0|NONE)).

#84 (0x54) Stat: Magical Fire Resistance Modifier Variants: IWD1 IWD2
Parameter #1: Statistic Modifier
Parameter #2: Type
Description:
Applies the modifier value specified by the Statistic Modifier field in the style specified by the Type field.
Known values for Type are:
  • 0 ⟶ Cumulative Modifier: Resistance = Resistance + 'Statistic Modifier' value
  • 1 ⟶ Flat Value Modifier: Resistance = 'Statistic Modifier' value
  • 2 ⟶ Percentage Modifier: Resistance = (Resistance * 'Statistic Modifier' value) / 100

Statistic Modifier can be positive or negative.

The effect modifies RESISTMAGICFIRE.

#85 (0x55) Stat: Magical Cold Resistance Modifier Variants: IWD1 IWD2
Parameter #1: Statistic Modifier
Parameter #2: Type
Description:
Applies the modifier value specified by the Statistic Modifier field in the style specified by the Type field.
Known values for Type are:
  • 0 ⟶ Cumulative Modifier: Resistance = Resistance + 'Statistic Modifier' value
  • 1 ⟶ Flat Value Modifier: Resistance = 'Statistic Modifier' value
  • 2 ⟶ Percentage Modifier: Resistance = (Resistance * 'Statistic Modifier' value) / 100

Statistic Modifier can be positive or negative.

The effect modifies RESISTMAGICCOLD.

#86 (0x56) Stat: Slashing Resistance Modifier Variants: IWD2
Parameter #1: Statistic Modifier
Parameter #2: Type
Description:
Applies the modifier value specified by the Statistic Modifier field in the style specified by the Type field.
Known values for Type are:
  • 0 ⟶ Cumulative Modifier: Resistance = Resistance + 'Statistic Modifier' value
  • 1 ⟶ Flat Value Modifier: Resistance = 'Statistic Modifier' value
  • 2 ⟶ Percentage Modifier: Resistance = (Resistance * 'Statistic Modifier' value) / 100

Statistic Modifier can be positive or negative.

The effect modifies RESISTSLASHING.

#87 (0x57) Stat: Crushing Resistance Modifier Variants: IWD2
Parameter #1: Statistic Modifier
Parameter #2: Type
Description:
Applies the modifier value specified by the Statistic Modifier field in the style specified by the Type field.
Known values for Type are:
  • 0 ⟶ Cumulative Modifier: Resistance = Resistance + 'Statistic Modifier' value
  • 1 ⟶ Flat Value Modifier: Resistance = 'Statistic Modifier' value
  • 2 ⟶ Percentage Modifier: Resistance = (Resistance * 'Statistic Modifier' value) / 100

Statistic Modifier can be positive or negative.

The effect modifies RESISTCRUSHING.

#88 (0x58) Stat: Piercing Resistance Modifier Variants: IWD2
Parameter #1: Statistic Modifier
Parameter #2: Type
Description:
Applies the modifier value specified by the Statistic Modifier field in the style specified by the Type field.
Known values for Type are:
  • 0 ⟶ Cumulative Modifier: Resistance = Resistance + 'Statistic Modifier' value
  • 1 ⟶ Flat Value Modifier: Resistance = 'Statistic Modifier' value
  • 2 ⟶ Percentage Modifier: Resistance = (Resistance * 'Statistic Modifier' value) / 100

Statistic Modifier can be positive or negative.

The effect modifies RESISTPIERCING.

#89 (0x59) Stat: Missiles Resistance Modifier Variants: IWD2
Parameter #1: Statistic Modifier
Parameter #2: Type
Description:
Applies the modifier value specified by the Statistic Modifier field in the style specified by the Type field.
Known values for Type are:
  • 0 ⟶ Cumulative Modifier: Resistance = Resistance + 'Statistic Modifier' value
  • 1 ⟶ Flat Value Modifier: Resistance = 'Statistic Modifier' value
  • 2 ⟶ Percentage Modifier: Resistance = (Resistance * 'Statistic Modifier' value) / 100

Statistic Modifier can be positive or negative.

The effect modifies RESISTMISSILE.

#90 (0x5A) Stat: Open Locks Modifier
Parameter #1: Statistic Modifier
Parameter #2: Type
Description:
Applies the modifier value specified by the Statistic Modifier field in the style specified by the Type field.
Known values for Type are:
  • 0 ⟶ Cumulative Modifier: Skill = Skill + 'Statistic Modifier' value
  • 1 ⟶ Flat Value Modifier: Skill = 'Statistic Modifier' value
  • 2 ⟶ Percentage Modifier: Skill = (Skill * 'Statistic Modifier' value) / 100
Important: Timing Modes 1/4/7 permanently alters the creature's Open Locks score, leaving no removable effect.
Note: (EE only) When Type = 0 and Timing Mode = 9, it modifies LOCKPICKINGMTPBONUS. The final value for this stat is multiplied by its percentage entry in THIEFSCL.2DA, capped to the range [0,255], before being included in the creature’s Open Locks score.

#91 (0x5B) Stat: Find Traps Modifier
Parameter #1: Statistic Modifier
Parameter #2: Type
Description:
Applies the modifier value specified by the Statistic Modifier field in the style specified by the Type field.
Known values for Type are:
  • 0 ⟶ Cumulative Modifier: Skill = Skill + 'Statistic Modifier' value
  • 1 ⟶ Flat Value Modifier: Skill = 'Statistic Modifier' value
  • 2 ⟶ Percentage Modifier: Skill = (Skill * 'Statistic Modifier' value) / 100
Important: Timing Modes 1/4/7 permanently alters the creature's Find Traps score, leaving no removable effect.
Note: (EE only) When Type = 0 and Timing Mode = 9, it modifies TRAPSMTPBONUS. The final value for this stat is multiplied by its percentage entry in THIEFSCL.2DA, capped to the range [0,255], before being included in the creature’s Find Traps score.

#92 (0x5C) Stat: Pick Pockets Modifier
Parameter #1: Statistic Modifier
Parameter #2: Type
Description:
Applies the modifier value specified by the Statistic Modifier field in the style specified by the Type field.
Known values for Type are:
  • 0 ⟶ Cumulative Modifier: Skill = Skill + 'Statistic Modifier' value
  • 1 ⟶ Flat Value Modifier: Skill = 'Statistic Modifier' value
  • 2 ⟶ Percentage Modifier: Skill = (Skill * 'Statistic Modifier' value) / 100
Important: Timing Modes 1/4/7 permanently alters the creature's Pick Pockets score, leaving no removable effect.
Note: (EE only) When Type = 0 and Timing Mode = 9, it modifies PICKPOCKETMTPBONUS. The final value for this stat is multiplied by its percentage entry in THIEFSCL.2DA, capped to the range [0,255], before being included in the creature’s Pick Pockets score.

#93 (0x5D) Stat: Fatigue Modifier
Parameter #1: Statistic Modifier
Parameter #2: Type
Description:
Applies the modifier value specified by the Statistic Modifier field in the style specified by the Type field.
Known values for Type are:
  • 0 ⟶ Cumulative Modifier: Fatigue = Fatigue + 'Statistic Modifier' value
  • 1 ⟶ Flat Value Modifier: Fatigue = 'Statistic Modifier' value
  • 2 ⟶ Percentage Modifier: Fatigue = (Fatigue * 'Statistic Modifier' value) / 100

Statistic Modifier can be positive or negative.

The effect modifies FATIGUE.

#94 (0x5E) Stat: Drunkenness Modifier
Parameter #1: Statistic Modifier
Parameter #2: Type
Description:
Applies the modifier value specified by the Statistic Modifier field in the style specified by the Type field.
Known values for Type are:
  • 0 ⟶ Cumulative Modifier: Drunkenness = Drunkenness + 'Statistic Modifier' value
  • 1 ⟶ Flat Value Modifier: Drunkenness = 'Statistic Modifier' value
  • 2 ⟶ Percentage Modifier: Drunkenness = (Drunkenness * 'Statistic Modifier' value) / 100

Statistic Modifier can be positive or negative.

The effect modifies INTOXICATION.

#95 (0x5F) Stat: Tracking Skill Modifier
Parameter #1: Statistic Modifier
Parameter #2: Type
Description:
Applies the modifier value specified by the Statistic Modifier field in the style specified by the Type field.
Known values for Type are:
  • 0 ⟶ Cumulative Modifier: Skill = Skill + 'Statistic Modifier' value
  • 1 ⟶ Flat Value Modifier: Skill = 'Statistic Modifier' value
  • 2 ⟶ Percentage Modifier: Skill = (Skill * 'Statistic Modifier' value) / 100

Statistic Modifier can be positive or negative.

The effect modifies TRACKING.

#96 (0x60) Stat: Level Change Variants: BG1
Parameter #1: Statistic Modifier
Parameter #2: Type
Description:
Applies the modifier value specified by the Statistic Modifier field in the style specified by the Type field.
Known values for Type are:
  • 0 ⟶ Cumulative Modifier: Level = Level + 'Statistic Modifier' value
  • 1 ⟶ Flat Value Modifier: Level = 'Statistic Modifier' value
  • 2 ⟶ Percentage Modifier: Level = (Level * 'Statistic Modifier' value) / 100
Note: In IWD2 the class to receive the change is specified at 0x2C
Important: Timing Modes 1/4/7 permanently alter the creature's level, leaving no removable effect.
Note: Can only modify the first class level, it cannot modify second or third class levels.

#97 (0x61) Stat: Exceptional Strength Modifier
Parameter #1: Statistic Modifier
Parameter #2: Type
Description:
Applies the modifier value specified by the Statistic Modifier field in the style specified by the Type field.
Known values for Type are:
  • 0 ⟶ Cumulative Modifier: Exceptional Strength = Exceptional Strength + 'Statistic Modifier' value
  • 1 ⟶ Flat Value Modifier: Exceptional Strength = 'Statistic Modifier' value
  • 2 ⟶ Percentage Modifier: Exceptional Strength = (Exceptional Strength * 'Statistic Modifier' value) / 100

Statistic Modifier can be positive or negative.

The effect modifies STREXTRA.

#98 (0x62) HP: Regeneration Variants: IWD1 IWD2 PST BG1
Parameter #1: Amount_1
Parameter #2: Type
Parameter #3: Amount_2
Parameter #4: Frequency Multiplier
Special: Icon
Description:
Restores HP according to the style specified by the Type field, to the targeted creature(s).
Known values for Type are:
  • 0 ⟶ Restore 1 HP per second
    • Amount_2 and Frequency Multiplier are ignored – Amount_1 needs to be non-zero
  • 1 ⟶ Restore 1 HP per second
    • for best results, leave both Amount_2 and Frequency Multiplier at 0, Amount_1 between 1 and 101
  • 2 ⟶ Restore Amount_1 HP every Frequency Multiplier second(s)
  • 3 ⟶ Restore 1 HP every 'Amount_1' * 'Frequency Multiplier' second(s)
  • 4 ⟶ Restore Amount_2 HP every 'Amount_1' * 'Frequency Multiplier' second(s) – This is the only one that must be in external EFF files

Icon defines the index from STATDESC.2DA for custom portrait icons. Default value is None (no icon).

Warning: Type values greater or equal to 5 will crash the game!
Important: Permanent timing modes require a duration for this effect to work.
Info: If Frequency Multiplier = 0, its value is treated as 1. This is the default value for SPL/ITM effects.
Note: When the Type field is 1:
  • if the Frequency Multiplier field is non-zero, HP is always restored.
  • if the Amount_1 field is less than 256, HP is restored while HP > 100 / 'Amount_1'.

#99 (0x63) Spell Effect: Duration Modifier
Parameter #1: Duration Modifier
Parameter #2: Type
Description:
Alters spell durations of the targeted creature(s), to the percentage specified by the Duration Modifier field, affecting the spell type specified by the Type field. Timing mode 0 is the only timing mode reliably affected. Timings handled through PRO files are ignored.
For instance:
  • Duration Modifier = 0 ⟶ Spells have no duration
  • Duration Modifier = 100 ⟶ Spells have normal duration
  • Duration Modifier = 200 ⟶ Spells have double duration

Known values for Type are:
  • 0 ⟶ Mage
  • 1 ⟶ Priest
  • 2 ⟶ Bard Song (EE only)

The effect modifies SPELLDURATIONMODMAGE and SPELLDURATIONMODPRIEST.
Note: Durations handled by Static Charge are unaffected (EE only).
Note: Not seen to work in BG1.

#100 (0x64) Protection: from Creature Type Variants: IWD2
Parameter #1: IDS Entry
Parameter #2: IDS File
Description:
Gives the targeted creature(s) protection from the creature type specified by the IDS File and IDS Entry fields.
Known values for IDS File are:
To be protected from any creature, leave IDS Entry at 0 (zero), and IDS File at 2. Protection will grant the bearer immunity from being attacked, cast a spell at, or otherwise targeted by creatures with this type.

#101 (0x65) Protection: from Opcode
Parameter #1: Irrelevant
Parameter #2: Opcode
Description:
Gives the targeted creature(s) protection from the opcode specified by the Opcode field.

#102 (0x66) Spell: Immunity (by Power Level)
Parameter #1: Spell Level
Parameter #2: Irrelevant
Description:
Gives the targeted creature(s) protection from effects (opcodes) whose Power attribute is equal to Spell Level (range: 0 – 9).
Info:
  • Each application of this opcode only protects against its specified Spell Level, not "up to" it.
  • Each effect in a spell/item is checked separately by this opcode.
  • CAN block effects of Secondary Type MagicAttack.
  • CAN block EFF files with resist_dispel = BIT2.
    • Keep in mind that this BIT is automatically set on any effect delivered by an Area-Effect (Explosion) projectile, so this opcode can deflect effects through AoE projectiles.
  • CANNOT block non-hostile effects from self.
Note: EFF files delivered by opcode #177/opcode #283 will interact with Deflection separately from the opcode #177/opcode #283 effect that applies them, and only if that opcode #177/opcode #283 effect already got through. If the opcode #177/opcode #283 effect is deflected, then the values in the EFF file won’t matter. Most vanilla EFF files have these fields set to empty/zero to avoid interacting with this opcode.

#103 (0x67) Text: Change Name
Parameter #1: String Reference
Parameter #2: Irrelevant
Description:
Alters the name of the targeted creature(s) to the strref specified by the String Reference field. When used with a duration timing, after the duration, the name will be set to a blank entry.

#104 (0x68) Stat: Experience Points
Parameter #1: Statistic Modifier
Parameter #2: Type
Description:
Applies the modifier value specified by the Statistic Modifier field in the style specified by the Type field.
Known values for Type are:
  • 0 ⟶ Cumulative Modifier: XP = XP + 'Statistic Modifier' value
  • 1 ⟶ Flat Value Modifier: XP = 'Statistic Modifier' value
  • 2 ⟶ Percentage Modifier: XP = (XP * 'Statistic Modifier' value) / 100


The effect modifies XP.

#105 (0x69) Stat: Gold Variants: BG1
Parameter #1: Statistic Modifier
Parameter #2: Type
Description:
Applies the modifier value specified by the Statistic Modifier field in the style specified by the Type field.
Known values for Type are:
  • 0 ⟶ Cumulative Modifier: Gold = Gold - 'Statistic Modifier' value
  • 1 ⟶ Flat Value Modifier: Gold = 'Statistic Modifier' value
  • 2 ⟶ Percentage Modifier: Gold = (Gold * 'Statistic Modifier' value) / 100


The effect modifies party gold or GOLD for everyone else.
Note: Type=0 can only remove gold. Gold amount has a lower bound of 0.

#106 (0x6A) Stat: Morale Break Modifier
Parameter #1: Statistic Modifier
Parameter #2: Type
Description:
Applies the modifier value specified by the Statistic Modifier field in the style specified by the Type field.
Known values for Type are:
  • 0 ⟶ Cumulative Modifier: Morale Break = Morale Break + 'Statistic Modifier' value
  • 1 ⟶ Flat Value Modifier: Morale Break = 'Statistic Modifier' value
  • 2 ⟶ Percentage Modifier: Morale Break = (Morale Break * 'Statistic Modifier' value) / 100


The effect modifies MORALEBREAK.

#107 (0x6B) Portrait Change
Parameter #1: Irrelevant
Parameter #2: Type
Description:
Sets the portrait of the targeted creature(s) to that specified in the resource key, based on the Type value. This effect ignores durations attributed to it.
Known values for Type are:
  • 0 ⟶ Small portrait
  • 1 ⟶ Large portrait

#108 (0x6C) Stat: Reputation
Parameter #1: Statistic Modifier
Parameter #2: Type
Description:
Sets the individual reputation of the targeted creature(s) to the value specified by the Statistic Modifier field in the style specified by the Type field.
This does not affect the main reputation of the Party, unless Type 3-5 are used. Though it can affect ranger/paladinhood of any target.
Known values for Type are:
  • 0 ⟶ Cumulative Modifier: Reputation = Reputation + 'Statistic Modifier' value
  • 1 ⟶ Flat Value Modifier: Reputation = 'Statistic Modifier' value
  • 2 ⟶ Percentage Modifier: Reputation = (Reputation * 'Statistic Modifier' value) / 100
  • 3 ⟶ Increment Party Reputation by 10 * 'Statistic Modifier', cannot lower reputation below 100, will raise reputation to 100 if already less (only in EEs)
  • 4 ⟶ Party Reputation = 'Statistic Modifier' value, cannot lower reputation below 100, will raise reputation to 100 if already less (only in EEs)
  • 5 ⟶ Party Reputation = (Party Reputation * 'Statistic Modifier' value) / 100, cannot lower reputation below 100, will raise reputation to 100 if already less (only in EEs)
The effect modifies REPUTATION.

#109 (0x6D) State: Paralyze Variants: BG2 PST BG1
Parameter #1: IDS Entry
Parameter #2: IDS File
Special: Mode
Description:
Applies the hold effect to the targeted creature(s), if the targeted creature(s) match the value specified by the IDS Entry field, in the specified IDS File.
Known values for IDS File are:

The affected creature becomes immobile and its AI scripts stop running.
This effect sets HELD to 1. It also sets the STATE_HELPLESS flag.

Known values for Mode are:
  • 0 ⟶ Default
  • Non-zero ⟶ False Petrify
    • In addition to the normal paralyze effect, it maintains a detectable STATE_STONE_DEATH and the stone overlay, but does not directly kill, award XP, or chunk when attacked. Only functions like this against non-party members.
    • Against party members, it functions as normal, unless you save and reload while the effect is active. Upon reloading, the stone overlay will be applied and the character will be dropped to 0 hit points, but not killed, and no STATE_STONE_DEATH (this is probably to avoid kicking the character from the party)

#110 (0x6E) Empty: Variants: BG1 IWD2 PST
Parameter #1: Irrelevant
Parameter #2: Irrelevant
Description:
This opcode has no effect.
Note: It is still processed, so it will still interact with Spell Turning/Deflection/etc… just like any other effect.

#111 (0x6F) Item: Create Magical Weapon
Parameter #1: Amount
Parameter #2: Irrelevant
Description:
Creates the item specified by the resource key. The number of items created is controlled by the Amount field. The item is created in the Magical Weapon Slot.
Important: The Magical Weapon Slot does not allow Item Abilities.
Warning: The resource field should not be empty, or the game will crash (not consistently, but it happens).
Info: The dispel bit of opcode #111 has no bearing on the item it creates. Its only function comes up when the opcode #111 effect is delayed — the effect can be dispelled before it triggers (see also undispellable and opcode #58).

#112 (0x70) Item: Remove Item Variants: BG1
Parameter #1: Sound
Parameter #2: Irrelevant
Description:
Removes a single instance (or stack) of the item specified by the resource key from the targeted creature(s). Items in container items (e.g. Bags of Holding) will not be removed. If a creature has multiple instances of the item, the one in the lowest slot number (see SLOTS.IDS) is removed. This effect should be used to remove equipped items (use opcode #123 for inventory items).

On successful removal, parameter "Sound" dictates which sound will be played:
  • 0  ⟶ Play EFF_M02.WAV
  • 1  ⟶ Play AMB_D02B.WAV
  • 2  ⟶ Play Resource2.WAV
  • 3+ ⟶ No sound

  • #113 (0x71) Empty: Variants: BG1
    Parameter #1: Irrelevant
    Parameter #2: Irrelevant
    Description:
    This opcode has no effect.
    Note: It is still processed, so it will still interact with Spell Turning/Deflection/etc… just like any other effect.

    #114 (0x72) Graphics: Dither Variants: IWD1
    Parameter #1: Undefined
    Parameter #2: Undefined
    Description:
    Sets IDENTIFYMODE to 1.
    Affected creature will be visible, targetable, and if controlled, selectable and orderable within the semi-transparent fog of war, but not within the black shroud.

    #115 (0x73) Detect: Alignment Variants: IWD2
    Parameter #1: Irrelevant
    Parameter #2: Alignment Mask
    Description:
    Detects the alignment specified by the Alignment Mask field.
    Known values for Alignment Mask are:
    • 0 ⟶ Evil (glow Red)
    • 1 ⟶ Neutral (glow Blue)
    • 2 ⟶ Good (glow Green)

    #116 (0x74) State: Cure Invisibility
    Parameter #1: Irrelevant
    Parameter #2: Irrelevant
    Description:
    Removes invisibility from the targeted creature(s). Also removes STATE_INVISIBLE and STATE_IMPROVEDINVISIBILITY.
    This effect ignores durations attributed to it.
    Important: Both parameters should be 0 (zero).
    Info:
    • The only difference between this opcode and opcode #47 is their index – you can block one with opcode #101 without blocking the other. That's it.
    • Both remove the same effects/STATEs, both are blocked by opcode #69.
    • They might have been intended for identical function, different uses, similar to opcodes #5/#241 (Charm), but it never happened.
    • Opcode #116 is used extensively because the original BG1 used it, and didn't use opcode #47 at all.

    #117 (0x75) Spell Effect: Reveal Area Variants: IWD2
    Parameter #1: Irrelevant
    Parameter #2: Irrelevant
    Description:
    Reveals the current area.
    Note: It does not remove the fog of war.

    #118 (0x76) Empty: Variants: BG1
    Parameter #1: Irrelevant
    Parameter #2: Irrelevant
    Description:
    This opcode has no effect.
    Note: It is still processed, so it will still interact with Spell Turning/Deflection/etc… just like any other effect.

    #119 (0x77) Spell Effect: Mirror Image Variants: IWD1
    Parameter #1: Irrelevant
    Parameter #2: Irrelevant
    Description:
    Applies the Mirror Image effect to the targeted creature(s). The number of images is dicated by the level of the caster.
    The exact formula is 'Parameter1' = 2 + ('Caster Level of the spell containing op119' / 3).
    Info:
    • A Wizard spell with op119 will use the caster's Wizard Casting Level.
    • A Priest spell with op119 will use the caster's Priest Casting Level.
    • An Innate spell with op119 will use the caster's Innate Casting Level.
    Note: A side note about non-spellcaster classes:

    A Mirror Image scroll used by a Thief with HLA Use Any Item will use the level 10 duration, but the level 1 Image count.
    The scroll casts the spell at level 10, but the opcode checks the caster’s Wizard Caster Level (which for a Thief is 1).

    #120 (0x78) Protection: from Weapons
    Parameter #1: Enchantment
    Parameter #2: Type
    Description:
    Gives the targeted creature(s) immunity to weapons as specified by the Type field. The Enchantment field is used if Type is set to 0.
    Known values for Type are:
    • 0 ⟶ Enchanted
    • 1 ⟶ Magical
    • 2 ⟶ Non-Magical
    • 3 ⟶ Silver
    • 4 ⟶ Non-Silver
    • 5 ⟶ Non-Silver / Non-Magical
    • 6 ⟶ Two-Handed
    • 7 ⟶ One-Handed
    • 8 ⟶ Cursed
    • 9 ⟶ Non-Cursed
    • 10 ⟶ Cold Iron
    • 11 ⟶ Non Cold Iron
    Info: Keep in mind that:
    • Protected weapons will still trigger HitBy(), but will not interact with Mirror Image or Stone skins.
    • Blocks weapon damage, on-hit effects of the weapon, opcode #248 and opcode #249, regardless of the effects target.
    • Area-effect projectiles (f.i. Arrow of Detonation) only check for Weapon Immunity on the attacked target, and use that result for all caught within their area of effect.

    #121 (0x79) Empty:
    Parameter #1: Irrelevant
    Parameter #2: Irrelevant
    Description:
    This opcode has no effect. Sometimes known as "Graphics: (Visual Animation Effect)".
    Note: It is still processed, so it will still interact with Spell Turning/Deflection/etc… just like any other effect.

    #122 (0x7A) Item: Create Inventory Item Variants: BG1 IWD2
    Parameter #1: Charges
    Parameter #2: Irrelevant
    Description:
    Creates the item specified by the resource key. The number of items created is controlled by the Charges field. The number of secondary charge is determined by Parameter3. The number of tertiary charges is determined by Parameter4 (external EFFs). The item is created in the Inventory.
    Info:
    • (EE only) Resource 2 and Resource 3 (external EFFs): item to be created is randomly chosen from resource fields 1–3 that are not empty.
    • Applies a delayed opcode #123 effect to remove the item (based on specified duration)

    #123 (0x7B) Item: Remove Inventory Item
    Parameter #1: Irrelevant
    Parameter #2: Irrelevant
    Description:
    Removes the item specified by the resource key from the targeted creature(s). This effect should be used to remove inventory items (use opcode #112 for equipped items).
    In particular:
    • Removes all item(s) in the first slot containing the specified resource key from the targeted creature(s).
    • Items in container items (e.g. Bags of Holding) will not be removed.
    • Inventory slots are checked in numerical order from SLOTS.IDS.

    #124 (0x7C) Spell Effect: Teleport (Dimension Door) Variants: IWD1 PST
    Parameter #1: Irrelevant
    Parameter #2: Type
    Description:
    Teleports the targeted creature(s) in the style specified by the Type field.
    Known values for Type are:
    • 0 ⟶ Default
    • 1 ⟶ Source to Target
    • 2 ⟶ Return to Saved Location
    • 3 ⟶ Exchanged Source and Target
    Info: Return to Saved Location: Teleport effect target to the coordinates stored by SetHomeLocation(P:Point*) for that creature. Defaults to (0.0) if not set.

    #125 (0x7D) Spell Effect: Unlock (Knock)
    Parameter #1: Irrelevant
    Parameter #2: Irrelevant
    Description:
    Applies the knock effect to the targeted creature(s).
    Important: Both parameters should be 0 (zero).
    Important: It is automatically successful but only works on locks that can normally be picked with the Open Locks skill.

    #126 (0x7E) Stat: Movement Modifier Variants: PST
    Parameter #1: Statistic Modifier
    Parameter #2: Type
    Description:
    Applies the modifier value specified by the Statistic Modifier field in the style specified by the Type field.
    The engine allows values for Statistic Modifier from 0 (immobile) to 255 (instantaneous), though behaviour is only consistent in the range 0 – 30.
    Known values for Type are:
    • 0 ⟶ Cumulative Modifier: Movement = Movement + 'Statistic Modifier' value
    • 1 ⟶ Flat Value Modifier: Movement = 'Statistic Modifier' value
    • 2 ⟶ Non-stacking Percentage Modifier: Movement = (Movement * 'Statistic Modifier' value) / 100
    • 5 ⟶ Multiplicative Stacking Percentage Modifier: Movement = (Movement * 'Statistic Modifier' value) / 100 (EE only)
    Note: BG1 does not support the cumulative modifier and will behave as if in flat modifier mode.
    Info: A couple of examples about Multiplicative Stacking Percentage Modifier:
    • 50% * 50% = 25%
    • 150% * 150% = 225%

    #127 (0x7F) Summon: Monster Summoning Variants: IWD2 PST
    Parameter #1: Number
    Parameter #2: Type
    Special: Mode
    Description:
    Summons a number of monsters.
    Each CRE file has a Creature Power Level number. The amount of monsters summoned by this effect depends on this value, the special parameter and if it's used in SPL / ITM or from an external EFF.
    When used in SPL/ITM files, known value for Mode are:
    When used in external EFF files, known value for Mode are:
    The Type field sets which 2DA file to pick the creatures to summon from. The 2da files are monsumX and anisumX, where X = 'Type' + 1. 0–4 are allied , 5–9 are hostile. The specific 2da files used are:
    • 0 ⟶ MONSUM01: Monster Summon 1
    • 1 ⟶ MONSUM02: Monster Summon 2
    • 2 ⟶ MONSUM03: Monster Summon 3
    • 3 ⟶ ANISUM01: Animal Summon 1
    • 4 ⟶ ANISUM02: Animal Summon 2
    • 5 ⟶ MONSUM01: Monster Summon 1 Hostile
    • 6 ⟶ MONSUM02: Monster Summon 2 Hostile
    • 7 ⟶ MONSUM03: Monster Summon 3 Hostile
    • 8 ⟶ ANISUM01: Animal Summon 1 Hostile
    • 9 ⟶ ANISUM02: Animal Summon 2 Hostile

    A custom .2da file can be entered in the resource field (untested in bg1).
    If used from an external effect (.eff), the vvc field controls the bam file played when summoning.

    #128 (0x80) State: Confusion
    Parameter #1: Irrelevant
    Parameter #2: Irrelevant
    Description:
    Applies the confusion effect to the targeted creature(s). The creature will run around uncontrollable, randomly attacking.
    Important: Timing Mode 1 will set STATE_CONFUSED without leaving behind a removable effect.
    Info: STATE_CONFUSED specs:

    #129 (0x81) State: Aid Variants: PST
    Parameter #1: Statistic Modifier
    Parameter #2: Irrelevant
    Description:
    Applies a bless effect to the targeted creature(s).
    In particular:
    • Grants a bonus/penalty to all Saving Throws equal to Statistic Modifier.
    • Grants a bonus/penalty to Current and Maximum Hit Points equal to 'Statistic Modifier'd8.
    • Grants a bonus/penalty to base THAC0 equal to Statistic Modifier.
    • Grants a bonus/penalty to base weapon damage equal to Statistic Modifier.
    • Saving throws, THAC0, and Damage modifiers read only the first byte of Statistic Modifier for their value, the last 3 bytes are ignored.
    • HP modifier uses the whole 4 bytes of Statistic Modifier.
    • HP modifier is always positive (negative values become zero), but because Max HP itself is not bounded, it can overflow into negative amounts (Max HP is 32767).
    • When used in external EFFs, Parameter2 controls the exact amount of HP gained.
    Note:
    • While this opcode is "Non-Cumulative" (it sets values rather than increment), what it really does is stack in reverse standard order.
    • The base STATE set on the CRE file will override any effect applied to them (defaulting to a value of zero).
    • The oldest equipped effect will override newer equipped effects, and any equipped effect will override a non-equipped effect.
    • The oldest non-equipped effect will override newer non-equipped effects.
    Testing in the original BG2 shows that if this opcode is used on an item with “while equipped” duration, it becomes “permanent” when the item is equiped. Meaning that one can equip/unequip the item multiple times to give more and more eg. maximum hitpoints.

    #130 (0x82) State: Bless Variants: PST
    Parameter #1: Modifier
    Parameter #2: Irrelevant
    Description:
    Modifies the THAC0, damage and morale of the target creature(s) by the amount specified by the Modifier parameter.
    In particular:
    Note:
    • While this opcode is "Non-Cumulative" (it sets values rather than increment), what it really does is stack in reverse standard order.
    • The base STATE set on the CRE file will override any effect applied to them (defaulting to a value of zero).
    • The oldest equipped effect will override newer equipped effects, and any equipped effect will override a non-equipped effect.
    • The oldest non-equipped effect will override newer non-equipped effects.
    Note: Modifier only reads the first byte for its value, the last 3 bytes are ignored.
    Note: In IWD2 the effect is non-cumulative and also removes any Bane effects. This does not apply to Doom in other games.

    #131 (0x83) State: Positive Chant Variants: IWD2
    Parameter #1: Modifier
    Parameter #2: Irrelevant
    Description:
    Applies the chant effect to the targeted creature(s).
    This opcode has the same effects as opcode #22, but maintains its own separate STATE.
    This opcode modifies LUCK.
    Note: Multiple chant effects are not cumulative.
    Note:
    • While this opcode is "Non-Cumulative" (it sets values rather than increment), what it really does is stack in reverse standard order.
    • The base STATE set on the CRE file will override any effect applied to them (defaulting to a value of zero).
    • The oldest equipped effect will override newer equipped effects, and any equipped effect will override a non-equipped effect.
    • The oldest non-equipped effect will override newer non-equipped effects.
    Note: Modifier only reads the first byte for its value, the last 3 bytes are ignored.

    #132 (0x84) State: Raise Strength, Constitution, & Dexterity Non-Cumulative
    Parameter #1: Statistic Modifier
    Parameter #2: Irrelevant
    Description:
    Raises the strength, constitution and dexterity of the targeted creature(s) by the value specified by the Statistic Modifier field. A negative value of Statistic Modifier sets the Strength, Constitution and Dexterity of the targeted creature(s) to 25.
    Note:
    • While this opcode is "Non-Cumulative" (it sets values rather than increment), what it really does is stack in reverse standard order.
    • The base STATE set on the CRE file will override any effect applied to them (defaulting to a value of zero).
    • The oldest equipped effect will override newer equipped effects, and any equipped effect will override a non-equipped effect.
    • The oldest non-equipped effect will override newer non-equipped effects.
    Note: Statistic Modifier only reads the first byte for its value, the last 3 bytes are ignored.

    #133 (0x85) Spell Effect: Luck Non-Cumulative
    Parameter #1: Statistic Modifier
    Parameter #2: Irrelevant
    Description:
    Applies the luck effect to the targeted creature(s).
    This opcode has the same effects as opcode #22, but maintains its own separate STATE.
    This opcode modifies LUCK.
    Note:
    • While this opcode is "Non-Cumulative" (it sets values rather than increment), what it really does is stack in reverse standard order.
    • The base STATE set on the CRE file will override any effect applied to them (defaulting to a value of zero).
    • The oldest equipped effect will override newer equipped effects, and any equipped effect will override a non-equipped effect.
    • The oldest non-equipped effect will override newer non-equipped effects.
    Note: Statistic Modifier only reads the first byte for its value, the last 3 bytes are ignored.

    #134 (0x86) State: Petrification
    Parameter #1: Irrelevant
    Parameter #2: Irrelevant
    Description:
    Applies the petrification effect to the targeted creature(s). This effects kills & removes PC's from the party, and ends the game if used on the Protagonist (not in IWDs or PST).
    Important: Both parameters should be 0 (zero).
    Note: Does not remove any other death STATEs from the creature (as opcode #13 does).
    While the end result is otherwise the same as “Stoned Death” applied by opcode #13, this opcode does not actually utilize opcode #13 (internally or otherwise), unlike most (all?) other forms of death.
    Info: STATE_STONE_DEATH specs:
    • Creature is NOT helpless – they still require an attack roll to be hit.
    • Creature is unselectable, Inventory is disabled.
    • Disables the creature's SPECIFIC script.
    • Creature may only take actions listed in both ACTSLEEP.IDS and INSTANT.IDS.
    • Any hostile action against the creature(s) applies an Exploding Stoned Death to them.
    • Kicked from party, retains Inventory, Overlay's Color Index 72 on the entire creature.

    #135 (0x87) Graphics: Polymorph into Specific Variants: BG1 IWD2 PST
    Parameter #1: Irrelevant
    Parameter #2: Type
    Description:
    Polymorphs the targeted creature(s) into the creature specified by the resource key, in the style specified by the Type field.
    Known values for Type are:
    • 0 ⟶ Gain Resistances/statistics (spell-casting disabled)
    • 1 ⟶ Appearance only

    This effect sets POLYMORPHED to 1 but only if Type=0.

    If the resource key is empty, other Polymorph effects are removed, allowing for removal of permanent effects.

    • It will also remove any item in SLOT_MISC19 (Magical Weapon Slot), whether or not it was supplying a Polymorph effect.

    Bug: At least on EE games, this opcode is bugged when you shapechange between two different non-natural forms. In particular:
    • All your equipment will be considered as "unequipped" (in particular, you will lose passive bonuses/maluses granted by your Rings, Amulet, Helmet and the like).
      • Having said that, a timing=4,duration=0 delay between removing the old polymorph and applying the new will bypass this issue.
    Note: When the resource key is empty, and it subsequently clears other Polymorph effects, Type is used just like param#1 of opcode #337.
    As a result, it will clear all Polymorph effects if Type = "-1", else it will only clear Polymorph effects that have a param#2 that matches.
    Note: These two values are not functional (changing them does nothing), but they do get set on the effect.
    Warning: The creature you’re polymorphing into cannot have STATE_SLEEPING, STATE_FROZEN_DEATH, STATE_STONE_DEATH, STATE_FLAME_DEATH, or STATE_DEAD set in its CRE file, or the game will crash.

    #136 (0x88) State: Force Visible
    Parameter #1: Undefined
    Parameter #2: Undefined
    Description:
    Renders the targeted creature(s) partially visible: removes normal invisibility, but not the improved invisibility state; the targeted is visible and attackable, but not targetable by spells.

    The effect has no meaning on visible targets.
    This effect has no duration.
    Important: Leave both parameters at zero for this effect to work.

    #137 (0x89) State: Negative Chant Variants: IWD2
    Parameter #1: Modifier
    Parameter #2: Irrelevant
    Description:
    Applies the chant effect to the targeted creature(s).
    This opcode has the same effects as opcode #22, but maintains its own separate STATE.
    This opcode modifies LUCK.

    This opcode works as the reverse of Chant (positive values decrease Luck, negative values increase Luck).
    Note:
    • While this opcode is "Non-Cumulative" (it sets values rather than increment), what it really does is stack in reverse standard order.
    • The base STATE set on the CRE file will override any effect applied to them (defaulting to a value of zero).
    • The oldest equipped effect will override newer equipped effects, and any equipped effect will override a non-equipped effect.
    • The oldest non-equipped effect will override newer non-equipped effects.
    Note: Statistic Modifier only reads the first byte for its value, the last 3 bytes are ignored.

    #138 (0x8A) Graphics: Character Animation Change Variants: BG1 IWD1 PST
    Parameter #1: Irrelevant
    Parameter #2: Animation Sequence
    Description:
    The targeted creature(s) shows the animation sequence specified by the Animation Sequence field.
    Known values for Animation Sequence are (from SEQ.IDS):
    • 0 ⟶ Attack
    • 1 ⟶ Awake
    • 2 ⟶ Cast
    • 3 ⟶ Conjure
    • 4 ⟶ Damage
    • 5 ⟶ Die
    • 6 ⟶ Turn head
    • 7 ⟶ Ready
    • 8 ⟶ Shoot
    • 9 ⟶ Twitch
    • 10 ⟶ Walk
    • 11 ⟶ Attack (Slash)
    • 12 ⟶ Attack (Backslash)
    • 13 ⟶ Attack (Jab)
    • 14 ⟶ Emerge
    • 15 ⟶ Hide
    • 16 ⟶ Sleep

    #139 (0x8B) Text: Display String
    Parameter #1: String Reference
    Parameter #2: Irrelevant
    Description:
    Displays the strref specified by the String Reference value.
    Info: At least in EE games, it is possible to colorize the string. In order to do so, follow the instructions concerning the colorization of the name of your character during Character Creation.

    #140 (0x8C) Graphics: Casting Glow Variants: IWD2 PST BG1
    Parameter #1: Projectile Index
    Parameter #2: Type
    Description:
    Creates the specified projectile at the targeted creature's location. These effects are usually used for casting glows based on the spell school.
    Known values for Type are:
    • 0 ⟶ Use Projectile Index projectile value.
    • 1 .. 8 ⟶ Crash
    • 9 ⟶ PROJECTL[110], Default file: "CGNECROM.PRO"
    • 10 ⟶ PROJECTL[111], Default file: "CGALTERA.PRO"
    • 11 ⟶ PROJECTL[112], Default file: "CGENCHAN.PRO"
    • 12 ⟶ PROJECTL[113], Default file: "CGABJURA.PRO"
    • 13 ⟶ PROJECTL[114], Default file: "CGILLUSI.PRO"
    • 14 ⟶ PROJECTL[115], Default file: "CGCONJUR.PRO"
    • 15 ⟶ PROJECTL[116], Default file: "CGINVOCA.PRO"
    • 16 ⟶ PROJECTL[117], Default file: "CGDIVINA.PRO"
    Info: Projectile Index must be treated as in spells, i.e.: value in PROJECTL.IDS + 1
    Note: This projectile does not deliver any effects.
    Note: The speed of the projectiles animations ARE affected by STATE_HASTED and STATE_SLOWED of the target.

    #141 (0x8D) Graphics: Lighting Effects Variants: IWD2 PST BG1
    Parameter #1: Target
    Parameter #2: Type
    Description:
    Actually creates the projectile (not just a BAM file) specified by the Type value at the location specified by Target. These effects are usually used for spell hits based on the spell school.
    Known values for Target are:
    • 0 ⟶ Current Location
    • Non-zero ⟶ Target Location

    Known values for Type are:

    Type value PRO Index Animation Palette Notes
    0 118 SHAIR.BAM default (ice)
    1 119 SHEARTH.BAM default (ice)
    2 120 SHWATER.BAM default (ice)
    4 121 SHAIR.BAM SHAIR1.BMP (blue)
    5 122 SHEARTH.BAM SHEARTH1.BMP (blue)
    6 123 SHWATER.BAM SHWATER1.BMP (blue)
    8 124 SHAIR.BAM SHAIR2 (gold)
    9 125 SHEARTH.BAM SHEARTH2 (gold)
    10 126 SHWATER.BAM SHWATER2 (gold)
    12 127 SHAIR.BAM SHAIR3 (green)
    13 128 SHEARTH.BAM SHEARTH3 (green)
    14 129 SHWATER.BAM SHWATER3 (green)
    16 130 SHAIR.BAM SHAIR4 (magenta)
    17 131 SHEARTH.BAM SHEARTH4 (magenta)
    18 132 SHWATER.BAM SHWATER4 (magenta)
    20 133 SHAIR.BAM SHAIR5 (purple)
    21 134 SHEARTH.BAM SHEARTH5 (purple)
    22 135 SHWATER.BAM SHWATER5 (purple)
    24 136 SHAIR.BAM SHAIR6 (red)
    25 137 SHEARTH.BAM SHEARTH6 (red)
    26 138 SHWATER.BAM SHWATER6 (red)
    28 139 SHAIR.BAM SHAIR7 (stone)
    29 140 SHEARTH.BAM SHEARTH7 (stone)
    30 141 SHWATER.BAM SHWATER7 (stone)
    32 142 SPBOOM.BAM MPALETTE[67] (shiny gold)
    33 143 SPBOOM.BAM MPALETTE[65] (really dark gray)
    34 144 SPBOOM.BAM MPALETTE[69] (shiny green)
    35 145 FLMSTRK.BAM default (BG1 flamestrike)
    36 146 HLYMITE.BAM default (BG1 draw upon holy might)
    37 147 SHAIR.BAM default (white)
    38 109 SPDIMNDR.BAM default (BG1 dimension door)
    39 207 SPFDEATH.BAM default (BG1 finger of death)
    Note: These projectiles ignore their entry in PROJECTL.IDS, they cannot be overwritten.
    Their animations ("SHAIR", "SHWATER", etc…) can be though.
    Note: This projectile does not deliver any effects.
    Note: The speed of the projectiles animations ARE NOT affected by STATE_HASTED and STATE_SLOWED of the target.

    #142 (0x8E) Graphics: Display Special Effect Icon Variants: BG1 IWD1 IWD2
    Parameter #1: Irrelevant
    Parameter #2: Icon
    Description:
    Shows the icon specified by the Icon field on the targeted creature(s) portrait.
    All values are drawn directly from "STATES.BAM" in the "GUIBam.bif" starting at sequence 65.

    Icon value BG2 BG(2):EE IWD:EE
    0 Charm Charm Charm
    1 Dire Charm Dire Charm Dire Charm
    2 Rigid Thinking Rigid Thinking Rigid Thinking
    3 Confused Confused Confused
    4 Berserk Berserk Berserk
    5 Intoxicated Intoxicated Intoxicated
    6 Poisoned Poisoned Poisoned
    7 Diseased Diseased Diseased
    8 Blind Blind Blind
    9 Protection From Evil Protection From Evil Protection From Evil
    10 Protection From Petrification Protection From Petrification Protection From Petrification
    11 Protection From Missiles Protection From Missiles Protection From Missiles
    12 Magic Armor Magic Armor Magic Armor
    13 Held Held Held
    14 Sleep Sleep Sleep
    15 Shielded Shielded Shielded
    16 Protection From Fire Protection From Fire Protection From Fire
    17 Blessed Blessed Blessed
    18 Chant Chant Chant
    19 Free Action Free Action Free Action
    20 Barkskin Barkskin Barkskin
    21 Strength Strength Strength
    22 Heroism Heroism Heroism
    23 Invulnerable Invulnerable Invulnerable
    24 Protection From Acid Protection From Acid Protection From Acid
    25 Protection From Cold Protection From Cold Protection From Cold
    26 Resist Fire/Cold Resist Fire/Cold Resist Fire/Cold
    27 Protection From Electricity Protection From Electricity Protection From Electricity
    28 Protection From Magic Protection From Magic Protection From Magic
    29 Protection From Undead Protection From Undead Protection From Undead
    30 Protection From Poison Protection From Poison Protection From Poison
    31 Non-detectable Non-detectable Non-detectable
    32 Good Luck Good Luck Good Luck
    33 Bad Luck Bad Luck Bad Luck
    34 Silenced Silenced Silenced
    35 Cursed Cursed Cursed
    36 Panic Panic Panic
    37 Resist Fear Resist Fear Resist Fear
    38 Haste Haste Haste
    39 Fatigue Fatigue Fatigue
    40 Bard Song Bard Song Bard Song
    41 Slow Slow Slow
    42 Regenerate Regenerate Regenerate
    43 Domination Domination Domination
    44 Hopelessness Hopelessness Hopelessness
    45 Greater Malison Greater Malison Greater Malison
    46 Spirit Armor Spirit Armor Spirit Armor
    47 Chaos Chaos Chaos
    48 Feebleminded Feebleminded Feebleminded
    49 Defensive Harmony Defensive Harmony Defensive Harmony
    50 Champion's Strength Champion's Strength Champion's Strength
    51 Dying Dying Dying
    52 Mind Shield Mind Shield Mind Shield
    53 Energy Drain Energy Drain Energy Drain
    54 Polymorph Self Polymorph Self Polymorph Self
    55 Stun Stun Stun
    56 Regeneration Regeneration Regeneration
    57 Perception Perception Perception
    58 Master Thievery Master Thievery Master Thievery
    59 Energy Drain Energy Drain Energy Drain
    60 Holy Power Holy Power Holy Power
    61 Cloak of Fear Cloak of Fear Cloak of Fear
    62 Iron Skins Iron Skins Iron Skins
    63 Magic Resistance Magic Resistance Magic Resistance
    64 Righteous Magic Righteous Magic Righteous Magic
    65 Spell Turning Spell Turning Spell Turning
    66 Repulsing Undead Repulsing Undead Repulsing Undead
    67 Spell Deflection Spell Deflection Spell Deflection
    68 Fireshield Red Fireshield Red Fireshield Red
    69 Fireshield Blue Fireshield Blue Fireshield Blue
    70 Protection from Normal Weapon Protection from Normal Weapon Protection from Normal Weapon
    71 Protection from Magic Weapon Protection from Magic Weapon Protection from Magic Weapon
    72 Tenser's Transformation Tenser's Transformation Tenser's Transformation
    73 Protection from Magical Energy Spell Shield Spell Shield
    74 Mislead Mislead Mislead
    75 Contingency Active Contingency Active Contingency Active
    76 Protected from the Elements Protected from the Elements Protected from the Elements
    77 Projected Image Projected Image Projected Image
    78 Maze Maze Maze
    79 Imprisonment Imprisonment Imprisonment
    80 Stoneskin Stoneskin Stoneskin
    81 KAI KAI KAI
    82 Called Shot Called Shot Called Shot
    83 Spell Failure Spell Failure Spell Failure
    84 Offensive Spin Offensive Spin Offensive Spin
    85 Defensive Spin Defensive Spin Defensive Spin
    86 Intelligence drained by mind flayer Intelligence drained by mind flayer Intelligence drained by mind flayer
    87 Regenerating Regenerating Regenerating
    88 In Dialog In Dialog In Dialog
    89 In Store In Store In Store
    90 Negative Plane Protection Negative Plane Protection Negative Plane Protection
    91 Ability Score Drained Ability Score Drained Ability Score Drained
    92 Spell Sequencer Active Spell Sequencer Active Spell Sequencer Active
    93 Protected from Energy Protected from Energy Protected from Energy
    94 Magnetized Magnetized Magnetized
    95 Able to Poison Weapons Able to Poison Weapons Able to Poison Weapons
    96 Setting Trap Setting Trap Setting Trap
    97 Glass Dust Glass Dust Glass Dust
    98 Blade Barrier Blade Barrier Blade Barrier
    99 Death Ward Death Ward Death Ward
    100 Doom Doom Doom
    101 Decaying Decaying Decaying
    102 Acid Acid Acid
    103 Vocalize Vocalize Vocalize
    104 Mantle Mantle Mantle
    105 Miscast Magic Miscast Magic Miscast Magic
    106 Magic Resistance Lowered Magic Resistance Lowered Magic Resistance Lowered
    107 Spell Immunity Spell Immunity Spell Immunity
    108 True Seeing True Seeing True Seeing
    109 Detecting Traps Detecting Traps / Illusions Detecting Traps
    110 Improved Haste Improved Haste Improved Haste
    111 Spell Trigger Spell Trigger Spell Trigger
    112 Deaf Deaf Deaf
    113 Enfeebled Enfeebled Enfeebled
    114 Infravision Infravision Infravision
    115 Friends Friends Friends
    116 Shield of the Archons Shield of the Archons Shield of the Archons
    117 Spell Trap Spell Trap Spell Trap
    118 Absolute Immunity Absolute Immunity Absolute Immunity
    119 Improved Mantle Improved Mantle Improved Mantle
    120 Farsight Farsight Farsight
    121 Globe of Invulnerability Globe of Invulnerability Globe of Invulnerability
    122 Minor Globe Of Invulnerability Minor Globe Of Invulnerability Minor Globe Of Invulnerability
    123 Spell Shield Protected from Magical Energy Protected from Magical Energy
    124 Polymorphed Polymorphed Polymorphed
    125 Otiluke's Resilient Sphere Otiluke's Resilient Sphere Otiluke's Resilient Sphere
    126 Nauseated Nauseated Nauseated
    127 Ghost Armor Ghost Armor Ghost Armor
    128 Glitterdust Glitterdust Glitterdust
    129 Webbed Webbed Webbed
    130 Unconscious Unconscious Unconscious
    131 Mental Combat Mental Combat Mental Combat
    132 Physical Mirror Physical Mirror Physical Mirror
    133 Repulse Undead Repulse Undead Repulse Undead
    134 Chaotic Commands Chaotic Commands Chaotic Commands
    135 Draw Upon Holy Might Draw Upon Holy Might Draw Upon Holy Might
    136 Strength of One Strength of One Strength of One
    137 Bleeding Bleeding Bleeding
    138 Rage Rage Rage
    139 Boon of Lathander Boon of Lathander Boon of Lathander
    140 Storm Shield Storm Shield Storm Shield
    141 Enraged Enraged Enraged
    142 Stunning Blow Stunning Blow Stunning Blow
    143 Quivering Palm Quivering Palm Quivering Palm
    144 Entangled Entangled Entangled
    145 Grease Grease Grease
    146 Smite Smite Smite
    147 Hardiness Hardiness Hardiness
    148 Power Attack Power Attack Power Attack
    149 Whirlwind Attack Whirlwind Attack Whirlwind Attack
    150 Greater Whirlwind Attack Greater Whirlwind Attack Greater Whirlwind Attack
    151 Magic Flute Magic Flute Chaos of Battle
    152 Critical Strike Critical Strike Critical Strike
    153 Greater Deathblow Greater Deathblow Greater Deathblow
    154 Deathblow Deathblow Deathblow
    155 Avoid Death Avoid Death Avoid Death
    156 Assassination Assassination Assassination
    157 Evasion Evasion Evasion
    158 Greater Evasion Greater Evasion Greater Evasion
    159 Improved Alacrity Improved Alacrity Improved Alacrity
    160 Aura of Flaming Death Aura of Flaming Death Aura of Flaming Death
    161 Globe of Blades Globe of Blades Globe of Blades
    162 Improved Chaos Shield Improved Chaos Shield Improved Chaos Shield
    163 Chaos Shield Chaos Shield Chaos Shield
    164 Fire Elemental Transformation Fire Elemental Transformation Fire Elemental Transformation
    165 Earth Elemental Transformation Earth Elemental Transformation Earth Elemental Transformation
    166 Unknown Unknown Mind Blank
    167 Unknown Unknown Aid
    168 Unknown Unknown Phased
    169 Unknown Unknown Pain
    170 Unknown Unknown Impervious Sanctity of Mind
    171 Unknown Unknown Petrified
    172 Unknown Unknown Iron Body
    173 Unknown Unknown Animal Rage
    174 Unknown Unknown Exaltation
    175 Unknown Unknown Recitation
    176 Unknown Unknown Blood Rage
    177 Unknown Unknown The Ballad of Three Heroes
    178 Unknown Unknown The Tale of Curran Strongheart
    179 Unknown Unknown Tymora's Melody
    180 Unknown Unknown The Song of Kaudies
    181 Unknown Unknown The Siren's Yearning
    182 Unknown Unknown War Chant of Sith
    183 Unknown Unknown Prayer
    184 Unknown Unknown Righteous Wrath of the Faithful
    185 Unknown Unknown Cat's Grace
    186 Unknown Unknown Hope
    187 Unknown Unknown Courage
    188 Unknown Enchanted Weapon Unknown
    189 Unknown Spirit Ward Spirit Ward
    190 Unknown Ether Gate Ether Gate
    191 Unknown Shamanic Dance Shamanic Dance
    192 Unknown Chaos of Battle Repulsion
    193 Unknown Unknown Increased Movement Rate
    194 Unknown Repulsion Immunity: Abjuration
    195 Unknown Increased Movement Rate Immunity: Conjuration
    196 Unknown Immunity: Abjuration Immunity: Divination
    197 Unknown Immunity: Conjuration Immunity: Enchantment
    198 Unknown Immunity: Divination Immunity: Illusion
    199 Unknown Immunity: Enchantment Immunity: Evocation
    200 Unknown Immunity: Illusion Immunity: Necromancy
    201 Unknown Immunity: Evocation Immunity: Alteration
    202 Unknown Immunity: Necromancy Enchanted Weapon
    203 Unknown Immunity: Alteration Static Charge
    204 Unknown Flaming Fists Entropy Shield
    205 Unknown Frozen Fist Shield of Lathander
    206 Unknown Armor of Faith Greater Shield of Lathander
    207 Unknown Unknown Beltyn's Burning Blood
    208 Unknown Unknown Shroud of Flame
    209 Unknown Unknown Antimagic Shell
    210 Unknown Unknown Flaming Fists
    211 Unknown Unknown Frozen Fist
    212 Unknown Unknown Circle of Bones
    213 Unknown Unknown Armor of Faith
    Note: On non-EE games, the engine refuses to show portrait 79 (Imprisonment).
    Note: In EE games, values 0 – 190 are drawn directly from "STATES.BAM" from sequences 65 – 255, but can be overridden in STATDESC.2DA. Additional values must be added to STATDESC.2DA.

    #143 (0x8F) Item: Create Item in Slot Variants: IWD2 PST
    Parameter #1: Slot
    Parameter #2: Irrelevant
    Description:
    Creates the item specified by the resource key in the slot specified by the Slot field, on the targeted creature(s).
    Known values for Slot (from SLOTS.IDS) are:
    • 0 ⟶ AMULET
    • 1 ⟶ ARMOR
    • 2 ⟶ BELT
    • 3 ⟶ BOOTS
    • 4 ⟶ CLOAK
    • 5 ⟶ GAUNTLETS
    • 6 ⟶ HELMET
    • 7 ⟶ RING_LEFT
    • 8 ⟶ RING_RIGHT
    • 9 ⟶ SHIELD
    • 10 ⟶ FIST
    • 11 ⟶ AMMO
    • 15 ⟶ MISC
    • 35 ⟶ WEAPON
    • 11 ⟶ AMMO0
    • 12 ⟶ AMMO1
    • 13 ⟶ AMMO2
    • 14 ⟶ AMMO3
    • 15 ⟶ MISC0
    • 16 ⟶ MISC1
    • 17 ⟶ MISC2
    • 18 ⟶ MISC3
    • 19 ⟶ MISC4
    • 20 ⟶ MISC5
    • 21 ⟶ MISC6
    • 22 ⟶ MISC7
    • 23 ⟶ MISC8
    • 24 ⟶ MISC9
    • 25 ⟶ MISC10
    • 26 ⟶ MISC11
    • 27 ⟶ MISC12
    • 28 ⟶ MISC13
    • 29 ⟶ MISC14
    • 30 ⟶ MISC15
    • 31 ⟶ MISC16
    • 32 ⟶ MISC17
    • 33 ⟶ MISC18
    • 34 ⟶ MISC19 – Magical Weapon slot
    • 35 ⟶ WEAPON0
    • 36 ⟶ WEAPON1
    • 37 ⟶ WEAPON2
    • 38 ⟶ WEAPON3
    Important: The Magical Weapon Slot does not allow Item Abilities.
    Moreover, unlike opcode #111, this opcode will not "equip" the item that's created in this particular slot.
    Note: When using a non-permanent timing mode, it applies a delayed opcode #123 effect based on the duration, but with an empty resource field, resulting in nothing being removed.

    #144 (0x90) Button: Disable Button Variants: BG1 IWD1 IWD2
    Parameter #1: Irrelevant
    Parameter #2: Button
    Description:
    Disabled the button specified by the Button field. The resource field acts as a matching key to the resource field of the Enable Button, allowing separate enable/disable reasons.
    Known values for Button are:
    • 0 ⟶ Stealth Button
    • 1 ⟶ Thieving Skill Button
    • 2 ⟶ Spell Select Button
    • 3 ⟶ First Quick Spell Button
    • 4 ⟶ Second Quick Spell Button
    • 5 ⟶ Third Quick Spell Button
    • 6 ⟶ Turn Undead Button
    • 7 ⟶ Talk Button
    • 8 ⟶ Use Item Button
    • 9 ⟶ First Quick Item Button
    • 10 ⟶ Bard Song Button (EE only)
    • 11 ⟶ Second Quick Item Button
    • 12 ⟶ Third Quick Item Button
    • 13 ⟶ Innate Ability Button
    • 14 ⟶ Find Traps Button
    • 15 ⟶ Inventory Button (EE only)

    #145 (0x91) Spell: Disable Spell Casting Abilities Variants: IWD2
    Parameter #1: Irrelevant
    Parameter #2: Spell Type
    Special: Show message?
    Description:
    Disables spell casting abilities of the targeted creature(s), in the style specified by the Spell Type field.
    Known values for Spell Type are:
    Known values for Show message? are:
    • 0 ⟶ Yes
    • 1 ⟶ No

    #146 (0x92) Spell: Cast Spell (at Creature) Variants: IWD2 PST
    Parameter #1: Casting Level
    Parameter #2: Type
    Description:
    Casts the spell specified by the resource key at the level specified by the Casting Level field, in the style specified by the Type field. A Casting Level of 0 casts at the level of the casting creature.
    Known values for Type are:
    • 0 ⟶ Normal Casting at specified level (0 for caster level), non-interruptible
    • 1 ⟶ Cast Instantly at caster level
    • 2 ⟶ Cast Instantly at specified level (EE-only)
    Important:
    • When this opcode gets reflected using Type=1, the spell specified by the resource key is cast at the target's Casting Level, not the caster's.
    • When this opcode gets reflected (opcode #197, opcode #198, opcode #199, opcode #202, opcode #203 and opcode #207) using Type=2, the spell specified by the resource key is cast at the specified Casting Level, and it will also affect the original target (as if it wasn't reflected).
    Note:
    • When Type=2, effects in the resource will also bypass Magic Resistance, of every target, as if the caster targeted themselves, regardless of who they target with the spell or this effect.
      • Setting the Ignore Center bit in the subspell's projectile will force its effects to check Magic Resistance on every target, even if the caster did target themselves. Though as its primary function is to cause the projectile to ignore the caster (not "center"), it still won't affect them if it's area-effect.
    Note: If the target is a container, the Type parameter is ignored and treated as 0.
    Info: See opcode #326 for some peculiarities of projectile behaviour for Type=2.

    #147 (0x93) Spell: Learn Spell Variants: IWD2 PST BG1
    Parameter #1: Irrelevant
    Parameter #2: Irrelevant
    Description:
    The targeted creature(s) tries to learn the spell specified by the resource key.
    Learning is successful when 1D100 <= the INT-dependent LEARN_SPELL value in INTMOD.2DA.
    The LEARN_SPELL value is modified for mage specialists, with +15 for same school spells, and -15 for non-same school spells.
    Note:

    #148 (0x94) Spell: Cast Spell (at Point)
    Parameter #1: Casting Level
    Parameter #2: Type
    Description:
    Casts the spell specified by the resource key, at the level specified by the Casting Level field, in the style specified by the Type field. A Casting Level of 0 casts at the level of the casting creature.
    Known values for Type are:
    • 0 ⟶ Normal Casting
    • 1 ⟶ Cast Instantly (ignore Casting Level)
    Note: This opcode does not work if the target is a container in non-ee versions.
    Info: This opcode should generally target Self. In particular:
    • The projectile of the subspell will originate from the target(s) of opcode #148.
    • If the SPL/ITM with opcode #148 targets a location, and doesn't have an area-effect projectile, there will be no target to cast on.
    • If the SPL/ITM with opcode #148 has an area-effect projectile, the spell in opcode #148 would be cast once for every valid target.
    • If this opcode uses the Cast Instantly option, then the target, not the caster, would cast the spell in opcode #148.

    #149 (0x95) (Identify)
    Parameter #1: Undefined
    Parameter #2: Undefined
    Description:
    The use of this effect is unknown, and effect of its parameters are undefined.
    Note: It is still processed, so it will still interact with Spell Turning/Deflection/etc… just like any other effect.

    #150 (0x96) Spell Effect: Find Traps
    Parameter #1: Irrelevant
    Parameter #2: Irrelevant
    Description:
    Applies the find traps effect to the targeted creature(s).
    Important: Both parameters should be 0 (zero).
    Important: This effect is automatically successful, but can only find traps that are normally detectable by the Find Traps skill.

    #151 (0x97) Summon: Replace Creature Variants: IWD2 PST
    Parameter #1: Irrelevant
    Parameter #2: Type
    Description:
    Replaces the targeted creature(s) with creature specified by the resource key, in the style specified by the Type value.
    Known values for Type are:
    • 0 ⟶ Remove targeted creature via opcode #168
    • 1 ⟶ Kill targeted creature via opcode #13*p2=8 (Chunking death)
    • 2 ⟶ Kill targeted creature via opcode #13*p2=4 (Normal death)
    • 3 ⟶ No effect on targeted creature – New creature (specified by the resource key) is spawned at target's location
    Note: Experience is given as normal for a kill (the party still has to be the one applying the effect to earn experience).

    #152 (0x98) Spell Effect: Play Movie Variants: BG1 IWD1 IWD2 PST
    Parameter #1: Irrelevant
    Parameter #2: Irrelevant
    Description:
    Plays the movie specified by the resource key.

    BG2 TOB All EE games BG:EE BG:SoD BG2:EE
    BISLOGO INTRO LOGO – WotC logo DEATHAND – Death SODCIN01 – Siege of Dragonspear Introduction NITEDAY – Sunrise
    BWDRAGON MANAFORG INTRO – Baldur's Gate: Enhanced Edition Introduction SODCIN02 – Boarskyr Bridge DAYNITE – Sunset
    DAYNITE MELISSAN REST – Resting Outside SODCIN03 – Murder DEATHAND – Death
    DEATHAND OUTRO RESTDUNG – Resting in Dungeon SODCIN05 – Epilogue INTRO15F – Shadows of Amn Intro
    END15FPS SARADUSH RESTINN – Resting at Inn FLYTHR01 – Asylum
    ENDCRDIT POCKETZZ BGENTER – Entering Baldur's Gate FLYTHR02 – Underdark
    FLYTHR01 FRARMINN – Friendly Arm Inn FLYTHR03 – Suldanessellar
    FLYTHR02 NASHKELL – Nashkell FLYTHR04 – Hell
    FLYTHR03 CAMP – Bandit Camp INTRO – Throne of Bhaal Intro
    FLYTHR04 MINEFLOD – Flooding Cloakwood Mines POCKETZZ – Pocket Plane Rest
    INTRO15F ELDRCITY – Undercity SARADUSH – Saradush Flythrough
    NITEDAY ENDMOVIE – Epilogue MANAFORG – Mana Forge Flythrough
    RESTCAMP ENDCRDIT – Credits MELISSAN – Melissan's Demise
    RESTDUNG WRECK – Wrecked Ship (Werewolf Island) OUTRO – Closing the Book
    RESTINN BLACKPIT – The Black Pits Introduction HEXXATDR – Dragomyr's Crypt (Hexxat)
    WOTC DORNGORG – Resurrection Gorge (Dorn)
    DORNTREE – Ritual Circle (Dorn)
    NEERAES – Town Bell (Neera)
    RASAADMI – Sharran (Rasaad)
    RASAADTE – Temple (Rasaad)

    #153 (0x99) Overlay: Sanctuary Variants: BG1
    Parameter #1: Irrelevant
    Parameter #2: Mode
    Description:
    Applies the sanctuary effect to the targeted creature(s).

    Known values for Mode are:
    • 0 ⟶ Default overlay, "SANCTRY.BAM"
    • 1 ⟶ Custom overlay, Resource field: Animation file (VVC or BAM)

    This effect sets SANCTUARY to 1.
    Important: Both parameters should be 0 (zero).

    #154 (0x9A) Overlay: Entangle Variants: BG1
    Parameter #1: Irrelevant
    Parameter #2: Mode
    Description:
    Applies the entangle visual effect to the targeted creature(s). Does not actually prevent the target from moving.

    Known values for Mode are:
    • 0 ⟶ Default overlay, "SPENTACI.BAM"
    • 1 ⟶ Custom overlay, Resource field: Animation file (VVC or BAM)

    This effect sets ENTANGLE to 1.
    Important: Both parameters should be set to 0.

    #155 (0x9B) Overlay: Minor Globe Variants: IWD2 BG1
    Parameter #1: Irrelevant
    Parameter #2: Mode
    Description:
    Applies the minor globe visual effect to the targeted creature(s).

    Known values for Mode are:
    • 0 ⟶ Default overlay, "MINORGLB.BAM"
    • 1 ⟶ Custom overlay, Resource field: Animation file (VVC or BAM)

    This effect sets MINORGLOBE to 1.

    #156 (0x9C) Overlay: Protection from Normal Missiles Cylinder Variants: BG1
    Parameter #1: Irrelevant
    Parameter #2: Mode
    Description:
    Applies the protection from normal missiles cylinder visual effect to the targeted creature(s).

    Known values for Mode are:
    • 0 ⟶ Default overlay, "SPSHIELD.BAM"
    • 1 ⟶ Custom overlay, Resource field: Animation file (VVC or BAM)

    This effect sets SHIELDGLOBE to 1.
    Important: Both parameters should be 0 (zero).

    #157 (0x9D) State: Web Effect Variants: BG1
    Parameter #1: Irrelevant
    Parameter #2: Mode
    Description:
    Applies the web effect to the targeted creature(s). The affected creature becomes immobile and its AI scripts stop running.

    Known values for Mode are:
    • 0 ⟶ Default overlay, "WEBENTD.BAM"
    • 1 ⟶ Custom overlay, Resource field: Animation file (VVC or BAM)

    This effect sets HELD and WEB to 1. It also sets the STATE_HELPLESS flag.
    Important: Both parameters should be 0 (zero).
    Note: It cannot be removed by any of the stun/held removal opcodes.

    #158 (0x9E) Overlay: Grease Variants: BG1
    Parameter #1: Irrelevant
    Parameter #2: Mode
    Description:
    Applies the grease visual effect to the targeted creature(s). Does not actually affect the target's movement rate.

    Known values for Mode are:
    • 0 ⟶ Default overlay, "GREASED.BAM"
    • 1 ⟶ Custom overlay, Resource field: Animation file (VVC or BAM)

    This effect sets GREASE to 1.
    Important: Both parameters should be 0 (zero).

    #159 (0x9F) Spell Effect: Mirror Image (Exact Number)
    Parameter #1: Amount
    Parameter #2: Irrelevant
    Description:
    Applies the mirror image effect to the targeted creature(s), creating a number of images equal to the Amount value. Sets STATE_MIRRORIMAGE to true.
    Note:
    • STATE_MIRRORIMAGE will maintain the effects of this opcode, once this opcode expires, but only until you save & reload.
    • If you set STATE_MIRRORIMAGE on a CRE file, it won't do anything by itself.
    • If you later apply opcode #119/opcode #159 to the creature, once it expires, any remaining images will last until struck (absorbing attacks in the process), or until you save & reload.

    #160 (0xA0) Remove Sanctuary Variants: IWD2
    Parameter #1: Irrelevant
    Parameter #2: Irrelevant
    Description:
    Removes the sanctuary effect from the targeted creature(s).
    Important: Both parameters should be 0 (zero).

    #161 (0xA1) Cure: Horror
    Parameter #1: Irrelevant
    Parameter #2: Irrelevant
    Description:
    Removes the horror effect from the targeted creature(s).
    This effect ignores durations attributed to it.

    #162 (0xA2) Cure: Hold Variants: PST
    Parameter #1: Irrelevant
    Parameter #2: Irrelevant
    Description:
    Removes the paralysis effect (opcode #109 and opcode #175) from the targeted creature(s).
    Important: This effect should be used with an instant timing mode.

    #163 (0xA3) Protection: Free Action Variants: BG1
    Parameter #1: Irrelevant
    Parameter #2: Irrelevant
    Description:
    Applies the free action effect to the targeted creature(s), restoring the creatures movement rate to its default value.
    In particular, it only removes opcode #126 effects using param2 = 1 (Set value), if the creature's current movement rate is less than the default movement rate for its current animation (Haste/Slow are not factored in this).
    Important: Does NOT remove Increment or Set % Value effects, nor any using the alternate movement rate opcode, opcode #176.
    Note: Similarly affects opcode #177/opcode #283 effects if the EFF file is using the above values.

    #164 (0xA4) Cure: Drunkeness
    Parameter #1: Undefined
    Parameter #2: Undefined
    Description:
    Clears the drunkeness stat (as modified by opcode #94).

    #165 (0xA5) Spell Effect: Pause Target
    Parameter #1: Irrelevant
    Parameter #2: Irrelevant
    Description:
    Applies the pause effect to the targeted creature(s).
    In particular:
    • Their inventory is still access-able.
    • They are still select-able, and can be issued orders (for instance, activating modal abilities), though not all actions can be taken.
    • It does not interrupt/end modal abilities the creature is currently using.
    • They are not "helpless", an attack roll is still required to hit them.
    • Their scripts stop running.

    This effect sets CasterHold to 1.
    Important: Both parameters should be 0.

    #166 (0xA6) Stat: Magic Resistance Modifier Variants: BG1 PST
    Parameter #1: Statistic Modifier
    Parameter #2: Type
    Description:
    Applies the modifier value specified by the Statistic Modifier field in the style specified by the Type field.
    Known values for Type are:
    • 0 ⟶ Cumulative Modifier: Resistance = Resistance + 'Statistic Modifier' value
    • 1 ⟶ Flat Value Modifier: Resistance = 'Statistic Modifier' value


    The effect modifies RESISTMAGIC.

    #167 (0xA7) Stat: THAC0 Modifier with Missile Weapons Variants: IWD2 PST
    Parameter #1: Statistic Modifier
    Parameter #2: Type
    Description:
    Applies the modifier value specified by the Statistic Modifier field in the style specified by the Type field.
    Known values for Type are:
    • 0 ⟶ Cumulative Modifier: THAC0 = THAC0 + 'Statistic Modifier' value
    • 1 ⟶ Flat Value Modifier: THAC0 = 'Statistic Modifier' value
    • 2 ⟶ Percentage Modifier: THAC0 = (THAC0 * 'Statistic Modifier' value) / 100

    #168 (0xA8) Summon: Remove Creature Variants: PST
    Parameter #1: Irrelevant
    Parameter #2: Irrelevant
    Description:
    Moves the targeted creature(s) to area ".ARE" (a non-existent area). Also known as Script: Destroy Self.

    This deletes non-global creatures from the game (most common usage).

    For Global Creatures:
    • This effect removes the creature from the player's party (if they were in it).
    • The effect will keep the creature out of the party and any other Area for its duration, but does not re-instate the creature once it expires.
    • They can still be recovered through script actions once the effect expires.
    Important: Both parameters should be 0 (zero).

    #169 (0xA9) Graphics: Prevent Special Effect Icon Variants: BG1 IWD1 IWD2
    Parameter #1: Irrelevant
    Parameter #2: Icon
    Description:
    Prevents the icon specified by the Icon field from being displayed.
    All values are drawn directly from "STATES.BAM" in the "GUIBam.bif" starting at sequence 65.
    Known values for Icon are: see opcode #142.
    Important: Only blocks opcode #142 effects with a matching param2 value. Cannot block portrait icons generated by any other mechanic.
    Note: In EE games, can also block opcode #177/opcode #283 effects if their EFF file uses opcode #142 with a matching param2 value.

    #170 (0xAA) Graphics: Play Damage Animation Variants: PST
    Parameter #1: Irrelevant
    Parameter #2: Animation
    Description:
    Plays the damage animation specified by the Animation field.
    It just plays a visual effect, like a far more limited version of opcode #215, and is always instantaneous.
    Known values for Animation are:
    • 0 ⟶ Blood (behind)
      • (EEs) Doesn't display any animation.
    • 1 ⟶ "BLOODS.BAM" Blood (small)
    • 2 ⟶ "BLOODM.BAM" Blood (medium)
    • 3 ⟶ "BLOODL.BAM" Blood (large)
    • 4 ⟶ "SPFIRIMP.BAM" Fire 1
    • 5 ⟶ "SPFIRIMP.BAM" Fire 2
    • 6 ⟶ "SPFIRIMP.BAM" Fire 2
    • 7 ⟶ "SPSHKIMP.BAM" Electricity 1
    • 8 ⟶ "SPSHKIMP.BAM" Electricity 2
    • 9 ⟶ "SPSHKIMP.BAM" Electricity 3
    Info: On EE games:
    • For Animation=4/5/6 and Animation=7/8/9, this opcode actually pulls the animation from DMGTYPES.2DA, each playing both ANIMATION1 (those listed above) and ANIMATION2, for FIRE and ELECTRICITY, respectively. Does not play the SOUND associated with them though.
      • ANIMATION1 is the initial animation, ANIMATION2 is the lingering animation.
    • BGEE/BG2EE use the default * (hardcoded) entries for all damage types, but they can be overridden by setting entries in DMGTYPES.2DA, as IWDEE does.
    • The animations for Animation=1/2/3 are not pulled from DMGTYPES.2DA, they're most likely fully hardcoded.

    #171 (0xAB) Spell: Give Ability Variants: PST
    Parameter #1: Irrelevant
    Parameter #2: Irrelevant
    Description:
    Gives the SPL specified by the resource key to the targeted creature(s).
    Note:

    #172 (0xAC) Spell: Remove Spell Variants: BG1 IWD1
    Parameter #1: Irrelevant
    Parameter #2: Irrelevant
    Description:
    Removes the SPL specified by the resource key from the targeted creature(s) spellbook.

    If the key is not 8 characters long, all memorized copies will be removed.
    If the key is 8 characters, memorized copies will remain intact.

    Important: Both parameters should be 0 (zero). Two 8 characters long keys that are identical up to the 7th character are indistinguishable!

    #173 (0xAD) Stat: Poison Resistance Modifier
    Parameter #1: Statistic Modifier
    Parameter #2: Irrelevant
    Description:
    Modifies the Poison Resistance of the target creature(s) to the value specified by Statistic Modifier.

    The effect modifies RESISTPOISON.
    Warning: In EE v2.3 and prior, including the originals, this opcode always “Set” Poison Resistance; in v2.5 and later, it always “increments” Poison Resistance (it stacks).

    Also known as "Stat: Set Poison Resistance".

    #174 (0xAE) Spell Effect: Play Sound Effect Variants: BG1 IWD1 PST
    Parameter #1: Irrelevant
    Parameter #2: Irrelevant
    Description:
    Plays the sound effect specified by the resource key.
    Known Sound Effects are:
    • EFF_E01 ⟶ Expire Illusionary Spell
    • EFF_E02 ⟶ Expire Abjuration Spell
    • EFF_E03 ⟶ Expire Conjuration Spell
    • EFF_E04 ⟶ Expire Divination Spell
    • EFF_E05 ⟶ Expire Enchantment Spell
    • EFF_E06 ⟶ Expire Invocation Spell
    • EFF_E07 ⟶ Expire Necromancy Spell
    • EFF_E08 ⟶ Expire Alteration Spell
    • EFF_M02 ⟶ Wizard Abjuration Spell Effect
    • EFF_M03 ⟶ Wizard Conjuration Spell Effect
    • EFF_M04 ⟶ Wizard Divination Spell Effect
    • EFF_M05 ⟶ Wizard Enchantment Spell Effect
    • EFF_M07 ⟶ Wizard Necromancy Spell Effect
    • EFF_M08 ⟶ Wizard Alteration Spell Effect
    • EFF_M09 ⟶ Dimension Door
    • EFF_M10 ⟶ Dispel, Expire Illusionary Spell Effect
    • EFF_M11A ⟶ Expire Protection from Petrification
    • EFF_M11B ⟶ Expire Protection from Normal Missiles
    • EFF_M11C ⟶ Protection from Normal Missiles
    • EFF_M12A ⟶ Minor Globe Spell Effect
    • EFF_M12B ⟶ Expire Minor Globe Spell Effect
    • EFF_M13 ⟶ Monster Summoning
    • EFF_M15 ⟶ Wizard Hold Person/Undead/Monster
    • EFF_M16 ⟶ Confusion Spell Effect
    • EFF_M18D ⟶ Melf's Acid Arrow
    • EFF_M20 ⟶ Melf's Minute Meteors Impact
    • EFF_M20 ⟶ Fireball Impact
    • EFF_M26 ⟶ Animate Dead
    • EFF_M28 ⟶ Haste
    • EFF_M29 ⟶ Slow
    • EFF_M31A ⟶ Grease Area Effect Duration
    • EFF_M31B ⟶ Grease Start Area Effect
    • EFF_M31C ⟶ Grease Affect Creature
    • EFF_M32 ⟶ Blur
    • EFF_M33 ⟶ Wizard Illusionary Spell Effect
    • EFF_M34 ⟶ Ice Storm
    • EFF_M35 ⟶ Tree of Life Parasite Destruction
    • EFF_M36 ⟶ Viekang Teleport
    • EFF_M36A ⟶ Skull Trap (untriggered)
    • EFF_M36B ⟶ Skull Trap shatter
    • EFF_M38 ⟶ Teleport Without Error
    • EFF_M41 ⟶ Disintegrate dust
    • EFF_M38 ⟶ ic Armor
    • EFF_M52 ⟶ Protection from Acid/Cold/Electricity/Fire
    • EFF_M53 ⟶ Spell Protection Removal
    • EFF_M55 ⟶ Weapon Protection Effect (e.g. Mantle, etc.)
    • EFF_M58 ⟶ Melf's Minute Meteors creation
    • EFF_M59 ⟶ Fire
    • EFF_M60 ⟶ Stoneskin
    • EFF_M61 ⟶ Polymorph/Shapeshift
    • EFF_M68 ⟶ Melf's Acid Arrow Impact
    • EFF_M69 ⟶ Improved Alacrity/Use Any Item
    • EFF_M70 ⟶ Cacofiend, Gate, Summon Fiend
    • EFF_M71 ⟶ Power Word: Blind, Kill, Silence, Sleep, Stun
    • EFF_M71B ⟶ Wizard Conjure Elemental Mental Combat
    • EFF_M71C ⟶ Wizard Conjure Elemental Mental Combat (Won)
    • EFF_M71D ⟶ Wizard Conjure Elemental Mental Combat (Lost)
    • EFF_M73 ⟶ Summon Hakeashar, Nishruu
    • EFF_M74 ⟶ Imprisonment, Maze 1
    • EFF_M74B ⟶ Imprisonment, Maze 2
    • EFF_M76 ⟶ True Sight/Seeing
    • EFF_M77 ⟶ Wizard Eye
    • EFF_M79 ⟶ Spook
    • EFF_M80 ⟶ Mislead, Project Image, Simulacrum
    • EFF_M82 ⟶ Emotion, Greater Malison, Resist Magic
    • EFF_M86 ⟶ Contingency & Sequencer -type spells
    • EFF_M87 ⟶ Wizard Rapture of the Father
    • EFF_M89 ⟶ Wail of the Banshee
    • EFF_M90 ⟶ Timestop (Start)
    • EFF_M91 ⟶ Timestop (Expire)
    • EFF_M92 ⟶ Mirror Image/Priest Illusionary Spell Effect
    • EFF_M108 ⟶ Dragon's Breath
    • EFF_M110 ⟶ Bigby's Hand Spells
    • EFF_P01 ⟶ Priest Abjuration Spell Effect
    • EFF_P02 ⟶ Priest Conjuration Spell Effect
    • EFF_P03 ⟶ Priest Divination Spell Effect
    • EFF_P04 ⟶ Priest Enchantment Spell Effect
    • EFF_P05 ⟶ Priest Invocation Spell Effect
    • EFF_P06 ⟶ Priest Necromancy Spell Effect
    • EFF_P07 ⟶ Priest Alteration Spell Effect
    • EFF_P08 ⟶ Animal Summoning
    • EFF_P11 ⟶ Hold Animal/Person (Priest)
    • EFF_P12 ⟶ Protection from Evil/Magic Energy/The Elements/Energy
    • EFF_P13 ⟶ Miscast Magic
    • EFF_P14 ⟶ ic Vitriolic Sphere
    • EFF_P15 ⟶ ic Recitation
    • EFF_P16 ⟶ Flame Strike
    • EFF_P18 ⟶ Raise Dead
    • EFF_P19 ⟶ Call Lightning
    • EFF_P21A ⟶ Sanctuary Start
    • EFF_P21B ⟶ Sanctuary Duration
    • EFF_P21C ⟶ Sanctuary Expire
    • EFF_P22A ⟶ Glyph of Warding non-triggered
    • EFF_P22B ⟶ Glyph of Warding Shatter
    • EFF_P24 ⟶ BG1 Armor/Shield
    • EFF_P25 ⟶ Restoration (Lesser, Greater) casting completion
    • EFF_P40 ⟶ Free Action
    • EFF_P43 ⟶ Cloak of Fear start/Nature's Beauty
    • EFF_P51 ⟶ Remove Fear
    • EFF_P54 ⟶ Shillelagh, Spiritual Hammer
    • EFF_P55 ⟶ Silence 15' radius
    • EFF_P56 ⟶ Barkskin
    • EFF_P60 ⟶ Aid
    • EFF_P61 ⟶ Ironskins
    • EFF_P64A ⟶ Creature Summoning Flash
    • EFF_P65 ⟶ Creature Summoning Circle
    • EFF_P66 ⟶ Call Woodland Beings
    • EFF_P69 ⟶ Unholy Word
    • EFF_P70 ⟶ Holy Word
    • EFF_P72 ⟶ Command Word
    • EFF_P73 ⟶ Charm/Domination
    • EFF_P76 ⟶ Flameblade
    • EFF_P77 ⟶ Spiritual Hammer Hit
    • EFF_P80 ⟶ Blade Barrier Creation
    • EFF_P83 ⟶ Bolt of Glory
    • EFF_P89 ⟶ Restoration (Greater, Lesser)
    • EFF_P90 ⟶ Regeneration
    • EFF_P92 ⟶ Earthquake
    • EFF_P93 ⟶ Cause Wounds
    • EFF_P97 ⟶ Armor of Faith wings
    • EFF_P115 ⟶ Implosion
    • EFF_P116 ⟶ Conjure Fallen Deva/Planetar
    • EFF_P117 ⟶ Conjure Deva/Planetar

    #175 (0xAF) State: Hold Variants: BG1 IWD2 IWD1
    Parameter #1: IDS Entry
    Parameter #2: IDS File
    Description:
    Applies a yellow fade in graphic effect to the targeted creature(s), and shows the 'Held' icon, if the targeted creature(s) match the value specified by the IDS Entry field, in the specified IDS File. The affected creature becomes immobile and its AI scripts stop running.
    Known values for IDS File are:
    This effect sets HELD to 1. It also sets the STATE_HELPLESS flag.
    Note: At least in EEs, this opcode automatically displays string STRREF_EFFECT_HOLD in the combat log. It even overrides the entries in EFFTEXT.2DA.

    #176 (0xB0) Stat: Movement Modifier (II)
    Parameter #1: Statistic Modifier
    Parameter #2: Type
    Description:
    (As opcode #126, but unaffected by Free Action).
    Applies the modifier value specified by the Statistic Modifier field in the style specified by the Type field.
    The engine allows values for Statistic Modifier from 0 (immobile) to 255 (instantaneous), though behaviour is only consistent in the range 0 – 30.
    Known values for Type are:
    • 0 ⟶ Cumulative Modifier: Movement = Movement + 'Statistic Modifier' value
    • 1 ⟶ Flat Value Modifier: Movement = 'Statistic Modifier' value
    • 2 ⟶ Non-stacking Percentage Modifier: Movement = (Movement * 'Statistic Modifier' value) / 100
    • 5 ⟶ Multiplicative Stacking Percentage Modifier: Movement = (Movement * 'Statistic Modifier' value) / 100 (EE only)
    Warning: PST: This effect doesn’t exist and always crashes the game.
    Info: A couple of examples about Multiplicative Stacking Percentage Modifier:
    • 50% * 50% = 25%
    • 150% * 150% = 225%

    #177 (0xB1) Use EFF File
    Parameter #1: IDS Entry
    Parameter #2: IDS File
    Description:
    Applies the EFF file specified by the resource key to the targeted creature(s), if the targeted creature(s) match the value specified by the IDS Entry field, in the specified IDS File.
    NB. When using an eff to alter thac0/dmg bonus, set param1 = 0, and param2 = 2.
    Known values for IDS File are:
    Warning: This effect causes a crash if used by a container
    PST: This effect doesn’t exist and always crashes the game.
    IWD2: there was a note to not use this effect in older IESDP.
    Important: EFF files applied by this opcode can be blocked by opcode #101.

    #178 (0xB2) Spell Effect: THAC0 vs. Creature Type Modifier Variants: PST BG1
    Parameter #1: IDS Entry
    Parameter #2: IDS File
    Special: Statistic Modifier
    Description:
    Alters the targeted creature(s) THAC0 against the creature type specified by the IDS Entry field in the specified IDS File.
    The actual modifier value is placed in the Parameter3 field in an external effect.
    Known values for IDS File are:
    Note:
    • It will affect all attacks, not just the weapon it's on, which would be incorrect when dual-wielding.
    • Multiple opcode #178 effects only allow additional targeting, they do not stack their THAC0 bonus.
    Note: This opcode uses a reverse stacking order: the “oldest” effect with matching IDS values for the target is used, not the most recent, and equipped effects take priority over non-equipped effects.

    #179 (0xB3) Spell Effect: Damage vs. Creature Type Modifier Variants: PST BG1
    Parameter #1: IDS Entry
    Parameter #2: IDS File
    Special: Statistic Modifier
    Description:
    Alters the targeted creature(s) damage against the creature type specified by the IDS Entry field in the specified IDS File. The actual modifier value is placed in the Parameter3 field in an external EFF – dice values are ignored.
    Known values for IDS File are:
    Note:
    • It will affect all attacks, not just the weapon it's on, which would be incorrect when dual-wielding.
    • For two-handed/ranged weapons, it can be ideal if a base weapon damage bonus is desired.
    • Damage is multiplied by critical hits (and maybe backstabs).
    • Multiple opcode #179 effects only allow additional targeting, they do not stack their damage bonus.
    Note: This opcode uses a reverse stacking order: the “oldest” effect with matching IDS values for the target is used, not the most recent, and equipped effects take priority over non-equipped effects.

    #180 (0xB4) Item: Can't Use Item Variants: IWD2 PST
    Parameter #1: String Reference
    Parameter #2: Undefined
    Description:
    The targeted creatures(s) cannot use the item specified by the resource key. The strref specified by the String Reference field is displayed when an attempt to use the item is made.

    #181 (0xB5) Item: Can't Use Itemtype Variants: BG1 BG2 IWD1 IWD2 PST
    Parameter #1: Item Type
    Parameter #2: Restriction
    Special: Description note
    Description:
    The targeted creature(s) cannot use the item type specified by the Item Type field for the purpose specified by the Restriction field.
    Known values for Restriction are:
    • 0 ⟶ Equip
    • 1 ⟶ Use

    The message defined in Description note will be displayed whenever this effect is triggered.

    #182 (0xB6) Use EFF file if/while item resource equipped Variants: BG1
    Parameter #1: Unused
    Parameter #2: Unused
    Description:

    This opcode is supposed to apply the EFF file specified in resource2 if the target has the ITM file specified in resource equipped.

    • Since the EFF resource is specified in resource2, this opcode must be used in V2 (external) effects.

    Bug: This opcode is bugged.
    • The internal function it uses to find the item, CGameSprite::FindItemPersonal(), treats the found slot‐index as a boolean, so it always applies the EFF unless the ITM is in SLOT_AMULET.
      • Basically, since all slot indices but SLOT_AMULET are strictly greater than 0, the function will almost always return true, making the opcode useless.
    • Additionally, CGameSprite::FindItemPersonal() doesn't consider SLOT_MISC19 (the Magical Weapon slot, used by opcode #111) as an "equipped" slot (this is probably intentional though...)
    Important: EFF files applied by this opcode bypass / ignore opcode #101.

    #183 (0xB7) Item: Apply Effect Itemtype Variants: IWD2 PST
    Parameter #1: Undetermined
    Parameter #2: Type
    Description:
    Applies the EFF file specified by the resource key to the targeted creature(s) when an ITM of the item type specified by the Type field is equipped.
    Important: EFF files applied by this opcode bypass / ignore opcode #101.
    Note:
    • Ammo (i.e., Arrows, Bullets and Bolts) does not work well with this opcode
      • The Ammo Slots (SLOT_AMMO, SLOT_AMMO1, SLOT_AMMO2, SLOT_AMMO3) are always "Equipped", even when they are not in use
        • In other words: they trigger opcode #183 just by being in a quiver slot, regardless of whether the correct launcher is equipped or even active
          • Having said that, this opcode currently allows detecting a launcher using its automated ammo (such as Shortbow of Gesen)
    • The offhand (SLOT_SHIELD) has the same issue — even when disabled, it's detected by this opcode as equipped
    Warning: This effect has never been seen to work. This is not true for EE games.

    #184 (0xB8) Graphics: Passwall (Don't Jump)
    Parameter #1: Undefined
    Parameter #2: Jump
    Description:
    Allows creatures to be placed in impassable areas, based on the value of the Jump field.
    Known values for Jump are:
    • 0 ⟶ Do Jump from impassable areas
    • 1+ ⟶ Don't Jump from impassable areas
    Warning: PST: This effect doesn’t exist and always crashes the game.
    IWD2: Don’t use.

    #185 (0xB9) State: Hold (II) Variants: BG1 IWD2 PST
    Parameter #1: IDS Entry
    Parameter #2: IDS File
    Description:
    Applies a yellow fade in graphic effect to the targeted creature(s), and shows the 'Held' icon, if the targeted creature(s) match the value specified by the IDS Entry field, in the specified IDS File. The affected creature becomes immobile and its AI scripts stop running.
    This effect is not removed by opcode #162.
    Known values for IDS File are:
    This effect sets HELD to 1. It also sets the STATE_HELPLESS flag.
    Note: At least in EEs, this opcode automatically displays string STRREF_EFFECT_HOLD in the combat log. It even overrides the entries in EFFTEXT.2DA.

    #186 (0xBA) Script: MoveToArea Variants: PST
    Parameter #1: Delay
    Parameter #2: Orientation
    Description:
    Marks the targetted creature(s) as travelling to the area specified by the resource key. The creature appears in the specified area after a delay (specified by the Delay field), with the orientation specified by the Orientation field.
    In particular:
    • Global Creatures ignore the delay.
    • If the creature is already in the specified area, it will ignore the delay.
    • Non-global creatures currently in a different area than specified will use the delay.
    • Delay is measured in 130 seconds, (½ tick), 600 = 20 seconds.
    • On non-EE games, the creature appears at the point specified by the Target Point fields (external EFF files only).
      • On EE games, target(s) appear at Caster's Coordinates in new area (it does not seem to be possible to override through EFFs).
    • Creature is moved to the new area (instantly) and flagged Moving Between Areas until their delay expires (if it's used). It won't be active until the delay expires (it's hidden, cannot be affected by Area-effect, doesn't occupy space). It can still be targeted by the various Everyone targeting modes in the new area while it's still inactive, but similar to maze/imprisonment, effects won't trigger (including poison and similar) on them until they become active.
    Warning: IWD2: there was a note to not use this effect in older IESDP.
    There is some confusion whether the Target (bg1, iwds) or the Caster point field is used.
    Important: Avoid saving during the delay (can lead to lost NPCs or crashes if you load while NPC's are still in transition).

    #187 (0xBB) Script: Store Local Variable Variants: BG1 PST
    Parameter #1: Value
    Parameter #2: Irrelevant
    Description:
    This effect sets the variable specified by the Variable Name field to the value specified by the Value field.
    Important: This effect can only be used in an external effect (CRE/EFF file).
    Info: This effect is always instantaneous (local variables are stored internally, not as effects, while the game is running). All local variables for a CRE are stored as opcode #187 effects on that CRE whenever the game is saved, which will trigger as soon as the game is loaded.

    #188 (0xBC) Spell Effect: Aura Cleansing Variants: PST
    Parameter #1: Irrelevant
    Parameter #2: Stat Value
    Description:
    While ON, the creature displays string STRREF_FEEDBACK_AURA_CLEANSED (EE games only) whenever they begin to cast a spell before their aura would normally clear (i.e. more than once/round). Does NOT affect item usage, only spellcasting.
    Set the Stat Value field to any non-zero value if you want no time needed between spells.

    The effect modifies AURACLEANSING to Stat Value.
    Note: The Stat Value parameter can take any value. If you set it to 0, you will disable the effect (for its duration).

    #189 (0xBD) Stat: Casting Time Modifier Variants: BG1 PST
    Parameter #1: Speed Modifier
    Parameter #2: Type
    Description:
    Alters the Casting Time of spells by the value specified by the Speed Modifier field. This effect is cummulative.
    This effect sets MENTALSPEED to Speed Modifier. Known value for Type are:
    • 0 ⟶ Increment by Speed Modifier
      • Positive values decrease the casting time, negative values increase the casting time.
    • 1 ⟶ Set casting time of every spell to Speed Modifier
      • Negative values set casting time to 0
    • 2 ⟶ Set casting time of spells with casting time higher than Speed Modifier to Speed Modifier
      • Other spells are unaffected.
    Note: Type=2 was tested only for BGEE and might not work on non-EE.

    #190 (0xBE) Stat: Attack Speed Factor Variants: PST
    Parameter #1: Speed Modifier
    Parameter #2: Irrelevant
    Description:
    Alters the weapon's attack speed by the value specified by the Speed Modifier field. This effect is not cumulative. Attack speed ranges from 0 (good) to 10 (bad). This effect acts as a bonus, so a high Speed Modifier is good.
    This effect sets PHYSICALSPEED to Speed Modifier.

    #191 (0xBF) Spell: Casting Level Modifier Variants: BG2 IWD1 PST
    Parameter #1: Modifier
    Parameter #2: Type
    Description:
    Applies the value specified by the Modifier field as a bonus to casting spell levels, of a type specified by the Type field.
    Known values for Type are:
    • 0 ⟶ Mage
    • 1 ⟶ Cleric

    This effect modifies CASTINGLEVELBONUSMAGE or CASTINGLEVELBONUSCLERIC depending on Type.

    #192 (0xC0) Spell Effect: Find Familiar Variants: IWD1 PST
    Parameter #1: Irrelevant
    Parameter #2: Upgrade Marker
    Description:
    Applies opcode #195, opcode #196, and opcode #268 to the summoned familiar.
    The Familiar summoned is based on the alignment of the Protagonist and values stored in the GAM file (non-EE games) or FAMILIAR.2DA (EE games).
    On non-EE games, the Upgrade Marker field is used internally to indicate the familiar has received the ToB upgrades.
    • On EE games, if there is an Upgrade Marker, it isn't on opcode #192 (needs researching...).

    On non-EE games, default creatures for familiars are:
    • Lawful Good ⟶ Pseudo Dragon (FAMPSD)
    • Lawful Neutral ⟶ Ferret (FAMFER)
    • Lawful Evil ⟶ Imp (FAMIMP)
    • Neutral Good ⟶ Pseudo Dragon (FAMPSD)
    • True Neutral ⟶ Rabbit (FAMRAB)
    • Neutral Evil ⟶ Dust Mephit (FAMDUST)
    • Chaotic Good ⟶ Fairy Dragon (FAMFAIR)
    • Chaotic Neutral ⟶ Cat (FAMCAT)
    • Chaotic Evil ⟶ Quasit (FAMQUAS)
    Info: The familiars (CRE) available are locked in once a new game begins (any changes to FAMILIAR.2DA must occur before starting a new game).
    Info: Max HP boost for summoning a familiar (and eventually loss when it dies) is ½ the familiar’s Max HP (including any CON bonus) at the time of summoning.
    Note: The familiar restriction to <CHARNAME> is game-specific. IWDEE has no such restriction, but still only allows a single character to have a familiar at a time. It’s unclear if it’s a specific flag in the GAM file or if it’s engine-side.

    #193 (0xC1) Spell Effect: Invisible Detection by Script Variants: IWD2 PST
    Parameter #1: Irrelevant
    Parameter #2: Stat Value
    Description:
    Allows invisible creatures to be attacked (via scripts) and makes it possible to target improved invisible creatures with spells.

    The effect modifies SEEINVISIBLE to Stat Value.
    Note: The Stat Value parameter can take any value. If you set it to 0, you will disable the effect (for its duration).

    #194 (0xC2) Ignore Dialog Pause Variants: IWD1 IWD2 PST
    Parameter #1: Irrelevant
    Parameter #2: Stat Value
    Description:
    Allows the targeted creature(s) to carry on their actions during dialogs which pause action.

    The effect modifies IGNOREDIALOGPAUSE to Stat Value.
    Note: The Stat Value parameter can take any value. If you set it to 0, you will disable the effect (for its duration).

    #195 (0xC3) Spell Effect: Death Dependent Constitution Loss (Familiar Bond) Variants: IWD1 PST
    Parameter #1: Max HP Modifier
    Parameter #2: Unused
    Parameter #3: Master ID (owner)
    Description:
    When this creature dies, the following is applied to Master ID:
    • Floats Text String STRREF_GUI_MIXED_FAMILIARDIED.
    • Opcode #10: Statistic Modifier = -1, Type = 0, Timing Mode 1.
    • Opcode #18: Statistic Modifier = Max HP Modifier, Type = 0, Timing Mode 1.
      • Opcode #192 sets Max HP Modifier to -½ the familiar's Max HP
    • Opcode #12: Damage Amount = 'this creature's Max HP', Type = MAGIC, Timing Mode 1, Save Type = Bypass Mirror Image.
      • Normally, Maximum HP of Master ID is lowered by Max HP Modifier, and Current HP is lowered by twice Max HP Modifier (since Max Hp Modifier = ½ familiar's Max HP).
        It won't be if the familiar's Max HP is increased (or decreased) permanently after it is summoned (temporary changes to Max HP will be removed by death before it deals damage, and so they won't affect the amount).
        Permanent changes to the familiar's Constitution, enough to alter the bonus HP it grants, will have similar results.
    Known values for Master ID are:
    • -1 ⟶ Not Party Member
    • 0 ⟶ Player1
    • 1 ⟶ Player2
    • 2 ⟶ Player3
    • 3 ⟶ Player4
    • 4 ⟶ Player5
    • 5 ⟶ Player6
    Important: Needs Timing Mode 9, otherwise it will be removed (by death) before it fully triggers.
    Note: Parameter2 is possibly intended to be Damage Type. It uses the same format as opcode #12 (opcode #192 sets it to 0x400000 – MAGIC), but changing it has no effect.

    #196 (0xC4) Spell Effect: Familiar Block Variants: IWD1 PST
    Parameter #1: Irrelevant
    Parameter #2: Irrelevant
    Description:
    If this effect is found on any creature in the GAM file, the engine will block summoning of more familiars.
    Important: The effect should be set with a Timing Mode of 9.

    #197 (0xC5) Spell: Bounce (by Impact Projectile) Variants: IWD1 IWD2 PST
    Parameter #1: Irrelevant
    Parameter #2: Impact Projectile
    Description:
    The targeted creature(s) will reflect effects whose Projectile is equal to the one specified by the Impact Projectile field back to the attacker.

    V1 effects inherit their Projectile from the Extended Header (SPL / ITM), V2 effects specify it manually.

    Values for Impact Projectile are taken from PROJECTL.IDS.

    Important:
    • Area-Effect projectiles only impact through their explosion and/or secondary projectiles, so they are what must be specified in Impact Projectile.
    • Opcode #333, opcode #326 and opcode #146*p2=2 are NOT properly reflected by this opcode – the spell specified by their resource key will affect the original target (as if it wasn't reflected).
    Info:
    • CANNOT reflect effects of Secondary Type MagicAttack.
    • CAN reflect EFF files with resist_dispel = BIT2.
      • Keep in mind that this BIT is automatically set on any effect delivered by an Area-Effect (Explosion) projectile, so this opcode can reflect effects through AoE projectiles.
    • CANNOT reflect effects from self.
    • Maintains animation SPTURNI2 on the target, can be suppressed by opcode #291.
    Note: EFF files delivered by opcode #177/opcode #283 will interact with Reflection separately from the opcode #177/opcode #283 effect that applies them, and only if that opcode #177/opcode #283 effect already got through. If the opcode #177/opcode #283 effect is reflected, then the values in the EFF file won’t matter. Most vanilla EFF files have these fields set to empty/zero to avoid interacting with this opcode.

    #198 (0xC6) Spell: Bounce (by Opcode) Variants: IWD1 IWD2 PST
    Parameter #1: Irrelevant
    Parameter #2: Opcode
    Description:
    The targeted creature(s) will reflect effects containing the opcode specified by the Opcode field.
    Warning: This can cause a crash if two creatures end up reflecting to each other.
    Important: Opcode #333, opcode #326 and opcode #146*p2=2 are NOT properly reflected by this opcode – the spell specified by their resource key will affect the original target (as if it wasn't reflected).
    Info:
    • CANNOT reflect effects of Secondary Type MagicAttack.
    • CAN reflect EFF files with resist_dispel = BIT2.
      • Keep in mind that this BIT is automatically set on any effect delivered by an Area-Effect (Explosion) projectile, so this opcode can reflect effects through AoE projectiles.
    • CANNOT block effects from self.
    • Maintains portrait icon Spell Deflection on the target (this is likely a bug).
    • Maintains animation SPTURNI2 on the target, can be suppressed by opcode #291.
    Note: EFF files delivered by opcode #177/opcode #283 will interact with Reflection separately from the opcode #177/opcode #283 effect that applies them, and only if that opcode #177/opcode #283 effect already got through. If the opcode #177/opcode #283 effect is reflected, then the values in the EFF file won’t matter. Most vanilla EFF files have these fields set to empty/zero to avoid interacting with this opcode.

    #199 (0xC7) Spell: Bounce (by Power Level) Variants: IWD1 IWD2 PST
    Parameter #1: Power Level
    Parameter #2: Irrelevant
    Description:
    The targeted creature(s) will reflect effects whose Power attribute is equal to the one specified by the Power Level field (range: 0 – 9).
    Important: Opcode #333, opcode #326 and opcode #146*p2=2 are NOT properly reflected by this opcode – the spell specified by their resource key will affect the original target (as if it wasn't reflected).
    Info:
    • CANNOT block effects of Secondary Type MagicAttack.
    • CANNOT block EFF files with resist_dispel = BIT2.
      • Keep in mind that this BIT is automatically set on any effect delivered by an Area-Effect (Explosion) projectile, so this opcode cannot reflect effects through AoE projectiles.
    • CANNOT block effects from self.
    • Maintains portrait icon Spell Deflection on the target (this is likely a bug).
    Note: EFF files delivered by opcode #177/opcode #283 will interact with Reflection separately from the opcode #177/opcode #283 effect that applies them, and only if that opcode #177/opcode #283 effect already got through. If the opcode #177/opcode #283 effect is reflected, then the values in the EFF file won’t matter. Most vanilla EFF files have these fields set to empty/zero to avoid interacting with this opcode.

    #200 (0xC8) Spell: Bounce (by Power level, decrementing) Variants: IWD1 IWD2 PST
    Parameter #1: Total Amount
    Parameter #2: Power Level
    Description:
    The targeted creature(s) will reflect a number of effects (specified by the Total Amount field) whose Power attribute is equal to the one specified by the Power Level field (range: 0 – 9).

    The Power level of the first effect to trigger any instance of this opcode's reflection will determine how much this opcode's Total Amount is decremented. Every instance of this opcode on the creature will be decremented by this amount.

    • Example – Minor Spell Turning applies opcode #200 4 times, with parameter2 = (1, 2, 3, and 4), and parameter1 based on caster level. If any of them trigger, all of them will be decremented by the same amount. It doesn't matter that they come from the same spell. If you cast both Spell Turning and Minor Spell Turning, all instances of opcode #200 from both spells would be decremented, even if the spell(effect) triggering it was level 5–9 (above what Minor Spell Turning can reflect).

    On EE games, resource field ⟶ Spell cast when this effect self-terminates, default = Parent + "B".

    Important: As of EE v2.6, spells can no longer be "chained" back and forth by reflection.

    If Caster and Target are both affected by this opcode, the spell from Caster will reflect off Target, but not reflect back off Caster. Previously, whoever had more reflection charges would end up victorious, now the initial target always ends up victorious.
    Info:
    • CANNOT block effects of Secondary Type MagicAttack.
    • CANNOT block EFF files with resist_dispel = BIT2.
      • Keep in mind that this BIT is automatically set on any effect delivered by an Area-Effect (Explosion) projectile, so this opcode cannot reflect effects through AoE projectiles.
    • CANNOT block effects from self.
    • Maintains portrait icon Spell Turning on the target.
    • Maintains animation SPTURNI2 on the target, can be suppressed by opcode #291.
    Note: EFF files delivered by opcode #177/opcode #283 will interact with Reflection separately from the opcode #177/opcode #283 effect that applies them, and only if that opcode #177/opcode #283 effect already got through. If the opcode #177/opcode #283 effect is reflected, then the values in the EFF file won’t matter. Most vanilla EFF files have these fields set to empty/zero to avoid interacting with this opcode.

    #201 (0xC9) Spell: Immunity (by Power Level, decrementing) Variants: IWD1 IWD2 PST
    Parameter #1: Total Amount
    Parameter #2: Power Level
    Description:
    The targeted creature(s) will absorb a number of effects (specified by the Total Amount field) whose Power attribute is equal to the one specified by the Power Level field (range: 0 – 9).

    The Power level of the first effect to trigger any instance of this opcode's deflection will determine how much this opcode's Total Amount is decremented. Every instance of this opcode on the creature will be decremented by this amount.

    On EE games, resource field ⟶ Spell cast when this effect self-terminates, default = Parent + "B".

    Info:
    • CANNOT block effects of Secondary Type MagicAttack.
    • CANNOT block EFF files with resist_dispel = BIT2.
      • Keep in mind that this BIT is automatically set on any effect delivered by an Area-Effect (Explosion) projectile, so this opcode cannot deflect effects through AoE projectiles.
    • CANNOT block effects from self.
    • Maintains portrait icon Spell Deflection on the target.
    • Maintains animation SPMAGGLO on the target, can be suppressed by opcode #291.
    Note: EFF files delivered by opcode #177/opcode #283 will interact with Deflection separately from the opcode #177/opcode #283 effect that applies them, and only if that opcode #177/opcode #283 effect already got through. If the opcode #177/opcode #283 effect is deflected, then the values in the EFF file won’t matter. Most vanilla EFF files have these fields set to empty/zero to avoid interacting with this opcode.

    #202 (0xCA) Spell: Bounce (by School) Variants: IWD1 IWD2 PST
    Parameter #1: Irrelevant
    Parameter #2: School
    Description:
    The targeted creature(s) will turn effects from the school specified by the School field.

    V1 effects inherit their Primary Type (School) from the Header(SPL) / Extended Header(ITM), V2 effects specify it manually.

    Known values for School are:
    • 0 ⟶ NONE
    • 1 ⟶ ABJURATION
    • 2 ⟶ CONJURATION
    • 3 ⟶ DIVINATION
    • 4 ⟶ ENCHANTMENT
    • 5 ⟶ ILLUSION
    • 6 ⟶ EVOCATION
    • 7 ⟶ NECROMANCY
    • 8 ⟶ ALTERATION
    • 9 ⟶ GENERALIST
    • 10 ⟶ WILDMAGE
    Important: Opcode #333, opcode #326 and opcode #146*p2=2 are NOT properly reflected by this opcode – the spell specified by their resource key will affect the original target (as if it wasn't reflected).
    Info:
    • CANNOT reflect effects of Secondary Type MagicAttack.
    • CAN reflect EFF files with resist_dispel = BIT2.
      • Keep in mind that this BIT is automatically set on any effect delivered by an Area-Effect (Explosion) projectile, so this opcode can reflect effects through AoE projectiles.
    • CANNOT reflect effects from self.
    • Maintains portrait icon Spell Deflection on the target (this is likely a bug).
    • Maintains animation SPTURNI2 on the target, can be suppressed by opcode #291.
    Note: EFF files delivered by opcode #177/opcode #283 will interact with Reflection separately from the opcode #177/opcode #283 effect that applies them, and only if that opcode #177/opcode #283 effect already got through. If the opcode #177/opcode #283 effect is reflected, then the values in the EFF file won’t matter. Most vanilla EFF files have these fields set to empty/zero to avoid interacting with this opcode.

    #203 (0xCB) Spell: Bounce (by Secondary Type) Variants: IWD1 IWD2 PST
    Parameter #1: Irrelevant
    Parameter #2: Secondary Type
    Description:
    The targeted creature(s) will turn effects with a secondary type matching that specified by the Secondary Type field.

    V1 effects inherit their Secondary Type from the Header(SPL) / Extended Header(ITM), V2 effects specify it manually.

    Known values for Secondary Type are:
    • 0 ⟶ NONE
    • 1 ⟶ SPELLPROTECTIONS
    • 2 ⟶ SPECIFICPROTECTIONS
    • 3 ⟶ ILLUSIONARYPROTECTIONS
    • 4 ⟶ MAGICATTACK
    • 5 ⟶ DIVINATIONATTACK
    • 6 ⟶ CONJURATION
    • 7 ⟶ COMBATPROTECTIONS
    • 8 ⟶ CONTINGENCY
    • 9 ⟶ BATTLEGROUND
    • 10 ⟶ OFFENSIVEDAMAGE
    • 11 ⟶ DISABLING
    • 12 ⟶ COMBINATION
    • 13 ⟶ NON-COMBAT
    Important: Opcode #333, opcode #326 and opcode #146*p2=2 are NOT properly reflected by this opcode – the spell specified by their resource key will affect the original target (as if it wasn't reflected).
    Info:
    • CANNOT reflect effects of Secondary Type MagicAttack.
    • CAN reflect EFF files with resist_dispel = BIT2.
      • Keep in mind that this BIT is automatically set on any effect delivered by an Area-Effect (Explosion) projectile, so this opcode can reflect effects through AoE projectiles.
    • CANNOT reflect effects from self.
    • Maintains portrait icon Spell Deflection on the target (this is likely a bug).
    • Maintains animation SPTURNI2 on the target, can be suppressed by opcode #291.
    Note: EFF files delivered by opcode #177/opcode #283 will interact with Reflection separately from the opcode #177/opcode #283 effect that applies them, and only if that opcode #177/opcode #283 effect already got through. If the opcode #177/opcode #283 effect is reflected, then the values in the EFF file won’t matter. Most vanilla EFF files have these fields set to empty/zero to avoid interacting with this opcode.

    #204 (0xCC) Spell: Protection (by School) Variants: IWD1 IWD2 PST
    Parameter #1: Irrelevant
    Parameter #2: School
    Description:
    Gives the targeted creature(s) immunity to effects from the school specified by the School field.

    V1 effects inherit their Primary Type (School) from the Header(SPL) / Extended Header(ITM), V2 effects specify it manually.

    Known values for School are:
    • 0 ⟶ NONE
    • 1 ⟶ ABJURATION
    • 2 ⟶ CONJURATION
    • 3 ⟶ DIVINATION
    • 4 ⟶ ENCHANTMENT
    • 5 ⟶ ILLUSION
    • 6 ⟶ EVOCATION
    • 7 ⟶ NECROMANCY
    • 8 ⟶ ALTERATION
    • 9 ⟶ GENERALIST
    • 10 ⟶ WILDMAGE
    Info:
    • CANNOT block effects of Secondary Type MagicAttack.
    • CAN block EFF files with resist_dispel = BIT2.
      • Keep in mind that this BIT is automatically set on any effect delivered by an Area-Effect (Explosion) projectile, so this opcode can deflect effects through AoE projectiles.
    • CANNOT block effects from self.
    • Maintains animation SPMAGGLO on the target, can be suppressed by opcode #291.
    Note: EFF files delivered by opcode #177/opcode #283 will interact with Deflection separately from the opcode #177/opcode #283 effect that applies them, and only if that opcode #177/opcode #283 effect already got through. If the opcode #177/opcode #283 effect is deflected, then the values in the EFF file won’t matter. Most vanilla EFF files have these fields set to empty/zero to avoid interacting with this opcode.

    #205 (0xCD) Spell: Protection (by Secondary Type) Variants: IWD1 IWD2 PST
    Parameter #1: Irrelevant
    Parameter #2: Secondary Type
    Description:
    Gives the targeted creature(s) immunity to effects from the secondary type specified by the Secondary Type field.

    V1 effects inherit their Secondary Type from the Header(SPL) / Extended Header(ITM), V2 effects specify it manually.

    Known values for Secondary Type are:
    • 0 ⟶ NONE
    • 1 ⟶ SPELLPROTECTIONS
    • 2 ⟶ SPECIFICPROTECTIONS
    • 3 ⟶ ILLUSIONARYPROTECTIONS
    • 4 ⟶ MAGICATTACK
    • 5 ⟶ DIVINATIONATTACK
    • 6 ⟶ CONJURATION
    • 7 ⟶ COMBATPROTECTIONS
    • 8 ⟶ CONTINGENCY
    • 9 ⟶ BATTLEGROUND
    • 10 ⟶ OFFENSIVEDAMAGE
    • 11 ⟶ DISABLING
    • 12 ⟶ COMBINATION
    • 13 ⟶ NON-COMBAT
    Info:
    • CANNOT block effects of Secondary Type MagicAttack.
    • CAN block EFF files with resist_dispel = BIT2.
      • Keep in mind that this BIT is automatically set on any effect delivered by an Area-Effect (Explosion) projectile, so this opcode can deflect effects through AoE projectiles.
    • CANNOT block effects from self.
    • Maintains animation SPMAGGLO on the target, can be suppressed by opcode #291.
    Note: EFF files delivered by opcode #177/opcode #283 will interact with Deflection separately from the opcode #177/opcode #283 effect that applies them, and only if that opcode #177/opcode #283 effect already got through. If the opcode #177/opcode #283 effect is deflected, then the values in the EFF file won’t matter. Most vanilla EFF files have these fields set to empty/zero to avoid interacting with this opcode.

    #206 (0xCE) Spell: Protection from Spell Variants: IWD1 PST
    Parameter #1: String Reference
    Parameter #2: Irrelevant
    Description:
    Gives the targeted creature(s) immunity from the spell specified in the resource key. The strref specified by the String Reference field is displayed when the spell is absorbed.
    Bug: As of EE v2.6, String Reference is bound by
    // NOTE: strrefs [0xF00000—0xF00537] index into enginest.2da, with the row being "strref - 0xF00000"
    
    if (!pEffect->m_sourceRes.IsValid() || (pImmunitySpell->m_error != 0xf00074 && pImmunitySpell->m_error != 0xf00080))
    {
    	uint nNewFeedback = 0xffffffff;
    	if (pImmunitySpell->m_error == 0xf00074) {
    		nNewFeedback = 0xf00073;
    	}
    	pImmunitySpell->m_error = nNewFeedback;
    }
    
    Basically, String Reference has to be 0xF00074 (STRREF_FEEDBACK_EVADE_RESOURCE) or 0xF00080 (STRREF_FEEDBACK_IMMUNE_RESOURCE) for the engine to display it.

    NOTE: the engine only allows 0xF00074 / 0xF00080 — it doesn’t care that STRREF_FEEDBACK_IMMUNE_RESOURCE (99389 on BG2:EE) is what 0xF00080 eventually resolves to, it’s not 0xF00080. opcode #206’s String Reference should look like this in Near Infinity (right click ⇒ Edit as hex number):
    op206_string_reference
    Info: At least in EEs, this opcode can block EFF files too.
    In order to do so, both the Resource field of opcode #206 and the Parent Resource field of the EFF file must be the same string (max. 8 character long); moreover, you must set the Resource Type field of the EFF file to Spell.

    #207 (0xCF) Spell: Bounce (by Resource) Variants: IWD1 IWD2 PST
    Parameter #1: Irrelevant
    Parameter #2: Irrelevant
    Description:
    The targeted creature(s) will reflect the SPL file specified by the resource key.
    Important: Opcode #333, opcode #326 and opcode #146*p2=2 are NOT properly reflected by this opcode – the spell specified by their resource key will affect the original target (as if it wasn't reflected).
    Info:
    • Similar to opcode #206, this can only reflect EFF files if their Parent Type is set to Spell.
    • CANNOT reflect effects of Secondary Type MagicAttack.
    • CAN reflect EFF files with resist_dispel = BIT2.
      • Keep in mind that this BIT is automatically set on any effect delivered by an Area-Effect (Explosion) projectile, so this opcode can reflect effects through AoE projectiles.
    • CANNOT reflect effects from self.
    • Maintains portrait icon Spell Deflection on the target (this is likely a bug).
    • Maintains animation SPTURNI2 on the target, can be suppressed by opcode #291.
    Note: EFF files delivered by opcode #177/opcode #283 will interact with Reflection separately from the opcode #177/opcode #283 effect that applies them, and only if that opcode #177/opcode #283 effect already got through. If the opcode #177/opcode #283 effect is reflected, then the values in the EFF file won’t matter. Most vanilla EFF files have these fields set to empty/zero to avoid interacting with this opcode.

    #208 (0xD0) HP: Minimum Limit Variants: PST
    Parameter #1: Minimum Value
    Parameter #2: Irrelevant
    Description:
    The targeted creature(s) HP value will not drop below the value specified by the Minimum Value field.
    This effect sets MINHITPOINTS to Minimum Value.
    Note:
    • Minimum Value values 65536 to 98303 will set an only allowed hit point value (HP can't be higher or lower), each representing 'Minimum Value' value - 65536, so 0 to 32767.
    • Values 32768 to 65535 do this as well, but all result in negative HP amounts, so not usable, as they will result in the same bugged non-death as opcode #17 reducing HP to 0.
    • All values higher than 98303 just repeat loop over from -32768 to 32767.
    • Any positive value will also grant the creature immunity to directly applied opcode #13 effects. Those applied indirectly will still kill the creature, notably by opcodes #55, #134, #151, #209, and #238.

    #209 (0xD1) Death: Kill 60HP Variants: IWD1 IWD2 PST
    Parameter #1: Irrelevant
    Parameter #2: Irrelevant
    Description:
    Instantly kills the targeted creature(s), if the targeted creature(s) has less than 60 HP.
    More specifically, it functions by applying opcode #13 (Death Type = 4 // Normal Death).
    Note: Immunity to opcode #13 is not sufficient to block this effect unless it’s granted through 7EYES.2DA.

    #210 (0xD2) Spell Effect: Stun 90HP Variants: IWD2 PST
    Parameter #1: Irrelevant
    Parameter #2: Irrelevant
    Description:
    Applies the stun effect to the targeted creature(s), if the targeted creature(s) has less than 90 HP.
    The duration of the effect is:
    • 1 to 29 HP ⟶ stunned for 4d4 rounds
    • 30 to 59 HP ⟶ stunned for 2d4 rounds
    • 60 to 89 HP ⟶ stunned for 1d4 rounds
    More specifically, it functions by applying opcode #45.
    Note: Immunity to opcode #45 is sufficient to block the stun effect, but without immunity to opcode #210 it will still generate an erroneous ~Stunned~ string display.

    #211 (0xD3) Spell Effect: Imprisonment Variants: IWD1 IWD2 PST
    Parameter #1: Irrelevant
    Parameter #2: Irrelevant
    Description:
    Applies the imprisonment effect to the targeted creature(s).
    The field at 0xcc can be used to prevent death related effects (e.g. removal from party) running on the targetted creature(s) – not verified on EE games (it is very likely that this was replaced by giving Maze a specified duration option).

    Aside from kicking from the party, or granting experience for a kill, the targeted creature(s) is suspended from the area:
    • They can not be targeted by Area-Effect projectiles, only with effect targets Party or Everyone or similar.
    • They are not detectable by any script triggers, though they may still be targeted with actions directly by scriptname or partyslot.
    • Excluding Opcodes #211/#212/#213:
      • All other effects on the creature are suppressed until this effect is removed.
    • Excluding opcode #212:
      • Delayed effects that would trigger will be further delayed until this effect is removed.
      • Effects that would expire will not expire until this effect is removed.

    #212 (0xD4) Protection: Freedom Variants: IWD1 IWD2 PST
    Parameter #1: Irrelevant
    Parameter #2: Irrelevant
    Description:
    Applies the freedom effect to the targeted creature(s).
    Removes Imprisonment and Maze, and EFF files using those opcodes.

    #213 (0xD5) Spell Effect: Maze Variants: IWD1 IWD2
    Parameter #1: Irrelevant
    Parameter #2: Type
    Special: Icon
    Description:
    Applies the maze effect to the targeted creature(s).

    Suspends the creature in the same manner as Imprisonment, disabling Inventory and removing all active Portrait Icons (except its own), but without kicking or granting exp. It actually removes itself with a delayed opcode #212 effect (that it also applies), not by expiring. Blocking the opcode #212 effect will prevent maze from ending.


    Known values for Type are:
    • 0 ⟶ Use intelligence based duration (via INTMOD.2DA)
    • 1 ⟶ Use Duration field

    The duration of the effect is set in INTMOD.2DA, default values are:
    • 0 to 2 int ⟶ 20d4 rounds
    • 3 to 5 int ⟶ 10d4 rounds
    • 6 to 8 int ⟶ 5d4 rounds
    • 9 to 11 int ⟶ 4d4 rounds
    • 12 to 14 int ⟶ 3d4 rounds
    • 15 to 17 int ⟶ 2d4 rounds
    • 18+ int ⟶ 1d4 rounds

    Icon defines the index from STATDESC.2DA for custom portrait icons (EE only). Default value is Maze.


    #214 (0xD6) Spell Effect: Select Spell Variants: IWD1 BG2
    Parameter #1: Irrelevant
    Parameter #2: Type
    Description:
    Uses the 2da specified by the resource key to display multiple spell options, based on the Type field.
    Known values for Type are:
    • 0 ⟶ Use resource 2da list
    • 1 ⟶ Known mage spells, except Identify ("SPWI110"), and Nahal's Reckless Dweomer ("SPWI124")
    • 2 ⟶ Known mage spells, except the above, and those with spell flag Ignore Wild Surge
    When Type is 0, the 2da file must follow the following format:
    2DA V1.0
    ****
    ResRef		Type
    name		RESREF			Casting Type
    name		RESREF			Casting Type
    

    name can be any string of characters/numbers without any whitespace, and does not need to be unique. RESREF is the filename of the spell without its .SPL extension.
    As far as Casting Type is concerned:
    • 0/1 ⟶ Spell completely mimics the mechanics of casting a spell from a quick-cast slot (including requiring and expending a memorization of the spell)
    • 2 ⟶ It either does nothing or crashes, depending on the spell.
    • 3 ⟶ Ignores Spells/Round rule, ignores memorization.
    • 4 ⟶ Ignores Spells/Round rule, ignores memorization, spellcasting cannot be interrupted by damage, uses normal casting speed.
    • 5 ⟶ Ignores Spells/Round rule, cast instantly, even if the game is paused, can be cast without memorization, but will decrement memorization if exists.
    Important: The target of this effect must be the only currently selected character when it triggers, and remain the selected character until a spell is chosen, or the menu will terminate.
    Note: The presence of this effect in any of a spell’s ability headers will force any Wild Surge of that spell to use the ‘Cast Normal’ result.

    #215 (0xD7) Graphics: Play 3D Effect Variants: IWD1 IWD2
    Parameter #1: Undetermined
    Parameter #2: Play where?
    Description:
    Plays the BAM/VVC specified by the resource key, in the style specified by the Play where? value.
    Known values for Play where? are:
    • 0 ⟶ Play on target (not attached)
    • 1 ⟶ Play on target (attached)
    • 2 ⟶ Play on point

    Known BAM files are:
    • acidblob ⟶ Ankheg Spit
    • aciddth ⟶ Acid Hit
    • bloodcr ⟶ Blood Splash
    • bloodl ⟶ Blood Splash (Large)
    • bloodm ⟶ Blood Splash (Medium)
    • bloods ⟶ Blood Splash (Small)
    • burnhand ⟶ Burning Hands
    • cgabjura ⟶ Casting Glow (Abjuration)
    • cgaltera ⟶ Casting Glow (Alteration)
    • cgconjur ⟶ Casting Glow (Conjuration)
    • cgdivina ⟶ Casting Glow (Divination)
    • cgenchan ⟶ Casting Glow (Enchantment)
    • cgillusi ⟶ Casting Glow (Illusion)
    • cginvoca ⟶ Casting Glow (Invocation)
    • cgnecrom ⟶ Casting Glow (Necromancy)
    • colrspry ⟶ Colour Spray
    • explode ⟶ Crash
    • fire ⟶ Crash
    • firebrn ⟶ Small Dot of Fire
    • flml ⟶ Bolt Of Flame (Large)
    • flmm ⟶ Small Bolt Of Flame (Medium)
    • flms ⟶ Tiny Bolt Of Flame (Small)
    • flmstrk ⟶ BG Flame Strike
    • glphwrdh ⟶ Glyph of Warding (Part)
    • glphwrdt ⟶ Glyph of Warding (Full)
    • greased ⟶ Blob Of Grease
    • greaseh ⟶ Blob Of Grease
    • grndglow ⟶ Grey round ground Explosion
    • hlymite ⟶ Call Upon Holy Might
    • magicstn ⟶ Magic Stone
    • minorglb ⟶ Minor Globe of Invulnerability
    • mmagich ⟶ Burst of Yellowish Magic (like Bolt Of Glory)
    • sanctry ⟶ Sanctuary
    • settrap ⟶ Spell Icon
    • shacid ⟶ Acid Damage
    • shair ⟶ Green mist rises from head to air above
    • sharea ⟶ Exploding Yellow Ring above head
    • shearth ⟶ Blue drops from chest drop on ground
    • shglyph ⟶ Rubbish
    • shskull ⟶ Rubbish
    • shwater ⟶ Potion of Healing
    • sklh ⟶ Skull trap (moving)
    • sklt ⟶ Skull Trap (stationary)
    • skybolt ⟶ Call Lightning
    • spabjura ⟶ Four cornered blue magic joins in middle
    • spagscho ⟶ Unexplainable
    • spaltera ⟶ Coloured magic rising from ground (Like Teleport Field)
    • spanisum ⟶ Opening Plant (find familiar)
    • sparmour2 ⟶ Magic helm forms above target
    • sparmouri ⟶ golden armour joins together at chest of caster (armour)
    • sparmour ⟶ snowball like balls swirl around target
    • spattck1 ⟶ Globe of magic (Like ruby ray of reversal)
    • spattck2 ⟶ swirling small ball of magic (umber hulk confusion)
    • spbaserd ⟶ Golden Light with white rays of light coming from middle
    • spbasewt ⟶ Blue Light with white rays of light coming from middle
    • spbdbur ⟶ Lime green blob of magic
    • spbdburs ⟶ Direct Vertical Strike of greenish blue magic
    • spbdimsp ⟶ Greenish burst of magic upon target
    • spbehbla ⟶ Purplish magic swirling on target
    • spbehray ⟶ Fire like blob
    • spbhandi ⟶ Small ball of burning red fire
    • spblbbtm ⟶ Blade Barrier (bottom half)
    • spblbtop ⟶ Blade Barrier (Top Half)
    • spbleshi ⟶ 3 Golden rays converging upon target
    • spblood ⟶ Chunk of flesh when body explodes due to too much damage
    • spboom ⟶ Mushroom like cloud of fire
    • spbrnhnd ⟶ Burning Hands
    • spburn ⟶ Tiny blob of fire
    • spburns1 ⟶ Round fire
    • spcagemz ⟶ Maze (Only top 2 grates)
    • spcallli ⟶ Strike of Lightning (not lightning strike)
    • spccmdsi ⟶ Purplish red burst of magic
    • spccolde ⟶ Round of blue ice with a trail of smoke smashing on target
    • spccoldl ⟶ Travelling round blue ice with a trail of smoke
    • spccwoui ⟶ Burst of Bluish light bursting on target
    • spchlgt1 ⟶ Chain Lightning
    • spchlgt2 ⟶ Chain Lightning
    • spchlgt3 ⟶ Chain Lightning
    • spchchromi ⟶ Orb of Translucent bluish green magic
    • spchrorb ⟶ Chromatic Orb
    • spchunks ⟶ Ice Chunks (when target is frozen and smashed)
    • spclcomp ⟶ Blue cloud of mist
    • spclkfri ⟶ Blue Cloak forming on target (cloak of fear)
    • spcloud1 ⟶ Blue Cloud of mist
    • spcloud2 ⟶ A better Blue cloud of mist
    • spcloud3 ⟶ Small cloud of blue mist
    • spcloudi ⟶ Burst of orangey red magic
    • spcmwoui ⟶ Blue magic on target increases then shrinks and disappears
    • spcomend ⟶ Tentacle Whip
    • spcomett ⟶ A Purple Comet
    • spcomstt ⟶ A whip
    • spconfus ⟶ Confusion a ring of intertwined birds
    • spcontin ⟶ A large white star forming a book which blasts white light
    • spcrtwpn ⟶ Yellow and white rays circle forming hammer and anvil
    • spcspra2 ⟶ Coloured ball of magic
    • spcspra3 ⟶ Larger more clearer ball of magic
    • spcsprai ⟶ Same as last one
    • spcswoui ⟶ Blast of greenish yellowey white magic
    • spdeath3 ⟶ Rising spirit (Finger of Death)
    • spdimdr1 ⟶ Bg open dimension door
    • spdimdr2 ⟶ Bg opening dimension door
    • spdimndr ⟶ Bg2 dimension door
    • spdispma ⟶ Swirling balls of blue magic (dispel magic)
    • spdivina ⟶ Five balls of blue magic separating very small
    • spdusty2 ⟶ Disintegration dust
    • spelltin ⟶ Rubbish green square
    • spentaai ⟶ Green vine from ground
    • spentaci ⟶ A swarm of green vines
    • spentaxi ⟶ A swarm of vines that disappear after intertwining
    • spfbsmal ⟶ White Ball of fire
    • spfdeath ⟶ Rising Spirit (Finger of Death)
    • spfdeth3 ⟶ Rising Spirit (Finger Of Death)
    • spfearef ⟶ Face on ground (Horror)
    • spfinodi ⟶ A dieing Rose
    • spfire ⟶ Flame Damage
    • spfirebl ⟶ Fireball
    • spfirepl ⟶ Burst of fire in middle with a circle of white light leaving
    • spfiresb ⟶ Fire Shield Blue
    • spfiresr ⟶ Fire Shield Red
    • spfiret ⟶ Small Ball of Fire
    • spfiretr ⟶ Better Small Ball Of Fire
    • spfirimp ⟶ Fire Damage
    • spfirsdi ⟶ Burst of Flames
    • spfirsed ⟶ Fire Seed
    • spfladow ⟶ Flame Strike
    • spflames ⟶ Burst of Flames
    • spflast1 ⟶ Burst Of Flames (Different)
    • spflast2 ⟶ Flame Strike (different)
    • spfleshs ⟶ Swirling white rays (when Irenicus petrifies people)
    • spflmarr ⟶ Flame Arrow (more real)
    • spflmbld ⟶ Rising Sword
    • spflmsti ⟶ Bottom half Of Icewind Dale Style Flame Strike
    • spflsrin ⟶ Central flaming ball ejecting 2 rings of white light
    • spflstri ⟶ Flamestrike with burning bright yellow at bottom
    • spfracti ⟶ a chain breaking in half
    • spfstrmi ⟶ Small meteor swarm
    • spgenhla ⟶ Ray of bluish light with rays of yellow light (Holy Power)
    • spgenhlb ⟶ Ray Above but forming (the one above forms and finishes)
    • spgflsh1 ⟶ Burst of yellow red magic (when monsters unsummon)
    • spglyphi ⟶ Travelling Coloured glyph of warding
    • spglypti ⟶ Floating coloured glyph
    • spgreaai ⟶ Purple oval of magic
    • spgreaci ⟶ same oval of magic but still the one above forms and goes
    • spgreaxi ⟶ Blob of purple goo exploding on target
    • spgreorb ⟶ green Orb
    • sphandat ⟶ A electrical looking hand appearing
    • sphealin ⟶ Healing
    • sphleft ⟶ left Half of Icewind style Heal
    • sphlhi01 ⟶ left half of icewinds Heal
    • sphlhi02 ⟶ Right half of icewinds heal
    • sphlybls ⟶ Aid
    • sphlysm2 ⟶ Lighter Ray of Holy Smite
    • sphlysm3 ⟶ Darker ray of Holy Smite
    • sphlysmt ⟶ Yellow ray of light striking target
    • sphollyw ⟶ A swirl of blue magic forming then exploding into many doves
    • spholmig ⟶ Already formed circle of magic with white rays shining out
    • spholymt ⟶ Yellow ray with bluish mist on side vertically on target
    • spholywd ⟶ Light blue ray of vertical energy with whitish mist on side
    • sphorpuf ⟶ Yellowish puff of smoke
    • sphorwil ⟶ Abi Dalzims horrid wilting
    • sphright ⟶ Right hands side of Icewinds spell heal
    • spicestm ⟶ Ice storm
    • spillus ⟶ a ball of blue magic swirling
    • spilusio ⟶ a ball of blue magic swirling
    • spinsect ⟶ Black swarm of Insects
    • spiplaai ⟶ Brown swarm of insects
    • spiplari ⟶ Brown swarm of insects
    • spiplaui ⟶ Forming swarm of brown insects
    • splightb ⟶ Lightning Bolt
    • spmagglo ⟶ Minor Spell Deflection
    • spmagmis ⟶ Magic Missile
    • spmetswa ⟶ Flaming ball of fire
    • spmetswm ⟶ Meteor Swarm
    • spmetswn ⟶ More Balls of Meteor swarm
    • spmindat ⟶ The swirling ball above head when you are held
    • spmirroi ⟶ A shining blue mirror
    • spmonsum ⟶ Monster Summoning
    • spnecro1 ⟶ Ring of circling reddish purplish magic
    • spnpoisi ⟶ Icewinds style of cure disease
    • spnwchrm ⟶ Green orbs rising from ground to head (charm)
    • sppfirai ⟶ Produce Fire
    • sppfirri ⟶ smaller burst of fire
    • sppfirxi ⟶ larger burst of flame
    • spplanar ⟶ Large yellow orb forming then shattering
    • sppolymp ⟶ Polymorph
    • spportal ⟶ Round portal forming
    • sppowwrd ⟶ One of the red Power Word effects
    • spprayri ⟶ Icewind Dales style of prayer
    • spprism2 ⟶ swirling orb of colour
    • spprism3 ⟶ swirling ball of colour
    • spprismt ⟶ swirling ball of colour
    • spproimg ⟶ Crack in ground forming some round circle
    • spprotec ⟶ Protection from normal weapons
    • spraised ⟶ animate dead
    • spraisei ⟶ growing rose (raise dead)
    • sprdrabu ⟶ Vertical strike of red magic
    • sprdrae2 ⟶ burst of yellow fire like magic
    • sprdraex ⟶ burst of yellow fire like magic
    • sprdraim ⟶ puff of red smoke exploding on target in a ring
    • sprdrasi ⟶ puff of red smoke formed and it stays formed
    • spresuri ⟶ growing silver rose (resurrection)
    • spring ⟶ grey travelling ray
    • sprmpari ⟶ Icewind Style of remove paralysis
    • sprotect ⟶ Protection from evil
    • sprwra2i ⟶ A blue symbol on the ground with rays of blue rising from it
    • sprwrati ⟶ green ray forming and bursting down on target
    • spsarmour ⟶ Forming wings
    • spschgi ⟶ Purple energy with a black ring around it swirling
    • spscorch ⟶ Fire thing again (so many of these)
    • spscoric ⟶ same as above
    • spsdbur ⟶ A ray of misty grey magic vertically striking fast
    • spsdimpa ⟶ Great sparks of white bursting
    • spsdrbur ⟶ a ray of misty grey magic vertically striking
    • spshadow ⟶ Nothing
    • spshield ⟶ Prot normal missiles
    • spshkimp ⟶ Electrical damage effect
    • spskullt ⟶ red eyed skull with a trail of green smoke
    • spsmkjet ⟶ nothing
    • spsmold ⟶ nothing
    • spsmpuff ⟶ white round puff of smoke disappearing
    • spsnrayi ⟶ Sunray
    • spsohopi ⟶ Symbol forming and ejecting a ray of magic (symbol hopeless)
    • spspaini ⟶ Symbol of Pain
    • spsparks ⟶ sparks
    • spspeart ⟶ Bolt of Glory
    • spspmaze ⟶ 4 lines forming a sharp cage of spears
    • spstink ⟶ small puff of smoke rising from ground
    • spstones ⟶ stoneskin
    • spstrenh ⟶ Whiteray shooting down forming a puff of magic on target (lesser restoration)
    • spstreni ⟶ Strength of One
    • spsturni ⟶ Minor Spell Turning
    • spsumgte ⟶ gate (ring of bones)
    • spsummon ⟶ Call Woodland Beings
    • spsunray ⟶ Larger sunray
    • sptrapbb ⟶ Snare Trap
    • sptrusee ⟶ Opening Eye (clairvoyance)
    • spturni2 ⟶ Already formed spell turning
    • spunhbl2 ⟶ unholy smite
    • spunhbl3 ⟶ darker version of above
    • spunhblt ⟶ Red bolt shooting
    • spunholy ⟶ Am orange glow exploding into many doves
    • spwi124a ⟶ Spell Icon
    • spwi124b ⟶ Spell Icon
    • spwi124c ⟶ Spell Icon
    • spwirbla ⟶ Some ring forming a circle with other lines coming from it with blades arching up forming some cage
    • spwrdfld ⟶ Teleport Field
    • stnkcldd ⟶ Stinking Cloud
    • stnkcldt ⟶ Travelling Ball of Stinking Cloud
    • travel ⟶ An orb of swirling magic orb that shoots out to everyone
    • trbloba ⟶ green blob forming and splatting on target
    • trblobb ⟶ green blob forming and splatting on target
    • trdartst ⟶ Shooting knife looking things
    • trgooyaa ⟶ green blob forming and splatting on target
    • trgooybb ⟶ green blob forming and splatting on target
    • trspeart ⟶ Spear rising from ground striking target
    • trventaa ⟶ Bottom part of opening vent
    • trventbb ⟶ top part of opening vent which sprays out mist
    • webbomb ⟶ A burst of webs
    • webc ⟶ entangled in web
    • webentd ⟶ Other version of web
    • webenth ⟶ Entangling web
    • webentt ⟶ Travelling ball of shining web
    Note: Play where? 0 or 2 also supports VEF files.

    #216 (0xD8) Spell Effect: Level Drain Variants: IWD1 IWD2 BG2
    Parameter #1: Amount
    Parameter #2: Irrelevant
    Description:
    Drains levels from the targeted creature(s) as specified by the Amount field. Amount can be positive or negative.
    In particular:
    • Alters the targeted creature(s) Base THAC0, Saving Throws, Hit Points, and Spell Slots as appropriate for their new effective level.
    • Thief skills are adjusted depending of the class and kit of the creature.
    • Rangers, Shamans, and Bards have their value adjusted as appropriate for their new effective level based on files SKILLRNG.2DA, SKILLSHM.2DA, and SKILLBRD.2DA, respectively.
    • Monks and Thieves skills are all adjusted by the average amount of skill points they receive per level (regardless of which skills they were spent on), applied and capped (range: [0,255]) before racial and/or dexterity adjustments.
    • All effects using Timing Mode 2 (equipped) that alter the above stats are suppressed.
    • The targeted creature(s) cannot level-up.
    • The targeted creature(s) current experience is hidden (they still gain experience as normal).
    • This effect is removed, regardless of Timing Mode, by any death that sets STATE_DEAD.
    Moreover:
    • Parameter3 is used internally to store recalculated current hp.
    • Parameter4 is used internally to store recalculated max xp.

    This effect sets LEVELDRAIN to Amount.

    #217 (0xD9) Spell Effect: Unconsciousness 20HP Variants: IWD1 IWD2
    Parameter #1: Irrelevant
    Parameter #2: Wake on damage
    Special: Icon
    Description:
    Applies opcode #39 using Sleep (Wake on Hit) mode to the targeted creature(s), if the targeted creature(s) has less than 20 HP. The effect always lasts 5 rounds, and ignores the duration field. When calling the sleep opcode, parameters 2 and special are copied over.

    #218 (0xDA) Protection: Stoneskin Variants: BG2 IWD2
    Parameter #1: Amount
    Parameter #2: Use Dice?
    Special: Icon
    Description:
    Gives the targeted creature(s) a number of protections from physical attacks, as specified by the Amount field.
    Known values for Use Dice? are:
    • 0 ⟶ No
    • 1 ⟶ Yes


    If Amount and Use Dice? values are both non-zero, the total number of protections from physical attacks is: 'Amount' + Dice values.

    This opcode maintains STONESKINS to the amount of skins left.

    Icon defines the index from STATDESC.2DA for custom portrait icons. Default value is Stoneskin.


    #219 (0xDB) Stat: AC vs. Creature Type Modifier Variants: IWD1 IWD2
    Parameter #1: IDS Entry
    Parameter #2: IDS File
    Description:
    Gives the targeted creature(s) a 2 point bonus AC and Saving Throws against the creature type specified by the IDS Entry in the IDS file specified by the IDS File field. Note that the saving throws are not specified by the opcode name but are correctly rolled by the engine.
    Known values for IDS File are:
    Note: Multiple instances of this effect do not stack their bonus, but can be used to specify multiple creature types.

    #220 (0xDC) Removal: Remove School Variants: IWD1 IWD2
    Parameter #1: Maximum Level
    Parameter #2: School
    Description:
    For any effect that matches the specified School, and has a 0 <= Power Level <= Maximum Level:
    • All effects from that effect's Parent Resource with a Power Level <= Maximum Level that do not use Timing Mode 9 will be removed.
    • An effect using Timing Mode 9 can be used to match the type and power level to trigger its resource's removal, but that effect itself will not be removed.
    • If removal is triggered, the relevant string from MSCHOOL.2DA is displayed in the combat log.

    V1 effects inherit their Primary Type (School) from the Header(SPL) / Extended Header(ITM), V2 effects specify it manually.

    Known values for School are:
    • 0 ⟶ NONE
    • 1 ⟶ ABJURATION
    • 2 ⟶ CONJURATION
    • 3 ⟶ DIVINATION
    • 4 ⟶ ENCHANTMENT
    • 5 ⟶ ILLUSION
    • 6 ⟶ EVOCATION
    • 7 ⟶ NECROMANCY
    • 8 ⟶ ALTERATION
    • 9 ⟶ GENERALIST
    • 10 ⟶ WILDMAGE

    #221 (0xDD) Removal: Remove Secondary Type Variants: IWD1 IWD2
    Parameter #1: Maximum Level
    Parameter #2: Secondary Type
    Description:
    For any effect that matches the specified Secondary Type, and has a 0 <= Power Level <= Maximum Level:
    • All effects from that effect's Parent Resource with a Power Level <= Maximum Level that do not use Timing Mode 9 will be removed.
    • An effect using Timing Mode 9 can be used to match the type and power level to trigger its resource's removal, but that effect itself will not be removed.
    • If removal is triggered, the relevant string from MSECTYPE.2DA is displayed in the combat log.

    V1 effects inherit their Secondary Type from the Header(SPL) / Extended Header(ITM), V2 effects specify it manually.

    Known values for Secondary Type are:
    • 0 ⟶ NONE
    • 1 ⟶ SPELLPROTECTIONS
    • 2 ⟶ SPECIFICPROTECTIONS
    • 3 ⟶ ILLUSIONARYPROTECTIONS
    • 4 ⟶ MAGICATTACK
    • 5 ⟶ DIVINATIONATTACK
    • 6 ⟶ CONJURATION
    • 7 ⟶ COMBATPROTECTIONS
    • 8 ⟶ CONTINGENCY
    • 9 ⟶ BATTLEGROUND
    • 10 ⟶ OFFENSIVEDAMAGE
    • 11 ⟶ DISABLING
    • 12 ⟶ COMBINATION
    • 13 ⟶ NON-COMBAT

    #222 (0xDE) Spell Effect: Teleport Field Variants: IWD1 IWD2
    Parameter #1: Max Range
    Parameter #2: Irrelevant
    Description:
    Applies the teleport field to the targeted creature(s).
    The Max Range field sets the maximum range of the teleporting effect. Teleport is random direction up to specified range, range measured same as projectile radius, i.e.: 16 = 1 ft.

    #223 (0xDF) Spell: Immunity (by School, decrementing) Variants: IWD1 IWD2
    Parameter #1: Total Amount
    Parameter #2: School
    Description:
    The targeted creature(s) will absorb a number of effects (specified by the Total Amount field) whose Primary Type (School) is equal to the one specified by the School field.

    V1 effects inherit their Primary Type (School) from the Header(SPL) / Extended Header(ITM), V2 effects specify it manually.

    The Power level of the first effect to trigger any instance of this opcode's deflection will determine how much this opcode's Amount is decremented. Every instance of this opcode on the creature will be decremented by this amount.

    Known values for School are:
    • 0 ⟶ NONE
    • 1 ⟶ ABJURATION
    • 2 ⟶ CONJURATION
    • 3 ⟶ DIVINATION
    • 4 ⟶ ENCHANTMENT
    • 5 ⟶ ILLUSION
    • 6 ⟶ EVOCATION
    • 7 ⟶ NECROMANCY
    • 8 ⟶ ALTERATION
    • 9 ⟶ GENERALIST
    • 10 ⟶ WILDMAGE

    On EE games, resource field ⟶ Spell cast when this effect self-terminates, default = Parent + "B".

    Info:
    • CANNOT block effects of Secondary Type MagicAttack.
    • CAN block EFF files with resist_dispel = BIT2.
      • Keep in mind that this BIT is automatically set on any effect delivered by an Area-Effect (Explosion) projectile, so this opcode can deflect effects through AoE projectiles.
    • CANNOT block effects from self.
    • Maintains portrait icon Spell Shield on the target.
    • Maintains animation SPMAGGLO on the target, can be suppressed by opcode #291.
    Note: EFF files delivered by opcode #177/opcode #283 will interact with Deflection separately from the opcode #177/opcode #283 effect that applies them, and only if that opcode #177/opcode #283 effect already got through. If the opcode #177/opcode #283 effect is deflected, then the values in the EFF file won’t matter. Most vanilla EFF files have these fields set to empty/zero to avoid interacting with this opcode.

    #224 (0xE0) Cure: Level Drain (Restoration) Variants: IWD1 IWD2
    Parameter #1: Irrelevant
    Parameter #2: Irrelevant
    Description:
    Applies the restoration effect to the targeted creature(s), resetting the level of the target.
    Note: Removes opcode #216 (Level drain) effects from the creature, will not remove opcode #96 (Level change) effects.

    #225 (0xE1) Spell: Reveal Magic Variants: IWD1 IWD2
    Parameter #1: Undefined
    Parameter #2: Undefined
    Description:
    Highlights the targeted creature(s) if they are affected by dispellable magic. The effect appears to be without duration.
    More specifically, it functions by applying opcode #50 to creature(s) with any dispellable effects. Color glow is red.

    #226 (0xE2) Spell: Immunity (by Secondary Type, decrementing) Variants: IWD1 IWD2
    Parameter #1: Total Amount
    Parameter #2: Secondary Type
    Description:
    The targeted creature(s) will absorb a number of effects (specified by the Total Amount field) whose Secondary Type is equal to the one specified by the Secondary Type field.

    V1 effects inherit their Secondary Type from the Header(SPL) / Extended Header(ITM), V2 effects specify it manually.

    The Power level of the first effect to trigger any instance of this opcode's deflection will determine how much this opcode's Total Amount is decremented. Every instance of this opcode on the creature will be decremented by this amount.

    Known values for Secondary Type are:
    • 0 ⟶ NONE
    • 1 ⟶ SPELLPROTECTIONS
    • 2 ⟶ SPECIFICPROTECTIONS
    • 3 ⟶ ILLUSIONARYPROTECTIONS
    • 4 ⟶ MAGICATTACK
    • 5 ⟶ DIVINATIONATTACK
    • 6 ⟶ CONJURATION
    • 7 ⟶ COMBATPROTECTIONS
    • 8 ⟶ CONTINGENCY
    • 9 ⟶ BATTLEGROUND
    • 10 ⟶ OFFENSIVEDAMAGE
    • 11 ⟶ DISABLING
    • 12 ⟶ COMBINATION
    • 13 ⟶ NON-COMBAT

    On EE games, resource field ⟶ Spell cast when this effect self-terminates, default = Parent + "B".

    Info:
    • CAN block effects of Secondary Type MagicAttack.
    • CAN block EFF files with resist_dispel = BIT2.
      • Keep in mind that this BIT is automatically set on any effect delivered by an Area-Effect (Explosion) projectile, so this opcode can deflect effects through AoE projectiles.
    • CANNOT block effects from self.
    • Maintains portrait icon Spell Shield on the target.
    • Maintains animation SPMAGGLO on the target, can be suppressed by opcode #291.
    Note: EFF files delivered by opcode #177/opcode #283 will interact with Deflection separately from the opcode #177/opcode #283 effect that applies them, and only if that opcode #177/opcode #283 effect already got through. If the opcode #177/opcode #283 effect is deflected, then the values in the EFF file won’t matter. Most vanilla EFF files have these fields set to empty/zero to avoid interacting with this opcode.

    #227 (0xE3) Spell: Bounce (by School, decrementing) Variants: IWD1 IWD2
    Parameter #1: Total Amount
    Parameter #2: School
    Description:
    The targeted creature(s) will reflect a number of effects (specified by the Total Amount field) whose Primary Type (School) is equal to the one specified by the School field.

    V1 effects inherit their Primary Type (School) from the Header(SPL) / Extended Header(ITM), V2 effects specify it manually.

    The Power level of the first effect to trigger any instance of this opcode's reflection will determine how much this opcode's Total Amount is decremented. Every instance of this opcode on the creature will be decremented by this amount.

    Known values for School are:
    • 0 ⟶ NONE
    • 1 ⟶ ABJURATION
    • 2 ⟶ CONJURATION
    • 3 ⟶ DIVINATION
    • 4 ⟶ ENCHANTMENT
    • 5 ⟶ ILLUSION
    • 6 ⟶ EVOCATION
    • 7 ⟶ NECROMANCY
    • 8 ⟶ ALTERATION
    • 9 ⟶ GENERALIST
    • 10 ⟶ WILDMAGE

    On EE games, resource field ⟶ Spell cast when this effect self-terminates, default = Parent + "B".

    Important: As of EE v2.6, spells can no longer be "chained" back and forth by reflection.

    If Caster and Target are both affected by this opcode, the spell from Caster will reflect off Target, but not reflect back off Caster. Previously, whoever had more reflection charges would end up victorious, now the initial target always ends up victorious.
    Info:
    • CANNOT reflect effects of Secondary Type MagicAttack.
    • CAN reflect EFF files with resist_dispel = BIT2.
      • Keep in mind that this BIT is automatically set on any effect delivered by an Area-Effect (Explosion) projectile, so this opcode can reflect effects through AoE projectiles.
    • CANNOT reflect effects from self.
    • Maintains portrait icon Spell Deflection on the target (this is likely a bug).
    • Maintains animation SPTURNI2 on the target, can be suppressed by opcode #291.
    Note: EFF files delivered by opcode #177/opcode #283 will interact with Reflection separately from the opcode #177/opcode #283 effect that applies them, and only if that opcode #177/opcode #283 effect already got through. If the opcode #177/opcode #283 effect is reflected, then the values in the EFF file won’t matter. Most vanilla EFF files have these fields set to empty/zero to avoid interacting with this opcode.

    #228 (0xE4) Spell: Bounce (by Secondary Type, decrementing) Variants: IWD1 IWD2
    Parameter #1: Total Amount
    Parameter #2: Secondary Type
    Description:
    The targeted creature(s) will reflect a number of effects (specified by the Total Amount field) whose Secondary Type is equal to the one specified by the Secondary Type field.

    V1 effects inherit their Secondary Type from the Header(SPL) / Extended Header(ITM), V2 effects specify it manually.

    The Power level of the first effect to trigger any instance of this opcode's reflection will determine how much this opcode's Total Amount is decremented. Every instance of this opcode on the creature will be decremented by this amount.

    Known values for Secondary Type are:
    • 0 ⟶ NONE
    • 1 ⟶ SPELLPROTECTIONS
    • 2 ⟶ SPECIFICPROTECTIONS
    • 3 ⟶ ILLUSIONARYPROTECTIONS
    • 4 ⟶ MAGICATTACK
    • 5 ⟶ DIVINATIONATTACK
    • 6 ⟶ CONJURATION
    • 7 ⟶ COMBATPROTECTIONS
    • 8 ⟶ CONTINGENCY
    • 9 ⟶ BATTLEGROUND
    • 10 ⟶ OFFENSIVEDAMAGE
    • 11 ⟶ DISABLING
    • 12 ⟶ COMBINATION
    • 13 ⟶ NON-COMBAT

    On EE games, resource field ⟶ Spell cast when this effect self-terminates, default = Parent + "B".

    Important: As of EE v2.6, spells can no longer be "chained" back and forth by reflection.

    If Caster and Target are both affected by this opcode, the spell from Caster will reflect off Target, but not reflect back off Caster. Previously, whoever had more reflection charges would end up victorious, now the initial target always ends up victorious.
    Info:
    • CANNOT reflect effects of Secondary Type MagicAttack.
    • CAN reflect EFF files with resist_dispel = BIT2.
      • Keep in mind that this BIT is automatically set on any effect delivered by an Area-Effect (Explosion) projectile, so this opcode can reflect effects through AoE projectiles.
    • CANNOT reflect effects from self.
    • Maintains portrait icon Spell Deflection on the target (this is likely a bug).
    • Maintains animation SPTURNI2 on the target, can be suppressed by opcode #291.
    Note: EFF files delivered by opcode #177/opcode #283 will interact with Reflection separately from the opcode #177/opcode #283 effect that applies them, and only if that opcode #177/opcode #283 effect already got through. If the opcode #177/opcode #283 effect is reflected, then the values in the EFF file won’t matter. Most vanilla EFF files have these fields set to empty/zero to avoid interacting with this opcode.

    #229 (0xE5) Removal: Remove One School Variants: IWD1 IWD2 BG2
    Parameter #1: Max Level
    Parameter #2: School
    Description:
    Removes all effects with a matching School, with a Power Level up to Max Level, of the first two valid Parent Resources from the targeted creature(s).

    V1 effects inherit their Primary Type (School) from the Header(SPL) / Extended Header(ITM), V2 effects specify it manually.

    Known values for School are:
    • 0 ⟶ NONE
    • 1 ⟶ ABJURATION
    • 2 ⟶ CONJURATION
    • 3 ⟶ DIVINATION
    • 4 ⟶ ENCHANTMENT
    • 5 ⟶ ILLUSION
    • 6 ⟶ EVOCATION
    • 7 ⟶ NECROMANCY
    • 8 ⟶ ALTERATION
    • 9 ⟶ GENERALIST
    • 10 ⟶ WILDMAGE

    The first valid Parent Resource has a matching effect with a non-zero Power Level and a Timing Mode other than 2/5/8, all such matching effects of this Parent Resource will be removed.

    The second valid Parent Resource has a matching effect with a non-zero Power Level and a Timing Mode of 2/5/8, all such matching effects of this Parent Resource will be removed.

    If any effects are removed, the String Reference corresponding to the School from MSCHOOL.2DA is returned to the combat log.

    Info: Basically it removes one equipped resource effect list and one non-equipped resource effect list, except that equipped effects aren’t removable while its item is equipped, so this behavior is not common.
    The only way to really see this behavior (removing two separate resources) is to have a spell or item ability that only applies equipped effects.
    Note: Effects with a Power Level of 0 are ignored when this opcode checks for effects, but will still be removed if another effect from its Parent Resource triggers removal.

    #230 (0xE6) Removal: Remove One Secondary Type Variants: IWD1 IWD2 BG2
    Parameter #1: Max Level
    Parameter #2: Secondary Type
    Description:
    Removes all effects with a matching Secondary Type, with a Power Level up to Max Level, of the first two valid Parent Resources from the targeted creature(s).

    V1 effects inherit their Secondary Type from the Header(SPL) / Extended Header(ITM), V2 effects specify it manually.

    Known values for Secondary Type are:
    • 0 ⟶ NONE
    • 1 ⟶ SPELLPROTECTIONS
    • 2 ⟶ SPECIFICPROTECTIONS
    • 3 ⟶ ILLUSIONARYPROTECTIONS
    • 4 ⟶ MAGICATTACK
    • 5 ⟶ DIVINATIONATTACK
    • 6 ⟶ CONJURATION
    • 7 ⟶ COMBATPROTECTIONS
    • 8 ⟶ CONTINGENCY
    • 9 ⟶ BATTLEGROUND
    • 10 ⟶ OFFENSIVEDAMAGE
    • 11 ⟶ DISABLING
    • 12 ⟶ COMBINATION
    • 13 ⟶ NON-COMBAT

    The first valid Parent Resource has a matching effect with a non-zero Power Level and a Timing Mode other than 2/5/8, all such matching effects of this Parent Resource will be removed.

    The second valid Parent Resource has a matching effect with a non-zero Power Level and a Timing Mode of 2/5/8, all such matching effects of this Parent Resource will be removed.

    If any effects are removed, the String Reference corresponding to the Secondary Type Type from MSECTYPE.2DA is returned to the combat log.

    Info: Basically it removes one equipped resource effect list and one non-equipped resource effect list, except that equipped effects aren’t removable while its item is equipped, so this behavior is not common.
    The only way to really see this behavior (removing two separate resources) is to have a spell or item ability that only applies equipped effects.
    Note: Effects with a Power Level of 0 are ignored when this opcode checks for effects, but will still be removed if another effect from its Parent Resource triggers removal.

    #231 (0xE7) Spell Effect: Time Stop Variants: IWD1
    Parameter #1: Irrelevant
    Parameter #2: Irrelevant
    Description:
    Applies the time stop effect.
    The timestop effect lasts half as long as the Duration specified for the effect.

    In particular:
    • All creatures not immune to Time Stop will be rendered uncontrollable, can be hit automatically by attacks as if they were HELPLESS (but do not actually have STATE_HELPLESS set), and their frequency-based effects will not trigger (poison/regeneration), but their duration will run.
    • Projectiles are suspended mid-flight until the Time Stop ends, at which point they will resume normal function.
    • Area Effect projectiles are suppressed until the Time Stop ends, at which point they will resume normal function, though their duration will run during the Time Stop.
    • Projectiles that hit "instantly" (#0 and #1 for spells/items) are unaffected by Time Stop, which includes all melee weapons.
    Important: Both parameters should be 0 (zero).
    Note: Only one creature may have a Time Stop effect running at a time, applying a Time Stop effect during another will override the previous. The caster is always immune to their own Time Stop effect, they do not require opcode #310, unless their own Time Stop is at risk of being overridden.

    #232 (0xE8) Spell Effect: Cast Spell on Condition Variants: BG2 IWD1 IWD2
    Parameter #1: Target
    Parameter #2: Condition
    Special: Extra
    Description:
    Casts the spell specified by the resource field on the target specified by the Target field, when the condition from the Condition field is true. The conditions are akin to various triggers.

    Known values for Target are: Known values for Condition are: Known values for Extra are:
    • BIT0 ⟶ When triggered, will display STRREF_GUI_FEEDBACK_CONTINGENCY_TRIGGER as effect host and remove effect
      • If Condition=0 and (Extra BAND BIT0) == BIT0 (i.e., BIT0 is set) ⟶ Trigger even if the effect host was the source of the hit
    • BIT1 ⟶ Fire subspell as effect source (the creature that casts the spell) instead of effect host (the creature the effect is attached to)
      • This is not relevant for vanilla spells. However, just for the sake of providing an example...
        If you change Globe of Blades, ("sppr725.spl") like so:
        1. SPL AbilityTarget = Living actor
        2. And change all of the ability's effects to Target = Projectile target
        3. And change "sppr725d.eff" to Resource = "spwi112", Special = 2
        If you cast the spell on another creature, when the contingency is triggered the caster fires Magic Missile ("spwi112.spl") at the contingency host. Basically it lets you check the conditions on another creature yet take an action from the caster.
    • BIT2 ⟶ Suppress subspell casting glow and string
    • BIT3 ⟶ Suppress subspell range check
    The Extra field is also used for the following Condition values:
    • 13 ⟶ Use value from TIMEODAY.IDS
    • 14 ⟶ Range in feet
    • 15 ⟶ Use value from STATE.IDS
    • 19 ⟶ Any numeric value
    • 20 ⟶ Any numeric value
    • 21 ⟶ Use value from SPLSTATE.IDS
    Important:
    • As you may have noticed, Extra acting as both flags and parameters for some Condition values is annoying.
    • As a matter of fact, conditions such as TimeOfDay(DUSK) (i.e., Condition=13 and Extra=1) may not work as expected — In this particular case, since BIT0 is set to 1, the effect will terminate after first trigger and STRREF_GUI_FEEDBACK_CONTINGENCY_TRIGGER will be displayed in the combat log.
      • Hopefully, this is not an issue since you can set up the opcode #232 effect to always fire (see below) and then add opcode #318/opcode #324 effects to the subspell filtering for the desired condition(s).

    When used in an external EFF file, resource2 and resource3 can also be specified — all spells will be cast when triggered.

    When used in an external EFF file, known values for Parameter3 are:

    • 0 ⟶ Not a "real" contingency (Fire Shields, Globe of Blades, etc...)
    • 1 ⟶ Real contingency

    When used in an external EFF file, Parent Type (Source Type) may be manually set to influence its behavior. Known values for Parent Type are:

    Info:
    • If you need a condition which is always true, you could set Condition to 20 and Extra to 102hp < 102% will always be true. 102 is used because its binary representation does not have BIT0 set to 1. In so doing:
    • These triggers and objects are limited to their normal detection range: e.g., Died([ANYONE]) won't see someone dying on the other side of the map.
    • Excluding the PersonalSpaceDistance() checks, [ANYONE] includes Myself.
    • The presence of this effect in any of a spell's ability headers will force any Wild Surge of that spell to use the Cast Normal result.
    • As of v2.6, the vanilla Contingency spells will now remove a previous instance of themselves if recast before they have triggered.
      • Probably was a cleaner solution than working with subspells to do the same with opcode #321.

    #233 (0xE9) Stat: Proficiency Modifier Variants: IWD1
    Parameter #1: Amount
    Parameter #2: Type
    Description:
    Sets the weapon proficiency points for the weapon type specified in the Type field, to the value specified by the Amount field, for the targeted creature(s).

    Type value BG2 BG:EE / IWD:EE BG2:EE
    89 PROFICIENCYBASTARDSWORD PROFICIENCYBASTARDSWORD PROFICIENCYBASTARDSWORD
    90 PROFICIENCYLONGSWORD PROFICIENCYLONGSWORD PROFICIENCYLONGSWORD
    91 PROFICIENCYSHORTSWORD PROFICIENCYSHORTSWORD PROFICIENCYSHORTSWORD
    92 PROFICIENCYAXE PROFICIENCYAXE PROFICIENCYAXE
    93 PROFICIENCYTWOHANDEDSWORD PROFICIENCYTWOHANDEDSWORD PROFICIENCYTWOHANDEDSWORD
    94 PROFICIENCYKATANA PROFICIENCYKATANA PROFICIENCYKATANA
    95 PROFICIENCYSCIMITARWAKISASHININJATO PROFICIENCYSCIMITARWAKISASHININJATO PROFICIENCYSCIMITARWAKISASHININJATO
    96 PROFICIENCYDAGGER PROFICIENCYDAGGER PROFICIENCYDAGGER
    97 PROFICIENCYWARHAMMER PROFICIENCYWARHAMMER PROFICIENCYWARHAMMER
    98 PROFICIENCYSPEAR PROFICIENCYSPEAR PROFICIENCYSPEAR
    99 PROFICIENCYHALBERD PROFICIENCYHALBERD PROFICIENCYHALBERD
    100 PROFICIENCYFLAILMORNINGSTAR PROFICIENCYFLAILMORNINGSTAR PROFICIENCYFLAILMORNINGSTAR
    101 PROFICIENCYMACE PROFICIENCYMACE PROFICIENCYMACE
    102 PROFICIENCYQUARTERSTAFF PROFICIENCYQUARTERSTAFF PROFICIENCYQUARTERSTAFF
    103 PROFICIENCYCROSSBOW PROFICIENCYCROSSBOW PROFICIENCYCROSSBOW
    104 PROFICIENCYLONGBOW PROFICIENCYLONGBOW PROFICIENCYLONGBOW
    105 PROFICIENCYSHORTBOW PROFICIENCYSHORTBOW PROFICIENCYSHORTBOW
    106 PROFICIENCYDART PROFICIENCYDART PROFICIENCYDART
    107 PROFICIENCYSLING PROFICIENCYSLING PROFICIENCYSLING
    108 PROFICIENCYBLACKJACK PROFICIENCYBLACKJACK PROFICIENCYBLACKJACK
    109 PROFICIENCYGUN WEAPON_ENCHANTMENT* CLERIC_HALLOW*
    110 PROFICIENCYMARTIALARTS CLERIC_ARMOR_OF_FAITH* CLERIC_ARMOR_OF_FAITH*
    111 PROFICIENCY2HANDED PROFICIENCY2HANDED PROFICIENCY2HANDED
    112 PROFICIENCYSWORDANDSHIELD PROFICIENCYSWORDANDSHIELD PROFICIENCYSWORDANDSHIELD
    113 PROFICIENCYSINGLEWEAPON PROFICIENCYSINGLEWEAPON PROFICIENCYSINGLEWEAPON
    114 PROFICIENCY2WEAPON PROFICIENCY2WEAPON PROFICIENCY2WEAPON
    115 EXTRAPROFICIENCY1 PROFICIENCYCLUB PROFICIENCYCLUB
    116 EXTRAPROFICIENCY2 WIZARD_SPELL_DEFLECTION* WIZARD_SPELL_DEFLECTION*
    117 EXTRAPROFICIENCY3 PROTECTION_FROM_EVIL* PROTECTION_FROM_EVIL*
    118 EXTRAPROFICIENCY4 TRUE_SIGHT* TRUE_SIGHT*
    119 EXTRAPROFICIENCY5 CLERIC_CHAOTIC_COMMANDS* CLERIC_CHAOTIC_COMMANDS*
    120 EXTRAPROFICIENCY6 CLERIC_INSECT_PLAGUE* CLERIC_INSECT_PLAGUE*
    121 EXTRAPROFICIENCY7 CLERIC_BLADE_BARRIER* CLERIC_BLADE_BARRIER*
    122 EXTRAPROFICIENCY8 CLERIC_PHYSICAL_MIRROR* CLERIC_PHYSICAL_MIRROR*
    123 EXTRAPROFICIENCY9 CLERIC_SHIELD_OF_THE_ARCHONS* CLERIC_SHIELD_OF_THE_ARCHONS*
    124 EXTRAPROFICIENCY10 CLERIC_REGENERATION* CLERIC_REGENERATION*
    125 EXTRAPROFICIENCY11 WIZARD_FIRE_SHIELD* WIZARD_FIRE_SHIELD*
    126 EXTRAPROFICIENCY12 WIZARD_PROTECTION_FROM_MAGIC_ENERGY* WIZARD_PROTECTION_FROM_MAGIC_ENERGY*
    127 EXTRAPROFICIENCY13 WIZARD_MISLEAD* WIZARD_MISLEAD*
    128 EXTRAPROFICIENCY14 WIZARD_PROTECTION_FROM_MAGIC_WEAPONS* WIZARD_PROTECTION_FROM_MAGIC_WEAPONS*
    129 EXTRAPROFICIENCY15 WIZARD_SPELL_TURNING* WIZARD_SPELL_TURNING*
    130 EXTRAPROFICIENCY16 WIZARD_PROTECTION_FROM_THE_ELEMENTS* WIZARD_PROTECTION_FROM_THE_ELEMENTS*
    131 EXTRAPROFICIENCY17 CLERIC_FREE_ACTION* CLERIC_FREE_ACTION*
    132 EXTRAPROFICIENCY18 WIZARD_KHELBENS_WARDING_WHIP* WIZARD_KHELBENS_WARDING_WHIP*
    133 EXTRAPROFICIENCY19 CLERIC_DEFENSIVE_HARMONY* CLERIC_DEFENSIVE_HARMONY*
    134 EXTRAPROFICIENCY20 EXTRAPROFICIENCY20 EXTRAPROFICIENCY20
    Info:
    • Every STAT from 89 to 134 is a weapon proficiency, even the weapon styles.
    • Every one of those STATs can be set as a weapon's proficiency and it will use that stat's value for proficiency bonuses.
      • This includes STATs like CLERIC_ARMOR_OF_FAITH*, even though they're used for an alternative purpose.
        • The only thing stopping them from showing up during chargen/level-up proficiency selection is their entries (or lack there of) in WEAPPROF.2DA. A NAME_REF column of 4294967296 (-1) is hardcoded to hide the proficiency during chargen/level-up. Aside from that it just needs a non-zero maximum for the current class/kit.
    Bug: In EE games, Type 99 – PROFICIENCYHALBERD currently cannot use the Increment option without crashing.
    Important: In EE games, the Special field must currently be 0, due to an incomplete (bugged) feature added by Beamdog (it wasn't used before anyway, so there was no point in it not being 0).
    Note: The Proficiency Modifier effect cannot increment or decrement proficiency points, it can only SET them.

    This is however not true for EEs, where param#2 ('Type') is split into two word subfields. By setting the second (high) one to 1 (Increment), it’s possible to increment/decrement the proficiency points of the targeted creature(s) by the value specified by the Amount parameter.

    #234 (0xEA) Spell Effect: Contingency Creation Variants: IWD1 IWD2 BG2
    Parameter #1: Maximum Level Usable
    Parameter #2: Amount/Type
    Description:
    Creates a custom spell contingency, storing a certain number of spells to be cast upon a specified condition.
    The spells are stored using opcode #232, using Timing Mode 1 and Parameter3 set to 1.
    The Maximum Level field indicates the maximum spell level that can be used in the contingency. The Amount/Type field indicates the number of spells that can be used in the contingency, and the type of the contingency.
    Known values for the Amount/Type field are:
    • First word: Amount (1–3)
    • Second word:
      • 0 ⟶ Chain Contingency (See opcode #232 for target and condition descriptions)
      • 1 ⟶ Normal Contingency
        • Target choice is limited to 0|Myself, and only if it's listed in CONTTARG.2DA.
        • Condition choices limited to those listed in CONTCOND.2DA.
      • 2 ⟶ Sequencer
    Important: As of v2.3, an entry for the Parent Resource or Activation Key must be added to the mageBookStrings{} lua table for the UI, or the game will crash upon use.
    Note: The presence of this effect in any of a spell’s ability headers will force any Wild Surge of that spell to use the ‘Cast Normal’ result.
    Note: This opcode only works from party-members.

    #235 (0xEB) Spell Effect: Wing Buffet Variants: IWD1
    Parameter #1: Speed
    Parameter #2: Direction
    Description:
    Applies the wing buffet effect centred on the casting creature(s), buffeting the targeted creature(s) at the speed specified by the Speed field, in the direction specified by the Direction field. Speed ranges from 0 to 255.
    Known values for Direction are:
    • 0/1 ⟶ Away from the destination point (specified in EFF file)
    • 2 ⟶ Away from the source
    • 3 ⟶ Towards the destination point (specified in EFF file)
    • 4 ⟶ Towards source
    Bug: The opcode also has this weird block:
    	if (this->m_sourceRes.startsWith("SP")) {
    		this->m_effectAmount = (100 - pSprite->m_derivedStats.m_nResistMagic) / 100 * (float)this->m_effectAmount;
    		if (this->m_effectAmount == 0) {
    			return 0; // Terminate
    		}
    	}
    	
    It's attempting to dampen the knockback speed with the target's magic resistance, but it fails at casting the first division to a float.
    If the SPL resref starts with SP (see for instance "spin695.spl" — Wing Buffet) any positive magic resistance will make the Speed parameter 0, causing the opcode to immediately terminate.
    Having said that, you can bypass this issue by having the SPL file starting with SP apply a secondary SPL file (for instance via opcode #146), and then by having the secondary SPL file apply opcode #235. Just make sure the secondary SPL resref does not start with SP.
    Note: If used on creatures with the “pass-wall” effect applied, creatures can cross points marked as light obstacles on the search map.
    In EEs, this effect can push creatures through closed (and locked) doors (this does not require the “pass-wall” effect).
    Note: Direction options 1 and 3 “can” be overriden in external EFF files, but default to the ability target/location.

    #236 (0xEC) Spell Effect: Image Projection Variants: IWD1 IWD2
    Parameter #1: Undetermined
    Parameter #2: Type
    Description:
    Creates an image (duplicate) of the caster, in the style specified by the Type field.
    In particular:
    • The Image inherits any/only effects attached to the creature using Timing Mode 9
    • The Image has duplicates of all of the targeted creature(s) items that are flagged with DROPPABLE and not flagged with NONDROPABLE
    • All items on the Image are flagged with NONDROPABLE, so an image created by another image will have no items
    • If the targeted creature(s) is not a party memeber, saving is disabled so long as the image exists

    Known values for Type are:
    • 0 ⟶ Clone — Image created with the targeted creature(s) Current Hit Points and the following (in order)
      • All AI scripts and Dialogues are set to "" (empty string, i.e. they will be cleared)
      • Script Name (Death Variable) set to "COPY"
      • Opcode #68 based on effect duration
      • The creature is not immediately controllable, but will become controllable (if allied) after saving & reloading
    • 1 ⟶ Mislead — Image created with the targeted creature(s) Maximum Hit Points and the following (in order)
      • Allegiance set to ALLY, NEUTRAL, or ENEMY, depending on target allegiance
      • Gender set to ILLUSIONARY
      • All AI scripts and Dialogues are set to "" (empty string, i.e. they will be cleared)
      • If the clone's allegiance is not ALLY, Class Script is set to 'Original Class Script' + 'M'. The script has to already exist (as a separate BCS file).
        • And the Class Script is only set if it wasn't originally null/empty — it will never be just "M"
        • If original Class Script is 8 characters long, the last letter will be replaced with "M"
        • If you look in BG2EE, you will see these files:
          • MAGE18A.BCS → MAGE18AM.BCS
          • MAGE18B.BCS → MAGE18BM.BCS
          • MAGE18C.BCS → MAGE18CM.BCS
          • MAGE18D.BCS → MAGE18DM.BCS
          The caster uses the first one, their Mislead clone uses the second one
      • Script Name (Death Variable) set to "COPY"
      • Opcode #68 based on effect duration
      • Opcode #237*p2=1: Puppet Stats, Mislead
      • Opcode #145*p2=0: Disable Spell Casting, Wizard
      • Opcode #145*p2=1: Disable Spell Casting, Priest
      • Opcode #145*p2=2: Disable Spell Casting, Innate
      • Opcode #144*p2=8: Disable Button (Use Item)
      • Opcode #144*p2=9: Disable Button (Quick Item 1)
      • Opcode #144*p2=11: Disable Button (Quick Item 2)
      • Opcode #144*p2=12: Disable Button (Quick Item 3)
      • Opcode #144*p2=13: Disable Button (Special Ability)
      • Applies "MISLEAD.SPL"
    • 2 ⟶ Project Image — Image is created with the targeted creature(s) Current Hit Points and the following (in order)
      • Allegiance set to ALLY, NEUTRAL, or ENEMY, depending on target allegiance
      • Gender set to ILLUSIONARY
      • All AI scripts and Dialogues are set to "" (empty string, i.e. they will be cleared)
      • Script Name (Death Variable) set to "COPY"
      • Opcode #68 based on effect duration
      • Opcode #237*p2=2: Puppet Stats, Project Image
      • Applies "PROJIMAG.SPL"
    • 3 ⟶ Simulacrum — Image is created with the targeted creature(s) Current Hit Points and the following (in order)
    • 4+ ⟶ As 0
    Bug: Simulacrum is supposed to apply a level-drain effect to the clone equal to floor(ceil(average of LEVEL, LEVEL2, LEVEL3) * factor). The factor appears to be 50% in original games and 40% in EEs. However in EEs, the code is bugged for dual class characters — instead of using the character’s average level it uses the level count of the first class in the dual class name.

    This means dual class mages usually end up with Simulacrums that are substantially more powerful than intended.
    Note: Keep in mind that if the caster is equipped with an irremovable item (e.g., Edwin’s Amulet), then its images will not inherit any bonuses/maluses from that specific item.

    #237 (0xED) Spell Effect: Puppet ID Variants: IWD1 IWD2
    Parameter #1: Master ID
    Parameter #2: Image Type
    Description:
    This effect stores information for images created by opcode #236.
    Known values for Master ID are:
    • -1 ⟶ Not Party Member (Disables saving while in effect)
    • 0 ⟶ Player1
    • 1 ⟶ Player2
    • 2 ⟶ Player3
    • 3 ⟶ Player4
    • 4 ⟶ Player5
    • 5 ⟶ Player6
    Known values for Image Type are:
    • 0 ⟶ Clone
    • 1 ⟶ Mislead
      • Maintains STATE_INVISIBLE on Master ID. This state is constantly reapplied whenever removed or terminated.
    • 2 ⟶ Project Image
      • Maintains STATE_HELPLESS on Master ID. This state is constantly reapplied whenever removed or terminated.
      • If Master ID triggers HitBy([ANYONE],0), this creature is moved to area "NO_AREA.ARE". This will delete non-global creatures from the game, unless such an area has been added to the game.
    • 3 ⟶ Simulacrum

    Modifies PUPPETMASTERID to the Object ID of a projected image's Master. Object ID is the 4 byte long number stored at offset 0x27c of the CRE file, and can change.

    Modifies PUPPETMASTERTYPE, to a value of Parameter2, on the creature specified by PUPPETMASTERID:
    • Stores the image type (Mislead, Projection, Simulacrum) of a creature's most recently created clone.

    Modifies PUPPETTYPE, to a value of Image Type:
    • Stores the image type (Mislead, Projection, Simulacrum) of a such a creature.

    PUPPETID is likewise set on the Master ID, to the image's Object ID (likely whichever image is most recent, if they have multiple images).

    #238 (0xEE) Death: Disintegrate Variants: IWD1
    Parameter #1: IDS Entry
    Parameter #2: IDS File
    Description:
    Disintegrates the targeted creature(s), if the targeted creature(s) match the IDS Entry and in the specified IDS File, and if the targeted creature(s) hit-dice is less than those specified by the Dice Values.
    Known values for IDS File are:

    #239 (0xEF) Spell Effect: Farsight Variants: IWD1 IWD2
    Parameter #1: Irrelevant
    Parameter #2: Type
    Description:
    Allows viewing of the current area, based on the Type field.
    Known values for Type are:
    • 0 ⟶ View explored sections only
    • 1 ⟶ View explored section and unexplored sections
    Note: Effect needs to target a creature. Opcode still non-functional in SoD v2.5.

    #240 (0xF0) Graphics: Remove Special Effect Icon Variants: IWD1 IWD2
    Parameter #1: Irrelevant
    Parameter #2: Icon
    Description:
    Removes the icon specified by the Icon field.
    Known values for Icon are: see opcode #142.
    Important: Only removes opcode #142 effects, with a matching param2 value. Cannot remove portrait icons generated by any other mechanic.
    Note: In EE games, can also remove opcode #177/opcode #283 effects if their EFF file uses opcode #142 with a matching param2 value.

    #241 (0xF1) Charm: Control Creature Variants: IWD1
    Parameter #1: Creature ID
    Parameter #2: Charm Type
    Description:
    As opcode #5.

    #242 (0xF2) Cure: Confusion Variants: IWD1 IWD2
    Parameter #1: Irrelevant
    Parameter #2: Irrelevant
    Description:
    Removes STATE_CONFUSED and opcode #128 effects from the targeted creature(s).

    #243 (0xF3) Item: Drain Item Charges Variants: BG2 IWD1 IWD2
    Parameter #1: Amount to Drain
    Parameter #2: Unused
    Description:
    Items will have their charges drained by Amount to Drain.
    In particular:
    • Only Item Abilities of type Magical are drained.
    • Only items with flag MAGIC can be drained.
    • Items flagged as INDESTRUCTIBLE are not drained.
    • Items with a Maximum Stack Size greater than 1 are not drained.
    • Items drained of all charges behave as dictated by their first Ability that is fully drained (the when drained field).
    • You can drain charges of a particular item if the resource field is used.

    #244 (0xF4) Spell: Drain Wizard Spell Variants: IWD1 IWD2
    Parameter #1: Number to Drain
    Parameter #2: Irrelevant
    Description:
    Drains spells from a wizards memory. This effect always drains the highest level possible spell first and drains the number set by the Number to Drain parameter.

    #245 (0xF5) Check For Berserk Variants: IWD1 IWD2
    Parameter #1: Undefined
    Parameter #2: Undefined
    Description:
    This effect enables a 1% chance of the targetted creature(s) going berserk on each attack it makes. This affect sets the berserk stat changes and then attaches opcode #246.
    It sets CHECKFORBERSERK.

    #246 (0xF6) Spell Effect: Berserking Variants: IWD1 IWD2
    Parameter #1: Undetermined
    Parameter #2: Undetermined
    Description:
    This effect appears to be a combination of opcode #3 and the Berserk portrait icon. This effect attaches opcode #247.
    It also sets BERSERKSTAGE1.

    #247 (0xF7) Spell Effect: Attack Nearest Creature Variants: IWD1
    Parameter #1: Irrelevant
    Parameter #2: Constant Value
    Description:
    Applies the attack nearest creature effect on the targeted creature(s).
    This effect causes the targeted creature(s) to attack the nearest creature. The affected creature becomes berserk and its AI scripts stop running. Grants a +2 bonus to hit and damage with all weapons. Unlike opcode #3, this one can affect enemies as well.

    This effect sets BERSERKSTAGE2 to Constant Value. It also sets the STATE_BERSERK flag.
    Important: The Constant Value parameter should be non-zero.
    Note: At least in EEs, the only difference between opcodes #3 and #247, is that opcode #247 will not force the creature(s) to use melee weapons, and is not removed by opcode #4 (Cure Berserk).

    #248 (0xF8) Item: Set Melee Effect Variants: IWD1 IWD2
    Parameter #1: Irrelevant
    Parameter #2: Fist only
    Description:
    Sets the effect specified by the resource key as a melee effect.
    The specified effect will be applied to the target of each successful melee attack.
    The resource key references a EFF not a SPL.
    Important: EFF files applied by this opcode can be blocked by opcode #101.
    Note: At least in EEs, setting parameter2 to 4 (i.e., BIT2) results in restricting this effect to fists only. If you leave it at 0, then all melee weapons are eligible (including fists).
    Note: It will always apply to both main and offhand weapon.
    Note: This opcode applies its effect inbetween base weapon damage and the on-hit effects of the weapon.

    #249 (0xF9) Item: Set Ranged Effect Variants: IWD1 IWD2
    Parameter #1: Irrelevant
    Parameter #2: Irrelevant
    Description:
    Sets the effect specified by the resource key as a ranged effect.
    The specified effect will be applied to the target of each successful ranged attack.
    The resource key references a EFF not a SPL.
    Important: EFF files applied by this opcode can be blocked by opcode #101.
    Note: At least in EEs, this opcode applies its effect after both the base weapon damage and the on-hit effects of the weapon.

    #250 (0xFA) Spell Effect: Damage Modifier Variants: IWD1 IWD2
    Parameter #1: Damage Modifier
    Parameter #2: Irrelevant
    Description:
    Applies the Damage Modifier value to the damage caused by the targetted creature(s). The effect works as a minimum damage value, i.e. at least Damage Modifier damage will always be caused (on a successful hit).

    The effect modifies DAMAGELUCK.
    Info: This opcode works in the same manner as luck (and stacks with it), except that it only affects base weapon damage. It can be positive or negative.

    #251 (0xFB) Spell Effect: Change Bard Song Effect Variants: IWD1 IWD2
    Parameter #1: Irrelevant
    Parameter #2: Irrelevant
    Description:
    Sets the Bard Song of the targeted creature to the spell specified by the resource key.
    On non-EE games, the default Bard Song applies the following effects:
    • All effects are added to the entire party with Timing Mode 4096 (end at ticks) and duration = nGameTime + 100
    • Display Special Effect Icon
      • param2 (Icon) = 40 Bard Song
    • Morale Modifier – Sets the Morale stat of the targetted creature(s) to 10.
      • param1 (Ignored) = 10
      • param2 (Ignored) = 0
    • Cure Horror
      • param1 (Irrelevant) = 1
      • param2 (Irrelevant) = 0
    • Protection from Opcode
      • param1 (Irrelevant) = 1
      • param2 (Opcode) = 24 (State: Horror)

    On EE games, the default bardsong has been externalized to "BARDSONG.SPL".

    #252 (0xFC) Spell Effect: Set Trap Variants: IWD1 IWD2 BG2
    Parameter #1: Irrelevant
    Parameter #2: Irrelevant
    Description:
    Attempts to set the spell specified by the resource key as a trap.
    In particular:
    • If the caster is a party member, the number of traps in the current area must not exceed their class limit specified in TRAPLIMT.2DA.
    • Feedback string STRREF_FEEDBACK_SNAREFAILED_TOOMANY will be displayed if there are too many.
    • The caster cannot have any hostile creatures within their own visual range.
    • Feedback string STRREF_FEEDBACK_SNAREFAILED_ENEMIES will be displayed if there are enemies in sight.
    • If the caster succeeds the skill check, Feedback string STRREF_FEEDBACK_SNARESUCCEEDED will be displayed (and the spell specified by the resource key cast).
    • If the caster fails the skill check, Feedback string STRREF_FEEDBACK_SNAREFAILED will be displayed.
    • If the caster has a critical failure, then they are struck by spell 'Resource' + 'F'.
    Note: Feedback from this effect is only given when used by party members.

    #253 (0xFD) Spell Effect: Add Map Marker Variants: IWD1 IWD2
    Parameter #1: String Reference
    Parameter #2: Marker Color
    Description:

    Applies the set map marker effect.

    The String Reference parameter is a string reference to the dialog.tlk file that sets what the marker says when the marker is read. The Target of this effect should be set to Self to function correctly.

    The "Marker Color" parameter corresponds to the marker images in flag1.bam. In BG2 it can be one of:

    • 0 - Gray (default value)
    • 1 - Violet
    • 2 - Green
    • 3 - Orange
    • 4 - Red
    • 5 - Blue
    • 6 - Dark Blue
    • 7 - Light Gray
    And in EEs, one of:
    • 0 - Black (default value)
    • 1 - Grey (slate)
    • 2 - Red
    • 3 - Green
    • 4 - Yellow
    • 5 - Blue (tel)
    • 6 - Purple
    • 7 - Orange (salmon)
    • 8 - Cyan

    Important: This effect works in SoA but not ToB. Works fine in EE's.

    #254 (0xFE) Spell Effect: Remove Map Marker Variants: IWD1
    Parameter #1: String Reference
    Parameter #2: Irrelevant
    Description:
    Applies the remove map marker effect. This effect removes the map marker (if any) at the position the effect is cast. The Target of this effect should be set to Pre-Target to function correctly (actually, it can work with Self, might depend on how you are using it).

    The String Reference field should match opcode #253 StrRef to be removed. Opcode #254 needs to be cast on exact coordinates as opcode #253.

    Important: This effect works in SoA but not ToB. Works fine in EE's.

    #255 (0xFF) Item: Create Inventory Item (days) Variants: IWD1
    Parameter #1: Charges
    Parameter #2: Irrelevant
    Description:
    Creates the item specified by the resource key. The number of items created is controlled by the Charges field. The number of secondary charge is determined by Parameter3. The number of tertiary charges is determined by Parameter4 (external EFFs). The item is created in the Inventory, and has the can not steal bit set.
    Note: The difference from opcode #122 is that when used in an external EFF, the duration (from the calling file) is specified in days.

    #256 (0x100) Spell: Spell Sequencer Active Variants: BG2 IWD1
    Parameter #1: Irrelevant
    Parameter #2: Irrelevant
    Description:
    This effect stores the spell resources for an active spell sequencer. These resources are stored in the resource key, VVC field (resource2), and resource3.
    This effect stores spells to be cast through opcode #258 and opcode #260.
    When used in an external EFF file, known values for Parameter3 (Type) are:
    • 0 ⟶ Hidden – this sequencer is not viewable in the MageBook 'Contingency' screen, and is not removed when activated.
    • 1 ⟶ Displayed – this sequencer is viewable in the MageBook 'Contingency' screen, and is removed when activated.
    When used in an external EFF file, Parent Type (Source Type) may be manually set to influence its behavior. Known values for Parent Type are:
    • 0 ⟶ None – Allows further effects with a matching "Parent Resource" to affect the target.
    • 1 ⟶ Spell – Any further effects with a matching "Parent Resource" will be blocked by the engine and string STRREF_ERROR_CAN_NOT_CAST_TWO_CONT is returned to the combat log.
    • 2 ⟶ Item – Allows further effects with a matching "Parent Resource" to affect the target.
    When used in an external EFF file, Parent Resource (Activation Key) must be manually set to influence its behavior.
    The Activation Key is the "Resource" to be referenced by the effect(s) that will activate this sequencer.
    When set manually, it cannot contain lowercase characters, it MUST be in ALLCAPS, numbers, and/or symbols, or the sequencer cannot be activated.
    Note: The presence of this effect in any of a spell’s ability headers will force any Wild Surge of that spell to use the ‘Cast Normal’ result.
    Note: Activation Key does not have to reference an actual spell or item resource, it can be any valid string, so long as the effects involved (256/257 and 258/260) use the exact same string.

    #257 (0x101) Spell: Spell Sequencer Creation Variants: BG2 IWD1
    Parameter #1: Maximum Level Usable
    Parameter #2: Amount
    Description:
    Creates a custom spell sequencer, storing a certain number of spells for later use.
    It applies opcode #256 to the caster upon completing the spell selection process, and at the same time it grants you the -D or -P subspell (via opcode #171). In particular:
    • if all of the sequenced spells use Ability Target 4 (Target Point), it will grant spell 'Parent' + 'P' (provided such a spell exists – for instance: SPWI420P),
    • otherwise it will grant spell 'Parent' + 'D' (for instance: SPWI420D).
    The chosen spells are stored using opcode #256, using Timing Mode 1 (regardless of timing mode for opcode #257) and Parameter3 set to 1.
    The Maximum Level field indicates the maximum spell level that can be used in the sequencer. The Amount field indicates the number of spells that can be used in the sequencer.

    When used in an external EFF file, Parent Type (Source Type) may be manually set to influence its behavior. Known values for Parent Type are:
    • 0 ⟶ None – Allows further effects with a matching "Parent Resource" to affect the target.
    • 1 ⟶ Spell – Any further effects with a matching "Parent Resource" will be blocked by the engine and string STRREF_ERROR_CAN_NOT_CAST_TWO_CONT is returned to the combat log.
    • 2 ⟶ Item – Allows further effects with a matching "Parent Resource" to affect the target.
    When used in an external EFF file, Parent Resource (Activation Key) must be manually set to influence its behavior.
    When set manually, it cannot contain lowercase characters, it MUST be in ALLCAPS, numbers, and/or symbols, or the sequencer cannot be activated.

    If not used in an external EFF, the Activation Key will be the "Parent Resource".
    If used in an external EFF, the Activation Key must be explicitly specified, but doesn't need to match its actual "Parent Resource".
    For the vanilla spells, the Activation Key is always the parent spell of opcode #257.
    Important: As of v2.3, an entry for the "Parent Resource" or "Activation Key" must be added to the mageBookStrings{} lua table, or the game will crash upon use.
    Important: The filename of a spell containing this effect should be no more than 7 characters.
    Note: The presence of this effect in any of a spell’s ability headers will force any Wild Surge of that spell to use the ‘Cast Normal’ result.
    Note: Activation Key does not have to reference an actual spell or item resource, it can be any valid string, so long as the effects involved (256/257 and 258/260) use the exact same string.

    #258 (0x102) Spell: Spell Sequencer Activation Variants: IWD1 IWD2 BG2
    Parameter #1: Irrelevant
    Parameter #2: Irrelevant
    Description:
    Activates a spell sequencer at a single target.
    Activates any opcode #256 effects with a matching resource (Activation Key) of the targeted creature(s).
    When used in combination with opcode #257 (Spell Sequencer Creation):
    • The resource key must be set to the filename of the spell which contains the Spell Sequencer Creation effect.
    • The spell which contains the Spell Sequencer Creation effect can have a maximum filename of 7 characters.
    • The spell which contains the Spell Sequencer Activation effect must have the same filename, suffixed with the D character, and should be an innate ability. For instance:
      • Spell Sequencer Creation filename = SPWI420
      • Spell Sequencer Activation filename = SPWI420D

    Those spells are cast by the targeted creature(s) at "this" ability's target.
    For each stored spell, "this" ability's target must be within range of that spell, or it will fail.

    All opcode #256 effects with a matching Activation Key are removed if their Parameter3 = 1 (those created by opcode #257 / opcode #234 have this value set to 1 by default).
    Note: This opcode will fail if delivered directly in an area effect projectile (though it may still target “self” or be used in subsequent non-AoE subspells).
    Note: Activation Key does not have to reference an actual spell or item resource, it can be any valid string, so long as the effects involved (256/257 and 258/260) use the exact same string.

    #259 (0x103) Protection: Spell Trap (by Power Level, decrementing) Variants: IWD1 IWD2
    Parameter #1: Total Amount
    Parameter #2: Power Level
    Description:
    Applies the spell-trap effect to the targeted creature(s), absorbing a number of effects as specified by the Total Amount field, of the level specified by the Power Level field, and recalling previously cast spells.

    The Power level of the first effect to trigger any instance of this opcode's trap will determine how much this opcode's Total Amount is decremented. Every instance of this opcode on the creature will be decremented by this amount.

    On EE games, resource field ⟶ Spell cast when this effect self-terminates, default = Parent + "B".

    Info:
    • CANNOT trap effects of Secondary Type MagicAttack.
    • CANNOT trap EFF files with resist_dispel = BIT2.
      • Keep in mind that this BIT is automatically set on any effect delivered by an Area-Effect (Explosion) projectile, so this opcode cannot trap effects through AoE projectiles.
    • CANNOT trap effects from self.
    • Maintains portrait icon Spell Trap on the target.
    • Maintains animation SPMAGGLO on the target, can be suppressed by opcode #291.
    • When it traps an effect, it applies opcode #261 to the target.
      • Parameter1 is the Power level of the trapped effect, Parameter2 is always 0|Wizard.
    Note: EFF files delivered by opcode #177/opcode #283 will interact with Trapping separately from the opcode #177/opcode #283 effect that applies them, and only if that opcode #177/opcode #283 effect already got through. If the opcode #177/opcode #283 effect is trapped, then the values in the EFF file won’t matter. Most vanilla EFF files have these fields set to empty/zero to avoid interacting with this opcode.

    #260 (0x104) Spell: Spell Sequencer Activation Variants: BG2 IWD1
    Parameter #1: Irrelevant
    Parameter #2: Irrelevant
    Description:
    Activates a spell sequencer at a target point.
    Activates any opcode #256 with a matching resource (Activation Key) of the targeted creature(s).
    When used in combination with opcode #257 (Spell Sequencer Creation):
    • The resource key must be set to the filename of the spell which contains the Spell Sequencer Creation effect.
    • The spell which contains the Spell Sequencer Creation effect can have a maximum filename of 7 characters.
    • The spell which contains the Spell Sequencer Activation effect must have the same filename, suffixed with the P character, and should be an innate ability. For instance:
      • Spell Sequencer Creation filename = SPWI420
      • Spell Sequencer Activation filename = SPWI420P

    Those spells are cast by the targeted creature(s) at "this" ability's target.
    For each stored spell, "this" ability's target must be within range of that spell, or it will fail.

    All opcode #256 effects with a matching Activation Key are removed if their Parameter3 = 1 (those created by opcode #257 / opcode #234 have this value set to 1 by default).
    Note: Activation Key does not have to reference an actual spell or item resource, it can be any valid string, so long as the effects involved (256/257 and 258/260) use the exact same string.

    #261 (0x105) Spell: Restore Lost Spells Variants: IWD1
    Parameter #1: Spell Level
    Parameter #2: Spell Type
    Description:
    Applies the restore lost spell effect to the targeted creature(s).
    This effect will restore 1 spell to memory, at the level specified by the Spell Level field, and of the type specified by the Spell Type field. If there is no free slot at the specified level, the effect restores a spell at the next lowest level possible.
    Known values for Spell Type are:
    • 0 ⟶ Wizard / Bard / Sorcerer
    • 1 ⟶ Cleric / Druid / Shaman

    #262 (0x106) Stat: Visual Range Variants: IWD1 IWD2
    Parameter #1: Statistic Modifier
    Parameter #2: Type
    Description:
    Applies the visual range effect to the targeted creature(s).
    This effect modifies the visual range of the targeted creature(s).
    The Statistic Modifier parameter seems to be in the 0–15 interval.
    Known values for Type are:
    • 0 ⟶ Cumulative Modifier: Visual Range = Visual Range + 'Statistic Modifier' value
    • 1 ⟶ Flat Value Modifier: Visual Range = 'Statistic Modifier' value

    The effect modifies VISUALRANGE.

    Info: With relation to this effect:
    • Each unit of visible range equals 2ft: 32px(horizontal)/24px(vertical)
    • Default Visual Range = 14
    • Maximum visual range to reveal "Fog of War" = 23

    #263 (0x107) Stat: Backstab Variants: IWD1
    Parameter #1: Statistic Modifier
    Parameter #2: Type
    Description:
    Applies the modifier value specified by the Statistic Modifier field in the style specified by the Type field.
    Known values for Type are:
    • 0 ⟶ Cumulative Modifier: Backstab = Backstab + 'Statistic Modifier' value
    • 1 ⟶ Flat Value Modifier: Backstab = 'Statistic Modifier' value
    • 2 ⟶ Percentage Modifier: Backstab = (Backstab * 'Statistic Modifier' value) / 100

    #264 (0x108) Spell Effect: Drop Weapons in Panic Variants: IWD1 BG2
    Parameter #1: Irrelevant
    Parameter #2: Type
    Description:
    Applies the drop weapons effect to the targeted creature(s), in the style specified by the Type field.
    This effect causes the targeted creature(s) to drop a piece of equipment.
    Known values for Type are:
    • 0 ⟶ Drop random equipment
    • 1 ⟶ Drop weapons from Quick-Weapon Slot (slots #35 – #38)
    Note: Can drop items located in the Magical Weapon Slot if they are not flagged properly.
    Will never drop items:

    #265 (0x109) Script: Modify Global Variable Variants: IWD1
    Parameter #1: Value
    Parameter #2: Type
    Description:
    Alters the global variable specified by the resource key, in the style specified by the Type field, by the value specified by the Value field.
    Known values for Type are:
    • 0 ⟶ Set Global (to Value)
    • 1 ⟶ Increment Global (by Value)
    Note:
    • Since the Resource Key can only be 8 characters long maximum, you can not set a Global Variable with this effect that has a name longer than this amount.
      • You can use the VVC field of external EFF files for an additional 8 characters of variable name.
        • You can use the 3rdresource field of external EFF files for an additional 8 characters of variable name.
    Note: All timing modes act as permanent for this effect.
    Note: Value can store integers or coordinates. Coordinates are stored as first 2 bytes X, last 2 bytes Y (f.i.: 310 + (30 << 16)).
    Warning: Make sure to set target. Target: Self (1) works well. If target is unset (0), the game will freeze.

    #266 (0x10A) Spell: Remove Protection from Spell Variants: IWD1
    Parameter #1: Irrelevant
    Parameter #2: Irrelevant
    Description:
    Removes opcode #206 with matching resource keys.
    Note: At least in BG2 and EEs, this effect can remove opcode #177/opcode #283 when EFF file uses opcode #206 and matching resource.

    #267 (0x10B) Text: Protection from Display Specific String Variants: IWD1
    Parameter #1: String Reference
    Parameter #2: Irrelevant
    Description:
    Prevents the strref specified by the String Reference field being displayed by the targeted creature(s).
    Important: Only grants immunity to opcode #139 effects with a matching String Reference value.
    Cannot block string displays from any other mechanic.

    #268 (0x10C) Spell Effect: Clear Fog of War (Wizard Eye) Variants: IWD1
    Parameter #1: Irrelevant
    Parameter #2: Irrelevant
    Description:
    Applies the clear fog of war effect on the targeted creature(s).
    The targeted creature(s) will be able to explore like a PC does.

    This effect sets EXPLORE to 1.
    Important: Only 8 creatures in a given area can fully clear fog of war, with priority going to party members.

    #269 (0x10D) Spell Effect: Shake Window Variants: IWD1
    Parameter #1: Strength
    Parameter #2: Undetermined
    Description:
    Applies the shake windows effect, with an intensity specified by the Strength field.

    #270 (0x10E) Cure: Unpause Target Variants: IWD1
    Parameter #1: Irrelevant
    Parameter #2: Irrelevant
    Description:
    Removes the pause effect from the targeted creature(s).

    #271 (0x10F) Graphics: Avatar Removal Variants: IWD1 BG2
    Parameter #1: Irrelevant
    Parameter #2: Irrelevant
    Description:
    Hides the creature's animation and selection circle, including illusionary images (Blur / Mirror Image).
    Disables the creature's AI scripts.
    The creature cannot take any action not listed in INSTANT.IDS (usually through ActionOverride()).
    The creature is still subject to area effect and may still be targeted directly by mouseover.

    #272 (0x110) Spell: Apply Repeating EFF Variants: IWD1 BG2
    Parameter #1: Amount_1
    Parameter #2: Type
    Parameter #3: Amount_2
    Parameter #4: Frequency Multiplier
    Special: Icon
    Description:
    Applies the EFF specified by the resource key to the targeted creature(s) as specified by the Type field.
    Known values for Type are:
    • 0 ⟶ Apply once per second
      • Amount_2 and Frequency Multiplier are ignored — Amount_1 needs to be non-zero
    • 1 ⟶ Unknown (see below for further details)
    • 2 ⟶ Apply Amount_1 times every Frequency Multiplier second(s)
    • 3 ⟶ Apply once every 'Amount_1' * 'Frequency Multiplier' second(s)
    • 4 ⟶ Apply Amount_2 times every 'Amount_1' * 'Frequency Multiplier' second(s) — This is the only one that must be in external EFF files
    • 5+ ⟶ Crash

    Icon defines the index from STATDESC.2DA for custom portrait icons. Default value is None (no icon).

    Important: EFF files applied by this opcode can be blocked by opcode #101.
    Info: The timings are relative to the movement rate of the affected creature(s). opcode #40 (Slow) and opcode #78 (Disease) doubles the timing rate, effect opcode #16 (Haste) halves the timing rate.
    Important: This opcode does not have any function when Type = 1, thought the effect is still present (it doesn't just instantly terminate), and will generate a portrait icon if Icon is non-zero.
    Info: If Frequency Multiplier = 0, its value is treated as 1. This is the default value for SPL/ITM effects.

    #273 (0x111) Remove: Specific Area Effect(Zone of Sweet Air) Variants: IWD1
    Parameter #1: Undetermined
    Parameter #2: Undetermined
    Description:
    Removes projectiles listed in CLEARAIR.2DA.
    Note: At least in EEs, If the resource field is filled, it will use a custom 2DA file to determine which projectiles to remove.
    The custom 2DA file must be structured as "CLEARAIR.2DA".

    #274 (0x112) Spell Effect: Teleport to Target Variants: IWD1
    Parameter #1: Undetermined
    Parameter #2: Undetermined
    Description:
    Teleports the affected creature(s) to a random enemy (i.e. party members would teleport to a red circled creature, red circled creatures teleport to the party). Enemy needs to be within visual range, but can be invisible.

    #275 (0x113) Stat: Hide in Shadows Modifier Variants: IWD1
    Parameter #1: Statistic Modifier
    Parameter #2: Type
    Description:
    Applies the modifier value specified by the Statistic Modifier field in the style specified by the Type field.
    Known values for Type are:
    • 0 ⟶ Cumulative Modifier: Skill = Skill + 'Statistic Modifier' value
    • 1 ⟶ Flat Value Modifier: Skill = 'Statistic Modifier' value
    • 2 ⟶ Percentage Modifier: Skill = (Skill * 'Statistic Modifier' value) / 100
    Info: When Type = 0 and Timing Mode = 9, it modifies HIDEINSHADOWSMTPBONUS. The final value for this stat is multiplied by its percentage entry in THIEFSCL.2DA capped to the range [0,255], before being included in the creature’s Hide in Shadows score.

    #276 (0x114) Stat: Detect Illusion Modifier Variants: IWD1 IWD2
    Parameter #1: Statistic Modifier
    Parameter #2: Type
    Description:
    Applies the modifier value specified by the Statistic Modifier field in the style specified by the Type field.
    Known values for Type are:
    • 0 ⟶ Cumulative Modifier: Skill = Skill + 'Statistic Modifier' value
    • 1 ⟶ Flat Value Modifier: Skill = 'Statistic Modifier' value
    • 2 ⟶ Percentage Modifier: Skill = (Skill * 'Statistic Modifier' value) / 100
    Info: At least in EEs, when Type = 0 and Timing Mode = 9, it modifies DETECTILLUSIONSMTPBONUS. The final value for this stat is multiplied by its percentage entry in THIEFSCL.2DA capped to the range [0,255], before being included in the creature’s Detect Illusions score.

    #277 (0x115) Stat: Set Traps Modifier Variants: IWD1
    Parameter #1: Statistic Modifier
    Parameter #2: Type
    Description:
    Applies the modifier value specified by the Statistic Modifier field in the style specified by the Type field.
    Known values for Type are:
    • 0 ⟶ Cumulative Modifier: Skill = Skill + 'Statistic Modifier' value
    • 1 ⟶ Flat Value Modifier: Skill = 'Statistic Modifier' value
    • 2 ⟶ Percentage Modifier: Skill = (Skill * 'Statistic Modifier' value) / 100
    Info: At least in EEs, when Type = 0 and Timing Mode = 9, it modifies SETTRAPSMTPBONUS. The final value for this stat is multiplied by its percentage entry in THIEFSCL.2DA capped to the range [0,255], before being included in the creature’s Set Traps score.

    #278 (0x116) Stat: To Hit Modifier Variants: IWD1
    Parameter #1: Statistic Modifier
    Parameter #2: Type
    Description:
    Applies the modifier value specified by the Statistic Modifier field in the style specified by the Type field.
    Known values for Type are:
    • 0 ⟶ Cumulative Modifier: To-hit = To-hit + 'Statistic Modifier' value
    • 1 ⟶ Flat Value Modifier: To-hit = 'Statistic Modifier' value
    • 2 ⟶ Percentage Modifier: To-hit = (To-hit * 'Statistic Modifier' value) / 100
    Note: This effect adjusts modified THAC0, rather than the base stat.

    #279 (0x117) Button: Enable Button Variants: IWD1
    Parameter #1: Irrelevant
    Parameter #2: Button
    Description:
    Enables the button specified by the Button field. The resource field acts as a matching key to the resource field of the Enable Button, allowing separate enable/disable reasons.
    Known values for Button are:
    • 0 ⟶ Stealth Button
    • 1 ⟶ Thieving Skill Button
    • 2 ⟶ Spell Select Button
    • 3 ⟶ First Quick Spell Button
    • 4 ⟶ Second Quick Spell Button
    • 5 ⟶ Third Quick Spell Button
    • 6 ⟶ Turn Undead Button
    • 7 ⟶ Talk Button
    • 8 ⟶ Use Item Button
    • 9 ⟶ First Quick Item Button
    • 10 ⟶ Bard Song Button (EE only)
    • 11 ⟶ Second Quick Item Button
    • 12 ⟶ Third Quick Item Button
    • 13 ⟶ Innate Ability Button
    • 14 ⟶ Find Traps Button
    • 15 ⟶ Inventory Button (EE only)
    Important: Removing opcode #144 is all it does, it cannot enable buttons disabled by other mechanics.

    #280 (0x118) Spell Effect: Wild Magic Variants: IWD1
    Parameter #1: Irrelevant
    Parameter #2: Type
    Description:
    Applies the wild magic effect to the targeted creature(s).
    This effect causes other spells to be subject to wild magic throws.
    Known values for Type are:
    • 1 ⟶ Affect next spell cast
    • 2 ⟶ Affect all spells cast for effect duration
    Note: Can only force Wild Surges on spells that are normally valid for them.
    In particular, it doesn’t work for SPLs whose BIT14 is set to 1, subspells, as well as certain script actions – mostly the “instant-cast” ones.
    Info: Type = 1 also maintains FORCESURGE to 1.

    #281 (0x119) Stat: Wild Magic Variants: IWD1
    Parameter #1: Statistic Modifier
    Parameter #2: Type
    Description:
    This effect will alter the wild-surge roll, making the resultant effect either more or less beneficial.
    Applies the modifier value specified by the Statistic Modifier field in the style specified by the Type field.
    Known values for Type are:
    • 0 ⟶ Cumulative Modifier: Chance = Chance + 'Statistic Modifier' value
    • 1 ⟶ Flat Value Modifier: Chance = 'Statistic Modifier' value
    • 2 ⟶ Percentage Modifier: Chance = (Chance * 'Statistic Modifier' value) / 100
    Info: At least in EEs, the final value is added to the inherint level-based bonus of the Wild Mage.

    #282 (0x11A) Script: Scripting State Modifier Variants: IWD1
    Parameter #1: Value
    Parameter #2: Scripting State
    Description:
    Modifies Scripting State to the given value. Scripting State range from 0 to 35. The scripting state can be checked via scripts (see STATS.IDS) subtract 156 from the stat value to get the scripting state.
    Info:
    • On non-EE games, this effect does not have proper bounds checking. It can therefore be used in unintended ways. For example scripting state 13 equals with the NO_CIRCLE attribute (stat=169), and scripting state 1139 ties to PICKPOCKET (stat=29).
    • EEs have proper bounds checking for this opcode, can only modify stats #156 – #200, except SUMMON_DISABLE_ACTION, not all values are a straight "subtract 156 from their stat".
      • For best results, it should only be used for stats #156 – #165, as all others have dedicated opcodes and hardcoded effects.

    #283 (0x11B) Use EFF File (Cursed) Variants: BG2 IWD1
    Parameter #1: IDS Entry
    Parameter #2: IDS File
    Description:
    Applies the EFF file specified by the resource key to the targeted creature(s), if the targeted creature(s) match the IDS Entry in the specified IDS File. The EFF can be removed via the Remove Curse opcode (in addition to other standard methods).
    Known values for IDS File are:
    Important: EFF files applied by this opcode bypass / ignore opcode #101.

    #284 (0x11C) Stat: Melee THAC0 Modifier Variants: IWD1
    Parameter #1: Statistic Modifier
    Parameter #2: Type
    Description:
    Applies the modifier value specified by the Statistic Modifier field in the style specified by the Type field.
    Known values for Type are:
    • 0 ⟶ Cumulative Modifier: THAC0 = THAC0 + 'Statistic Modifier' value
    • 1 ⟶ Flat Value Modifier: THAC0 = 'Statistic Modifier' value
    • 2 ⟶ Percentage Modifier: THAC0 = (THAC0 * 'Statistic Modifier' value) / 100


    The effect modifies MELEE_THACO_BONUS.

    #285 (0x11D) Stat: Melee Weapon Damage Modifier Variants: IWD1
    Parameter #1: Statistic Modifier
    Parameter #2: Type
    Description:
    Applies the modifier value specified by the Statistic Modifier field in the style specified by the Type field.
    Known values for Type are:
    • 0 ⟶ Cumulative Modifier: Damage = Damage + 'Statistic Modifier' value
    • 1 ⟶ Flat Value Modifier: Damage = 'Statistic Modifier' value
    • 2 ⟶ Percentage Modifier: Damage = (Damage * 'Statistic Modifier' value) / 100


    The effect modifies MELEE_DAMAGE_BONUS.

    #286 (0x11E) Stat: Missile Weapon Damage Modifier Variants: IWD1
    Parameter #1: Statistic Modifier
    Parameter #2: Type
    Description:
    Applies the modifier value specified by the Statistic Modifier field in the style specified by the Type field.
    Known values for Type are:
    • 0 ⟶ Cumulative Modifier: Damage = Damage + 'Statistic Modifier' value
    • 1 ⟶ Flat Value Modifier: Damage = 'Statistic Modifier' value
    • 2 ⟶ Percentage Modifier: Damage = (Damage * 'Statistic Modifier' value) / 100


    The effect modifies MISSILE_DAMAGE_BONUS.

    #287 (0x11F) Graphics: Selection Circle Removal Variants: IWD1
    Parameter #1: Irrelevant
    Parameter #2: Irrelevant
    Description:
    Removes the selection circle from the targeted creature(s).

    The effect modifies DISABLE_CIRCLE.

    #288 (0x120) Stat: Fist THAC0 Modifier Variants: IWD1 IWD2
    Parameter #1: Statistic Modifier
    Parameter #2: Type
    Description:
    Applies the modifier value specified by the Statistic Modifier field in the style specified by the Type field.
    Known values for Type are:
    • 0 ⟶ Cumulative Modifier: THAC0 = THAC0 + 'Statistic Modifier' value
    • 1 ⟶ Flat Value Modifier: THAC0 = 'Statistic Modifier' value
    • 2 ⟶ Percentage Modifier: THAC0 = (THAC0 * 'Statistic Modifier' value) / 100


    The effect modifies FIST_THACO_BONUS.

    #289 (0x121) Stat: Fist Damage Modifier Variants: IWD1 IWD2
    Parameter #1: Statistic Modifier
    Parameter #2: Type
    Description:
    Applies the modifier value specified by the Statistic Modifier field in the style specified by the Type field.
    Known values for Type are:
    • 0 ⟶ Cumulative Modifier: Damage = Damage + 'Statistic Modifier' value
    • 1 ⟶ Flat Value Modifier: Damage = 'Statistic Modifier' value
    • 2 ⟶ Percentage Modifier: Damage = (Damage * 'Statistic Modifier' value) / 100


    The effect modifies FIST_DAMAGE_BONUS.

    #290 (0x122) Text: Change Title Variants: IWD1 IWD2 BG2
    Parameter #1: String Reference
    Parameter #2: Position
    Special: Class
    Description:
    Changes the title of the targeted creature(s), to the strref specified by the String Reference field, at the location specified by the Position field.
    Known values for Position are:
    • 0 ⟶ Records Screen information section
    • 1 ⟶ Various character screens (eg. Inventory and Records Screen)

    The effect modifies CLASS_STRING_OVERRIDE_MIXED and CLASS_STRING_OVERRIDE_LOWER.
    Class specifies which classes title is replaced (values are from CLASS.IDS).

    #291 (0x123) Graphics: Disable Visual Effect Variants: IWD1 IWD2
    Parameter #1: Irrelevant
    Parameter #2: Stat Value
    Description:
    Blocks the hardcoded animations applied by the following opcodes: 201, 204, 205, 223, 226, 259, 197, 198, 200, 202, 203, 207, 227, 228, 299. These are the SPTURNI2 and SPMAGGLO BAM animations.

    The effect modifies PREVENT_SPELL_PROTECTION_EFFECTS to Stat Value.
    Note: The Stat Value parameter can take any value. If you set it to 0, you will disable the effect (for its duration).

    #292 (0x124) Protection: Backstab Variants: IWD1
    Parameter #1: Irrelevant
    Parameter #2: Stat Value
    Description:
    Makes the targeted creature(s) immune to backstabbing.

    The effect modifies IMMUNITY_TO_BACKSTAB to Stat Value.
    Note: The Stat Value parameter can take any value. If you set it to 0, you will disable the effect (for its duration).

    #293 (0x125) Script: Enable Offscreen AI Variants: IWD1
    Parameter #1: Irrelevant
    Parameter #2: Stat Value
    Description:
    The targeted creature(s) will still run scripts when off-screen and out of combat.

    The effect modifies PREVENT_AI_SLOWDOWN to Stat Value.
    Note:
    • Creatures in EE run scripts as long as they are in the current area, opcode #293 does not alter this, nor allow their scripts to run while they are in different areas.
    • However, creatures without this opcode attached will run scripts at a considerably slower rate (about ⅓ or ¼ rate).
    • Moreover, it looks like off-screen creatures move only at halved speed (which might be true for other actions as well). With this opcode creatures seem to move and act at the same speed as on-screen.
    Note: The Stat Value parameter can take any value. If you set it to 0, you will disable the effect (for its duration).

    #294 (0x126) Spell Effect: Existance Delay Override Variants: IWD1
    Parameter #1: Undefined
    Parameter #2: Constant Value
    Description:
    Existance is the verbal constant group from 69 to 74 (or 70–74). These sounds are randomly played (for non global, alive characters, when not in cutscene or dialog). This stat tunes the frequency of these random strings.
    Known values for Constant Value are:
    • -1 ⟶ no existance sounds
    • 0 ⟶ standard existance sound frequency
    • Other values ⟶ random existance sound frequency (the higher the rarer)
    Info: The effect modifies EXISTANCE_DELAY_OVERRIDE, unless Constant Value is set to 1.

    #295 (0x127) Graphics: Disable Permanent Death Variants: IWD1
    Parameter #1: Undefined
    Parameter #2: Stat Value
    Description:
    This targeted creature(s) will never suffer a permanent death (and will therefore always remain resurrectable) – exceptions include petrification and freeze-death.

    The effect modifies NO_PERMANENT_DEATH to Stat Value.
    Timing Mode should be set to 9 (Permanent after Death).
    Note: The Stat Value parameter can take any value. If you set it to 0, you will disable the effect (for its duration).

    #296 (0x128) Graphics: Protection from Specific Animation Variants: IWD1
    Parameter #1: Irrelevant
    Parameter #2: Irrelevant
    Description:
    Provides the targeted creature(s) with immunity to opcode #215 effects with a matching "Resource" specified by the resource key.
    Note: It does not remove any opcode #215 effect already present on the targeted creature.
    Important: It cannot block animations from any other source.

    #297 (0x129) Spell Effect: Immunity to Turn Undead Variants: IWD2
    Parameter #1: Undefined
    Parameter #2: Stat Value
    Description:
    Makes the targeted creature(s) immune to the Turn Undead effect.

    The effect modifies IMMUNE_TO_TURN_UNDEAD to Stat Value.
    Note: The Stat Value parameter can take any value. If you set it to 0, you will disable the effect (for its duration).

    #298 (0x12A) Spell Effect: Execute Script cut250a Variants: IWD2 BG2
    Parameter #1: Irrelevant
    Parameter #2: Irrelevant
    Description:
    Executes script "cut250a.bcs". By default this script teleports the party to the Pocket Plane area (AR4500).
    Warning: Game will become locked in cutscene mode if "cut250a.bcs" doesn’t exist.

    #299 (0x12B) Spell Effect: Chaos Shield Variants: BG2
    Parameter #1: Shield Amount
    Parameter #2: Icon
    Description:
    This effect defends against wild surges and displays an associated icon as specified by the Icon parameter.
    Known values for Icon are:
    • 0 ⟶ Normal Chaos Shield
    • 1 ⟶ Improved Chaos Shield

    The effect modifies CHAOS_SHIELD.
    Info: It displays animation "SPTURNI2.BAM" (Spell Turning Disk).
    Info: It does not directly block opcode #281 (or opcode #280), it blocks the wild surge itself, which can be natural or forced.
    Surges it prevents do not count towards the “Next Spell” option of opcode #280.

    #300 (0x12C) Spell Effect: NPCBump
    Parameter #1: Unknown
    Parameter #2: Stat Value
    Description:
    This effect allows the targetted creature(s) to push other creatures out of the way while moving.

    The effect modifies NPC_BUMP to Stat Value.
    Note: The Stat Value parameter can take any value. If you set it to 0, you will disable the effect (for its duration).

    #301 (0x12D) Stat: Critical Hit Modifier Variants: BG2
    Parameter #1: Statistic Modifier
    Parameter #2: Condition
    Parameter #3: Weapon Category
    Special: Attack Type
    Description:
    This effect improves the Critical Hit chances.
    Critical hits will occur on a roll (on a 1d20) greater or equal to: 20 - 'Statistic Modifier'.
    Known values for Condition are:
    • 0 ⟶ Apply Critical Hit chance for both hands
    • 1 ⟶ Apply Critical Hit chance only for this weapon

    Known values for Attack Type are:
    • 0 ⟶ Any attack type
    • 1 ⟶ Melee attack only
    • 2 ⟶ Ranged attack only
    • 3 ⟶ Magical attack only

    (External EFFs) Known values for Weapon Category are defined in ITEMCAT.IDS.

    The effect modifies CRITICALHITBONUS.
    Note: In v2.3 and prior, only the latest instance of this opcode applies. In v2.5+, all instances stack together.

    #302 (0x12E) Item: Can Use Any Item Variants: BG2
    Parameter #1: Irrelevant
    Parameter #2: Stat Value
    Description:
    The targeted creature(s) can use any item.

    The effect modifies USE_ANY_ITEM to Stat Value.
    Note: The Stat Value parameter can take any value. If you set it to 0, you will disable the effect (for its duration).
    Important: It does not bypass item restrictions from ITEM_USE.2DA, Ability Score/Level requirements, or to scribing spells of opposition schools.

    #303 (0x12F) Spell Effect: Backstab Every Hit Variants: BG2
    Parameter #1: Irrelevant
    Parameter #2: Stat Value
    Description:
    The targeted creature(s) will backstab with every hit.

    The effect modifies ASSASSINATE to Stat Value.
    Note: The Stat Value parameter can take any value. If you set it to 0, you will disable the effect (for its duration).
    Important: Creature must still be using a weapon valid for backstabbing.
    Info:
    • Backstabs no longer require the creature to be invisible.
    • Sneak Attacks no longer require the creature to be flanking their target.

    #304 (0x130) Mass Raise Dead
    Parameter #1: Irrelevant
    Parameter #2: Irrelevant
    Description:
    This effect will raise multiple dead Party Members (PCs).

    #305 (0x131) Stat: THAC0 Modifier (Off-Hand)
    Parameter #1: Statistic Modifier
    Parameter #2: Type
    Description:
    Applies the modifier value specified by the Statistic Modifier field in the style specified by the Type field.
    Known values for Type are:
    • 0 ⟶ Cumulative Modifier: THAC0 = THAC0 + 'Statistic Modifier' value
    • 1 ⟶ Flat Value Modifier: THAC0 = 'Statistic Modifier' value
    • 2 ⟶ Percentage Modifier: THAC0 = (THAC0 * 'Statistic Modifier' value) / 100

    #306 (0x132) Stat: THAC0 Modifier (On-Hand)
    Parameter #1: Statistic Modifier
    Parameter #2: Type
    Description:
    Applies the modifier value specified by the Statistic Modifier field in the style specified by the Type field.
    Known values for Type are:
    • 0 ⟶ Cumulative Modifier: THAC0 = THAC0 + 'Statistic Modifier' value
    • 1 ⟶ Flat Value Modifier: THAC0 = 'Statistic Modifier' value
    • 2 ⟶ Percentage Modifier: THAC0 = (THAC0 * 'Statistic Modifier' value) / 100

    #307 (0x133) Ranger Tracking Ability
    Parameter #1: Range
    Parameter #2: Irrelevant
    Description:
    Activates the Tracking Ability. A string from TRACKING.2DA is shown, and arrows appear along the screen edge pointing to any creatures within range. The units of the range parameter are unknown.
    Info: The arrow effect may be hardcoded to spell "SPCL922.SPL".
    Note: The file TRACKING.2DA lists the string reference that shows what information is learned from using this effect for each area.

    #308 (0x134) Protection: From Tracking Variants: BG2
    Parameter #1: Radius
    Parameter #2: Stat Value
    Description:
    Protects the targeted creature(s) from the Tracking arrows effect (has no effect on the area string displayed).

    The effect modifies IMMUNE_TO_TRACKING to Stat Value.
    Note: The Stat Value parameter can take any value. If you set it to 0, you will disable the effect (for its duration).
    Warning: Using this effect While Equipped on an item will crash the game.
    Important: Arrows do not display when using permanent or equipped timing modes.
    Important: This effect is not saved to file, it will be lost if you save & reload.
    Info: Radius: same scale as Area-Effect projectiles (16 units = 1ft).

    #309 (0x135) Script: Modify Local Variable
    Parameter #1: Value
    Parameter #2: Type
    Description:
    Modifies the local variable specified by the resource key to the value specified by the Value field.
    Known values for Type are:
    • 0 ⟶ Set Local (to Value)
    • 1 ⟶ Increment Local (by Value)
    Info:
    • Since the resource key can only be 8 characters long maximum, you can not set a variable with this Effect that has a name longer than this amount.
      • You can use the Resource 2 field of external EFF files for an additional 8 characters of variable name.
        • You can use the Resource 3 field of external EFF files for an additional 8 characters of variable name.
          • As a result, it cannot modify variables more than 24 characters long.
    Info: This effect is always instantaneous (local variables are stored internally, not as effects, while the game is running). All local variables for a CRE are stored as opcode #187 effects on that CRE whenever the game is saved, which will trigger as soon as the game is loaded.
    Info: Value can store integers or coordinates. Coordinates are stored as first 2 bytes X, last 2 bytes Y (f.i.: 310 + (30 << 16)).

    #310 (0x136) Protection: from Timestop
    Parameter #1: Irrelevant
    Parameter #2: Stat Value
    Description:
    The targeted creature(s) becomes immune to time-stop.

    The effect modifies IMMUNE_TO_TIME_STOP to Stat Value.
    Note: The Stat Value parameter can take any value.
    If you set it to 0, you will disable the effect (for its duration). For instance, a Time Stop spell that applies (to everyone) op#310 with Stat Value = 0 for 18s would trap those such as Demogorgon in the time stop.
    Note: Creatures are naturally immune to their own Time Stop effects, without needing this effect or setting IMMUNE_TO_TIME_STOP.

    #311 (0x137) Spell: Random Wish Spell
    Parameter #1: Irrelevant
    Parameter #2: Irrelevant
    Description:
    This effect casts a wish spell (SPWISH01 – SPWISH25), selected based on the casting creatures Wisdom attribute, as outlined below.

    SPWISHxx    MinWis    MaxWis
    01          10        25
    02          10        25
    03          10        25
    04          10        25
    05          0         25
    06          10        25
    07          0         25
    08          15        25
    09          0         25
    10          0         25
    11          0         25
    12          0         25
    13          0         25
    14          0         25
    15          15        25
    16          0         25
    17          0         25
    18          0         17
    19          0         9
    20          0         17
    21          0         17
    22          0         9
    23          0         9
    24          0         9
    25          0         25
    

    #312 (0x138) Crash Variants: BG2
    Parameter #1: Undefined
    Parameter #2: Stat Value
    Description:
    The effect modifies IMMUNE_TO_SEQUESTER to Stat Value.
    Note: The Stat Value parameter can take any value. If you set it to 0, you will disable the effect (for its duration).

    #313 (0x139) High-Level Ability Denotation
    Parameter #1: Undetermined
    Parameter #2: Undetermined
    Description:
    This effect denotes that the high level ability specified by the resource key has been gained. Used for pre-requisites/count limits.
    Info: Automatically applied by the engine when selecting HLAs, but can be manually applied for the same effect.

    #314 (0x13A) Spell: Golem Stoneskin
    Parameter #1: Amount
    Parameter #2: Irrelevant
    Description:
    Gives the targeted creature(s) a number of protections from physical attacks, as specified by the Amount field.
    This opcode maintains STONESKINSGOLEM to the amount of skins left.
    Warning: Do not use this effect in conjunction with the Juggernaut Golem Manual as it will corrupt the use of that item.
    In particular, the Juggernaut Golem "TOMEGOL4.CRE" is scripted by "TOMEGOL4.BCS" to Kill() itself if its Summoner and no Party Members have STONESKINSGOLEM set to a non-zero value.

    #315 (0x13B) Graphics: Animation Removal
    Parameter #1: Irrelevant
    Parameter #2: Stat Value
    Description:
    This effect will remove the animation of the targeted creature(s).

    The effect modifies STAT #201 to Stat Value.
    Note: The Stat Value parameter can take any value. If you set it to 0, you will disable the effect (for its duration).

    #316 (0x13C) Spell: Magical Rest
    Parameter #1: Irrelevant
    Parameter #2: Irrelevant
    Description:
    This effect will refresh spells and remove any fatigue.

    #317 (0x13D) State: Haste 2
    Parameter #1: Irrelevant
    Parameter #2: Type
    Description:
    This effect is functionally identical to opcode #16. The only difference between the two is that some ITMs/SPLs/abilities will specifically block/remove opcode #16 but not opcode #317 (e.g., Monks are immune to opcode #16 but not opcode #317).

    #318 (0x13E) Protection from Resource Variants: BG2
    Parameter #1: Value
    Parameter #2: Stat Type
    Description:
    The creature type specified by the Type field becomes immune to the spell or item specified in the Resource field. See opcode #324 for more information.
    Info: This opcode can block EFF files too.
    In order to do so, both the Resource field of opcode #318 and the Parent Resource field of the EFF file must be the same string (max. 8 character long). Unlike opcode #206, this one can innately block any type of resource (None/Spell/Item).

    #319 (0x13F) Usability: Item Usability
    Parameter #1: IDS Entry
    Parameter #2: IDS File
    Special: Description note
    Description:
    When Power is set to 1, this opcode restricts the item to creature(s) matching the object identifiers. When Power is set to 0, creature(s) matching the object identifiers cannot use the item. The string to display when an invalid creature attempts to use the item is held in 0x2C.
    Known values for IDS File are:
    The message defined in Description note will be displayed whenever this opcode is triggered.
    Info:
    • If IDS File is set to 10 and the strref held in parameter1 is set to "-1" (None), then you're targeting player-created characters (e.g., "CHARNAME").
    • If IDS File is set to 11 and no death variable is specified in the resource field, then you're targeting player-created characters (e.g., "CHARNAME").
    Important: This opcode must be attached to the item itself, and does not work when applied in EFF files (such as through opcode 177).

    #320 (0x140) Change Weather
    Parameter #1: Weather
    Parameter #2: Irrelevant
    Description:
    Changes the weather of the current area to the weather specified by Weather.
    Known values for Weather are:
    • 0 ⟶ Normal
    • 1 ⟶ Rain
    • 2 ⟶ Snow
    • 3 ⟶ Fog (unimplemented)

    #321 (0x141) Removal: Effects specified by Resource
    Parameter #1: Irrelevant
    Parameter #2: Type
    Description:
    Removes effects from the resource specified by the resource key, in the style specified by the Type field. Both SPL and ITM resources are considered.
    Known values for Type are:
    • 0 ⟶ Default
    • 1 ⟶ Equipped effects list only
    • 2 ⟶ Timed effects list only
      • Will remove effects applied with any Timing Mode, excluding 2 and 9
    Note:
    Important: If an ITM file and a SPL file share the same resref (f.i. "spwi112.itm" , "spwi112.spl"), and the resource field of this opcode is set to "spwi112", then it will remove effects from both resources (the engine doesn't care about the extension when checking the resource field).
    • You might want to keep it mind when using this opcode (you can potentially break things…)
    Warning: Leaving the resource field empty will remove any effect on the creature without a parent resource. Weapon proficiencies, HLA markers, stealth, turn undead (paladin’s panic only) … Local variable effects are however safe.

    #322 (0x142) Empty
    Parameter #1: Unknown
    Parameter #2: Unknown
    Description:
    Unused.
    Note: It is still processed, so it will still interact with Spell Turning/Deflection/etc… just like any other effect.

    #323 (0x143) Stat: Turn Undead Level
    Parameter #1: Statistic Modifier
    Parameter #2: Type
    Description:
    Applies the modifier value specified by the Statistic Modifier field in the style specified by the Type field.
    Known values for Type are:
    • 0 ⟶ Cumulative Modifier: TurnLevel = TurnLevel + 'Statistic Modifier' value
    • 1 ⟶ Flat Value Modifier: TurnLevel = 'Statistic Modifier' value
    • 2 ⟶ Percentage Modifier: TurnLevel = (TurnLevel * 'Statistic Modifier' value) / 100


    The effect modifies TURNUNDEADLEVEL.
    • However, this stat does NOT include the amount provided by cleric/paladin levels (effective turn undead level = TURNUNDEADLEVEL + cleric/paladin turn amount).
    Note: Only Clerics and Paladins will display their Turn Undead level on the Record Screen.

    #324 (0x144) Protection: Immunity to Resource and Message
    Parameter #1: Value
    Parameter #2: Stat Type
    Description:
    The creature type specified by the Type field becomes immune to the spell or item specified in the Resource field. It also gives a message on successful resist.
    Known values for Stat Type are defined in SPLPROT.2DA. SPLPROT.2DA uses three codes (labeled STAT, VALUE and RELATION) to define a targeting type.

    STAT is either a straight stat value (listed in STATS.IDS) or a pseudo stat of the to be targeted creature:
    • 0x100 ⟶ source equals target
    • 0x101 ⟶ source is not target
    • 0x102 ⟶ circle size
    • 0x103 ⟶ use two rows of SPLPROT.2DA
    • 0x104 ⟶ negate 0x103
    • 0x105 ⟶ source and target morale match
    • 0x106 ⟶ AREATYPE.IDS (like outdoors, forest, etc)
    • 0x107 ⟶ time of day (in hours)
    • 0x108 ⟶ source and target ethical match
    • 0x109 ⟶ evasion
    • 0x10a ⟶ EA.IDS
    • 0x10b ⟶ GENERAL.IDS
    • 0x10c ⟶ RACE.IDS
    • 0x10d ⟶ CLASS.IDS
    • 0x10e ⟶ SPECIFIC.IDS
    • 0x10f ⟶ GENDER.IDS
    • 0x110 ⟶ ALIGN.IDS
    • 0x111 ⟶ STATE.IDS
    • 0x112 ⟶ SPLSTATE.IDS
    • 0x113 ⟶ source and target allies
    • 0x114 ⟶ source and target enemies
    • 0x115 ⟶ summon creature limit
    • 0x116 ⟶ chapter check

    VALUE is a number used to compare to the stat using a relational operator. Depending on the stat/operator it could be a bit value (hexadecimal allowed). If value is set to "-1", then Value of the opcode will be used.

    RELATION is an index to a relational operator:
    • 0 ⟶ less or equal
    • 1 ⟶ equal
    • 2 ⟶ less
    • 3 ⟶ greater
    • 4 ⟶ greater or equal
    • 5 ⟶ not equal
    • 6 ⟶ binary less or equal (stat doesn't contain extra bits not in value)
    • 7 ⟶ binary more or equal (stat contains all bits of value)
    • 8 ⟶ binary match (at least one bit is common)
    • 9 ⟶ binary not match (none of the bits are common)
    • 10 ⟶ binary more (stat contains at least one bit not in value)
    • 11 ⟶ binary less (stat doesn't contain all the bits of value)
    Info: This opcode can block EFF files too.
    In order to do so, both the Resource field of opcode #324 and the Parent Resource field of the EFF file must be the same string (max. 8 character long). Unlike opcode #206, this one can innately block any type of resource (None/Spell/Item).
    Note:
    • As of v2.6, the name of the correct resource is displayed instead of the name of the resource the effect instance is located in.
    • When displaying its feedback message, it will attempt to identify the name of the parent spell if this effect is located in a child spell with no name. It does in the following manner: if the effect is used within a spell that has no name but there is a spell in the game whose resname is one character shorter with a valid name, then it will display that name. This feature is used by Sunfire ("SPWI523D.spl") in IWD:EE to check for thief evasion.
      • This feature will also attempt to look for an identical "resname.itm" and display that (identified/unidentified) name if the .spl the effect is in doesn't have a valid name.

    #325 (0x145) Stat: Save vs. all
    Parameter #1: Statistic Modifier
    Parameter #2: Type
    Description:
    Alters all saving throws by the modifier value specified by the Statistic Modifier field in the style specified by the Type field.
    Known values for Type are:
    • 0 ⟶ Cumulative Modifier: Save = Save + 'Statistic Modifier' value
    • 1 ⟶ Flat Value Modifier: Save = 'Statistic Modifier' value
    • 2 ⟶ Percentage Modifier: Save = (Save * 'Statistic Modifier' value) / 100
    • 3 ⟶ Increment Instantly: Save = Save + 'Statistic Modifier' value

    Statistic Modifier can be positive or negative.

    Info: When Type = 3, this opcode processes before saving throws are checked for effects proceeding it in the same effect stack; when Type = 0, it processes after.

    #326 (0x146) Apply Effects List
    Parameter #1: Value
    Parameter #2: Stat Type
    Description:
    The creature type specified by the Stat Type field will be affected by the spell in the Resource field. See opcode #324 for more information.

    The spell specified by the resource field is cast at the same level as the current effect, regardless of Spell type.

    Unlike opcode #146, when targeting Self or Original Caster, the resource is still cast on the ability target, not the caster.

    For the purpose of dispelling effects only, the opcode target (not necessarily the caster) determines the caster level for effects in its resource. It also determines the "Caster location" saved to the V2 effect on creatures. It doesn't transfer full ownership though – the caster is still credited for damage.

    If the resource uses projectile #0 (default):

    • The resource will ignore its projectile field, defaulting to use projectile #1|None for all effects.
    • Effects in the resource that target Self, Projectile Target, or Original Caster will all affect the target of this effect.
    • If this effect is reflected/turned, the target of effects in the resource is reflected.
    Otherwise:
    • Effects in the resource that target Self will affect the target of this effect, not the caster.
    • If this effect is reflected/turned, only effects in the resource targeting Original Caster will be affected, now affecting the target.

    Note: If this effect is applied through opcode #177, the spell specified by the resource key is cast at the level specified at offset 0xc8 of the EFF.
    Important:
    Note:
    • Effects in the resource will also bypass Magic Resistance, of every target, as if the caster targeted themselves, regardless of who they target with the spell or this effect.
      • Setting the Ignore Center bit in the subspell's projectile will force its effects to check Magic Resistance on every target, even if the caster did target themselves. Though as its primary function is to cause the projectile to ignore the caster (not "center"), it still won't affect them if it's area-effect.
    Note: The only meaningful Timing Modes for this opcode are: 0|Instant/Limited with duration = 0, 1|Instant/Permanent, or 4|Delayed/Permanent.

    #327 (0x147) Graphics: Icewind Visual Spell Hit (plays sound)
    Parameter #1: Target
    Parameter #2: Projectile Index
    Description:
    Shows the lighting effect specified by the Projectile Index value. These effects are usually used for spell hits based on the spell school.
    Functions similar to opcode #140, with the Use Projectile option, except its Projectile Index is 4096 (0x1000) less, instead of the usual +1. It can't display projectiles 0 – 4095.
    Known values for Target are:
    • 0 ⟶ Launch projectile at effect target (doesn't work in Area-Effect spells)
    • 1 ⟶ Affected targets launch projectile at ability target (creature or location). Use Self to generate just one projectile.
    Parameter2: Projectile Index (-4096)
    Note: Like opcode #140/opcode #141, it doesn’t deliver any effects. Not affected by Haste/Slow.
    Note: It looks like the Special field is meant to override Projectile Index, using values straight from PROJECTL.IDS (without the 4096 offset), but it’s not actually implemented.

    #328 (0x148) State: Set Extended or Spell State
    Parameter #1: Irrelevant
    Parameter #2: Type
    Special: Mode
    Description:
    Sets the extended or spell state of the targetted creature(s) to the value specified by the Type field, depending on the Mode value.
    These effects could be detected by the gamescript trigger ExtendedStateCheck() (see EXTSTATE.IDS).
    Known values for Type are:
    • 0 ⟶ Chaotic Command
    • 1 ⟶ Miscast Magic
    • 2 ⟶ Pain
    • 3 ⟶ Greater Malison
    • 4 ⟶ Blood Rage
    • 5 ⟶ Cat's Grace
    • 6 ⟶ Mold Touch
    • 7 ⟶ Shroud of Flame

    If Mode is set to 1, then this effect behaves like IWD2 Set State effect (see SPLSTATE.IDS).
    Info:
    • The IWD mode Spell States are interchangeable with their IWD2 mode counterparts.
      • However, keep in mind that the values do not match. Let us consider "Shroud of Flame" as an example. You must use 7 with IWD mode and 47 with IWD2 mode.
    • The IWD mode states are bits 18–25 from EXTSTATE.IDS, all of which are hardcoded.
    • Each EXTSTATE has a hard-coded two-way mapping to a SPLSTATE, even though you can't actually set most of the EXTSTATEs directly:
      Hex value Bit Label Spell state
      0x00000001 BIT0 STATE_PRAYER 12 – BENEFICIAL_PRAYER
      0x00000002 BIT1 STATE_PRAYER_BAD 13 – DETRIMENTAL_PRAYER
      0x00000004 BIT2 STATE_RECITATION 14 – BENEFICIAL_RECITATION
      0x00000008 BIT3 STATE_RECITATION_BAD 15 – DETRIMENTAL_RECITATION
      0x00000010 BIT4 STATE_EYE_OF_THE_MIND 48 – EYE_OF_THE_MIND
      0x00000020 BIT5 STATE_EYE_OF_THE_SWORD 49 – EYE_OF_THE_SWORD
      0x00000040 BIT6 STATE_EYE_OF_THE_MAGE 50 – EYE_OF_THE_MAGE
      0x00000080 BIT7 STATE_EYE_OF_VENOM 51 – EYE_OF_VENOM
      0x00000100 BIT8 STATE_EYE_OF_THE_SPIRIT 52 – EYE_OF_THE_SPIRIT
      0x00000200 BIT9 STATE_EYE_OF_FORTITUDE 53 – EYE_OF_FORTITUDE
      0x00000400 BIT10 STATE_EYE_OF_STONE 54 – EYE_OF_STONE
      0x00000800 BIT11 STATE_ANIMAL_RAGE 39 – ANIMAL_RAGE
      0x00001000 BIT12 STATE_SUPPRESS_HP_INFO 35 – SUPPRESS_HP_INFO
      0x00002000 BIT13 STATE_BERSERK_ALWAYS_ACTIVE 33 – BERSERK_ALWAYS_ACTIVE
      0x00004000 BIT14 STATE_SNEAK_ATTACK_IMMUNITY 40 – SNEAK_ATTACK_IMMUNITY
      0x00008000 BIT15 STATE_CYNICISM_EQUIPPED 255 – CYNICISM_EQUIPPED
      0x00010000 BIT16 STATE_UNSTUN_ON_DAMAGE 37 – UNSTUN_ON_DAMAGE
      0x00020000 BIT17 STATE_DEAFENED 38 – DEAFENED
      0x00040000 BIT18 STATE_CHAOTIC_COMMANDS 41 – CHAOTIC_COMMANDS
      0x00080000 BIT19 STATE_MISCAST_MAGIC 42 – MISCAST_MAGIC
      0x00100000 BIT20 STATE_PAIN 43 – PAIN
      0x00200000 BIT21 STATE_MALISON 44 – MALISON
      0x00400000 BIT22 STATE_BLOOD_RAGE 34 – BLOOD_RAGE
      0x00800000 BIT23 STATE_CATS_GRACE 45 – CATS_GRACE
      0x01000000 BIT24 STATE_MOLD_TOUCH 46 – MOLD_TOUCH
      0x02000000 BIT25 STATE_SHROUD_OF_FLAME 47 – SHROUD_OF_FLAME
      0x04000000 BIT26 STATE_STATIC_CHARGE 116 – STATIC_CHARGE
      0x08000000 BIT27 STATE_DOESNT_AWAKEN_ON_DAMAGE 36 – DOESNT_AWAKEN_ON_DAMAGE

    #329 (0x149) Spell Effect: Slow Poison
    Parameter #1: Slow Factor
    Parameter #2: Irrelevant
    Description:
    Applies the slow poison effect to the targeted creature(s), using the Slow Factor field.
    Note: This opcode writes over the Frequency Multiplier field of any opcode #25 effects on the targeted creature. As a result, it is useless against opcode #25 whose Type is 0 or 1, as well as any Poison effect that is used through opcode #177, as Type=4 requires.
    Note: It can also accelerate Poisons if their Frequency Multiplier field was already higher than the value specified in opcode #329.
    Note: It does not alter the duration of the poison, nor does it affect any of the other frequency opcodes (78/98/272).

    #330 (0x14A) Text: Float Text
    Parameter #1: Strref
    Parameter #2: Type
    Parameter #3: Starting strref
    Special: Count
    Description:
    Displays the text specified by the Strref field, in the style specified by the Type field.
    Known values for Type are:
    • 0 ⟶ Default (show strref)
    • 1 ⟶ Cynicism (show Cynicism strrefs)
    About Cynicism option:
    • Uses a random String Reference from between 24916 – 24940.
    • Triggers at random intervals throughout its duration.
    • Maintains CYNICISM_EQUIPPED on the targeted creature(s).
    If used from an external effect (EFF), Strref is set to 0 and Type to 1, the third parameter will dictate the first strref and Count will dictate the count. Then the number of lines of Count will be displayed starting with the strref in Starting strref.
    Info: When Type=0, it is possible to colorize the string. In order to do so, follow the instructions concerning the colorization of the name of your character during Character Creation.

    #331 (0x14B) Summon: Random Monster Summoning
    Parameter #1: Count
    Parameter #2: Type
    Special: Mode
    Description:
    Each CRE file has a Creature Power Level number. This effect summons a number of monsters depending on this value, the special parameter and if it is used in SPL / ITM or from an external EFF.

    When used in SPL/ITM files, known values for Mode are:
    • 0 ⟶ Summon amount equal to 'Count' + Dice rolls
    • 1 ⟶ Summon amount equal to 'Count' + Dice rolls
    • 2 ⟶ Summon until Creature Power Level equals/exceeds Caster's Level

    When used in external EFF files, known values for Mode are:
    The Type field sets which 2DA file to pick the creatures to summon from. The 2da files are listed in SMTABLES.2DA.
    If the resource field is filled, it will use a custom .2da to determine which monsters to summon.
    If used from an external effect (.eff), the vvc field controls the bam/vvc file played over the creatures when summoning.
    If used from an external effect (.eff), the second vvc field controls the bam file played over the target area when summoning.
    Note: As far as the allegiance of the summoned creatures is concerned, this opcode uses “Match Target”, which sets the summoned creature’s allegiance to one of ALLY, NEUTRAL, or ENEMY, based on the summoner (whichever group the summoner belongs to).

    #332 (0x14C) Stat: Specific Damage Modifier
    Parameter #1: Modifier
    Parameter #2: Type
    Description:
    Increases the damage caused by the character. The Type parameter defines which damage type is increased.
    Known values for Type are:
    • 0 ⟶ All damage increased
    • 1 ⟶ Fire damage
    • 2 ⟶ Cold damage
    • 3 ⟶ Electricity damage
    • 4 ⟶ Acid damage
    • 5 ⟶ Magic damage
    • 6 ⟶ Poison damage
    • 7 ⟶ Slashing damage
    • 8 ⟶ Piercing damage
    • 9 ⟶ Crushing damage
    • 10 ⟶ Missile damage
    Note: Modifier is always a percentage, not a flat value. Multiple instances stack additively, i.e.: +20% + 20% = +40%.

    #333 (0x14D) Spell Effect: Static Charge
    Parameter #1: Number
    Parameter #2: Level
    Special: Delay
    Description:
    Casts a secondary spell (default: "original resource" + B) on the target, for a number of strikes specified by the Number field. The spell will be cast once per Delay through its projectile.

    If a spell Level is not specified, then the spell will be cast at level 1 and the damage opcodes will inherit the dice values of this effect, otherwise the spell will be cast at the given level.

    Delay specifies the delay between hits, its default value is 6 (one round).

    Important: When using this opcode, be aware of the following quirks:
    • If subspell's projectile = 0, subspell effects targeting Self|Projectile Target|Original Caster will affect the effect target of opcode #333.
    • If subspell's projectile != 0, subspell effects targeting Original Caster will affect the effect target of opcode #333.
    • If subspell's projectile != 0, subspell effects targeting Self and Projectile Target will affect the ability target of spell containing opcode #333. In particular:
      • SPL containing opcode #333target:Living Actor; opcode #333target:Self
        Subspell is cast targeting the Living Actor
        • subspell: op#: target:Self ⟶ affects targeted Living Actor.
        • subspell: op#: target:Projectile Target ⟶ affects targeted Living Actor if subspell's projectile is single-target, or subspell's projectile target(s) if it's area-effect.
      • SPL containing opcode #333target:Living Actor; opcode #333target:Projectile Target
        Subspell is cast at each target of the projectile
        • subspell: op#: target:Self ⟶ affects subspell's target.
        • subspell: op#: target:Projectile Target ⟶ affects subspell's target if subspell's projectile is single-target, or subspell's projectile target(s) if it's area-effect.
      • SPL containing opcode #333target:Target Point; opcode #333target:Self
        Subspell is cast targeting yourself, not the target point
        • subspell: op#: target:Self ⟶ affects Self.
        • subspell: op#: target:Projectile Target ⟶ affects Self if subspell's projectile is single-target, or subspell's projectile target(s) if it's area-effect.
      • SPL containing opcode #333target:Target Point; opcode #333target:Projectile Target
        Subspell is cast at each target of the projectile
        • subspell: op#: target:Self ⟶ affects subspell's target.
        • subspell: op#: target:Projectile Target ⟶ affects subspell's target if subspell's projectile is single-target, or subspell's projectile target(s) if it's area-effect.
      • SPL containing opcode #333target:Caster ⟶ is the same as targeting yourself as the Living Actor.
    • When this opcode gets reflected (opcode #197, opcode #198, opcode #199, opcode #202, opcode #203 and opcode #207), only its first "hit" gets reflected. Subsequent hits occur as if reflection wasn't involved. When this happens, for that first hit only:
      • If subspell's projectile = 0, subspell effects targeting Self|Projectile Target|Original Caster will affect the original caster.
      • If subspell's projectile != 0, subspell effects targeting Original Caster will affect the original caster.
      • If subspell's projectile != 0, subspell effects targeting Self and Projectile Target will continue to affect the ability target of the spell containing opcode #333.
    Note:
    • Effects in the resource will also bypass Magic Resistance, of every target, as if the caster targeted themselves, regardless of who they target with the spell or this effect.
      • Setting the Ignore Center bit in the subspell's projectile will force its effects to check Magic Resistance on every target, even if the caster did target themselves. Though as its primary function is to cause the projectile to ignore the caster (not "center"), it still won't affect them if it's area-effect.
    Bug: Its Saving Throw is checked EVERY time it triggers, terminating the opcode #333 effect if successful, so unless that is desired (or it only triggers once), it should not have a Saving Throw.
    Info: See opcode #326 for some peculiarities of projectile behaviour.

    #334 (0x14E) Spell Effect: Turn Undead
    Parameter #1: Irrelevant
    Parameter #2: Irrelevant
    Description:
    Turns undead just like the modal action. The caster must have some turn undead levels to be effective. See opcode #323.

    #335 (0x14F) Spell Effect: Seven Eyes
    Parameter #1: Spellstate
    Parameter #2: Row#
    Special: Eye Group
    Description:
    When the opcode is applied, it checks if the creature currently has the spellstate specified by Spellstate set. Known values for Spellstate are defined in SPLSTATE.IDS.
    • If it's already set, this opcode is NOT applied, nothing happens.
    • Otherwise, the opcode is attached, the spellstate becomes set (for the duration of the effect), and the "Resource" specified by the resource key (if any!) is granted to the character (as if through opcode #171)

    The next time the row number specified by Row# of 7EYES.2DA is triggered (blocks an effect), this effect will terminate, remove the spell it granted (as if through opcode #172) and decrement opcode #336 effects according to their Eye Group (parameter2 for opcode #336, special field for opcode #335).
    Bug: This opcode has a similar issue as opcode #135 with regards to applying the effect while another is already active:
    Note: Setting Row# = "-1" will effectively have it last its full duration, blocking every effect listed for that spellstate in 7EYES.2DA.

    #336 (0x150) Graphics: Display Eyes Overlay
    Parameter #1: Sequence
    Parameter #2: Eye Group
    Description:
    Displays 2 visual animations (VVC or BAM) similar to opcode #215 though only attached to a creature, not at a location (unattached). The animation filename is built from the "resref" specified by the resource field and Sequence.
    Known values for Sequence are:
    • 0 ⟶ None
    • 1 ⟶ A
    • 2 ⟶ B
    • 3 ⟶ C
    • 4 ⟶ D
    • 5 ⟶ E
    • 6 ⟶ F
    • 7 ⟶ G
    • ...
    • 26 ⟶ Z

    The two animations that are played must be named in the following way:
    1. 'Resource'1'Sequence'.'extension'
    2. 'Resource'2'Sequence'.'extension'
    For instance, in IWD:EE we have:
    • #7eyes1a.VVC, #7eyes1b.VVC, #7eyes1c.VVC, #7eyes1d.VVC, #7eyes1e.VVC, #7eyes1f.VVC
    • #7eyes2a.VVC, #7eyes2b.VVC, #7eyes2c.VVC, #7eyes2d.VVC, #7eyes2e.VVC, #7eyes2f.VVC

    Whenever an opcode #335 effect with a matching Eye Group (parameter2 for opcode #336, special field for opcode #335) terminates on the creature, the Sequence value is reduced by 1, until it reaches 0 and terminates itself.

    #337 (0x151) Remove: Opcode
    Parameter #1: Param
    Parameter #2: Opcode
    Description:
    Removes all Opcode from target, that has the same param2 as Param. Use "-1" to ignore the parameter.
    Important: This opcode cannot remove effects using Timing Mode 9 (Instant/Permanent).

    #338 (0x152) Disable Rest
    Parameter #1: StrRef
    Parameter #2: Mode
    Description:
    Disables save and/or rest, prints the string when they are attempted.
    Known values for Mode are:
    • 0 ⟶ cannot rest
    • 1 ⟶ cannot save
    • 2 ⟶ cannot save or rest
    Important: This effect cannot block autosaving or scripted resting.

    #339 (0x153) Alter Animation
    Parameter #1: Value and Modifier
    Parameter #2: Projectile Type
    Special: Range
    Description:
    Modifies an area animation's Cycle and plays an area hit animation over it indexed by Projectile Type.

    Value is the high word of the first parameter, Modifier is a bitfield manipulation operation.
    Known values for Modifier are:
    • 0 ⟶ Set Value – ignores original
    • 1 ⟶ And Value – keeps bits
    • 2 ⟶ Or Value – sets bits
    • 3 ⟶ Xor Value – toggles bits
    • 4 ⟶ And not Value – turns off bits

    Range is a radius around the targeted location that it will detect the specified animation (it will affect all within its radius). It's measured same as projectiles: 16 = 1ft radius.

    Resource should be the animation's label as listed in the ARE file, not necessarily its filename.

    Projectile Type displays a projectile over the animation's location similar to opcode #140/opcode #141.

    Info: Examples can be found by looking at "SPIN172.SPL", "SPIN177.SPL", and "AR1105.ARE" (the area with those animations) in IWDEE.

    #340 (0x154) Spell Effect: Change Backstab Effect
    Parameter #1: Irrelevant
    Parameter #2: Irrelevant
    Description:
    Sets the Back Stab effect of the targetted creature to the spell specified by the resource key. Both parameters should be 0 (zero).
    In particular:
    • If the game option '3E Sneak Attacks' is not enabled, the spell is cast at the character's innate level.
    • If the game option '3E Sneak Attacks' is enabled, the spell is cast at level defined in CRIPPSTR.2DA + 1.
    Note: If the game option ‘3E Sneak Attacks’ is enabled, the targeted creature will be affected by both "BACKSTAB.SPL" and the spell specified by the resource key.

    #341 (0x155) Spell Effect: Change Critical Hit Effect
    Parameter #1: Irrelevant
    Parameter #2: Condition
    Parameter #3: Weapon Category
    Special: Attack Type
    Description:
    Sets the Critical Hit effect of the targetted creature to the spell specified by the resource key.
    Known values for Condition are:
    • 0 ⟶ Always (both hands)
    • 1 ⟶ By this weapon only

    Known values for Attack Type are:
    • 0 ⟶ Any attack type
    • 1 ⟶ Melee attack only
    • 2 ⟶ Ranged attack only
    • 3 ⟶ Magical attack only

    (External EFFs) Known values for Weapon Category are defined in ITEMCAT.IDS.

    #342 (0x156) Animation: Override Data
    Parameter #1: Value
    Parameter #2: Field
    Description:
    Overrides the character animation's blood color, body heat flag or personal space.
    Known values for Field are:
    • 1 ⟶ Override body heat
    • 2 ⟶ Override blood color
    • 4 ⟶ Override personal space
    Note: Value = 0 causes infinite melee/spell range, both for their attacks/spells and when others target them.
    Note: Does not alter selection circle size.

    #343 (0x157) HP Swap
    Parameter #1: Irrelevant
    Parameter #2: Mode
    Description:
    Known values for Mode are:
    • 0 ⟶ Swap if caster HP > target HP
    • 1 ⟶ Always swap
    Note: This effect is always instantaneous.

    #344 (0x158) Enchantment vs. creature type
    Parameter #1: IDS Entry
    Parameter #2: IDS File
    Parameter #3: Weapon Slot
    Parameter #4: Weapon Category
    Special: Enchantment Level
    Description:
    Alters the targeted creature(s) Enchantment against the creature type specified by the IDS Entry field in the specified IDS File.
    Known values for IDS File are:
    When used in external EFFs, known values for Weapon Slot are:
    • 0 ⟶ Current weapon (the one to which this opcode is attached as an equipped effect, otherwise no restrictions)
    • 1 ⟶ Main hand weapon (includes Ammo and Fists)
    • 2 ⟶ Off-hand weapon
    • 3 ⟶ Both weapons

    (External EFFs) Values for Weapon Category are taken from ITEMCAT.IDS.
    Note: It only sets the enchantment level, not the Magical flag.

    #345 (0x159) Enchantment bonus
    Parameter #1: Enchantment Level
    Parameter #2: Type
    Special: Weapon Slot
    Description:
    Gives the targeted creature(s) an Enchantment bonus to weapons as specified by the Type field. The Enchantment Level field is used if Type is set to 0. Known values for Type are:
    • 0 ⟶ Magical weapons (Enchantment Level and below)
    • 1 ⟶ Magical weapons (all)
    • 2 ⟶ Non-magical weapons
    • 3 ⟶ Silver
    • 4 ⟶ Non-Silver
    • 5 ⟶ Non-Silver / Non-Magical
    • 6 ⟶ Two-Handed
    • 7 ⟶ One-Handed
    • 8 ⟶ Cursed
    • 9 ⟶ Non-Cursed
    • 10 ⟶ Cold Iron
    • 11 ⟶ Non Cold Iron

    Known values for Weapon Slot are:
    • 0 ⟶ Current weapon (the one to which this opcode is attached as an equipped effect, otherwise no restrictions)
    • 1 ⟶ Main hand weapon (includes Ammo and Fists)
    • 2 ⟶ Off-hand weapon
    • 3 ⟶ Both weapons
    Note: (External EFFs) Parameter4 is the item type of the affected weapon (0 matches all). This can be set to affect only fists, for example.
    Note: Type values 2, 4, 5, 7, 9, and 11 do nothing (the “non-“ versions), as the opcode can only add properties, not remove them. These Type values were likely copied directly from opcode #120, specifically so they would have the same values, even if some didn’t function.
    Note: Unlike opcode #344, if you set Type=0, any non-zero Enchantment Level value will also flag the item as Magical.

    #346 (0x15A) Save vs. school bonus
    Parameter #1: Statistic Modifier
    Parameter #2: Type
    Special: Primary Type
    Description:
    Applies the modifier value specified by the Statistic Modifier field in the style specified by the Type field.
    Known values for Type are:
    • 0 ⟶ Cumulative Modifier: Save = Save + 'Statistic Modifier' value
    • 1 ⟶ Flat Value Modifier: Save = 'Statistic Modifier' value
    • 2 ⟶ Percentage Modifier: Save = (Save * 'Statistic Modifier' value) / 100


    Primary Type defines the school of magic to save against (see MSCHOOL.2DA).
    Note: This opcode should be limited to the first 12 (0 – 11) spell schools.

    #347 (0x15B) Move View to Target Variants: BGEE
    Parameter #1: Scroll Speed
    Parameter #2: Irrelevant
    Description:
    To instantly zoom onto the target, leave the 'Scroll Speed' parameter at zero. To have the camera go to the target at a certain speed, set the 'Scroll Speed' parameter from 1-255, with 1 being the slowest and 255 the fastest.

    #348 (0x15C) Cloak of Warding (Non-cumulative) Variants: BGEE
    Parameter #1: Base amount
    Parameter #2: Amount per level
    Description:
    The target creature will absort the amount of damage as calculated by the formula:
    Absorbed damage amount = 'Base amount' + ('Amount per level' * 'Caster level') + 'Dice roll'

    Modifies SPLSTATE.IDS value CLOAK_OF_WARDING accordingly. The effect ends when all damage has been absorbed.

    #349 (0x15D) Pain Mirror (Non-cumulative) Variants: BGEE
    Parameter #1: # damage effects to reflect
    Parameter #2: Unused
    Description:
    This effect reflects inflicted damage back to nearby creatures.

    Modifies SPLSTATE.IDS value PAIN_MIRROR accordingly. The effect is supposed to end when the specified number of damage effects have been reflected.
    Bug: The effect has a bug that constantly resets the target’s pain mirror counter to ‘Parameter 1’. This effect will never end on its own.

    #350 (0x15E) Guardian Mantle (Non-cumulative) Variants: BGEE
    Parameter #1: Enabled?
    Parameter #2: Unused
    Description:
    This effect protects the target creature from physical damage unless the attacker makes a successful saving throw vs. spell at -4 penalty. The saving throw mechanism is hardcoded into opcode #12.

    Modifies SPLSTATE.IDS value GUARDIAN_MANTLE accordingly.

    #351 (0x15F) Armor (Non-cumulative) Variants: BGEE
    Parameter #1: Amount
    Parameter #2: Add caster level bonus?
    Description:
    Modifies SPLSTATE.IDS value ARMOR accordingly. The effect ends when all damage has been absorbed.
    Note: This effect does not give the armor class bonus as per opcode 375.

    #352 (0x160) Change Background Variants: BGEE
    Parameter #1: Irrelevant
    Parameter #2: Irrelevant
    Description:
    Sets the BMP file specified by the resource field as background image for the duration of the effect.
    Note: This opcode appears to work only if cutscene mode is active, either via StartCutSceneMode() or by opcode 356.

    #353 (0x161) Tint Playing Screen Fade Variants: BGEE
    Parameter #1: RGB Colour
    Parameter #2: Type
    Description:
    This effect tints the screen depending on the value specified by the 'Type' field, to a colour specified by the 'RGB Colour' field.
    The 'RGB Colour' field is handled as follows:
    First byte = Red (0-255)
    Second byte = Green (0-255)
    Third byte = Blue (0-255)

    'Type' behavior is not yet fully understood. Known values are:
    0,1,2,3 ⟶ No effect
    4,5,6,7 ⟶ Instant 'RGB Colour' for the duration of the effect
    8 ⟶ No effect
    9 ⟶ Instant inverted 'RGB Colour' for the duration of the effect
    10 ⟶ Instant black for the duration of the effect
    Note: Character colour will not be affected by this effect.

    #354 (0x162) Flash Playing Screen Variants: BGEE
    Parameter #1: Unused
    Parameter #2: Unused
    Description:
    This effects flashes the screen white for one frame.

    #355 (0x163) Spell Effect: Soul Exodus Variants: BGEE
    Parameter #1: Irrelevant
    Parameter #2: Irrelevant
    Description:
    Applies the Soul Exodus effect to the targeted creature(s). Does not affect the protagonist.

    #356 (0x164) Spell Effect: Stop All Action Variants: BGEE
    Parameter #1: Unknown
    Parameter #2: Type
    Description:
    Toggles all interactive elements of the game (e.g. the GUI, character selection etc), based on the 'Type' field.
    Known values of 'Type' are:
    0 Stop actions
    1 Enable actions

    This effect has no duration.
    Note: Scripts and animations continue to run.

    #357 (0x165) State: Set State Variants: BGEE
    Parameter #1: Action
    Parameter #2: State
    Description:
    Modifies the state(s) of the target according to the specified action.
    Known values for Action are:
    • 0 ⟶ Clear state(s)
    • 1 ⟶ Set state(s)

    See STATE.IDS for available states.

    #358 (0x166) Incite Berserk Attack Variants: BGEE
    Parameter #1: Irrelevant
    Parameter #2: Irrelevant
    Description:
    This effect incites a repeating RunningAttack action on the target creature(s). The chosen target is always male/undead.

    #359 (0x167) Unused
    Parameter #1: Unknown
    Parameter #2: Unknown
    Description:
    Unused

    #360 (0x168) Stat: Ignore Reputation Breaking Point
    Parameter #1: Irrelevant
    Parameter #2: Irrelevant
    Description:
    Allows joinable NPCs stay in the party regardless of reputation.

    #361 (0x169) Cast spell on critical miss
    Parameter #1: Unused
    Parameter #2: Current Weapon Only?
    Parameter #3: Weapon Category
    Special: Attack Type
    Description:
    Applies the spell specified by the resource key when the target suffers a critical miss. The target of the critical miss effect is the attacker.
    Known values for Current Weapon Only? are:
    • 0 ⟶ No
    • 1 ⟶ Yes

    Known values for Attack Type are:
    • 0 ⟶ Any attack type
    • 1 ⟶ Melee attack only
    • 2 ⟶ Ranged attack only
    • 3 ⟶ Magical attack only

    (External EFFs) Known values for Weapon Category are defined in ITEMCAT.IDS.

    #362 (0x16A) Critical miss bonus
    Parameter #1: Statistic Modifier
    Parameter #2: Current Weapon Only?
    Parameter #3: Weapon Category
    Special: Attack Type
    Description:
    This effect increases the chance of suffering a Critical Miss. Critical Misses will occur on a roll (on a 1d20) lower or equal to: 1 + 'Statistic Modifier'.
    Known values for Current Weapon Only? are:
    • 0 ⟶ No
    • 1 ⟶ Yes

    Known values for Attack Type are:
    • 0 ⟶ Any attack type
    • 1 ⟶ Melee attack only
    • 2 ⟶ Ranged attack only
    • 3 ⟶ Magical attack only

    (External EFFs) Known values for Weapon Category are defined in ITEMCAT.IDS.
    Note: Keep in mind that Critical Hits have priority over Critical Misses.
    For instance, let us consider opcode #301 (Statistic Modifier = 10) and opcode #362 (Statistic Modifier = 10). You would have the following ranges:
    • Critical hit: 10 – 20
    • Critical miss: 1 – 11
    If you rolled a 10 or 11, you would get a Critical hit, not a Critical miss.
    Note: In v2.3 and prior, only the latest instance of this opcode applies. In v2.5+, all instances stack together.

    #363 (0x16B) Modal state check
    Parameter #1: Irrelevant
    Parameter #2: Irrelevant
    Special: Modal State
    Description:
    Trying to move will break the current modal action, and breaking the modal action will remove this effect and any other effects applied by the same spell.
    The targeted creature must already be in the specified Modal State when this opcode is applied.

    Modal State defines the modal state to check (see MODAL.IDS).
    Note: If Modal State = 0, then any modal state is eligible, but not NONE, it must be an actual Modal State.
    Note: When used in EFF files, Parent Resource field must be used to specify which resources effects will be removed (an empty field will remove effects applied by the engine, such as level-up proficiencies).

    #364 (0x16C) Empty
    Parameter #1: Unknown
    Parameter #2: Unknown
    Description:
    Unused.
    Note: It is still processed, so it will still interact with Spell Turning/Deflection/etc… just like any other effect.

    #365 (0x16D) Make unselectable
    Parameter #1: Dialogue enabled
    Parameter #2: AI enabled
    Special: Selection circle color
    Description:
    This effects makes the targeted creature unselectable.
    Known values for Dialogue Enabled are:
    BG:EE/SoD:
    • 0 ⟶ Enabled
    • 1 ⟶ Disabled
    BG2:EE:
    • 0 ⟶ Disabled
    • 1 ⟶ Enabled

    Known values for AI Enabled are:
    • 0 ⟶ Disabled
    • 1 ⟶ Enabled

    Known values for Selection circle color are:
    • 0 ⟶ Purple Selection Circle
    • non-zero ⟶ Normal Selection Circle
    Note: AI Enabled doesn’t work in BG:EE/SoD games (i.e., you cannot disable the AI of the targeted creature).

    #366 (0x16E) Spell: Apply Spell On Move
    Parameter #1: Irrelevant
    Parameter #2: Irrelevant
    Description:
    This opcode applies the spell file (SPL) specified in the resource field to the target creature if it moves.
    The spell should be applied instantly and any casting times in the SPL file should be ignored.

    Note: This effect only triggers once, then terminates.

    #367 (0x16F) Minimum base stats
    Parameter #1: Irrelevant
    Parameter #2: Stat Value
    Description:
    This is used in story mode. Any non-zero value in Stat Value enables it. Ensures that base stats of the affected creature can not be reduced to 0.

    The effect modifies IGNOREDRAINDEATH to Stat Value.
    Note: The Stat Value parameter can take any value. If you set it to 0, you will disable the effect (for its duration).

    #368 (0x170) Play BAM with expiration effect
    Parameter #1: Irrelevant
    Parameter #2: Flags
    Description:
    Applied internally by opcode 375 to control duration of the specified BAM. When the effect ends, the attached BAM is removed and a hardcoded BAM (S034DSPR.BAM) is played back once to simulate an expiration effect.
    Known values for Flags are:
    • BIT6 ⟶ Blended
    • BIT19 ⟶ Grayscale
    • BIT21 ⟶ Bright
    • BIT24 ⟶ Hide background part on movement (BAM cycles used for drawing behind the target are skipped when the target is moving.)
    • BIT25 ⟶ Dream palette (sepia effect)
    • BIT27 ⟶ Garbled frames? (Garbled frames are drawn in regular intervals. Meaning of this bit is unknown.)

    #369 (0x171) Play BAM File Blended and Sticky
    Parameter #1: RGB
    Parameter #2: Method
    Description:
    Plays BAM file along with other special features. Animation is blended.
    Known values for Method are:
    • BIT0 ⟶ Repeat animation, otherwise duration counts, except for permanent which plays once.
    • BIT1 ⟶ Removes stickiness (background animation)
    Note: This opcode mirrors functionality of PST opcode 187.

    #370 (0x172) Play BAM file
    Parameter #1: RGB
    Parameter #2: Method
    Description:
    Plays back the specified BAM resource according to the specified Method.
    Known values for Method are:
    • BIT0 ⟶ Random placement (within a fixed radius around the target)
    • BIT12 ⟶ Sticky
    • BIT16 ⟶ Repeated playback (only effective if BIT17 is also set)
    • BIT17 ⟶ Play in foreground
    • BIT20 ⟶ Fade out after duration (fade duration defined by DiceSize, in seconds.) Initial transparency is defined by the red component of the RGB field. Non-zero green or blue values cancel the fade effect. Effect changes if used together with BIT21.
    • BIT21 ⟶ Blended, if used together with BIT20.
    Note: There are four effects doing exactly the same, this is probably to have resistances against opcode.
    Note: This opcode mirrors functionality of PST opcode 188.

    #371 (0x173) Play BAM file
    Parameter #1: RGB
    Parameter #2: Method
    Description:
    Plays back the specified BAM resource according to the specified Method.
    Known values for Method are:
    • BIT0 ⟶ Random placement (within a fixed radius around the target)
    • BIT12 ⟶ Sticky
    • BIT16 ⟶ Repeated playback (only effective if BIT17 is also set)
    • BIT17 ⟶ Play in foreground
    • BIT20 ⟶ Fade out after duration (fade duration defined by DiceSize, in seconds.) Initial transparency is defined by the red component of the RGB field. Non-zero green or blue values cancel the fade effect. Effect changes if used together with BIT21.
    • BIT21 ⟶ Blended, if used together with BIT20.
    Note: There are four effects doing exactly the same, this is probably to have resistances against opcode.
    Note: This opcode mirrors functionality of PST opcode 189.

    #372 (0x174) Play BAM file
    Parameter #1: RGB
    Parameter #2: Method
    Description:
    Plays back the specified BAM resource according to the specified Method.
    Known values for Method are:
    • BIT0 ⟶ Random placement (within a fixed radius around the target)
    • BIT12 ⟶ Sticky
    • BIT16 ⟶ Repeated playback (only effective if BIT17 is also set)
    • BIT17 ⟶ Play in foreground
    • BIT20 ⟶ Fade out after duration (fade duration defined by DiceSize, in seconds.) Initial transparency is defined by the red component of the RGB field. Non-zero green or blue values cancel the fade effect. Effect changes if used together with BIT21.
    • BIT21 ⟶ Blended, if used together with BIT20.
    Note: There are four effects doing exactly the same, this is probably to have resistances against opcode.
    Note: This opcode mirrors functionality of PST opcode 190.

    #373 (0x175) Play BAM file
    Parameter #1: RGB
    Parameter #2: Method
    Description:
    Plays back the specified BAM resource according to the specified Method.
    Known values for Method are:
    • BIT0 ⟶ Random placement (within a fixed radius around the target)
    • BIT12 ⟶ Sticky
    • BIT16 ⟶ Repeated playback (only effective if BIT17 is also set)
    • BIT17 ⟶ Play in foreground
    • BIT20 ⟶ Fade out after duration (fade duration defined by DiceSize, in seconds.) Initial transparency is defined by the red component of the RGB field. Non-zero green or blue values cancel the fade effect. Effect changes if used together with BIT21.
    • BIT21 ⟶ Blended, if used together with BIT20.
    Note: There are four effects doing exactly the same, this is probably to have resistances against opcode.
    Note: This opcode mirrors functionality of PST opcode 191.

    #374 (0x176) Special spell hit
    Parameter #1: Irrelevant
    Parameter #2: Effect
    Description:
    Starts specific special effects on the targeted creature(s), dependent on the Effect field.
    Known values for Effect are:
    • 0 ⟶ Adder's Kiss
    • 1 ⟶ Ball Lightning
    • 2 ⟶ Fizzle
    Note: This opcode mirrors functionality of PST opcode 196.

    #375 (0x177) Play BAM with effects
    Parameter #1: Irrelevant
    Parameter #2: Effect
    Description:
    Set the resource key for the BAM file to apply to the creature. The Effect parameter sets the spell effect to apply to the creature:
    • 0 ⟶ Cloak of Warding
    • 1 ⟶ Shield
    • 2 ⟶ Black Barbed Shield
    • 3 ⟶ Pain Mirror
    • 4 ⟶ Guardian Mantle
    • 5 ⟶ unused
    • 6 ⟶ Enoll Eva's Duplication
    • 7 ⟶ Armor
    • 8 ⟶ Antimagic Shell
    • 9 ⟶ unused
    • 10 ⟶ unused
    • 11 ⟶ Flame Walk
    • 12 ⟶ Protection from Evil
    • 13 ⟶ Conflagration
    • 14 ⟶ Infernal Shield
    • 15 ⟶ Submerge the Will
    • 16 ⟶ Balance in All Things
    Note: Uses opcode 368 internally to control duration of the BAM playback.
    Note: This opcode mirrors functionality of PST opcode 201.

    #376 (0x178) Spell Effect: Detect Evil
    Parameter #1: Irrelevant
    Parameter #2: Irrelevant
    Description:
    Applies the 'Detect Evil' effect to the targeted creature(s).
    Note: This opcode mirrors functionality of PST opcode 210.

    #377 (0x179) Speak with Dead
    Parameter #1: Irrelevant
    Parameter #2: Irrelevant
    Description:
    This effect is used internally by projectile 205 (Stories Bones Tell).

    On effect removal, if Global("Speak_with_Dead","GLOBAL") exists, it is set to 0. The engine applies this opcode as part of projectile 205 (Stories Bones Tell) with timing=0 (Instant/Limited) and duration=300.

    #378 (0x17A) Prayer (Non-cumulative)
    Parameter #1: Value
    Parameter #2: Irrelevant
    Description:
    The Value parameter sets the effects' amounts. All friendly and neutral creatures are Blessed, with the Value parameter defining the bonus amount to all saving throws, bonus damage, and To Hit rolls on those creatures. All hostile creatures are cursed, with the Value defining the penalty amount to all saving throws, bonus damage, and To Hit rolls on those creatures.
    Note: This opcode mirrors functionality of PST opcode 204.

    #379 (0x17B) Curse (Non-cumulative)
    Parameter #1: Value
    Parameter #2: Irrelevant
    Description:
    This effect causes a penalty to all saving throws and To Hit rolls in the amount that the Value parameter is set to. For every 1 of the penalty value, all saving throws get a penalty of 1, as well as all die throws and damage from the target. This cannot remove the 'Blessed' status from a target, but can effectively negate it.
    Note: This opcode mirrors functionality of PST opcode 203.

    #380 (0x17C) Embalm (Non-cumulative)
    Parameter #1: Irrelevant
    Parameter #2: Type
    Description:
    The Type parameter determines what affect is given to the target(s) of the effect:
    • A value of 0 grants the target 2-8 hit points and +1 AC for the duration of the spell.
    • Any other value grants the target +2 hit points per level of the caster and +2 AC for the duration of the spell.
    Note: This opcode mirrors functionality of PST opcode 206.

    #381 (0x17D) Induce Hiccups
    Parameter #1: Irrelevant
    Parameter #2: Irrelevant
    Description:
    Applies the 'Induce Hiccups' effect to the targeted creature(s).
    Note: This opcode mirrors functionality of PST opcode 211.

    #382 (0x17E) Fist of Iron
    Parameter #1: Irrelevant
    Parameter #2: Irrelevant
    Description:
    Applies the 'Fist of Iron' effect to the targeted creature(s). This results in the targeted creature(s) gaining +3 Fist THAC0 and +6 Fist damage.
    Note: This opcode mirrors functionality of PST opcode 208.

    #383 (0x17F) Hit Point Transfer
    Parameter #1: Drain Amount
    Parameter #2: Drain Type
    Description:
    Set the Dice Throws and Size to the random drain amount you wish the effect to do (if you want no random amount involved, leave it at 0d0). If you wish to do a fixed amount of draining as well, or by itself, set the Drain Amount parameter to the amount of health to drain (if you want no fixed amount of HP drained, leave the value at 0). The Drain Type sets who receives and who delivers the hit points.
    Known values for Drain Type are:
    • 0 ⟶ The target receives hit points from the caster.
    • 1 ⟶ The caster receives hit points from the target.
    • 2 ⟶ The target and caster hit points are swapped. This works even if both are at full health.
    • 3 ⟶ Same as 0, but amount is not capped at the target's max. HP. This works even if both are at full health. No damage animation is shown.
    Note: This opcode mirrors functionality of PST opcode 192.