BG2 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: BGEE
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 Cumulative Modifier -> Same as 0
Info: When this opcode is stacked, the values of the Key Modifier are stacked, not the number of attacks.
Note: IWD1 treats all keys above 5 as 5. PST does not support Type 3, while BG(2)EE uses it differently.
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: BGEE PST BG1
Parameter #1: Damage Amount
Parameter #2: Type
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 'Type' are:
0 Crushing
1 Crushing Set to Value
2 Crushing Set to Percentage
3 Crushing Reduce by Percentage
65536 Acid
65537 Acid Set to Value
65538 Acid Set to Percentage
65539 Acid Reduce by Percentage
131072 Cold
131073 Cold Set to Value
131074 Cold Set to Percentage
131075 Cold Reduce by Percentage
262144 Electricity
262145 Electricity Set to Value
262146 Electricity Set to Percentage
262147 Electricity Reduce by Percentage
524288 Fire
524289 Fire Set to Value
524290 Fire Set to Percentage
524291 Fire Reduce by Percentage
1048576 Piercing
1048577 Piercing Set to Value
1048578 Piercing Set to Percentage
1048579 Piercing Reduce by Percentage
2097152 Poison
2097153 Poison Set to Value
2097154 Poison Set to Percentage
2097155 Poison Reduce by Percentage
4194304 Magic
4194305 Magic Set to Value
4194306 Magic Set to Percentage
4194307 Magic Reduce by Percentage
8388608 Missile
8388609 Missile Set to Value
8388610 Missile Set to Percentage
8388611 Missile Reduce by Percentage
16777216 Slashing
16777217 Slashing Set to Value
16777218 Slashing Set to Percentage
16777219 Slashing Reduce by Percentage
33554432 Magic Fire
33554433 Magic Fire Set to Value
33554434 Magic Fire Set to Percentage
33554435 Magic Fire Reduce by Percentage
67108864 Magic Cold
67108865 Magic Cold Set to Value
67108866 Magic Cold Set to Percentage
67108867 Magic Cold Reduce by Percentage
134217728 Stunning
134217729 Stunning Set to Value
134217730 Stunning Set to Percentage
134217731 Stunning Reduce by Percentage
268435456 Soul Eater
268435457 Soul Eater Set to Value
268435458 Soul Eater Set to Percentage
268435459 Soul Eater Reduce by Percentage
1073741824 Disease
1073741825 Disease Set to Value
1073741826 Disease Set to Percentage
1073741827 Disease 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).
If 'Damage Amount' and the Dice values are both non-zero, the total damage inflicted is: 'Damage Amount' + Dice value.
'Damage Amount' can be positive or negative (though the damage sound will play in either case).

Note: ‘Stunning’ damage does not stun the target. Stunning damage cannot kill a creature, creatures are reduced to 1 HP and are knocked unconscious.
Warning: Using ‘Magic Fire’ or ‘Magic Cold’ as a damage type will result the game to crash if the damage kills the target.

#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: BG1
Parameter #1: Statistic Modifier
Parameter #2: Type
Description:
Sets the Morale stat of the targeted creature(s) to 10.
Warning: this is a gimped effect in bg2, unlike the rest of the games!

#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 BGEE IWD1 IWD2 PST
Parameter #1: Damage Amount
Parameter #2: Type
Description:
Damages the target by the 'Damage Amount' value, in the style specified by the 'Type' field. It sets the STATE_POISONED state.
Known values for 'Type' are:
0 Inflict 1HP per second (only if 'Damage Amount' is non-zero)
1 Inflict 1HP per second (only if 'Damage Amount' is greater than 1)
2 Inflict 'Damage Amount' per second
3 Inflict 1HP every 'Damage Amount' seconds
4 Inflict Param 3 Damage every Param 1 seconds
5+ Crash

Important: The 'Damage Amount' parameter should be set to a positive value.

#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.

