EEFP Docs: Fixes for IWDEE

This documentation is complete as of November 8, 2022.

Fixes for IWDEE

String Fixes Link to this section

Textual changes were made to correct errors or reflect other changes. Note that this is limited to material or factual errors; spelling, grammar, or other typos are handled by the Game Text Update.

  • The area-of-effect and triggering radius in the description of Symbol, Pain were incorrect. (strref #8099)
  • Cause Disease is an abjuration spell, not necromancy. (strref #21478)
  • The description for Carrion Summons indicated that it would summon "1d2" carrion crawlers, but it's not a 50-50 chance. The spell has a 65% chance to summon two, and as such the language has been generalized. (strref #35784)
  • The Sun Soulbeam ability did not roll for an attack, it just hits, contrary to its description. (strrefs #36015, #37263)
  • Several of the shapeshifting abilities and spells did not list all of their abilities; generally it was the weapon enchantment of their natural weapons. (strrefs #36172, #36173, #36174, #36176, #36178, #36180, #36182, #36184, #36186, #36597, #40308, #40309, #40310, #40311, #40312, #40313, #40314, #40315, #40939, #40940, #40941)
  • The ranger Charm Animal ability does not mention its duration. (strref #40299)

Mechanics Fixes Link to this section

  • The non-proficiency penalty for Shadowdancers and Mage-Thieves were incorrect. (clswpbon.2da)
  • Wing buffet/knockback effects were not being applied to all creatures who should be affected. (cdwb220.eff, cdwb230.eff, cdwb3100.eff, spcl911b.spl, spwi818.spl, spwi918.spl, spwi922.spl, spwi925.spl, spwish27.spl, spyanc01.spl)
  • Crippling Strike should extend out to -10 for assassins. (backstab.spl)
  • Several items and spells have effects specifically applied or blocked for "outer planar" or "extra planar" creatures. Tieflings were included in these definitions, but should not be. (debian.itm, devaheal.spl, doves.itm, smcudge.itm, spcl102.spl, spcl111.spl, spcl211.spl, spin200.spl, spin202.spl, spin923.spl, sppr103.spl, sppr114.spl, sppr217.spl, sppr220.spl, sppr315.spl, sppr317.spl, sppr320.spl, sppr330.spl, sppr331.spl, sppr401.spl, sppr414.spl, sppr417.spl, sppr502.spl, sppr510.spl, sppr514.spl, sppr523.spl, sppr607.spl, sppr608.spl, sppr612.spl, sppr699.spl, sppr711.spl, sppr713.spl, sppr739.spl, sppr740.spl, spwi914.spl, spwish07.spl, spwish19.spl, spwish28.spl, spwish39.spl, spwish46.spl, spwm168.spl, sw1h51.itm)
  • When starting a new HoW game, new characters were given default equipment based on their class. Due to errors in the table, some classes and kits (notably shamans) received nothing at all. (25stweap.2da)

Area Fixes Link to this section

  • The doors in the Eldathyn area on the fourth floor of Dragon's Eye are supposed to open once the truth is discovered. However, due to bad variable scope, the scripts would loop and continue to open the doors if they were closed later. (ar4004.bcs, d4doorg.bcs, d4doort.bcs, d4geldor.bcs)
  • Similar to the above, doors in Yxunomei's area on the next floor of Dragon's Eye had the same issue once they were forced open. (ar4005.bcs, d5door.bcs)
  • One of the doors in the Severed Hand should open five seconds after the party entered, but was opening instantly. (5104d3.bcs)
  • Petrification traps in Malavon's lair should only fire once each, but could fire indefinitely due to a bad variable scope. (ldeyetp1.bcs, ldeyetp2.bcs)
  • The message about the broken bridge at the aquarium exterior was only supposed to fire once per area visit, but would fire every time the bridge was approached. (wtbridge.bcs)
  • Three other door/container scripts would infinitely loop due to bad variable scope. While overall harmless, they're fixed anyway. (eetpldor.bcs, ldbdgopn.bcs, udtrap1.bcs)
  • When the fight against Yxunomei begins, the doors close to seal off the party in a smaller area. If the party gets split on either side of the door, the game can soft-lock if Yxunomei kills the party members on its side: the remainder can't open the door, but also can't recover their dead party members. The closed doors will now open on Yxunomei's death or after one turn, whichever happens first. (d5yxudor.bcs)
  • Two doors would detect as being trapped even though they weren't. (ar7000.are, ar7002.are)
  • The original IWD had a repeated random treasure in HoW, of which one was replaced by an unused random drop. After going back and looking at the original, the wrong duplicate was replaced. (ar9200.are, ar9601.are)
  • In the tower with the Harpy Matriarch, several harpies are supposed to despawn on easier difficulties to make it an easier fight. However, the scripting was mistargeted and the harpies remained. (ar9706.are)
  • Floor or container traps could potentially crash the game if the trap effects were channeled through an unnamed spell and blocked by a target who is immune. (spwi018.spl, spwi019.spl, spwi028.spl, spwi029.spl)

Dialogue Fixes Link to this section

  • Only four of the five random lines from the generic slave dialogue in the frost giant caves could fire. (dgntslav.dlg)
  • One of the rumors available in the Kuldahar pub was a dialogue line from Arundel, and is removed. (dkurum.dlg)
  • There were two class-specific replies in dialogue with Hobart that were not available to dual or multiclasses. (dhobart.dlg)
  • Everard's dialogue is supposed to have a specific Jerrod's Stone reply available if you had asked Accalia about it first. (daccalia.dlg)

Item Fixes Link to this section

  • The generic light crossbow and the High Quality Light Crossbow lacked a larger, shadowed icon. (ixbow04.bam, ixbow09.bam)
  • The Talonite Poison was supposed to play a choking noise if consumed, but the sound was missing. (#choke.wav)
  • Four items could spawn as random loot, but without charges (Wand of Trap Detection, Bone Talisman) or in a quantity of one (Translocation Arrow +1, Tranquil Bolt +1). (ar2004.bcs, ar4003.bcs, ar5003.bcs)
  • The range of two Stone to Flesh scrolls was too short. (scrlpet.itm, scrlpet2.itm)
  • Per their description, Energy Blades should do missile damage, not slashing. (eneblade.itm)
  • Boots of the Fox now use the Increase Movement Speed portrait icon instead of Haste. Similarly, the cursed version of Vexing Thoughts didn't set a cursed icon. (bootfox.itm, vexed.itm)
  • The upgraded version of Bren Muller's Crossbow now has a brief visual effect to indicate its ability has been activated. (cdxbowbm.itm)
  • Several weapons were not properly accounting for their base damage when adding on damage from their enchantments, e.g. the Composite Longbow of the Hand and Kaylessa's Bow +3 were missing their +1 damage from being a composite long bow. Other items affected: Bren Muller's Crossbow (original and upgraded), Storm Bow +2, and Skullflail +4 (strrefs #8663, #8712, #8911, #25818, #27373 and #40639; cdxbowbm.itm, clbhand.itm, flailsk.itm, kaybow.itm, lxbowbm.itm, storm.itm)
  • Two crossbows had the wrong strength requirement. (strrefs #14432 and #18095; uhxbw2a.itm; xbow01.itm)
  • Two items (Thrym Extract and War Hammer +4: Defender) had extraneous effects that were documented as if they were intentional. They were not, and the effects have been removed and the descriptions reverted. (strrefs #14913 and #21627; thrym.itm; u1ham5b.itm)
  • The color glow from Darts of Stunning was expiring too early. (dart03.itm, dart03.spl)
  • The Sword of Days was not properly blocking all Haste and Slow effects. (days.itm)
  • The Gauntlets of Valor are supposed to block Hold Person, but were actually blocking Haste due to a typo. (gvalor1.itm)
  • The Kinetic Spear had protection from Lance of Disruption to prevent an old bug of the spear hitting its wielder, but the old bug was fixed and the protection is no longer needed. (kinetic.itm)
  • The Elixir of Health was setting the intoxication level to zero instead of outright curing the effect. (potn17.itm)
  • The disease caused by the Chaos Dagger +3 had a portrait icon that expired too early. (udagg4a.itm)
  • Natural weapons (claws, bites, etc.) and magically-created weapons (e.g. Chill Touch) should not benefit from weapon style proficencies. (bclaw.itm, brblp.itm, brbrp.itm, cdpolybb.itm, cdpolypb.itm, cdpolyww.itm, cdshwele.itm, cdwstyl1.eff, cdwstyl1.spl, cdwstyl2.eff, cdwstyl2.spl, chillt.itm, critical.itm, ctouch.itm, druear.itm, drufir.itm, earthrn.itm, eelem.itm, felem.itm, firern.itm, ghoult.itm, harm.itm, ibody.itm, ltouch.itm, plybass.itm, plybear1.itm, plybeetl.itm, plymstar.itm, plypbear.itm, plyspid.itm, plyspid2.itm, plywolf1.itm, plywwolf.itm, plywyvrn.itm, slaylive.itm, squirp.itm, statdesc.2da, trollall.itm, welem.itm, wolfgr.itm, wolfm.itm, wswolf.itm)
  • The charm ability of Hell's Furnace didn't really work. (spitm99.spl)

Spell Fixes Link to this section

  • Enchant Weapon could not be cast via Contingency. (spwi417.2da)
  • Mold Touch had multiple issues, mainly that the damage was incorrect, it didn't spread quite as specified, and didn't always interact with spell protections correctly. (idmold.pro, sppr326.spl, sppr326a.spl, sppr326b.spl)
  • Summoning spells shouldn't check magic resistance. (wand10.itm.spl, wand10.itm)
  • Negative effects from Champion's Strength, Circle of Bones, (Great) Shout, and Blade Barrier that apply to the caster shouldn't be blocked by caster protections. (sppr323.spl, sppr507.spl, sppr603.spl, spwi431.spl, spwi806.spl)
  • Moonblade will now set a Spell Failure portrait icon if it inflicts miscast effects. (moonbla.itm)
  • Paralysis from Ghoul Touch should last six rounds. (ghoult.itm, ghoult.spl)
  • The attacks-per-round increase from Darts of Bone was forcing a save against the wielder, and not applying if it was made. (dobone.itm)
  • Black Blade of Disaster could be blocked by spell protections, and the weapon grandmastery that should accompany the weapon could sometimes get blocked. (blakblad.eff, blakblad.itm, blakblad.spl, cdbblade.spl)
  • Iron Body split its effects between the spell and its equipped weapon, which could cause complications (particularly with other polymorphs). (ibody.itm, spwi814.spl)
  • Spider Spawn was only summoning Giant Spiders but should be summoning Phase and Sword Spiders at higher levels. (smtables.2da, spidphsu.2da, spidswsu.2da, spwi423.spl)
  • Simulacrums and Projected Images should retain their stealth abilities, however, the Shadow Twin ability should be blocked. (projimag.spl, simulacr.spl)
  • When a creature with reflective damage enabled (e.g. Fireshield) attacks another with a similar protection, they could get caught in an infinite loop of retaliatory damage, potentially crashing the game. Also corrected the power levels of a few of these. (bdsha12a.spl, leat23a.spl, spcl237d.spl, spimixd.spl, sppr730d.spl, sppr951d.spl, sppr952d.spl, spwi403d.spl, spwi418d.spl)
  • Lich Touch should paralyze on hit, not hold. (ltouch.spl)
  • Enrage was using Berserk's spell icon instead of its own unique one. (spcl321.spl)
  • Spells which cure and/or drain HP should not work on extraplanars and undead. (spcl815.spl, spwi119.spl, spwi314.spl)
  • Emotion, Hopelessness and Mournful Wail are supposed to remove the effects of Emotion, Hope. (spin115.spl, sppr716.spl)
  • The effects of Great Roar had inconsistent durations; same for Retribution. (spin119.spl, spin120.spl)
  • Alicorn Lance was not properly checking magic resistance when removing previous instances of itself. (sppr218.spl)
  • Cloudburst should remove Fireshields. (sppr325.spl)
  • Storm Shell should not stack. (sppr327.spl)
  • The portrait icon from Poison expired too early. (sppr411.spl)
  • The effects of Static Charge could be dispelled, except for its portrait icon. (sppr420.spl)
  • Blood Rage's protection against stacking opened an exploit where the downside effects could be delayed with re-casts. (sppr422.spl)
  • Animal Rage and Wall of Moonlight should not interact with spell protections. (sppr428.spl, sppr428a.spl, sppr428b.spl, sppr522b.spl)
  • Mass Cause Light Wounds should not be available to druids. (sppr523.spl)
  • Entropy Shield was mistakenly blocking a projectile used by Imprisonment, Breach, and Spellstrike. It was also not blocking all of the Flame Strike projectiles. (sppr615.spl)
  • The stun effect from Whirlwind should be blocked by magic resistance. (sppr617.spl)
  • Stoneskin was providing too many skins. (spwi408.spl)
  • Beltyn's Burning Blood was not properly checking magic resistance. (spwi422.spl)
  • Emotion, Fear should only remove the effects of Emotion, Courage if the target fails their save and magic resistance checks. (spwi428.spl)
  • The deafness caused by (Great) Shout did not set a portrait icon. (spwi431.spl, spwi806.spl)
  • Tenser's Transformation should not block innate abilities. (spwi603.spl)
  • Prismatic Spray could cause permanent feeblemind or petrification, but the accompanying portrait icons were time-limited. (spwi714.spl)
  • Suffocate should only renew its effects on a failed save; its movement speed penalty should not be blocked by free action. (spwi726.spl)
  • Mind Blank is supposed to protect against petrification, but was not. (spwi802.spl)
  • Great Should would have double 'Stunned' strings on a failed save. (spwi806.spl)
  • The icon that accompanies drunkenness from Wish expired too early. (spwish33.spl)
  • Grease should not interact with spell protections, but should set the 'grease' stat. (spwi101b.spl, spwi101c.spl)
  • When used on undead, Chill Touch would permanently remove their immunity to fear. (chillt.itm, spwi117a.spl, spwi117b.spl)
  • Spirit Fire could be blocked by spell protections, and its double damage could be stopped by Mirror Image despite being an area-of-effect spell. (sppr450.spl, sppr450a.spl, sppr450b.spl)
  • The blindness effect from Nature's Beauty was done in such a way that it could not be removed and didn't have normal blindness penalties. The spell is also limited to affecting humanoids. (sppr704.spl)
  • Sunray now better distinguishes its effects for fungal, undead, and other targets. (sppr707.spl, sppr707a.spl, sppr707b.spl, sppr707c.spl)
  • The confusion effects from Jester bardsong should only be renewed on a failed save. (spcl751a.spl, spcl751b.spl)
  • When Berserk was used for non-party members, the messages about the expiration damage was still being displayed as combat feedback. (spcl321.spl, spcl321d.spl, spin117a.eff, spin117b.eff)
  • A sound effect for Lance of Disruption was not playing due to a typo. (idpro313.pro)
  • The Song of Kaudies provides 50% protection from sonic-based attacks. However, it was coded in such a way that, every round, the target would either be completely immune or completely susceptible to all such attacks, rather than rolling for each attack individually. (spcl117.spl, spin115.spl, spin116.spl, spin117.spl, spin118.spl, spin119.spl, spin138.spl, splstate.ids, sppr102.spl, sppr211.spl, sppr512.spl, sppr988.spl, spwi431.spl, spwi612.spl, spwi806.spl, spwi913.spl)
  • Unholy Blight was providing a -2 AC penalty to its target instead of the intended -2 to damage rolls. A new portrait icon for Unholy Blight's effects has been added. (sppr314.spl, sppr314d.bam, statdesc.2da)
  • Bulk Fixes:
    • School: Several innate creature abilities were assigned as 'generalist' school spells instead of schoolless, which gave generalist mages an unwarranted +2 saving throw against them. Corrections were also made for Blade Barrier and special versions of Confusion, Flame Strike, and Call Lightning. (spin176.spl, spin177.spl, spin180.spl, spin181.spl, spin182.spl, spin183.spl, spin184.spl, spin186.spl, spin187.spl, spin188.spl, spin189.spl, spin190.spl, spin192.spl, spin193.spl, spin194.spl, sppr603d.spl, sppr983.spl, sppr985.spl, sppr987.spl, spwi480.spl, spwi481.spl, spwi482.spl, talongf.spl, umbergaz.spl)
    • Secondary: Fixed some of the special spell's secondary types. (sppr983.spl, sppr985.spl, sppr987.spl, sppr988.spl, sppr989.spl, spwi004.spl, spwm123.spl)

Creature Fixes Link to this section

  • Elemental summons shouldn't grant XP if killed. (elemchan.cre, elemsunn.cre, elemzaam.cre)
  • Black Ice Knights, being constructs, shouldn't carry gold. (biknight.cre)
  • Revenants could be held, but for some reason blocked the spinny-head animation that went with it. (cwreve.itm)
  • The Slime Zombie attack had an odd way of preventing its poison effect from stacking, which prevented any other poison from going into effect or for their own poison to be renewed. It will now behave better with other poisons, and renew on subsequent hits. (cwszomb.itm)
  • Bombardier Beetles could play duplicate 'Stunned' strings on their gas attack. (spin191.spl)
  • Nymphs summoned via Call Woodland Beings lacked their Confusion ability. (spin704.spl)
  • Nishruu and hakeashar should be destroyed by dispel magic, their attack used the wrong type, they had some basic creature errors (general, race, class, animation, resistances), and some other minor errors. (haksu.cre, nishru01.bcs, nishrusu.cre, nishruu.itm, spcl231.spl, specific.ids, sppr303.spl, spwi302.spl, spwi323.spl)
  • Ghast attacks cause nausea and paralysis on their targets. Two of the sound effects for the nausea were being grouped with the paralysis, meaning they could play (or get blocked) when they shouldn't. (ghast1.spl)

Quest Fixes Link to this section

  • Grisella is not supposed to give out quest rewards unless you had asked for it as part of doing the quest. (dgrisell.dlg)
  • The upgrade for Bren Muller's crossbow didn't work as the action was running on the wrong creature. (dplanar.dlg)

Scripting/AI Fixes Link to this section

  • One of the player cleric scripts would check for magical weapons such as Chill Touch before casting Shillelagh, but it was looking for the BG/BG2 resources and not the IWD-specific ones. (cleric1.bs)
  • Jorn would heal all of his fellow barbarians save one due to a bad check. (iljorn.bcs)
  • The Talonite priests in the second level of Dragon's Eye were supposed to heal one another if hurt, but weren't due to some targeting issues. (d2talon3.bcs, d2talon4.bcs)
  • IWDEE lacked many of the normal 'object' definitions used for targeting in scripts. Two typos are also fixed in the object list. (object.ids)

Animation Fixes Link to this section

  • For larger creatures such as dragons, creature animations were typically split into four quadrants and stitched together on the game screen. Unfortunately, this could sometimes result in visible seams between the four disparate animations or, if a spell was in effect, animations cycling out of sync with one another. These larger animations have been merged into a single, monolithic animation to address these issues. (all mdem*.bam, mdr1*.bam, mdr2*.bam, mdr3*.bam, mwdr*.bam, mwyv*.bam)
  • Similar to the above, large animations in areas could also be split and show the same seams where merged. (1000ms1.bam, 1105ms1.bam, 1201ms2.bam, 1400t001.bam, 1400t002.bam, 1400t003.bam, 1400t004.bam, 1400t005.bam, 3001ms1.bam, 3601ms1.bam, 6013ms1.bam, am0602c.bam, am0602d.bam, am0602k1.bam, am0602k2.bam, am0602l1.bam, am0602l2.bam, am0801b1.bam, am0801b2.bam, am0902l.bam, am0902l1.bam, am0902l2.bam, am0902l3.bam, am0902l4.bam, am2000a.bam, am2000a1.bam, am2000a2.bam, am2000a3.bam, am2000a4.bam, am2000b.bam, am2000b1.bam, am2000b2.bam, am2000b3.bam, am2000b4.bam, am2805b.bam, am2805c.bam, am414e11.bam, am414e12.bam)
  • The paperdoll for monks (the tutorial ones in Candlekeep, not the player class) were corrupted. (cmnk1inv.bam)
  • Summoned lizardmen had weapons equipped, but they were not visible. (mli2h*.bam, mli2q*.bam, ms2lizm.cre, ms2lizm.itm, ms3tliz.cre, ms3tliz.itm, ss1liz3.cre, ss1liz4.cre, ss2liz5.cre, ss2liz6.cre, ss2liz7.cre)
  • Bullets +1 and Bullets +2 used the same projectile. (bull03.itm, sppr613.spl, sppr615.spl, xbull03.itm)
  • The animation for Death Tyrant beholders had different spacing than regular beholders (despite being the same size) and was not being used by Death Tyrants. (7f02.ini, 7f46.ini)
  • The animation for revenants needed some attack animation corrections and was not being used by revenants. (7701.ini)
  • The Siren's Yearning bard song would play a BG2-style spinny-head animation on its target, but IWD uses color glows for these. (spcl118.spl)

Polymorph Overhaul Link to this section

There were several ways that polymorphing--whether via a spell like Shapechange, a druid's natural abilities, or from an item like Cloak of the Wolf--could introduce numerous issues, especially when shifting directly between forms. A creature could retain stats or abilities from a previous form, or forced/voluntary/timed shapheshifts could overrun one another. As such, these abilities went through a complete overhaul designed to streamline the process, cover edge cases, and minimize issues. (brblp.itm, brbrp.itm, cdgoliro.itm, cdmindfl.itm, cdpolybb.itm, cdpolypb.itm, cdpolyww.itm, cdshwele.itm, druear.itm, drufir.itm, earthrn.itm, eelem.itm, felem.itm, firern.itm, gvalor1.itm, plybear1.itm, plybear2.itm, plybeetl.itm, plyflind.itm, plyjelly.itm, plymstar.itm, plypbear.itm, plysala.itm, plyspid.itm, plyspid2.itm, plywolf1.itm, plywwolf.itm, plywyvrn.itm, shtroll.cre, spcl101.spl, spcl107.spl, spcl108.spl, spcl110.spl, spcl112.spl, spcl113.spl, spcl114.spl, spcl611.spl, spcl612.spl, spcl613.spl, spcl632.spl, spcl633.spl, spcl634.spl, spcl643.spl, spcl644.spl, spcl731.spl, spdm103.spl, spin122.spl, spin123.spl, spin124.spl, spin150.spl, spin150r.eff, spin151.spl, spin152.spl, spin153.spl, spin154.spl, spin155.spl, spin156.spl, spin157.spl, spin160.spl, spin197.spl, spin198.spl, spin974.spl, spinhum.spl, spinhume.eff, spinhume.spl, spinhumr.spl, spinhumw.eff, spinhumw.spl, splprot.2da, splstate.ids, sppr110.spl, sppr206.spl, sppr213.spl, sppr219.spl, sppr322.spl, sppr425.spl, sppr721.spl, sppr731.spl, sppr731a.spl, sppr732.spl, sppr732a.spl, spwi117.spl, spwi216.spl, spwi218.spl, spwi325.spl, spwi415.spl, spwi416.spl, spwi480.spl, spwi481.spl, spwi482.spl, spwi489.spl, spwi489r.eff, spwi490.spl, spwi491.spl, spwi493.spl, spwi494.spl, spwi495.spl, spwi496.spl, spwi497.spl, spwi498.spl, spwi499.spl, spwi518.spl, spwi626.spl, spwi630.spl, spwi711.spl, spwi711a.spl, spwi716.spl, spwi814.spl, spwi915.spl, spwi916.spl, spwi920.spl, spwm113.spl, spwm113a.spl, spwm183.spl, squirp.itm, trollall.itm, welem.itm, werewlf1.itm, werewlf2.itm, wolfchar.cre, wolfgr.itm, wolfm.itm, wswolf.itm)

Seven Eyes Fixes Link to this section

The easy fixes: Eye of the Sword shouldn't absorb stunning damage, which is primarily used by Enrage's HP backlash, nor should the Eye of the Mage absorb magic damage. The substantially more extensive and esoteric fix is that Eyes that respond to specific effects--such as the Eye of Venom being triggered by poison--are heavily reliant on internal ordering of other spells and items. If the poison effect isn't the first effect of the spell/item being applied, the mage could receive a poison portrait icon, some visuals, and only when the game tried to apply the actual poison would the Eye of Venom respond. In other words, the mage could avoid the actual poison and yet suffer some cosmetic effects or have the poison count against other protections. (#beltyn.spl, #deathf1.spl, #deathf2.spl, #deathf3.spl, #sunrund.spl, 7eyes.2da, axemino.itm, axemino.spl, basill1.itm, basill1.spl, bdsha06a.spl, bdsumst1.spl, bdsumst4.spl, carrio1.itm, carrio1.spl, cdsunrun.spl, cwreve.itm, cwreve.spl, dart03.itm, dart03.spl, dazer.itm, dazer.spl, deva.itm, deva.spl, ghast1.itm, ghast2.spl, ghoul1.itm, ghoul1.spl, ghoult.itm, ghoult.spl, icegolem.itm, icegolem.spl, icetrl.itm, icetrl.spl, insanit1.spl, insanit2.spl, insanity.spl, kris.itm, kris.spl, ltouch.spl, mae.itm, mae.spl, plybass.itm, plybass.spl, poison.itm, poison.spl, poq2-16.itm, poq2-16.spl, potn23.itm, potn23.spl, ring03.itm, ring03.spl, sareveff.spl, sflail.itm, sflail1.spl, sflail2.spl, sflail3.spl, sflail4.spl, spbatt1.itm, spbatt1.spl, spbatt2.itm, spbatt2.spl, spbatt3.itm, spbatt3.spl, spbatt4.itm, spbatt4.spl, spbatt5.itm, spbatt5.spl, spcl103.spl, spcl118.spl, spcl123.spl, spcl236.spl, spcl239a.spl, spcl239b.spl, spcl411.spl, spcl411a.spl, spcl411b.spl, spcl411c.spl, spcl411f.spl, spcl415.spl, spcl415b.spl, spcl751a.spl, spcl751b.spl, spcl908.spl, spcl911b.spl, spdr101.spl, spin115.spl, spin132.spl, spin132a.spl, spin132b.spl, spin139.spl, spin139a.spl, spin139b.spl, spin191.spl, spin191a.spl, spin733.spl, spin973.spl, spogre01.spl, sppr115.spl, sppr218.spl, sppr250.spl, sppr325.spl, sppr325a.spl, sppr419.spl, sppr419a.spl, sppr422.spl, sppr426.spl, sppr426a.spl, sppr517.spl, sppr517a.spl, sppr517b.spl, sppr519.spl, sppr522.spl, sppr609.spl, sppr614b.spl, sppr614c.spl, sppr614d.spl, sppr614e.spl, sppr617.spl, sppr617a.spl, sppr617b.spl, sppr716.spl, sppr720.spl, sppr722.spl, sppr722a.spl, sppr728.spl, sppr728a.spl, spwatt2.itm, spwatt2.spl, spwatt3.itm, spwatt3.spl, spwatt4.itm, spwatt4.spl, spwatt5.itm, spwatt5.spl, spwi006.spl, spwi006a.spl, spwi007.spl, spwi007a.spl, spwi008.spl, spwi008a.spl, spwi009.spl, spwi009a.spl, spwi010.spl, spwi011.spl, spwi011a.spl, spwi012.spl, spwi012a.spl, spwi018.spl, spwi018a.spl, spwi019.spl, spwi019a.spl, spwi028.spl, spwi028a.spl, spwi028b.spl, spwi029.spl, spwi029a.spl, spwi029b.spl, spwi030a.spl, spwi030b.spl, spwi030c.spl, spwi118.spl, spwi125.spl, spwi223.spl, spwi224.spl, spwi224a.spl, spwi303.spl, spwi303a.spl, spwi303b.spl, spwi303c.spl, spwi303d.spl, spwi303e.spl, spwi303f.spl, spwi327.spl, spwi327a.spl, spwi411.spl, spwi422a.spl, spwi431.spl, spwi509.spl, spwi612.spl, spwi626a.spl, spwi714.spl, spwi714a.spl, spwi714b.spl, spwi714c.spl, spwi922.spl, spwi925.spl, spwish27.spl, spwish35.spl, spyanc01.spl, trnbolt.itm, trnbolt.spl, u1ham3b.itm, u1ham3b.spl, u1hax2a.itm, u1hax2a.spl, u1hax4b.itm, u1hax4b.spl, u2hax5a.itm, u2hax5a.spl, uarow3a.itm, uarow3a.spl, uarow3b.itm, uarow3b.spl, ubswd5b.itm, ubswd5b.spl, udart1a.itm, udart1a.spl, udart2a.itm, udart2a.spl, udart3b.itm, udart3b.spl, uflal2b.itm, uflal2b.spl, uflal5a.itm, uflal5a.spl, uhalb4a.itm, uhalb4a.spl, uhalb4b.itm, uhalb4b.spl, ulswd3b.itm, ulswd3b.spl, ulswd4a.itm, ulswd4a.spl, ulswd5b.itm, ulswd5b.spl, umstr2a.itm, umstr2a.spl, umstr2b.itm, umstr2b.spl, umstr3a.itm, umstr3a.spl, umstr5a.itm, umstr5a.spl, usswd5b.itm, usswd5b.spl, utswd2b.itm, utswd2b.spl, utswd3a.itm, utswd3a.spl, utswd5a.itm, utswd5a.spl, wand02.itm, wand02.spl, wand04.itm, wand04.spl, wand19.itm, wand19a.spl, wand19b.spl, wand19c.spl, xclub.itm, xclub.spl, young.itm, young.spl, zze6pe.itm, zze6pe.spl, zzj6sp.itm, zzj6sp.spl, zzm5mh.itm, zzm5mh.spl)

Probability Fixes Link to this section

Items and spells had systematic errors where effects that had an x% chance to occur were generally off by 1%, e.g. the Black Blade of Disaster is supposed to level drain on 10% of hits but was actually doing it on 11% of hits. This also affected spells, particularly the ones that had chances to summon different numbers of creatures. (amaunat.itm, axemino.itm, bess.itm, biteme.itm, blakblad.itm, blast.itm, bloodgf.itm, cdfampsd.itm, ctouch.itm, cwreve.itm, cwszomb.itm, cynicis.itm, days.itm, dazer.itm, debian.itm, demochm.spl, deva.itm, diver.itm, doves.itm, firekis.itm, fistgf.itm, fkiller.itm, flailsk.itm, ghoul1.itm, ghoult.itm, giving.itm, gvalor2.itm, handgf.itm, hlydeck.itm, holding.itm, icegolem.itm, insanity.spl, kinetic.itm, kissgf.itm, kris.itm, lizspear.itm, mae.itm, ohbrac01.eff, ohtmps2d.spl, ohtmps2e.spl, pest.itm, planetar.itm, reaver.itm, remorha.itm, ring03.itm, sareveff.spl, sbowebu.itm, serrate.itm, sflail.itm, shax4d4c.itm, shaxe2c.itm, shmblr.itm, sorb.itm, spauru.spl, spcl117.spl, spcl118.spl, spcl132.spl, spcl311.spl, spcl641.spl, spcl918.spl, spin106a.spl, spin106b.spl, spin139.spl, spin141.spl, spin142.spl, spin161.spl, spin190.spl, spin191.spl, spitm99.spl, sppr102.spl, sppr204.spl, sppr250.spl, sppr320.spl, sppr325.spl, sppr426.spl, sppr450.spl, sppr507.spl, sppr512.spl, sppr522b.spl, sppr608.spl, sppr699.spl, sppr982.spl, sprngb01.itm, sprngb02.itm, sprngb03.itm, sprngb04.itm, sprngl01.itm, sprngl02.itm, sprngl03.itm, sprngl04.itm, sprngs01.itm, sprngs02.itm, sprngs03.itm, sprngs04.itm, sprngw01.itm, sprngw02.itm, sprngw03.itm, sprngw04.itm, sprngz05.itm, spwi104.spl, spwi116.spl, spwi220.spl, spwi314b.spl, spwi316.spl, spwi423.spl, spwi506.spl, spwi621.spl, spwi623.spl, spwi711.spl, spwi714.spl, spwish13.spl, spwish14.spl, spwm130.spl, spwm136.spl, spwm179.spl, sw1h51.itm, talongf.itm, talongf.spl, tonggf.itm, tongue.itm, u1ham3a.itm, u1ham3b.itm, u1ham4a.itm, u1ham5a.itm, u1hax2a.itm, u1hax3a.itm, u1hax4a.itm, u1hax4b.itm, u2ham4b.itm, u2ham5a.itm, u2hax2a.itm, u2hax3a.itm, u2hax3b.itm, u2hax4a.itm, u2hax5a.itm, uarow3a.itm, uarow3b.itm, ubswd1a.itm, ubswd2a.itm, ubswd2b.itm, ubswd3a.itm, ubswd4b.itm, ubswd4c.itm, ubswd5a.itm, ubswd5b.itm, ubull4a.itm, udagg1a.itm, udagg1b.itm, udagg2a.itm, udagg3a.itm, udagg3c.itm, udagg4a.itm, udart1a.itm, udart2a.itm, udart3b.itm, udart5a.itm, uflal2a.itm, uflal2b.itm, uflal4a.itm, uflal5a.itm, uhalb1a.itm, uhalb2a.itm, uhalb3b.itm, uhalb3c.itm, uhalb4a.itm, uhalb4b.itm, uhalb5a.itm, ulswd2b.itm, ulswd3b.itm, ulswd3c.itm, ulswd4a.itm, ulswd5b.itm, umstr2a.itm, umstr2b.itm, umstr3a.itm, umstr3c.itm, umstr4b.itm, umstr5a.itm, usswd2a.itm, usswd2b.itm, usswd3a.itm, usswd3b.itm, usswd5a.itm, usswd5b.itm, utswd2b.itm, utswd3a.itm, utswd4a.itm, utswd4b.itm, utswd5a.itm, utswd5b.itm, wand08.itm, whtash.itm, withery.itm, xclub.itm, young.itm, zz05we.itm, zze6pe.itm, zzj6sp.itm, zzm5mh.itm)

Revamp of Hold, Paralysis, and Web Link to this section

In the original Baldur's Gate, there were four internal methods to make an NPC freeze: paralysis (used in undead melee attacks), web (used by the spell of the same name and spiders), and two forms of hold (one for Hold spells and a second, special one reserved for special cases like cutscenes). As the series progressed through the BG expansion, into BG2, and concluding with Throne of Bhaal, these were used more and more freely, and muddled--you had web spells using paralysis, abilities that blocked the special hold (which nothing should) to the point where there was little distinction, if any, between these effects from a player's point of view. EEFP is re-establishing the scheme, going all the way back to the original Baldur's Gate, of trying to use these effects in a way that differentiates them and fixes a number of bugs along the way. Paralysis is, once again, the domain of undead attacks, and from which elves have some protection. Web is no longer paired by default with paralysis, meaning items which protect you from web no longer provide paralysis protection by accident, and the special hold will now always take effect. (antiweb.itm, enginest.2da, ipsion.itm, minhp1.itm, ohsmode1.spl, ohsmode4.spl, ring97.itm, spcl152.spl, spcl233b.spl, spcl242.spl, spcl321.spl, spcl742.spl, spdr201.spl, spin117.spl, sppr208.spl, sppr305.spl, sppr508.spl, sppr728.spl, sppr989.spl, spwi215.spl, spwi306.spl, spwi324.spl, spwi507.spl, spwi818.spl, spwi818a.spl, spwi918.spl, spwi918a.spl, spwm122.spl, trollimm.itm)

Immunity and Cure Fixes Link to this section

In the original Baldur's Gate II engine, something that made you 'immune to X' was actually fairly limited: you could make the character directly immune to the effect and (typically) the normal portrait icon, but many of the ancillary effects (sound effects, visuals, etc.) were hit or miss. A party member under free action would resist being paralyzed by a ghast, but the sound effect that plays when the paralysis was supposed to expire would still play. Similarly, creatures immune to confusion would resist the confusion itself but still play a spinning animation over their head for the spell's intended duration. Thankfully, the EEs provide more tools for dealing with immunities, and we can block all of these subsidiary effects. A parallel issue occurred when removing or curing effects. If you used Remove Fear on a panicking creature, the spinning animation over their head didn't always go away or the expiration sound would still play. Using a new EE feature, these subsidiary effects can be removed when the main effect is removed. (#cureber.spl, #curebld.spl, #curecon.spl, #curedef.spl, #curedis.spl, #curedrk.spl, #curefbm.spl, #curefer.spl, #curehol.spl, #cureinv.spl, #cureldr.spl, #curendt.spl, #curepse.spl, #curepsn.spl, #curesil.spl, #cureslp.spl, #curestn.spl, #palfear.spl, adisease.itm, arow07.itm, bdconstr.itm, bdsleep.itm, behamu.itm, bpdispel.spl, brdflute.itm, cdiwdtr1.spl, cdiwdtr2.spl, cdpr417.spl, cibossb.itm, ciigen.itm, deva.itm, devaheal.spl, dw#brkin.spl, dwfpgs01.spl, dwfpgs02.spl, dwfpgs03.spl, elemchan.itm, elemsunn.itm, elemzaam.itm, fjbarda.spl, fjbardb.spl, fjbladeb.spl, fkiller.itm, ghast1.itm, ghast1n.spl, giving.itm, golcla.itm, golstone.itm, helmded.itm, icetrl.itm, icetrlst.spl, insanitc.spl, insanitf.spl, insanity.spl, invulner.itm, ipsion.itm, irongol.itm, jellmu1.itm, labelt.itm, ltouch.itm, mdk2gun.itm, mdk2ring.itm, minhp1.itm, ohsmode1.spl, ohsmode4.spl, ohtyr1.spl, philter.itm, planetar.itm, pnull.itm, potn17.itm, potn20.itm, potn21.itm, potn23.itm, potn33.itm, potn45.itm, ring09.itm, ring90.itm, ring91.itm, ring95.itm, ringdemn.itm, sceptre.itm, scrl07.itm, scrl08.itm, sflail.itm, sflailst.spl, spcl104.spl, spcl111.spl, spcl115.spl, spcl152.spl, spcl221.spl, spcl222.spl, spcl231.spl, spcl232.spl, spcl232d.spl, spcl321.spl, spcl415.spl, spcl415h.spl, spcl542a.spl, spcl732.spl, spcl920a.spl, spcl921a.spl, spdr101.spl, spin115.spl, spin119.spl, spin120.spl, spin137.spl, spin161.spl, spin183.spl, spin200.spl, spin201.spl, spin734.spl, spin746.spl, spin747.spl, spin921.spl, spin923.spl, sppr103.spl, sppr108.spl, sppr212.spl, sppr217.spl, sppr303.spl, sppr308.spl, sppr309.spl, sppr315.spl, sppr317.spl, sppr321.spl, sppr350.spl, sppr401.spl, sppr403.spl, sppr404.spl, sppr417.spl, sppr422.spl, sppr502.spl, sppr505.spl, sppr505d.spl, sppr514.spl, sppr607.spl, sppr713.spl, sppr716.spl, sppr733.spl, sppr736.spl, sppr950.spl, sprngb01.itm, sprngb02.itm, sprngb03.itm, sprngb04.itm, sprngl02.itm, sprngl03.itm, sprngl04.itm, sprngs01.itm, sprngs02.itm, sprngs03.itm, sprngs04.itm, sprngz05.itm, spwi010.spl, spwi028.spl, spwi028h.spl, spwi029.spl, spwi029c.spl, spwi118.spl, spwi118a.spl, spwi118d.spl, spwi118e.spl, spwi118f.spl, spwi203.spl, spwi210.spl, spwi219.spl, spwi224.spl, spwi302.spl, spwi323.spl, spwi326.spl, spwi411.spl, spwi427.spl, spwi515.spl, spwi609.spl, spwi609d.spl, spwi802.spl, spwi806.spl, spwish07.spl, spwish28.spl, spwish39.spl, spwish46.spl, spwm168.spl, stalker.itm, stupid.itm, sword01.cre, trollde.itm, trollimm.itm, uarow3b.spl, vampreg.itm, vampreg1.itm, virgin.itm)

Soundset Restoration and Fixes Link to this section

The original IWD supported a larger soundset than the BG series, e.g. multiple sounds for becoming party leader or becoming tired. In older versions of the EEs, these additional sounds were not supported and were trimmed for IWDEE. As of v2.6, support for these additional soundset slots have been added, but the sounds and lines that were cut from the original IWD were not restored. EE Fixpack corrects a few minor issues found in the soundsets and restores the original soundsets (depending on language availability). (strrefs #20007, #20011, #26213, #26214, bparty01.cre, bparty02.cre, bparty03.cre, bparty04.cre, bparty05.cre, bparty06.cre, charsnd.2da, dfc_*.wav, dff_*.wav, dmc_*.wav, dmf_*.wav, efm_*.wav, emf_*.wav, emm_*.wav, emt_*.wav, gfc_*.wav, gmm_*.wav, gmt_*.wav, haff_*.wav, haft_*.wav, hamf_*.wav, hefc_*.wav, heff_*.wav, hefm_*.wav, hemf_*.wav, hemt_*.wav, hff_*.wav, hfm_*.wav, hfone0*.wav, hft_*.wav, hfthr0*.wav, hftw0*.wav, hmc_*.wav, hmf_*.wav, hmone0*.wav, hmthr0*.wav, hmtw0*.wav, hparty01.cre, hparty02.cre, hparty03.cre, hparty04.cre, hparty05.cre, hparty06.cre, male3m.wav)

Other Fixes Link to this section

  • Travel times between Severed Hand-Dragon's Eye and between Severed Hand-Wyrm's Tooth were inconsistent. (worldmap.wmp)
  • Under very specific circumstances, you could get a crash or other wonkiness during character generation for HoW games. While the bug utlimately needs a code fix, steps have been taken to make the bug substantially less likely. (hparty01.bcs, hparty01.cre, hparty02.bcs, hparty02.cre, hparty03.bcs, hparty03.cre, hparty04.bcs, hparty04.cre, hparty05.bcs, hparty05.cre, hparty06.bcs, hparty06.cre)

Internal Fixes Link to this section

This is a roundup of fixes that primarily impact modders and are not visible to players.

  • The Neothelid lacked an ini file and correct animate/anisnd.ids entries. (3001.ini, animate.ids, anisnd.ids)
  • Several of the splprot.2da entries (specifically, alignment checks) were mislabeled. (splprot.2da)
  • Kit ability tables for the dark moon monk and sun soul monk had missing entries for some columns. (clabmo02.2da, clabmo03.2da)
  • The 2da files needed to enable fog in IWDEE were missing. (fogarea.2da, fogpt.2da)
  • Effects with permanent timing shouldn't have durations (bknight.itm, gberry.itm, potn10.itm, potn13.itm)
  • Several items had 'breakable' flags set even though this flag does nothing in IWDEE. (2haxe.itm, amaunat.itm, auril.itm, ax1h01.itm, axemino.itm, axlizman.itm, axyuanti.itm, bael.itm, bdwaki1.itm, bess.itm, biron.itm, biteme.itm, blckswd.itm, bloodgf.itm, blun02.itm, blun04.itm, blun08.itm, blyuanti.itm, cairn.itm, cattac1.itm, cdgloom.itm, cdmyr.itm, cdyoung.itm, celebra.itm, comps01.itm, cynicis.itm, dagg01.itm, dagg06.itm, dagg07.itm, dagg08.itm, daggshit.itm, days.itm, diver.itm, doves.itm, ehdag.itm, enmace.itm, ensw1h01.itm, ensw1h02.itm, ensw2h.itm, erevain.itm, fanggf.itm, fayr.itm, firekis.itm, fistgf.itm, fkiller.itm, flailsk.itm, gsleep.itm, gullwyn.itm, halb01.itm, halbrd01.itm, hamm01.itm, handgf.itm, hellpik.itm, hq2hswd.itm, hqaxe.itm, hqbswrd.itm, hqdagg.itm, hqhalb.itm, hqhamm.itm, hqlswrd.itm, hqmace.itm, hqsswrd.itm, i#axe.itm, iax1h01.itm, iblun04.itm, ihamm01.itm, intrces.itm, isw1h07.itm, j2haxe.itm, jhoswd2.itm, jhoswd3.itm, kinetic.itm, kissgf.itm, kreswrd.itm, kris.itm, lalizman.itm, lonesom.itm, longclev.itm, lshand.itm, mae.itm, maul.itm, mslizman.itm, myrloch.itm, nalizman.itm, nymdagg.itm, peasrew.itm, pikeman.itm, poker.itm, polizman.itm, power.itm, ranax.itm, ranbswd.itm, reaver.itm, redemt.itm, relian.itm, serrate.itm, shlswrd2.itm, shmace2.itm, shsswrd.itm, slayer.itm, sper01.itm, sper04.itm, sw1h01.itm, sw1h04.itm, sw1h07.itm, sw1h12.itm, sw1h17.itm, sw1h20.itm, sw1h43.itm, sw1h44.itm, sw1h45.itm, sw1h46.itm, sw1h47.itm, sw1h48.itm, sw1h49.itm, sw1h51.itm, sw1h55sw2h01.itm, sw2h01b.itm, sw2h05.itm, swyuanti.itm, tasloiil.itm, telizman.itm, tomb.itm, tonggf.itm, tongue.itm, turodah.itm, u1hax1a.itm, u1hax2a.itm, u1hax3a.itm, u1hax3b.itm, u1hax4a.itm, u1hax4b.itm, u2ham2a.itm, u2ham3a.itm, u2ham4a.itm, u2ham4b.itm, u2ham5a.itm, u2hax1a.itm, u2hax2a.itm, u2hax3a.itm, u2hax3b.itm, u2hax4a.itm, u2hax4b.itm, u2hax5a.itm, ubswd1a.itm, ubswd2a.itm, ubswd2b.itm, ubswd3a.itm, ubswd3b.itm, ubswd4a.itm, ubswd4b.itm, ubswd4c.itm, ubswd5a.itm, ubswd5b.itm, udagg1a.itm, udagg1b.itm, udagg2a.itm, udagg2b.itm, udagg3a.itm, udagg3b.itm, udagg3c.itm, udagg4a.itm, udagg4b.itm, udagg5a.itm, ulswd1a.itm, wsword.itm, xu2ham3.itm, xvartil.itm, young.itm, zz14in.itm, zz36dgd.itm, zz57pj.itm, zzc8hb.itm, zze6pe.itm, zzg7ts.itm, zzj6sp.itm, zzn6gc.itm, zzu6cs.itm, zzz6bc.itm)
  • Knave's Robe appears unused but is fixed anyway (clck18.itm)
  • Two spell scrolls have the wrong target on the header to learn the spell, though this doesn't seem to affect anything in-game. (scrl3g.itm, scrl70.itm)
  • A trap version of hold person should have the normal 318 vs. non-humanoids, even though it is scripted to only be set off by humanoids (sppr989.spl)
  • Three EFFs for Three White Doves had some cruft cleaned up (cddovdie.eff, cddovme2.eff, cddovmes.eff)
  • Various spells and items use feedback (op139) with non-permanent timing or non-zero durations. (#sunrund.spl, potn20.itm, spin120.spl, sppr102.spl, spwi004.spl, spwi032.spl, spwi105.spl, spwi213.spl, spwi711.spl, spwi806.spl, wand08.itm, wand19.itm, wand19b.spl)
  • A call to a non-existent ambient was removed (eepoqct1.bcs)
  • An unused Circle of Bones spell had garbage in its signature block (#bonecir.spl)
  • Cloud of Pestilence had weird durations for its 318/324 effects; Spike Stones had the same for its 321 (sppr423.spl, sppr519.spl)
  • Stun now provides its own icon, so separate calls for stun portrait icons were removed (sppr426.spl, sppr617.spl, spwi327.spl, spwi806.spl)
  • Disease icons are folded into op78 directly on various disease effects (sppr320.spl)
  • Removed duplicate and/or redundant effects from many items and spells (bdspirim.itm, bdspnaim.itm, blakblad.spl, doves.itm, dwfpgs03.spl, iplat05.itm, ipsion.itm, minhp1.itm, ohtmps2d.spl, ohtmps2e.spl, potn21.itm, ring91.itm, sceptre.itm, scrl03.itm, spcl152.spl, spcl242.spl, spcl321.spl, spcl900.spl, spcl901.spl, spin203.spl, sppr416.spl, sppr426.spl, sppr613.spl, sprngb03.itm, sprngb04.itm, sprngl03.itm, sprngl04.itm, sprngs01.itm, sprngs02.itm, sprngs03.itm, sprngs04.itm, sprngz05.itm, spwi515.spl, spwi802.spl, spwi806.spl, trollimm.itm)
  • Various spells and items had to have effects reorganized to facilitate other fixes (wand19.itm, wand19a.spl, wand19b.spl, wand19c spl)
  • Kit check in splprot.2da is useless since it's a bitwise check, which only works for kits (e.g. mages) which happen to be powers-of-two. It's changed to be a straight numerical check. (splprot.2da)