EEFP Docs: Fixes for BGEE and SoD

This documentation is complete as of November 8, 2022.

Fixes for BGEE (including SoD)

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 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 #26586)
  • The Sun Soulbeam ability did not roll for an attack, it just hits, contrary to its description. (strrefs #31984, #32224)
  • The ranger Charm Animal ability does not mention its duration. (strref #32228)
  • Several of the shapeshifting abilities and spells did not list all of their abilities; generally it was missing the weapon enchantment of their natural weapons. (strrefs #32246, #32247, #32262, #32263, #32264, #32265, #32266, #32267, #32329, #32889)
  • The listed weight of Paralytic Bolt +1 was wrong. (strref #52365)

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, cdwb225.eff, cdwb230.eff, cdwb3100.eff, cdwb470.eff, spin547.spl, spin658.spl, spin695.spl, spin854.spl, spin896.spl, spwi818.spl, spwi918.spl, spyanc01.spl)
  • Items with poison effects block their own effects on a poison-immune target. However, in some cases, they were also blocking other, non-poison-related effects which should still apply. (bdbelhi1.itm, bdbelhi2.itm, bdmisc1c.itm, bdplant.itm, bdpotn02.itm, potn48.itm, sw1p01.itm)
  • Similar to the above, sleep and charms could have blocked unrelated effects when stopped by (half-)elven immunity. (gorwom1.itm)
  • The slow caused by an otyugh hit was a disease effect, but was not being alleviated by various disease cures. (bddraggh.itm, bdotyg01.itm, bdotyg02.itm, otyugh.itm, pudden01.itm)
  • If SoD is not installed, three spells from SoD are added to the game even though they're not made available. This helps properly preserve BGEE/SoD spellbooks for characters being transferred into BG2EE games. (bddanc01.bcs, bddanc01.cre, bddanc02.cre, bddanc01.eff, bddanc02.eff, bddark15.pro, bddarka.bam, bddarka.vvc, bddarkx.bam, hidespl.2da, spell.ids, sppr116.spl, spprismt.vvc, spschgi.vvc, spwi126.spl, spwi228.spl

Area Fixes Link to this section

  • The prisoner-killing lever in the Temple of Cyric could have been accidentally triggered just by walking up to it. (bdlever2.bcs)
  • The special music for the Lady's House in BG was not playing. (ar0132.are)
  • Several creatures were placed on impassable terrain, making them unable to move, or outside the bounds of the area. (ar0500.are, bd0020.are, bd5000.are)
  • Footstep sounds were not being played in the Ducal Palace basement and one of the tutorial areas due to a bad ambient flag. (bd0116.are, tu0018.are)
  • Floor or container traps could have potentially crashed the game if the trap effects were channeled through an unnamed spell and blocked by a target who is immune. (bdstonec.spl, bdtr01.spl, spin707.spl, spwi008.spl)

Dialogue Fixes Link to this section

  • Several generic Beregost commoner dialogues were supposed to comment on the death of Basillus, but the check for his death was incorrect. (ftowbe.dlg, mtowbe.dlg, mtowbez.dlg)
  • One of the Beregost commoners who threatens to call her Flaming Fist husband was checking the wrong variable to see if he was dead. (ftowbe.dlg)
  • Tiax would have a No Valid Links Or Replies error if you spoke to him while he was charmed. (tiax.dlg)
  • Glanma and Oberan would have nothing to say on repeat visits. (glanma.dlg, oberan.dlg)
  • Perdue said he's giving you 50 gold in his dialogue, but only delivered if you had accepted the quest prior to returning his sword. (perdue.dlg)
  • If Silke survives until chapter seven, she spoke with you as if she was at the coronation in Baldur's Gate. (silke.dlg)
  • You could have told the spirit in the bugbear cave to kill the bugbears even if they were already slain. (bdshadow.bcs, bdshadow.dlg)
  • Some of the dialogue triggers for comments in the blind albino cave were a bit loose and could fire elsewhere. (bd5100aw.bcs, bddynahj.dlg, bdjaheij.dlg, bdminscj.dlg, bdmkhiij.dlg)
  • Some NPCs have comments in Korlasz' Tomb, but on lower difficulties the threshold for them to comment was too high as too many enemies would despawn. (bd0120.bcs)
  • In the Lich Outpost, Neera's comment was checking the wrong state of the skull. (bd2000.bcs)
  • An SoD Minsc-Rasaad banter was not properly checking for Rasaad, missing the banter. (bdminsc.bcs)
  • At the beginning of SoD, you can tell NPC to 'go back to the crypt entrance' when kicking them out, but it didn't actually make them do anything. (bdparty.bcs)

Item Fixes Link to this section

  • The Improved Cloak of Protection +2 was available in the Black Pits, and could have been worn with other magical armor or rings. (itemexcl.2da)
  • The generic light crossbow lacked a larger, shadowed icon. (ixbow04.bam)
  • Imoen and Mordaine were using an odd copy of the Wand of Missiles, which meant it may not be covered by AI scripts or item checks. (imoen1.cre, imoen2.cre, imoen4.cre, imoen6.cre, mordai.cre)
  • The Clasp of Helm should cast Detect Illusion at the point of the caster's choosing, but it was forcing it on the caster. (bdamul06.itm)
  • Per their description, Energy Blades should do missile damage, not slashing. (eneblade.itm)
  • The Elixir of Health was setting the intoxication level to zero instead of outright curing the effect. (potn17.itm)
  • The sirine item redundantly set intelligence to 3 alongside a feeblemind effect, meaning that curing feeblemind would still leave the target at 3 INT. (sirine.itm)
  • The copy of the Wand of Magic Missiles shouldn't bypass Shield. (wand12.itm)
  • The Longtooth dagger is described as exceptionally long and uses a short sword animation, but the range was still that of a dagger. (dagg04.itm)
  • The Paralytic Bolt +1 used the wrong save, wrong weight, wrong stun duration, wrong dispellability, and wrong magic resistance check. Otherwise it was dandy. (sahbolt.itm)
  • On 10% of hits Neera's Staff is supposed to inflict a point of fire damage on its wielder or its target, but was instead inflicting a point of fire damage on both. (stafn1.itm)
  • Natural weapons (claws, bites, etc.) and magically-created weapons (e.g. Chill Touch) should not benefit from weapon style proficencies. (brblp.itm, brbrp.itm, brbrp1.itm, cdwolfm.itm, cdwstyl1.eff, cdwstyl1.spl, cdwstyl2.eff, cdwstyl2.spl, chillt.itm, critical.itm, druear.itm, drufir.itm, earthrn.itm, firern.itm, ghoult.itm, harm.itm, plybear1.itm, plybear2.itm, plymstar.itm, plyspid.itm, plyspid2.itm, plywolf1.itm, plywyvrn.itm, sgrasp.itm, slaylive.itm, squirp.itm, statdesc.2da, trollall.itm, wolfgr.itm, wolfm.itm)
  • Goodberries should not play the *gulp* string when used as they are not potions. (gberry.itm)
  • The nighttime THAC0 bonus from the Night Club could stack multiple times. (blun38.spl)
  • The Barbed Defense and Suncatcher could cause spurious 'one of the spells has failed' messages. (bdbarbde.spl, bdshld02.spl)
  • The Sandthief's Ring for sale in the Black Pits had the wrong number of charges. (bpxith03.sto)
  • The unused Shield of Devotion was granting two spells of levels 1 and 2, instead of one spell of levels 1-3. (shld09p.itm)
  • Bulk fixes:
    • Power (power determines how an item interacts with spell protections): Various summoned weapons are set to zero power (energy blades, flame blade, fire seeds, ghoul touch, Melf's Minute Meteors); several wands are changed to power 1 to better match thier effects (Wands of Fear, Magic Missiles, Sleep). (eneblade.itm, fblade.itm, fireseed.itm, ghoult.itm, melfmet.itm, wand02.itm, wand03.itm, wand08.itm, wand12.itm)
    • Enchantment (enchantment determines if a weapon can strike a creature that requires +x weapons): Sword of Balduran is a 0-enchantment weapon. (comps18.itm, sw1h18.itm)

Spell Fixes Link to this section

  • Two of the wild surges were using the text "Explosion?"; one of them should have been "What's that? Over there.". (wildmag.2da)
  • Enchant Weapon could not be cast via Contingency. (spwi417.2da)
  • When various spells are used against creatures that are immune, better feedback is now provided. (chillt.itm, spin685.spl, spin940.spl, spin962.spl, spwi003.spl, spwi004.spl, spwi112.spl, spwi117a.spl, spwi213.spl, spwi914.spl, spwm187.spl)
  • Shocking Grasp should not be blocked by spell protections. (sgrasp.itm, sgrasp.spl, spwi115.spl)
  • 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, cdbblade.spl)
  • Sol's Searing Orb could be blocked by spell protections, and the spell was rebuilt in a substantially cleaner fashion. (sorb.itm, sppr614a.spl, sppr614b.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. (bdbarbde.spl, bdsha12a.spl, bdshld02.spl, keldorn.spl, leat23a.spl, spcl237d.spl, spimixd.spl, sppr730d.spl, sppr951d.spl, sppr952d.spl, spwi403d.spl, spwi418d.spl)
  • The various Cure Wounds, Restoration, and Lay on Hands spells should be touch range and not dispellable. (bdcaela3.spl, spcl211.spl, spcl815.spl, spin109.spl, spin679.spl, spin711.spl, spin773.spl, spin827.spl, spin958.spl, sppr103.spl, sppr315.spl, sppr401.spl, sppr502.spl, sppr514.spl, sppr607.spl, spwm168.spl)
  • The various Cause Wounds spells should be touch range and not bypass magic resistance. (critical.itm, harm.itm, serious.itm, slaylive.itm, sppr599.spl, sppr699.spl)
  • The fear effect attached to some ogres has a fear portrait icon that expires before the fear itself. (bdfear.spl)
  • Due to some misordered effects, barbarian Rage would allow some visuals attached to effects from which they are otherwise immune. (spcl152.spl)
  • Enrage was using Berserk's spell icon instead of its own unique one. (spcl321.spl)
  • Psychic Drain was using the wrong animation (spin804.spl)
  • The delayed sound effect of Psionic Domination doesn't bypass magic resistance, though the rest of the spell does. (spin910.spl)
  • The Shield spell shouldn't stack. (spwi114.spl)
  • Per its description, Know Alignment should be a straight save vs. spell, but one lacked a saving throw and the other applied a penalty. (spwi208.spl, sppr209.spl)
  • Mimic Glue should not set the Grease stat. (spin914.spl)
  • Lesser Fire Spirit could cause spurious 'one of the spells has failed' messages. (bdsha12a.spl)
  • Larloch's Minor Drain and Vampiric Touch had redundant checks for spell protections. (spin104a.spl, spin106a.spl, spin997a.spl, spwi119a.spl, spwi314a.spl)
  • Non-Detection should not block Detect Evil spells. (spcl212.spl, spin120.spl, sppr101.spl, spwi202.spl)
  • Feeblemind is now properly a permanent effect. (spwi509.spl)
  • Mass Invisibility was applying the +4 save bonus from improved invisibility twice. (spwi721.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)
  • Minsc's Berserk had a custom audio cue from him that was not playing. (spin117.spl, spin117c.eff)
  • Command had some leftover parameters that made creatures of greater than 36 HD immune. (sppr102.spl)
  • Slow Poison now actually slows poison instead of just curing it. (sppr212.spl)
  • The Poison spell lasted too long, and was coded in a way such that Slow Poison didn't work on it. (sppr411.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)
  • Blade Barrier lasted two seconds too long. (sppr603.spl, sppr698.spl)
  • Dolorous Decay had the wrong duration, the portrait icon bypassed magic resistance, and some of the delayed effects had the wrong save. (sppr610.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's instant death effect for undead is now blocked by Death Ward. (sppr707.spl, sppr707a.spl, sppr707b.spl, sppr707c.spl)
  • (Un)Holy Word was not affecting arcane spellcasting. (sppr710.spl, sppr715.spl)
  • Creeping Doom lacked the per-round fear check for staying in the area-of-effect. The special version used by the black dragon was using the wrong projectile. (spin689.spl, sppr717.spl, sppr717a.spl)
  • Blackguard's Absorb Health should not bypass magic resistance and had some other minor issues. (spcl102.spl, spdn01a.spl)
  • Ice Storm should last four rounds, not three. (icestorm.pro)
  • Per its descript, Insect Plague should affect up to six creatures. (insec2.pro)
  • When cast at level 19 specifically, Conjure Fire Elemental would pause the caster for five rounds instead of three. (spwi620.spl)
  • Holy Smite and Unholy Blight were updated to better target by alignment. A new portrait icon for Unholy Blight's effects has been added. (sppr313.spl, sppr314.spl, sppr314d.bam, statdesc.2da)
  • Bulk Fixes:
    • Power determines how a spell interacts with protections where a creature is immune to spells of level X. (spin828.spl)
    • Magic resistance determines whether a spell has to check against the target's magic resistance before going into effect. (spin685.spl, spwi411.spl, spwi613.spl, spwi625.spl, spwi711.spl)
    • Dispellability: Wraith Form effects should be dispellable. (spwi315.spl)
    • School: Some spells had the wrong spell school set. (spcl212.spl, spin572.spl, spin839.spl, spin920.spl, spin940.spl, spin943.spl, spin958.spl, spin961.spl, spin962.spl, spin982.spl, spin997.spl, spin998.spl, spin999.spl, spwi940.spl, spwm179.spl)
    • Secondary: Some spells had the wrong secondary type set. (spcl212.spl, spcl722.spl, spin558.spl, spin572.spl, spin673.spl, spin694.spl, spin920.spl, spin940.spl, spin950.spl, spin958.spl, spin961.spl, spin962.spl, spin982.spl, spin984.spl, spin997.spl, spin998.spl, spin999.spl, spwi004.spl, spwi016.spl, spwi940.spl, spwm123.spl)

Creature Fixes Link to this section

  • BGEE changed how NPCs join, so that the player could choose weapon proficiencies, thieving abilities, and the like. However, as part of this, they did not include the better equipment that higher-level NPCs spawned with--e.g. Ajantis would wear chain, splint, or plate depending on when you recruited him. This is now addressed. (ajantis.bcs, dorn.bcs, edwin.bcs, eldoth.bcs, imoen.bcs, jaheira.bcs, kagain.bcs, khalid.bcs, minsc.bcs, montaron.bcs, safana.bcs, sharteel.bcs, skie.bcs, viconia.bcs)
  • Dorn and Neera could spawn without items due to an odd way they could change areas. (dorn.dlg, neera.dlg)
  • Several party members had the wrong values assigned to their kit field despite being unkitted. This could cause minor issues with scripting and spell learning. (ajanti.cre, ajanti4.cre, ajanti6.cre, alora.cre, alora6.cre, coran.cre, coran5.cre, imoen1.cre, imoen2.cre, imoen4.cre, imoen6.cre, kivan.cre, kivan4.cre, kivan6.cre, sharte.cre)
  • Elemental summons shouldn't grant XP if killed. (elemchan.cre, elemsunn.cre, elemzaam.cre)
  • Bears summoned via Conjure Animals used generic bear scripting and lacked the normal scripting of summons. (bearposu.cre)
  • Ankhegs had an abnormally low HD, making them subject to sleep amongst other issues. (ankheg.cre, ankhegf.cre, ankhegg.cre, ankhegq.cre, bdankh01.cre, bdankheg.cre, bdankhsu.cre, bdneo.cre, bpankhe1.cre)
  • Poison Mists could spawn normally, but all of them used the summoned gender. This meant that they could be killed without checks by Death spell. (mistpo01.cre, mistposu.cre, sppois.eff)
  • Telania's petrified victims had leftover player scripting, meaning they could potentially try to join the party. (bdpetr01.cre, bdpetr02.cre, bdpetr03.cre, bdpetr04.cre, bdpetr05.cre)
  • Ordulian has his cloak, but also creates a new one to give the player, potentially opening up a pickpocket/duplicate exploit. (orduli.cre)
  • One of the mutated carrion crawlers and a magma mephit attacked without weapons due to typos. (bdmcarri.cre, mepmag.itm)
  • 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, nishruu.itm, nishru01.bcs, nishrusu.cre, spcl231.spl, specific.ids, spin112.spl, sppr303.spl, spwi302.spl, spwi326.spl)
  • The breath attack of hell hounds was using an invisible, single-target projectile instead of a small area-of-effect projectile. The flame fan attack from mephits had the same issue, though it's unused. (spin938.spl, spin956.spl)
  • Shambling Mounds had inconsistent race and class values instead of their own custom values. (bdshamb.cre, bpshamb.cre, globsham.cre, smoundsu.cre)
  • Several joinable NPCs in SoD had four additional 'action' lines in their soundsets which were not assigned. (baelot7.cre, bdcaelar.cre, bdcaela3.cre, bdmkhi7.cre, corwin7.cre, dorn7.cre, dynahe7.cre, edwin7.cre, glint7.cre, khalid7.cre, minsc7.cre, neera7.cre, rasaad7.cre, safana7.cre, viconi7.cre, voghil7.cre)
  • Bulk fixes:
    • Class (note that monsters can use special, non-player classes for identification): Krystin and Tellan are mages; Fahrington is a druid; Kiel the Legion Killer is a doppleganger; Kaishas Gan is a werewolf. (dopkie.cre, fahrin.cre, kaish2.cre, kaisha.cre, krysti.cre, tellan.cre)
    • General: Andris is a humanoid. (andris.cre)
    • Alignment: some gnolls were chaotic neutral instead of chaotic evil (gnoll02.cre, gnoll03.cre, gnoll04.cre, gnoll05.cre, gnoll2.cre, gnoll3.cre)

Quest Fixes Link to this section

  • The Den of Thieves quest could reset its main quest tracking variable in some dialogue branches, breaking the quest. Threatening Waizahb as a paladin would also prevent creatures appearing, which could also stall the quest. (bdstoneh.dlg, bdwaizah.dlg)
  • When trying to find the traitor in the siege camp, you could continue to question suspects after you already identified and dealt with the traitor. (bdbelega.dlg, bdhalasa.dlg, bdhelvda.dlg, bdmizhen.dlg, bdsimone.dlg)
  • Kharm offers you a reward for finding his nephew, but only delivers on one of the four replies. (bdkharm.dlg)
  • At the end of the Candlekeep Catacombs, you find three dopplegangers imitating Elminster, Gorion, and Tethoril. If you one-shot kill one of them, the others will fail to transform and attack. (elmins4.bcs, ar2619.bcs)
  • In the Menhir quest, if you failed at certain menhirs they would spawn an enemy. After defeating the enemy, the menhir was supposed to activate, but was not. (bdmenhi1.bcs, bdmenhi4.bcs)
  • Mulahey could get trapped in a stuttering script loop if he was damaged too quickly, e.g. via backstab. (mulahe.dlg, mulahey.bcs)
  • Rasaad's quest can be missed if he's kicked out and rejoins at just the right times. (rasaadj.dlg)

Scripting/AI Fixes Link to this section

  • If disguised dopplegangers were one-shot killed, they would still try to change into their doppleganger form. (gdchange.bcs, ldchange.bcs)
  • If you lure Aec'Letec out of its spawn area, most of the quest scripting breaks. The entrance to the area is now disabled while the fight is in progress. (ar1002.bcs)
  • The cultists with Aec'Letec were given shout scripts, which makes them move around. They should remain stationary. (cultd1.cre, cultd2.cre, cultd3.cre, cultd4.cre, cultd5.cre, cultd6.cre)
  • Xzar and Montaron can block all of the scripting in their area if they're not recruited, preventing other area events. (ar2700.bcs)
  • A few regions at the Boareskyr Bridge weren't being activated properly due to syntax errors. (bd2000.bcs, bdbarghe.bcs)
  • In Kanaglym, Halatathlaer was supposed to display a message when appearing. Several party members were also intended to float messages but a bad variable scope prevented it. (bd5300.bcs)
  • In the final SoD escape area, some of Imoen's scripting was mistargeted. (bd6200.bcs)
  • If not in the party, Corwin is supposed to join the parley in Dead Man's Pass, but the cutscene controlling her was targeting the wrong creature. (bd7300.bcs)
  • After Skie's death in SoD, all party members are supposed to leave, but some could remain if they were dead at the time. (bdcut61.bcs)
  • In the Black Pits, Hogarl is scripted to use a healing potion if hurt, but was drinking the wrong potion. (bpgiafir.bcs)
  • If Black Pits characters were imported to the main BGEE/SoD campaign, they would retain their BP-specific scripting. (bpplot.bcs)
  • SoD removed some of Imoen's BG scripting, including the bit to match the PC's XP when joining outside of Candlekeep. (imoen.bcs)
  • Gretek and co. are changed so that they more consistently go hostile together when threatened. Same treatment is given to Cydermac's crew. (arlin.cre, banditcy.bcs, catura.cre, cyderm.dlg, gretek.bcs, gretek.cre, gretek.dlg, nader.cre, pargus.cre, wilf.cre)
  • Several AI scripts were using old BG2 string references for drinking a potion or using a wand. (bddefai.bcs, bddynac.bcs, bdedwinc.bcs, bdeldotc.bcs, bdgarrcc.bcs, bdgarric.bcs, bdimoenc.bcs, bdkivanc.bcs, bdxzarc.bcs)
  • Rilsa's burial script will continue looping after Rilsa is buried due to a bad variable scope issue. (netrig1.bcs)
  • Scripting for several of the crusaders could fail, as they weren't properly assigned script names. (bdcrus21.cre, bdcrus22.cre, bdcrus6d.cre, bdcrus7d.cre, bdcrus8d.cre, bdcrus9d.cre)
  • In Neera's opening cutscene in Beregost, two of the Thayan bodyguards were set as true neutral alignment instead of neutral evil. Because of this, their AI cries for help could turn townspeople hostile. (nethgua1.cre, nethgua2.cre)

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, mwyv*.bam)
  • Similar to the above, large animations in areas could also be split and show the same seams where merged. (bdfug01.bam, bdfug02.bam, bdfug03.bam, bdfug04.bam)
  • The paperdoll for monks (the tutorial ones in Candlekeep, not the player class) were corrupted. (cmnk1inv.bam)
  • The animation for flaming short swords was missing some files. (wphf2*.bam)
  • 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, bpreve01.cre, revent.cre)
  • Albert states they are from the Nine Hells, but uses a tanar'ri animation. It now uses a cornugon animation, which (unlike tanar'ri) actually hail from the Nine Hells. (albert.bcs, rufcut01.bcs, rufcut02.bcs)
  • Troll animations were inconsistently used, and have been standardized. (trollgi.cre)
  • Bugbear shamans have a special animation, but they were using generic bugbear animations instead. (bdbugb20.cre)
  • One of the Stinking Cloud projectiles was not blended properly. (bdstink.pro)

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. (bdsw1h26.spl, bolt05.itm, brblp.itm, brbrp.itm, brbrp1.itm, brbrp2.itm, cdgoliro.itm, cdmindfl.itm, cdwolfm.itm, clck04.itm, clck04.spl, earthrn.itm, firern.itm, plybear1.itm, plybear2.itm, plyflind.itm, plyjelly.itm, plymstar.itm, plysala.itm, plyspid.itm, plyspid2.itm, plywolf1.itm, plywyvrn.itm, spcl611.spl, spcl612.spl, spcl613.spl, spcl632.spl, spcl633.spl, spcl634.spl, spcl643.spl, spcl644.spl, spcl731.spl, spdm103.spl, spin107.spl, spin110.spl, spin111.spl, spin113.spl, spin122.spl, spin123.spl, spin124.spl, spin125.spl, spin126.spl, spin127.spl, spin150.spl, spin150r.eff, spin151.spl, spin152.spl, spin153.spl, spin154.spl, spin155.spl, spin156.spl, spin157.spl, spin160.spl, spin663.spl, spin717.spl, spin717a.spl, spin783.spl, spin783a.spl, spin822.spl, spin823.spl, spin823a.spl, spin852.spl, spin852a.spl, spin868.spl, spin869.spl, spin974.spl, spinhum.spl, spinhumr.spl, spinhums.eff, spinhums.spl, spinhumw.eff, spinhumw.spl, splprot.2da, splstate.ids, sppr110.spl, sppr206.spl, sppr213.spl, sppr414.spl, sppr510.spl, sppr511.spl, sppr608.spl, sppr614.spl, sppr721.spl, spwi115.spl, spwi117.spl, spwi218.spl, spwi325.spl, spwi415.spl, spwi416.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, spwi711.spl, spwi711a.spl, spwi915.spl, spwi916.spl, spwi920.spl, spwi952.spl, spwm113.spl, spwm113a.spl, spwm183.spl, squirp.itm, trollall.itm, wand09.itm, wolfchar.cre, wolfgr.itm, wolfm.itm, wswolf.itm)

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. (ax1h01.itm, ax1h19.itm, balor.itm, baring.itm, bdax1h02.itm, bdax1h03.itm, bdax1h05.itm, bdbelhi2.itm, bdblun02.itm, bdblun05.itm, bdblun08.itm, bdblun09.itm, bdbonefi.itm, bdbow01.itm, bdbow03.itm, bdbow04.itm, bdbow06.itm, bdclck03.spl, bdclck06.itm, bdcrimsn.spl, bddagg01.itm, bddagg03.itm, bddagg05.itm, bddagg06.itm, bddart01.itm, bddcor01.itm, bddragg2.spl, bddraggh.itm, bddraggh.spl, bdephrik.cre, bdfinal.spl, bdfractl.spl, bdghbrsu.spl, bdhalb01.itm, bdhamadc.spl, bdhamm01.itm, bdhelm17.spl, bdneo3.itm, bdnerau2.spl, bdshld02.spl, bdshriek.spl, bdsper01.itm, bdstaf03.itm, bdstsnak.itm, bdsw1h02.itm, bdsw1h08.spl, bdsw1h14.itm, bdsw1h20.itm, bdsw1h22.itm, bdtroll1.itm, bdwolfd1.itm, bdwynan.spl, bdwyrmli.itm, bdxbow02.itm, blakblad.itm, blun02.itm, blun04.itm, blun06.itm, blun08.itm, blun41.itm, bonedag.itm, bonefd.itm, cattac1.itm, cdfampsd.itm, clck07.itm, clck08.itm, dagg01.itm, dagg06.itm, dagg07.itm, demmau01.itm, deva.itm, devaevil.itm, devmon01.itm, dogwawp.itm, dwbolt01.itm, dwdart01.itm, finsol01.itm, finsol02.itm, gorsnake.itm, gorwom1.itm, halb01.itm, hamm01.itm, hamm13.itm, helm35.itm, hgnymph.itm, marili.itm, misc2p.itm, mistice.itm, mistva2.itm, mound.itm, ohtmps2d.spl, ohtmps2e.spl, planetar.itm, psdclaw.itm, ravag01.itm, ring03.itm, sharswd.itm, shld08p.itm, slimed2.itm, spcl311.spl, spcl641.spl, sper01.itm, spermel.itm, spin106b.spl, spin108.spl, spin119.spl, spin191.spl, spin205.spl, spin412.spl, spin558.spl, spin787.spl, spin848.spl, spin883.spl, spin980.spl, spin985.spl, spogre01.spl, sppr102.spl, sppr204.spl, sppr250.spl, sppr450.spl, sppr512.spl, sppr605.spl, sppr702.spl, sppr720.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, spwi309.spl, spwi314b.spl, spwi316.spl, spwi407.spl, spwi423.spl, spwi504.spl, spwi506.spl, spwi620.spl, spwi621.spl, spwi622.spl, spwi623.spl, spwi711.spl, spwi714.spl, spwi929.spl, spwi930.spl, spwi943.spl, spwm130.spl, spwm136.spl, spwm179.spl, sw1h01.itm, sw1h04.itm, sw1h07.itm, sw1h12.itm, sw1h17.itm, sw1h20.itm, sw1h21.itm, sw1h99.itm, sw2h01.itm, sw2h01b.itm, sw2hdeat.itm, telslav.itm, telwrai.itm, wand08.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. (amul17.itm, antiweb.itm, bhaalhp1.itm, bhaalimm.itm, chalcy3.itm, dragring.itm, dwfpsirf.spl, enginest.2da, ghoul1.itm, ghoult.itm, immchs.itm, imoenhp1.itm, ipsion.itm, jwsuper.itm, mage05.itm, magiweb.itm, minhp1.itm, ohsmode1.spl, ohsmode4.spl, ring94.itm, ring95.itm, ring97.itm, ring98.itm, ring99.itm, ringkora.itm, sengua04.itm, sirine1.itm, spcl152.spl, spcl233b.spl, spcl242.spl, spcl321.spl, spcl742.spl, spdr201.spl, spin117.spl, spin683.spl, spin872.spl, spin906.spl, spin988.spl, sppr208.spl, sppr305.spl, sppr508.spl, sppr989.spl, spwi215.spl, spwi306.spl, spwi324.spl, spwi507.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, abazring.itm, acidooz4.itm, aldeth.itm, amul17.itm, amul21.itm, amul22.itm, arow03.itm, arow07.itm, ax1h19.itm, balor.itm, bardsong.spl, basigaze.itm, bazpatrg.itm, bdamul01.itm, bdaurafe.spl, bdawake.spl, bdax1h05.spl, bdbeetbh.cre, bdbeetbm.cre, bdbeetbr.cre, bdbeetmh.cre, bdbeetrh.cre, bdbelhia.itm, bdbeltel.spl, bdbow06.spl, bdbrd03.spl, bdcaela3.spl, bdchan02.itm, bdchan04.itm, bdchan04.spl, bdchunk.spl, bdclck02.itm, bdconstr.itm, bdcrimsn.spl, bdcut57a.spl, bddcor01.spl, bdddoorx.spl, bddispel.spl, bddragg2.spl, bddraggf.spl, bddraggh.itm, bddrggra.itm, bddrggry.itm, bddtrai.itm, bdfear.spl, bdfeyrwp.itm, bdfleshr.spl, bdforcew.spl, bdgfear.spl, bdhafear.spl, bdhalb01.itm, bdhalb03.spl, bdhamadc.spl, bdhelm10.itm, bdhelm11.itm, bdhelm17.spl, bdhelmca.itm, bdidylet.cre, bdleat05.itm, bdlemure.spl, bdlich.itm, bdmisc05.itm, bdmisc07.spl, bdmisc1b.itm, bdmisc1c.itm, bdmycsp1.spl, bdmycsp2.spl, bdneera3.spl, bdneera4.spl, bdneoawe.spl, bdneoimm.itm, bdnerau2.spl, bdnerkis.spl, bdpanic.spl, bdplant.itm, bdpotn01.itm, bdpotn06.itm, bdrejuve.spl, bdring09.itm, bdringge.itm, bdringgh.itm, bdrobe03.itm, bdsha01a.spl, bdsha01c.spl, bdsha06a.spl, bdsha06b.spl, bdshamb.spl, bdshrie2.cre, bdshriec.spl, bdshried.spl, bdshriek.cre, bdshriek.spl, bdshries.spl, bdsper1a.spl, bdspirim.itm, bdspnaim.itm, bdstink.spl, bdstonec.spl, bdstsnak.itm, bdsw1h25.spl, bdsw2h01.spl, bdteleki.cre, bdtelwe.spl, bdtgaze.spl, bdtr01.spl, bdtroll1.itm, bdtroll1.spl, bdvisibl.spl, bdwolfd1.itm, bdwolfd1.spl, bdwyv03.itm, bdzhadro.spl, bearspir.itm, beholder.itm, bhaalhp1.itm, bhaalimm.itm, bpdispel.spl, bprng1.itm, brac20.itm, bull04.itm, carrio.itm, cdfeeble.vvc, cdstun.vvc, chalcy3.itm, chalslay.itm, clck04.itm, clck07.itm, clck08.itm, clck30.itm, cuthide.spl, dart03.itm, demcor01.itm, demogorg.itm, deva.itm, devaevil.cre, devaevil.itm, devagood.cre, dogwawp.itm, dragring.itm, dwbolt02.itm, dwfpsirf.spl, elemchan.itm, elemcryo.itm, elemhydr.itm, elemimix.itm, elemogre.itm, elemsunn.cre, elemsunn.itm, elemyanc.itm, elemzaam.cre, elemzaam.itm, eyegor01.itm, finmel01.itm, finsol01.itm, finsol02.itm, fjbarda.spl, fjbardb.spl, fjbladeb.spl, freering.itm, fsspir.itm, ghast1.itm, ghast1p.spl, ghoul1.itm, ghoulc.itm, golcla.itm, golfle.itm, golmag01.itm, golstone.itm, gorchr.itm, gorfirg.itm, gorjelfu.itm, gorjelgr.itm, gormisti.itm, gormistp.itm, helm06.itm, helm14.itm, helm35.itm, hgber01.itm, hgnya01.itm, hgnymph.itm, holdring.itm, icetrl.itm, icetrlst.spl, immchs.itm, immcloud.itm, imoenhp1.itm, innoc.itm, invulner.itm, ipsion.itm, irongol.itm, jellgr1.itm, jwsuper.itm, lich.itm, lichel01.itm, mage05.itm, magiconf.itm, magidead.itm, magiweb.itm, minhp1.itm, misc2p.itm, misc3o.itm, misc76.itm, mistice.itm, mistpo01.cre, mound.itm, neired.itm, ohsmode1.spl, ohsmode4.spl, ohtmps2d.spl, ohtmps2e.spl, ohtyr1.spl, paracarr.itm, paraghou.itm, planetar.itm, planevil.cre, plangood.cre, planwish.cre, plyjelly.itm, plywyvrn.itm, potn14.itm, potn17.itm, potn20.itm, potn21.itm, potn23.itm, potn25.itm, potn32.itm, potn33.itm, potn38.itm, potn40.itm, potn45.itm, potn46.itm, potn47.itm, potnmare.itm, princess.itm, ption2k.itm, ption2l.itm, ption2m.itm, ption2n.itm, ravag01.itm, ravag03.itm, ref1.itm, ring03.itm, ring09.itm, ring27.itm, ring92.itm, ring93.itm, ring94.itm, ring95.itm, ring97.itm, ring98.itm, ring99.itm, ringdemn.itm, ringkora.itm, sahbolt.itm, scrl07.itm, scrl08.itm, scrl09.itm, scrl10.itm, scrl11.itm, scrl12.itm, scrl13.itm, scrl15.itm, scrl16.itm, scrl17.itm, scrl18.itm, scrlpet.itm, scrlzy.itm, sengua04.itm, senspi01.itm, sirine.itm, sirine1.itm, slaylive.itm, spbatt1.itm, spbatt2.itm, spbatt3.itm, spbatt4.itm, spbatt5.itm, spbd002a.spl, spcl103.spl, spcl104.spl, spcl121.spl, spcl123.spl, spcl144.spl, spcl152.spl, spcl221.spl, spcl222.spl, spcl231.spl, spcl232.spl, spcl232d.spl, spcl233b.spl, spcl242.spl, spcl311.spl, spcl321.spl, spcl415.spl, spcl415h.spl, spcl422.spl, spcl521.spl, spcl542a.spl, spcl611.spl, spcl612.spl, spcl613.spl, spcl632.spl, spcl633.spl, spcl634.spl, spcl641.spl, spcl643.spl, spcl644.spl, spcl732.spl, spcl751a.spl, spcl814.spl, spcl817.spl, spcl917.spl, spcl941.spl, spdr101.spl, spdr501.spl, spdwd02.spl, spec01.itm, spec02.itm, spidvo01.itm, spin101.spl, spin102.spl, spin105.spl, spin108.spl, spin112.spl, spin117.spl, spin119.spl, spin121.spl, spin122.spl, spin123.spl, spin124.spl, spin502.spl, spin503.spl, spin542.spl, spin543.spl, spin558.spl, spin572.spl, spin575.spl, spin582.spl, spin646.spl, spin673.spl, spin674.spl, spin675.spl, spin676.spl, spin679.spl, spin680.spl, spin681.spl, spin688.spl, spin692.spl, spin699.spl, spin703.spl, spin704.spl, spin711.spl, spin712.spl, spin723.spl, spin727.spl, spin734.spl, spin736.spl, spin746.spl, spin768.spl, spin770.spl, spin772.spl, spin779.spl, spin780.spl, spin781.spl, spin782.spl, spin783.spl, spin785.spl, spin789.spl, spin793.spl, spin804.spl, spin805.spl, spin813.spl, spin820.spl, spin823.spl, spin828.spl, spin832.spl, spin836.spl, spin839.spl, spin852.spl, spin853.spl, spin862.spl, spin865.spl, spin866.spl, spin871.spl, spin872.spl, spin873.spl, spin877.spl, spin882.spl, spin883.spl, spin888.spl, spin889.spl, spin890.spl, spin891.spl, spin891a.spl, spin892.spl, spin895.spl, spin906.spl, spin909.spl, spin910.spl, spin921.spl, spin923.spl, spin926.spl, spin934.spl, spin944.spl, spin950.spl, spin951.spl, spin952.spl, spin953.spl, spin958.spl, spin959.spl, spin961.spl, spin973.spl, spin974.spl, spin975.spl, spin976.spl, spin977.spl, spin978.spl, spin980.spl, spin981.spl, spin982.spl, spin983.spl, spin984.spl, spin985.spl, spin988.spl, spin990.spl, spin991.spl, spin992.spl, spin998.spl, spin999.spl, splstate.ids, sppr102.spl, sppr103.spl, sppr105.spl, sppr108.spl, sppr111.spl, sppr204.spl, sppr208.spl, sppr211.spl, sppr212.spl, sppr250.spl, sppr302.spl, sppr303.spl, sppr304.spl, sppr305.spl, sppr308.spl, sppr309.spl, sppr311.spl, sppr313.spl, sppr314.spl, sppr315.spl, sppr317.spl, sppr350.spl, sppr401.spl, sppr403.spl, sppr404.spl, sppr405.spl, sppr409.spl, sppr416.spl, sppr417.spl, sppr502.spl, sppr505.spl, sppr505d.spl, sppr508.spl, sppr512.spl, sppr514.spl, sppr517.spl, sppr599.spl, sppr607.spl, sppr609.spl, sppr613.spl, sppr650.spl, sppr701.spl, sppr706.spl, sppr708.spl, sppr709.spl, sppr713.spl, sppr718.spl, sppr719.spl, sppr950.spl, sppr982.spl, sppr983.spl, sppr984.spl, sppr988.spl, sppr989.spl, spra301.spl, spra302.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, spwi006.spl, spwi010.spl, spwi016.spl, spwi023.spl, spwi053.spl, spwi054.spl, spwi055.spl, spwi056.spl, spwi104.spl, spwi108.spl, spwi116.spl, spwi118.spl, spwi118a.spl, spwi118d.spl, spwi118e.spl, spwi118g.spl, spwi125.spl, spwi203.spl, spwi205.spl, spwi210.spl, spwi211.spl, spwi213.spl, spwi215.spl, spwi219.spl, spwi220.spl, spwi222.spl, spwi224.spl, spwi302.spl, spwi305.spl, spwi306.spl, spwi311.spl, spwi312.spl, spwi313.spl, spwi316.spl, spwi326.spl, spwi401.spl, spwi406.spl, spwi411.spl, spwi411b.spl, spwi491.spl, spwi502.spl, spwi506.spl, spwi507.spl, spwi508.spl, spwi509.spl, spwi511.spl, spwi515.spl, spwi602.spl, spwi604.spl, spwi609.spl, spwi609d.spl, spwi612.spl, spwi613.spl, spwi616.spl, spwi618.spl, spwi701.spl, spwi705.spl, spwi713.spl, spwi715.spl, spwi723.spl, spwi811.spl, spwi816.spl, spwi817.spl, spwi853.spl, spwi897.spl, spwi898.spl, spwi899.spl, spwi912.spl, spwi913.spl, spwi929.spl, spwi930.spl, spwi939.spl, spwi943.spl, spwi954.spl, spwi956.spl, spwi959.spl, spwi960.spl, spwi996.spl, spwi998.spl, spwish25.spl, spwm111.spl, spwm112.spl, spwm115.spl, spwm122.spl, spwm123.spl, spwm126.spl, spwm152.spl, spwm164.spl, spwm168.spl, spwm179.spl, surehp1.itm, sw1h34.itm, sw1h99.itm, sw2h06.itm, sw2h10dm.spl, sword01.cre, telslav.itm, telslav2.itm, trollall.itm, trollimm.itm, trollreg.itm, trollreg.spl, umber01.itm, umber02.itm, vampreg.itm, wand02.itm, wand04.itm, wand13.itm, wand19.itm)

Other Fixes Link to this section

  • BGEE included a handful of portraits as part of "The Road to v2.0 Reward", but they were not made available on SoD. (bgee.lua)
  • Frair Tajik was the only vendor who bought helmets but not hats (bdfrair.sto)

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)
  • Several entries were added to spell.ids to enable easier scripting. (spell.ids)
  • Kit ability tables for the archer, dark moon monk, and sun soul monk had missing entries for some columns. (clabmo02.2da, clabmo03.2da, clabrn02.2da)
  • The area script for Coast Way Crossing (SoD version) has an OR(4) block with only two conditions. (bd1000.bcs)
  • The first level of the Cloakwood Mines had a bunch of corrupt junk in its rest spawn block, which is cleaned up. (ar1801.are)
  • Misindexed items and spells were fixed. (ption41.itm, spin158.spl)
  • The unused princess item blocked confusion, but not the confusion visual effect. (princess.itm)
  • The expiration sound for the cutscene sleep spell doesn't match the sleep duration. (bdsleep.spl)
  • Various spells use feedback (op139) with non-permanent timing or non-zero durations. (bdshriek.spl, spin878.spl, spin893.spl, spin929.spl, spin931.spl, spwi714.spl, spwm178.spl)
  • Effects with permanent timing shouldn't have durations (spin672.spl, spin878.spl, spin927.spl, sppr202.spl, spwi303.spl, spwi888.spl)
  • Detect Evil no longer gets routed through a subspell. On the originals, only evil creatures got checked for magic resistance, which let you know that any 'magic resistance' creature was evil. On the EEs, everyone gets checked which means this is no longer a free check. (spcl212.spl, spin120.spl, sppr101.spl, spwi202.spl)
  • Sleep icons are folded into op39 directly on various sleep effects (spin940.spl, spwi004.spl, spwi213.spl, spwi411.spl, spwm187.spl)
  • 'Bypass mirror image' flags were set on a number of opcodes that don't support it (spin673.spl, spin940.spl, spwi004.spl, spwi016.spl, spwi213.spl, spwi502.spl, spwm187.spl)
  • Spells which use improved invisibility will no longer set normal invisibility as it's redundant (spwi405.spl, spwi505.spl, spwi721.spl)
  • Several spells that used swarms of EFFs have been recoded with cleaner implementations (sppr707.spl, sppr707a.spl, sppr707b.spl, sppr707c.spl, sppr710.spl, sppr715.spl)
  • At its lowest level, Mazzy's strength buff was setting the exceptional strength bonus instead of incrementing it. (spin826.spl)
  • Removed duplicatee and/or redundant effects from many items and spells (amul17.itm, bdbeltel.spl, bdddoorx.spl, bddraggh.itm, bddrggra.itm, bddrggry.itm, bdforcew.spl, bdleat05.itm, bdmisc05.itm, bdneoimm.itm, bdring09.itm, bdringge.itm, bdringgh.itm, bdsper1a.spl, bdspirim.itm, bdspnaim.itm, bdtelwe.spl, bdwyv03.itm, bhaalhp1.itm, bhaalimm.itm, chalcy3.itm, clck04.itm, dragring.itm, gorchr.itm, imoenhp1.itm, ipsion.itm, jwsuper.itm, minhp1.itm, ohtmps2d.spl, ohtmps2e.spl, potn21.itm, potn23.itm, potn25.itm, potn32.itm, potn33.itm, potn40.itm, potn45.itm, potn46.itm, ref1.itm, ring09.itm, ring94.itm, ring95.itm, ring99.itm, scrl07.itm, scrl09.itm, scrl10.itm, scrl11.itm, scrl12.itm, scrl13.itm, scrl18.itm, scrlpet.itm, sengua04.itm, spcl121.spl, spcl144.spl, spcl152.spl, spcl321.spl, spcl542a.spl, spcl611.spl, spcl612.spl, spcl613.spl, spcl632.spl, spcl633.spl, spcl634.spl, spcl643.spl, spcl644.spl, spcl722.spl, spdr301.spl, spdwd02.spl, spin117.spl, spin122.spl, spin123.spl, spin124.spl, spin710.spl, spin714.spl, spin823.spl, spin852.spl, spin920.spl, spin952.spl, sppr111.spl, sppr319.spl, sppr508.spl, sppr517.spl, sppr613.spl, sppr701.spl, sppr704.spl, sppr717.spl, sppr717a.spl, spra302.spl, sprngb03.itm, sprngb04.itm, sprngl03.itm, sprngl04.itm, sprngs01.itm, sprngs02.itm, sprngs03.itm, sprngs04.itm, sprngz05.itm, spwi002.spl, spwi101.spl, spwi222.spl, spwi308.spl, spwi311.spl, spwi318.spl, spwi491.spl, spwi511.spl, spwi522.spl, spwi618.spl, spwi701.spl, spwi705.spl, spwi723.spl, spwi902.spl, spwi997.spl, surehp1.itm, trollimm.itm, wand19.itm)
  • The duplicate, unused, and misspelled EigthNearestEnemyOfType and EigthNearestMyGroupOfType objects are removed. (object.ids)
  • 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)

link.png