#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 PSTEE
Parameter #1: Colour
Parameter #2: Type
Description:
Displays the sparkle effect specified by the Type field, in the colour specified by the Colour field. The colour field may be connected to SPRKLCLR.2DA.
Known values for Colour are:
  • 0 ⟶ Crash
  • 1 ⟶ Black
  • 2 ⟶ Blue
  • 3 ⟶ Chromatic
  • 4 ⟶ Gold
  • 5 ⟶ Green
  • 6 ⟶ Purple
  • 7 ⟶ Red
  • 8 ⟶ White
  • 9 ⟶ Ice
  • 10 ⟶ Stone
  • 11 ⟶ Magenta
  • 12 ⟶ Orange
  • 13+ ⟶ Crash

Known values for Type are:
  • 1 ⟶ Explosion
    • It is always instantaneous.
  • 2 ⟶ No effect?
  • 3 ⟶ Sparkle Shower
    • Will use the specified duration, but is not saved (lost upon reload).
Info: Both of these params use only the lower 16 bits (upper bits might have other function).

#42 (0x2A) Spell: Wizard Spell Slots Modifier Variants: BGEE
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

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: BGEE
Parameter #1: Level
Parameter #2: Type
Description:
Dispels magic from the targeted creature(s) (excepting magical weapons eg. Spirtual Hammer). Depending on the value of the 'Type' field, the 'Level' field can be used to set the level of the effect.
Known values for 'Type' are:
  • 0 ⟶ Always dispel
  • 1 ⟶ Use Caster Level
  • 2 ⟶ Use 'Level' field

With 'Type' of 1 or 2, the base chance of successfully dispelling is 50%. 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. There is always a 1% chance of success or failure.

#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) Crash Variants: BGEE IWD2
Parameter #1: Undefined
Parameter #2: Undefined
Description:
Warning: This effect crashes the game.
Note: This effect has previously been referenced as Alchemy.

#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 BGEE IWD1 PST
Parameter #1: Damage
Parameter #2: Type
Description:
Set the Damage parameter as the amount of damage, and the Disease Type parameter as how the disease functions.
Known values for 'Type' are:
0 1 HP per second
1 1 HP per second
2 'Damage' per Second
3 Cause 1HP every 'Damage' seconds
4 Strength Penalty
5 Dexterity Penalty
6 Constitution Penalty
7 Intelligence Penalty
8 Wisdom Penalty
9 Charisma Penalty
10 Slow Effect

'Damage' can be positive (penalty) or negative (bonus).
Important: Permanent timing modes require a duration for this effect to work.

#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: BGEE IWD1 IWD2 PST
Parameter #1: Regeneration Amount
Parameter #2: Type
Description:
Restores HP to the value of 'Regeneration Amount' in the style specified by the 'Type' field, to the targeted creature(s).
Known values for 'Type' are:
0 Restore 'Regeneration Amount' per second
1 Restore 'Regeneration Amount' as a percentage of total HP
2 Restore 'Regeneration Amount' HP every second
3 Restore 1HP every 'Regeneration Amount' seconds
4 Restore Param 3 HP every Param 1 seconds

Warning: ‘Type’ values greater or equal to 5 will crash the game!
Important: Permanent timing modes require a duration for this effect to work.

#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: Hold Variants: BGEE PST BG1
Parameter #1: IDS Entry
Parameter #2: IDS File
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:
2 EA.ids
3 General.ids
4 Race.ids
5 Class.ids
6 Specific.ids
7 Gender.ids
8 Align.ids
The affected creature becomes immobile and its AI scripts stop running.
This effect sets stat #58 (HELD) to 1. It also sets the STATE_HELPLESS flag.

#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: BGEE
Parameter #1: Irrelevant
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. "EFF_M02" is hard-coded to play when an item is removed. This effect should be used to remove equipped items (use opcode #123 for inventory items).

#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: BGEE IWD2 PST
Parameter #1: Irrelevant
Parameter #2: Type
Description:
Creates a 2D animation for casting glow. These effects are usually used for casting glows based on the spell school.
Known values for 'Type' are:
0 .. 8 = Crash
9 Casting Glow Aqua (Necromancy)
10 Casting Glow Blue (Alteration)
11 Casting Glow Gold (Enchantment)
12 Casting Glow Green (Abjuration)
13 Casting Glow Magenta (Illusion)
14 Casting Glow Purple (Conjuration)
15 Casting Glow Red (Invocation)
16 Casting Glow White (Divination)
17+ Crashes

#141 (0x8D) Graphics: Lighting Effects Variants: BGEE IWD2 PST
Parameter #1: Target
Parameter #2: Type
Description:
Shows the lighting effect (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-0 Target Location
Known values for 'Type' are:
0 aqua SHAIR
1 aqua SHEARTH
2 aqua SHWATER
3 *crash*
4 blue SHAIR
5 blue SHEARTH
6 blue SHWATER
7 *crash*
8 gold SHAIR
9 gold SHEARTH
10 gold SHWATER
11 *crash*
12 green SHAIR
13 green SHEARTH
14 green SHWATER
15 *crash*
16 magenta SHAIR
17 magenta SHEARTH
18 magenta SHWATER
19 *crash*
20 purple SHAIR
21 purple SHEARTH
22 purple SHWATER
23 *crash*
24 red SHAIR
25 red SHEARTH
26 red SHWATER
27 *crash*
28 white SHAIR
29 white SHEARTH
30 white SHWATER
31 *crash*
32 red MUSHROOM
33 grey MUSHROOM
34 green MUSHROOM
35 red PILLAR
36 white PILLAR
37 white SWIRL
38 Shadow Door (SPDIMDR) (BGs)
39 Finger of Death (SPFDEATH) (BG2)
40+ *crash* (BG2)

#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: BGEE
Parameter #1: Irrelevant
Parameter #2: Irrelevant
Description:
Applies the sanctuary effect to the targeted creature(s).

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

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

This effect sets stat #62 (ENTANGLE) to 1.
Important: Both parameters should be set to 0.

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

This effect sets stat #64 (MINORGLOBE) to 1.

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

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

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

This effect sets stats #58 (HELD) and #67 (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: BGEE
Parameter #1: Irrelevant
Parameter #2: Irrelevant
Description:
Applies the grease visual effect to the targeted creature(s). Does not actually affect the target's movement rate.

This effect sets stat #66 (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: BGEE
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 if the current movement rate value is below the default for the animation type.
Also check out the EE description here.

#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 BGEE IWD1 IWD2 PST
Parameter #1: String Reference
Parameter #2: Type
Description:
The targeted creature(s) cannot use the item type specified by the 'Type' field. The strref specified by the 'String Reference' field is displayed when at attempt to use such an item is made.
Important: This effect only works with 'Type' set to 0.

#182 (0xB6) Item: Apply Effect Item Variants: BGEE
Parameter #1: Unknown
Parameter #2: Unknown
Description:
Applies an effect when the specified item is equipped.
Warning: This effect has never been seen to work.
Warning: PST: This effect doesn’t exist and always crashes the game.

#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: BGEE 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 stats #79 (CASTINGLEVELBONUSMAGE) or #80 (CASTINGLEVELBONUSCLERIC) depending on param #2.
Note: This effect changes the casting level stat, but has no actual affect in-game.

#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: BGEE IWD1
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:
1 Show only known spells
Note: To make your own 2DA file for, use the SPWI510.2DA as a base.

#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: BGEE IWD1 IWD2
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, negative values will alter level and spellbook slots, but not experience.
Param3 is used internally to store recalculated max hp.
Param4 is used internally to store recalculated max xp.
This effect sets stat #200 (LEVELDRAIN) to param #1.

#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: BGEE IWD2
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.

#219 (0xDB) Stat: AC vs. Creature Type Modifier Variants: BGEE 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: BGEE IWD1 IWD2
Parameter #1: Max Level
Parameter #2: School Type
Description:
Removes a single spell effect of the school specified by the 'School Type' field up to the 'Max Level' value, from the targeted creature(s).
Known values for 'School Type' are:
1 Abjurer
2 Conjurer
3 Diviner
4 Enchanter
5 Illusionist
6 Invoker
7 Necromancer
8 Transmuter
9 Generalist

#230 (0xE6) Removal: Remove One Secondary Type Variants: BGEE IWD1 IWD2
Parameter #1: Max Level
Parameter #2: Secondary Type
Description:
Removes one spell effect of the school specified by the 'School Type' field up to the 'Max Level' value, from the targeted creature(s).
Known values for 'Secondary Type' are:
1 Spell Protections
2 Specific Protections
3 Illusionary Protections
4 Magic Attack
5 Divination Attack
6 Conjuration
7 Combat Protections
8 Contingency
9 Battleground
10 Offensive Damage
11 Disabling
12 Combination
13 Non-Combat

#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: BGEE IWD1 IWD2
Parameter #1: Target
Parameter #2: Condition
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:
0 Effect Target
1 LastHitter
2 NearestEnemyOf
3 Nearest
Known values for 'Condition' are:
0 HitBy()
1 See(NearestEnemyOf())
2 HPPercentLT(Myself 50)
3 HPPercentLT(Myself 25)
4 HPPercentLT(Myself 10)
5 StateCheck(Myself,STATE_HELPLESS) i.e. unconscious
6 StateCheck(Myself,STATE_POISONED) i.e. poisoned
7 AttackedBy('Target')
8 PersonalSpaceDistance('Target',4)
9 PersonalSpaceDistance('Target',10)
10 Unknown - every round
11 TookDamage()
Parameter 3 (EFF) activates the portrait icon and immediately triggers the HitBy() trigger

#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: BGEE IWD1 IWD2
Parameter #1: Maximum Level Usable
Parameter #2: Amount/Type
Description:
Creates a contingency.
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
1 Contingency
2 Broken Sequencer
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: BGEE 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: BGEE IWD1 IWD2
Parameter #1: Item Type
Parameter #2: Irrelevant
Description:
Items matching the 'Item Type' value on the targeted creature(s) will have their charges drained.
Known values for 'Item Type' are:
0 Magical items excluding weapons
1 Magical items including weapons
Important: This effect works in SoA but not ToB

#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: BGEE IWD1 IWD2
Parameter #1: Irrelevant
Parameter #2: Irrelevant
Description:
Attempts to set the spell specified by the resource key as a trap.
Note: This effect will fail if the targeted creature(s) does not have sufficient points in the ‘Set Traps’ skill.

#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: BGEE IWD1
Parameter #1: Irrelevant
Parameter #2: Irrelevant
Description:
This effect stores the spell resources for an active spell sequencer. The three spell resources are stored in the resource key, VVC field, and eff 3rd parameter.

#257 (0x101) Spell: Spell Sequencer Creation Variants: BGEE IWD1
Parameter #1: Maximum Level Usable
Parameter #2: Amount
Description:
Creates a spell sequencer.
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.
Important: The filename of a spell containing this effect should be no more than 7 characters.

#258 (0x102) Spell: Spell Sequencer Activation Variants: BGEE IWD1 IWD2
Parameter #1: Irrelevant
Parameter #2: Irrelevant
Description:
Activates a spell sequencer.
The resource key must be set to the filename of the spell which contains the Spell Sequencer Creation effect, which must be an innate ability.
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.
eg:
Spell Sequencer Creation filename = SPSS101
Spell Sequencer Activation filename = SPSS101D

#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) Crash Variants: BGEE IWD1
Parameter #1: Undefined
Parameter #2: Undefined
Description:
This effect crashes the game.
Research indicates effect would activate a spell sequencer at a point (rather than at a creature, as per effect 258), however the code for this effect is not fully contained in the executable file.

#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: BGEE IWD1
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.
It won't affect items marked as 'critical'
Known values for 'Type' are:
0 Drop random equipment
1 Drop a quickslot item (won't drop the left-hand weapon).

#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: BGEE IWD1
Parameter #1: Irrelevant
Parameter #2: Irrelevant
Description:
Removes the animation of the targeted creature(s).

#272 (0x110) Spell: Apply Repeating EFF Variants: BGEE IWD1
Parameter #1: Frequency
Parameter #2: Type
Parameter #3: Amount_2
Description:
Applies the eff specified by the resource key to the targeted creature(s) as specified by the 'Type' field. 'Type' mode 4 makes use of Parameter 3, and so can only be used in external eff files.
Known values for 'Type' are:
0 Apply once per second
1 Crash
2 Apply 'Frequency' times per second
3 Apply once per 'Frequency' seconds
4 Apply Param 3 times per 'Frequency' rounds
5+ Crash
Info: The timings are relative to the movement rate of the affected creature(s). Effects 40 (Slow) and 78 (Disease) doubles the timing rate, effect 16 (Haste) halves the timing rate.
Note: If two or more effects of this type affect a creature, only the shortest duration effect will occur.

#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: BGEE 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:
2 EA.ids
3 General.ids
4 Race.ids
5 Class.ids
6 Specific.ids
7 Gender.ids
8 Align.ids

#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: BGEE IWD1 IWD2
Parameter #1: String Reference
Parameter #2: Position
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 stats 172 and 173.

#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: BGEE IWD2
Parameter #1: Irrelevant
Parameter #2: Constant Value
Description:
Executes script cut250a.bcs. By default this script teleports the party to the Pocket Plane area (AR4500).
Important: The Constant Value parameter should be set to 1.

#299 (0x12B) Spell Effect: Chaos Shield Variants: BGEE
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 stat #189 (CHAOS_SHIELD).

#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: BGEE
Parameter #1: Statistic Modifier
Parameter #2: Irrelevant
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'

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

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

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

The effect modifies stat #192 (ASSASSINATE).
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.

#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: BGEE
Parameter #1: Irrelevant
Parameter #2: Stat Value
Description:
Protects the targetted creature(s) from the Tracking arrows effect (has no affect on the area string displayed).

The effect modifies stat 195 to the value of param type.
Note: The ‘Stat Value’ parameter can take any value. If you set it to 0, you will disable the effect (for its duration).

#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: BGEE
Parameter #1: Undefined
Parameter #2: Undefined
Description:
This effect crashes the game.

#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) Stat: Set Stat (TobEx) Variants: BGEE
Parameter #1: Statistic Modifier
Parameter #2: Stat Opcode (low word) / Type (high word)
Description:
Applies the modifier value specified by the 'Statistic Modifier' field in the style specified by the 'Type' field to the opcode specified by the 'Stat Opcode' field.
Known values for 'Type' are:
0 Cumulative Modifier -> Value = Value + 'Statistic Modifier' value
1 Flat Value Modifier -> Value = 'Statistic Modifier' value
2 Percentage Modifier -> Value = (Value * 'Statistic Modifier' value) / 100
3 Multiplicative Modifier -> Value = Value * 'Statistic Modifier' value
4 Divisive Modifier -> Value = Value / 'Statistic Modifier' value
5 Modulus Modifier -> Value = Value % 'Statistic Modifier' value
6 Logical AND Modifier -> Value = Value && 'Statistic Modifier' value
7 Logical OR Modifier -> Value = Value || 'Statistic Modifier' value
8 Bitwise AND Modifier -> Value = Value & 'Statistic Modifier' value
9 Bitwise OR Modifier -> Value = Value | 'Statistic Modifier' value
10 Inverse Modifier -> Value = !Value

You cannot set any stats with opcode < 387 with this effect. New stats 202-400 are reserved for new hard-coded stats.
Important: ONLY available if TobEx is installed!