Baldur's Gate II Fixpack Documentation
This component includes all fixes deemed to be core by the Fixpack team. While some bugs are clearly bugs, the team also has a review process for 'gray area' bugs to insure that fixes do not contradict developer intent. The result is a 'core fixes' component which aims to address true bugs only and in a manner consistent with BioWare's original goals. When we encounter what we think is a bug (or just strange behavior) but appears to be intentional, we generally fix those as an Optional But Cool component. In addition to this documentation, the complete Fixpack forums are open, so if you want to see the reasoning behind a bugfix (or tell us we've got it all wrong), please join us on the forums and provide feedback. If you find a bug that is not fixed and is not in our Pending Fixes forum, please report it.
This documentation is complete as of Version 10 and will contain game spoilers. Fixes included in the BETA Core Fixes are listed in red.
Game Mechanics Fixes
High-Level Dual-Class Characters Get Trapped at Level-Up Screen
Very high-level dual-class characters could get trapped at the weapon proficiency selections screen at level-up, particularly for combos with few available slots for proficiencies. There are unused proficiency categories not available to the characters and the game would think the player could assign stars, even if the legal (i.e. used) proficiency slots were maxed. Because of this, the player would get stuck at the proficiency screen with stars to assign and no available slots, with no way (other than force-quitting the game) to exit. The root cause is that there are non-zero stars allowed in the extra, unused proficiencies; with these altered to zero the game properly recognizes that the character has maxed out proficiencies and skips the screen. (weapprof.2da)
Very Low Dexterity Characters Not Receiving Penalties to Thieving Abilities
The table that sets penalties and bonuses to thieving skills starts at 9 dexterity and continues to 25. This opened a loophole: characters with 8 dexterity or lower were receiving no penalties at all. The table now imposes penalties for dexterities of 1-8. (skilldex.2da)
Consistent Raise Dead Prices at Temples
The price for the raise dead service at temples is determined by the (dead) character's level. The table that sets these prices had several errors: for example, raising a 29th level character costs less than raising a level 16 character, and is more than 10,000 gold less than raising a level 28 or level 30 character. The Fixpack makes these prices consistent and continuous. (raisdead.2da)
All creature races are defined on a table to look up values. Shadows had two entries in the race table, which could cause confusion in scripts. Only a handful of "creatures" had the duplicate entry, so it was altered to 'STATUE' to reflect the creatures that had it assigned as their racial value (i.e. an altar and a statue). A separate entry for ettins was created to distinguish them from giants. (race.ids)
Add Throne of Bhaal Scripting Abilities to Shadows of Amn Games
Several scripts and dialogues in Shadows of Amn use Throne of Bhaal scripting triggers and actions, and research has revealed that a number of ToB triggers and actions work in SoA-only games. These additional ToB scripting options are ported back to SoA-only games, as they are needed for some of the later fixes. A very basic shoutids.ids file is added only if one is not already present. Baldurdash added some entries to spell.ids to allow for scripting of spells not previously possible. For continuity, the Fixpack adds these entries as well. (action.ids, shoutids.ids, spell.ids, trigger.ids)
Due to a typo, the scripting/dialogue action used to bash open doors will not work. In addition, one of the actions to change the area for dead/sleeping actors was broken. Neither of these were causing any actual bugs in game but are nonetheless fixed. (action.ids, actsleep.ids)
Racial Thieving Bonuses Errors
Elves, half-elves, and halflings get an extra 5% to their move silently skills, contrary to the manual. (skillrac.2da)
Lore Bonus Error
Per the manual intelligence or wisdom scores of 15 are supposed to provide a +3 bonus to lore instead of the +5 actually given. (lorebon.2da)
Proper Kit Detection
Due to errors in the kit table, many dialogues and scripts that check, for example, whether the player is a berserker or a Morninglord of Lathander, would fail and only recognize the character as a non-kitted character. In general, this manifests itself mainly in the form of dialogue not being specific to a player's kit or missing dialogue options for special kits. Various joinable NPCs were also updated with the corrected kit values (in this case, the non-kitted value). (anomen6.cre, anomen7.cre, anomen8.cre, anomen9.cre, anomen10.cre, anomen12.cre, imoen.cre, imoen6.cre, imoen10.cre, imoen15.cre, imoen211.cre, imoen213.cre, haer10.cre, haer11.cre, haer13.cre, haer15.cre, haer19.cre, kit.ids, korgan8.cre, korgan9.cre, korgan11.cre, korgan12.cre, korgan15.cre, mazzy8.cre, mazzy9.cre, mazzy11.cre, mazzy12.cre, mazzy15.cre)
Mages and Rogues Not Receiving Final Save Bonus
Mages and rogues (thieves, bards) were not receiving their final decrease in their saves at level 21. (saverog.2da, savewiz.2da)
Thieving Skill Corrections
Per their kit description, blades are only supposed to have one-half the pickpocket ability of normal bards but were not receiving a penalty at all. (cdblpp1.spl, cdblpp2.spl, cdblpp3.spl, cdblpp4.spl, cdblpp5.spl, clabba02.2da)
Using Ranger Tracking Will Permanently Increase the Number of Uses Available
To make the ranger's tracking ability an 'at-will' ability, it creates a new version of itself whenever it's cast so that the ranger always has it available for casting. However, it was not removing the instance just cast. After resting, all of the times tracking had been cast would be re-memorized, leading to several copies in memory. (spcl922.itm)
Assassin Poison Weapon Ability Fixes
The poison weapon ability of assassins was allowing a save against the target's best saving throw, instead of against poison. The damage over the first 12 seconds was also incorrect. (spcl422.eff, spcl422a.eff)
Monk Unarmed Attacks Incorrect
Monks had slight issue with their unarmed attack. At levels 6-8, monks were receiving a spurious +1 THAC0 bonus, and were being shorted damage and THAC0 bonuses by one at levels 15-17. The 'fist' items that give monks their unarmed attacks are also named. (mfist3.itm, mfist4.itm, mfist5.itm, mfist6.itm, mfist7.itm, mfist8.itm)
Bard Spell Memorization Table Fix
Bards should receive a fourth sixth-level spell. This is omitted in the original game due to a miscalculation of a bard's maximum level under the Shadows of Amn experience cap. This bug does not affect Throne of Bhaal. (mxsplbrd.2da)
Barbarian Rage and Berserker Enrage
Barbarian rage was supposed to grant a +2 save bonus against spells, but was instead imposing a -2 penalty. Sleep and stun immunities were not documented in the description. (strref #45869, spcl152.spl)
Berserker enrage was not actually protecting against stun, despite it being in the description of the ability. Enrage provides immunities to confusion, level drain, and feeblemind but these were not documented. While in the 'cool down' period, the THAC0 penalty was being applied but not reflected in the character sheet. The cool down was also using the same name as the actual enrage, implying enrage had been cast when it was ending. (strref #25201,spcl321.spl, spcl321d.spl)
Innate Speed Bonuses Could be Negated by Free Action Effects
Barbarians and monks receive innate speed increases and these could be negated by spell effects such as free action. In the worst case scenario, a monk under the effects of free action when leveling up could miss their speed boost permanently. (spcl151.spl, spcl812.spl, spcl813.spl)
Cavalier's Resist Fear Ability Could Fail Due to MR
A cavalier's resist fear kit ability was being subjected to magic resistance checks, causing it to fail occasionally. (spcl222.spl)
Beast Master's Find Familiar Not Displaying Warning in Tutorial
Find familiar is not allowed to be cast in the tutorial. When the mage version is attempted, a warning message was being displayed. The beast master version was not receiving a similar warning. (spcl342.spl)
Blade Spin Fixes
The blade's offensive spin ability had a few issues. The THAC0 bonus was being applied in a fashion such that it worked, but was not reflected in the character sheet. Blades using offensive spin could also be hasted, contrary to the description. The attacks per round and movement rate were being applied via a haste bonus, which caused a number of flaky issues, such as losing offhand attacks. The attacks per round and movement rate bonus are now applied explicitly. Defensive spin was not protecting against movement rate changes, allowing an exploit of a defensively spinning blade being free to move. One minor issue is that Melf's Meteors can now cause the number of attacks to 'overflow' and wrap around to only 0.5 attacks per round. As a workaround, blades can no longer cast Offensive Spin when wielding Minute Meteors. (melfmet.itm, spcl521.spl, spcl521d.spl, spcl522.spl, spcl741.spl, spcl741d.spl)
High-Level Ability Fixes
- Because they were re-using an effect from the monk's quivering palm, deathblow and greater deathblow were allowing saves by their target and were not restricted to the hit dice indicated by their descriptions. (spcl902.spl, spcl902a.eff, spcl903.spl, spcl903a.eff)
- Power attack was not displaying the 'stunned' string when used in conjunction with ranged attacks. (spcl906.spl)
- The hardiness HLA was being capped at level 20; most HLAs don't top out their abilities to level 30. (spcl907.spl, spwish12.spl)
- If a bard with the Enhanced Bard Song HLA gets kicked out of the party or imprisoned, their bard song reverts back to normal. The Enhanced Bard Song now sticks around. (spcl920.spl)
- In the unmodified game, fighter-mage-thieves and fighter-mage-clerics do not have access to mage HLAs; they use the default fighter-thief and fighter-cleric tables respectively in a patched game. Both are assigned unique HLA tables that include the 'Extra Level 6 Spell', 'Extra Level 7 Spell', and 'Extra Level 8 Spell' mage HLAs. Please note that they retain full access to all of the HLAs they had previously. (luabbr.2da, lufmc.2da, lufmt.2da)
- Unlike single-class thieves, multi-class thieves were allowed to select the Assassination HLA more than once. Per the developers, this is only supposed to be selectable once. (luba1.2da, luba2.2da, luba3.2da,luct0.2da, luth2.2da, luth3.2da, lumt0.2da, luft0.2da)
Multi-and Dual-Class Thieves Restricted from Lawful Neutral and Lawful Evil Alignments
Single-class thieves are allowed to be of lawful neutral and lawful evil alignments, but their multi- and dual-class versions are not. The Fixpack changes this to allow them to have the same alignment choices as single-class thieves. (alignmnt.2da)
- Blades are supposed to receive +1 to damage and THAC0, but were only receiving the damage bonus. (clabba04.2da)
- The innate +1 THAC0 bonuses of skalds and assassins was being applied in such a way that it worked, but was not being reflected in their character record sheets. (spcl421.spl, spcl541.spl)
- Bards, thieves, and mage-thieves should receive their final THAC0 reduction at level 21, but were instead receiving it at level 22. (thac0.2da)
Error in Fallen Paladin/Ranger and Swashbuckler Ability Tables
In Shadows of Amn, the ability table of swashbuckers was malformed and could cause abilities to be missed. The ability tables for paladins and rangers were missing a column. (clabfi05.2da, clabth04.2da)
Stalkers and Archers Are Not Allowed to Dual-Class
In Throne of Bhaal, BioWare altered Stalkers and Archers to not be able to dual-class. As ToB reflects the most recent developer intent, ToB changes are generally rolled back to SoA games, so Stalkers and Archers are altered to be unable to dual-class in SoA-only games as well. There is an Optional But Cool component to allow them to dual-class in both SoA and ToB games. (dualclas.2da)
Non-Magical Innate Abilities Affected by Wild Magic, Dead Magic Zones
Various non-magical innate abilities such as druidic shapeshifting and lay on hands were being affected by wild magic and dead magic zones. (spcl152.spl, spcl211.spl, spcl321d.spl, spcl611.spl, spcl612.spl, spcl613.spl, spcl632.spl, spcl633.spl, spcl634.spl, spcl643.spl, spcl644.spl, spcl815.spl, sppr731.spl, sppr732.spl)
Kensais and Monks Not Receiving Their Weapon Speed Bonuses
Kensais are supposed to receive a bonus in their weapon speed every four levels, but were only receiving their first bonus due to errors in the spell which provided these bonuses. Monks have the same issue. (clabfi04.2da, spcl143.spl, spcl816.spl)
Kitted Bards Starting in Throne of Bhaal Have No Armor
Jesters, blades, and skalds starting in Throne of Bhaal were supposed to begin with The Night's Gift +5 as armor, but this was not occurring due to a typo in the starting ToB equipment table. (25stweap.2da)
Clerics Receiving Multiple Holy Symbols
At level 25, clerics receive a Holy Symbol as a one-time bonus. Because of how the engine handled this, the mechanism for receiving Holy Symbols could be exploited by repeatedly kicking out and re-adding high-level clerics to the party. (baldur.bcs, baldur25.bcs, cdhlysym.spl, cdhlysy2.spl, cdhlysym.itm, clabpr01.2da, clabpr02.2da, clabpr03.2da, clabpr04.2da)
Ranger Stealth Error
Rangers are supposed to improve their stealth skill by 6% every level, but the level two value was incorrect. (skillrng.2da)
Inquisitors Get Charm Immunity Too Late
The charm immunity for inquisitors was being applied at level two instead of from level one. (clabpa03.2da)
Weapon Proficiencies Maximum and Minimum Fixes
There are several errors with classes and kits being able to place stars in weapon proficiencies (weapprof.2da):
- Swashbucklers were only allowed one star in katanas; should be two
- Monks were not allowed to place any stars in katanas; should be allowed one
- Fighter-mage-clerics and cleric-rangers were being allowed three stars in clubs; should be two
- Swashbucklers were being allowed two stars in crossbows, slings, and short bows; should be one
- Kensais and cavaliers were allowed dart proficiencies; should be zero
- Fighter-druids, fighter-mage-clerics, and cleric-rangers were being allowed one star in Two-Handed Weapon Style; should be two
- Fighter-druids, fighter-mage-clerics, and cleric-rangers were being allowed two stars in Two Weapon Style; should be three
Every area has a script to drive events and encounters in the area. Several errors are addressed:
- Copper Coronet: If the party works for Bodhi and Yoshimo is not in the party, he's supposed to disappear from the Copper Coronet. However, because of the way the script is written, under these conditions the block was preventing the rest of the scripted events from occurring. This could block the resolution of the Mazzy-Gorf encounter, the player's fight with Amalas, or the reappearance of Nalia if she went alone to her father's funeral. (ar0406.bcs)
- Graveyard: One of the scripting blocks related to the Garrick-Cyrando-Irlana love triangle vignette is in the area script for the Graveyard area. The block, under certain conditions, can prevent other parts of the script from running--specifically, it can prevent the appearance of Bodhi when meeting her at Valen's invitation. (ar0800.bcs)
- Slums: If the party engages in Korgan's quest and tries to locate Shagbag, a poorly constructed block in the area script will prevent half of the area script from running. This would prevent, for example, the Mazzy-Gorf encounter from starting. (ar0400.bcs)
- Council Chamber (Government District): The script for the Council Chamber is supposed to remove the copy of Tolgerias there if you've already killed him. Previously it did this indefinitely many times, potentially blocking later blocks in the script from firing. (ar1002.bcs)
- Temple of Talos: The Temple of Talos starts looping if Ada gets killed. (ar0904.bcs)
- The Spellhold Asylum Exterior: This area gets stuck in a loop trying to unlock and open the front door after the Irenicus confrontation (ar1500.bcs)
- Waukeen's Promenade: The script gets stuck in a loop when trying to clear out the rubble-gawkers (ar0700.bcs)
- Unassigned Scripts: Several areas had scripts but they weren't assigned to the area (ar0321.are, ar0323.are, ar0324.are, ar0327.are, ar0401.are, ar1005.are, ar1009.are, ar1904.are, ar5004.are)
- Leftover BG Scripts: Two areas, the Helm temple in the bridge district and the North Forest, were using leftover area scripts from BG. The scripts remain assigned to the areas for compatibility concerns, but have been blanked as there was no BG2-specific scripting present. (ar0512.bcs, ar1800.bcs)
Area Sound Fixes
- Due to some errors in the lookup table, echo effects were being applied to sounds while in the Promenade. (sndresref.2da)
- The music for the Underdark was referencing the incorrect music file (it was using Trademeet's theme) for night-time music. (ar2100.are)
- Some areas have background sounds that play while in the area, such as the sounds of merchants and commerce in Waukeen's Promenade. In some cases the sounds were not playing due to bad scheduling or incorrect sound file references. (ar1000.are, ar2000.are, ar3001.are)
- After dueling in the Ust Natha tavern the background combat music would never end. This was due to an error in the script of an invisible creature that controls the music during duels. (ucounter.bcs)
- Area music could loop incorrectly in several areas due to incorrect music files. (bc1.mus, bc2.mus, bd1.mus, bd2.mus, bd3.mus, bd3zg2.acm (new), bf1.mus, bf2.mus, bjr.mus, bm1.mus, bm2.mus, bp1.mus, bp2.mus, brd.mus, bsd.mus, bst.mus, dream2.mus, harp_v2.mus, harp_v6.mus, mb.mus, mxkalah.mus, mxkhali.mus, mxthief.mus, vb.mus)
- There was no combat music assigned to Adratha's cabin at the druid grove. (ar1902.are)
Trap Fix Roundup
- One of the traps in the Prebek's House didn't do anything if sprung due to a missing script. (ar0407.are)
- Two containers in Deirex's tower had issues with being trapped. One container had all the characteristics of being trapped (appropriate detection and disarm numbers and a trap scripts assigned) but was not flagged as such. A second trap could always be detected (0% difficulty) but never removed (100% difficulty). It's adjusted to have a nonzero difficulty for detection, and can be removed. (ar2207.are)
- Some areas have traps that are flagged as already detected, despite the party having never been in the area before. (ar0062.are, ar0063.are, ar0064.are, ar0065.are, ar0328.are, ar0406.are, ar0413.are, ar0801.are, ar0803.are, ar0808.are, ar1006.are)
- A trapped painting in Neb's home could not be disarmed; the trap is altered so that it can be disarmed. Most traps in the game which are not intended to be disarmed can't be detected. (ar0529.are)
- In the first area of the Asylum maze (the area where Imoen can re-join the party) there is a large crushing trap. The trap is designed to kill anyone who sets it off, but it would occasionally kill other characters due to its odd script and the fluidity of its targeting object. The script is simplified a great deal to make these actions more robust. (ppcrus1.bcs)
- Three traps that use magic against the party ignored magic resistance, unlike other magic traps. (spwi001.spl, spwi002.spl, spwi003.spl)
- A handful of floor traps in Firkraag's dungeon, Riejek's cellar, and the Fire Giant Keep were failing to fire because they were using a container trigger (ar0502.are, ar1202.are, ar5201.are)
- Some container traps in Rejiek Hidesman's home, Yaga-Shura's keep, and the Saradush Tavern were failing to fire because they were using a ground trigger (ar0503.are, ar5204.are, gtspike.bcs)
Container Fix Roundup
- In the Brynnlaw shop, the overlay (what changes the cursor to the container icon and provides the light blue outline in ToB) is not quite over the container. The overlay is adjusted to be over the item. (ar1603.are)
- Two chests were giving the "The mechanism that operates this does not have a conventional lock, and may be warded against simple spells." message erroneously. Neither required a special key, their lockpicking difficulty was simply set too high. (ar0327.are, ar1006.are)
- In a few areas, containers are marked as trapped with impossible-to-disarm traps. However, they do not have a script assigned so they wouldn't actually do anything if the trap was sprung. The containers are no longer flagged as trapped. (ar0016.are, ar2002.are)
- Several containers were inaccessible, either due to impassable terrain or static characters standing directly in the way. In general, this caused the party member trying to open the container to stutter around a bit trying to reach the area, then the engine giving up after a few seconds and opening the container from a distance. Containers with this issue have been moved slightly. (ar0202.are, ar0204.are, ar0400.are, ar0513.are, ar0700.are)
- When accessing a container, the 'exchange inventory' screen appears at the bottom of the game screen. The player inventory is on the right and the container is on the left, along with an icon. In several cases, the icon was incorrect (i.e. the icon would be of a chest when accessing a shelf). (ar0201.are, ar0202.are, ar0204.are, ar0206.are, ar0312.are, ar0319.are, ar0400.are, ar0406.are, ar0411.are, ar0501.are, ar0506.are, ar0529.are, ar0705.are, ar0900.are, ar0902.are)
- In some containers, magical items were flagged as identified erroneously. (ar0405.are, ar0602.are, ar1101.are)
- In the shade lord's dungeon, the party interacts with a stone head to acquire one of the pieces of the Symbol of Amaunator. The eye of the statue is actually a container, but it's very difficult to get the contents as it is inside the blue circle of the talking head. Fixpack alters this so that the container will only be available after speaking with the statue at the conclusion of the Shade Lord quests. (ar1401.bcs, shaava01.dlg)
- When you burgle certain locked containers, an invisible creature is created to determine whether or not you've been caught (i.e. 'you've been noticed, you hear someone summoning the guards'). Due to how the creature's script is structured, guards can be summoned if you leave the area and come back later, even if no one noticed the original crime. The script is now tightened to only behave as originally intended. At Tyrianna's home in the docks, an old script was being used that was trying to summon Flaming Fist guards from the city of Baldur's Gate instead of Amnish guards. (ar0415.are, enforam.bcs, tempv01.bcs)
- In the upper story of the de'Arnise Keep, one of the containers has a missing item reference. Being as it was supposed to be a stack of 20 items, the missing reference is now a stack of fire arrows. (ar1303.are)
Corrupted Data in Rest Spawn Block of Mind Flayer Underdark Lair
Each area contains information about what, if any, creatures may appear if the party rests in the area. In the rest spawn block of the Illithid Lair in the Underdark, garbage characters were present in many of the fields and are now removed. The string that appears when creatures are spawned was also incorrect in one of the blocks. (ar2400.are)
Areas Types Flagged Incorrectly
Areas can be flagged as different types--city, outdoors, dungeon, etc.--and these flags are used as trigger for banters and AI scripts as well as environmental sound effects. In several areas, they were being flagged incorrectly.
- Should be outdoor areas: four random encounter areas, Saemon's boat (ar0041.are, ar0042.are, ar0044.are, ar0045.are, ar1607.are)
- Should not be outdoor areas: three floors of Mae'Var's Guild (after PC has taken over) and the Circus Tent initial area (ar0321.are, ar0322.are, ar0323.are, ar0600.are)
- Should not be city areas: Mae'Var's Guild; Shadow Thief building (entrance, Aran's hideout); Harper HQ; home in the docks, homes of Rayic Gethras, Saerk, Acton Balthis, and Elgea's kidnappers; Copper Coronet; Tanner's Hideout; Calbor's Inn; fletcher's shop in the Promenade; Temples of Lathander, Helm and Talos; Pimlico's Estate; Guarded Compound; empty home in Amketheran (ar0303.are, ar0305.are, ar0307.are, ar0308.are, ar0309.are, ar0311.are, ar0312.are, ar0315.are, ar0316.are, ar0317.are, ar0406.are, ar0501.are, ar0504.are, ar0505.are, ar0506.are, ar0507.are, ar0508.are, ar0513.are, ar0514.are, ar0515.are, ar0706.are, ar0901.are, ar0902.are, ar0904.are, ar0905.are, ar0906.are, ar0907.are, ar5507.are)
- Should be dungeon areas: cave in Sea's Bounty, Kangaxx's cellar, myconid room under Copper Coronet, cell in Planar Prison, bridge lich room, air plane in opening dungeon, circus tent opening and third floor, Pai'Na's area, cave at Umar Hills, Firkraag's lair, shadow dragon's lair, cave in Spellhold tests, Brynnlaw brothel cellar and prison, hell trials (ar0310.are, ar0331.are, ar0418.are, ar0521.are, ar0526.are, ar0600.are, ar0601.are, ar0606.are, ar0804.are, ar1106.are, ar1203.are, ar1402.are, ar1501.are, ar1608.are, ar1610.are, ar2901.are, ar2902.are, ar2903.are, ar2905.are)
- Should not be dungeon areas: Valygar's cabin, Coran's cabin (ar1101.are, ar2603.are)
- Should be able to rest: Five Flagons Inn (stronghold), Pimlico's Estate, Guarded Compound (ar0522.are, ar0905.are, ar0906.are, ar0907.are)
Area Entrance/Exit Errors
- Several areas in the game can only be accessed with the full party in tow. However, in many of these cases the flags only worked one way, or multiple entrances to areas were flagged differently from one another. (An example: a single party member could enter Coran's cabin in the woods, but only the full party could leave.) The flags were reviewed and adjusted to be consistent. (ar0300.are, ar0400.are, ar0415.are, ar0500.are, ar0504.are, ar0505.are, ar2000.are, ar2207.are, ar2600.are, ar2603.are, ar2902.are)
- When entering areas, the party faces a certain direction based on the entrance point into the area. The party faces away from the door they just entered, so that the party formation is correct, i.e. the weaker members in the back line don't get exposed. In several cases, the orientation was incorrect. (ar0201.are, ar0202.are, ar0204.are, ar0300.are, ar0302.are, ar0304.are, ar0312.are, ar0322.are, ar0324.are, ar0400.are, ar0402.are, ar0404.are, ar0405.are, ar0406.are, ar0409.are, ar0500.are, ar0509.are, ar0513.are, ar0531.are, ar0700.are, ar0703.are, ar0707.are, ar0801.are, ar0903.are, ar0905.are, ar1001.are, ar1003.are, ar1004.are, ar1005.are, ar1009.are, ar1200.are, ar1300.are, ar1304.are, ar1606.are, ar2101.are)
- The North Forest, Small Teeth Pass, Underdark Exit, and Forest of Tethyr all lack a defined entrance point from the world map. When traveling to these areas, the party would get dumped randomly somewhere in the area, sometimes in the midst of a group of hostile monsters. (ar1700.are, ar1800.are, ar2500.are, ar2600.are)
- As the player descends through the levels of Watcher's Keep, doors from each level to the outside become active to allow the player to go back and forth directly from the levels to the outside. However, the animations that play over the transitions from the outside (and thus prevent entrance) were off by a few pixels, allowing players to enter levels directly to which they should not have access. (ar3000.are)
- Saerk's Estate in the Bridge district is accessible because the scripts that lock and unlock the doors are not affecting the upstairs entrance. The estate is only supposed to be accessible during the course of Anomen's romance. The scripts now lock and unlock both doors in tandem. (ar0500.bcs)
- Some doors to the Shadow Thief HQ required the Shadow Thief key to be opened. However, they actually were not checking the key as they lacked a flag for it. (ar0329.are)
- Some NPCs could escape through areas which they shouldn't be able to pass through. A common example is Rimli in the Crooked Crane--after delivering his spiel about Aulava and Tiiro, he then tries to leave through the secret door to the lich guarding Daystar. These areas are altered so that special areas, such as the Harper HQ, Kangaxx's area, and similar are no longer valid 'escapes' for NPCs that are leaving. As part of the Harper HQ not being passable, Rylock's script is altered slightly so that he can still pass through the door anyway. (ar0015.are, ar0021.are, ar0022.are, ar0082.are, ar0300.are, ar0305.are, ar0306.are, ar0307.are, ar0308.are, ar0400.are, ar0407.are, ar0410.are, ar0413.are, ar0414.are, ar0415.are, ar0601.are, ar0605.are, ar0800.are, ar0801.are, ar1100.are, ar1106.are, ar1200.are, ar1202.are, ar1300.are, ar1302.are, ar1400.are, ar1512.are, ar1514.are, ar1515.are, ar1900.are, ar2000.are, ar2008.cre, ar2200.are, ar2206.are, ar2207.are, ar2210.are, ar2600.are, ar2800.are, ar5000.are, ar5001.are, ar5007.are, ar5013.are, ar5015.are, ar5200.are, ar5503.are, ar5504.are, ar5507.are, ar6101.are, ar6107.are, rylock.dlg)
- One of the areas in the soldier barracks in the Docks has reversed entry and exit points. You leave the first barracks area by a northeastern exit, but appear on the northeastern side of the second. If you try to leave the second area by the southwestern doorway, you'll end up outside. Swapping the transition and entry points results in the more sensible (and optically correct) entrance on the southwest edge of the area. (ar0333.are)
- The engine will regularly activate and deactivate entrances to other areas, depending on quests, allies, etc. In the Docks, miscellaneous transitions to other areas (notably the second floor of Mae'Var's guild and the 'hostile' Shadow Thief Guild Hall area with Aran Linvail) were not being properly referenced, meaning they were not being enabled and disabled appropriately. There are many entrances to both, and the issue did not affect all of them. (ar0300.bcs)
- If the PC acquires Nalia's Keep, the interior areas all change area files. In the stronghold version of the ground floor, the secret entrance that the party originally used to enter the Keep has an error--the travel trigger is actually over a solid wall, rather than over the door itself. The travel trigger is now properly over the door, as it is in the non-stronghold version of the area. (ar1306.are)
- In the militia headquarters in Saradush, the area re-uses a generic tavern area (same as the Crooked Crane and the Brynnlaw brothel's lobby). The area has a door hidden in the wall, and when used elsewhere this is indeed a secret door. However, it's a normal door in the militia headquarters--it's opened and used in the cut scene that triggers when you first enter the area--but still flagged as secret. This means you'll still hear the sound for detecting secret doors when you approach it, despite it being open. (ar5015.are)
- Several doors that required keys were not consuming them. In general, doors that required keys would take them from inventory when opened so that the player had a way to realize which key was used and to prevent keeping unnecessary keys in inventory. (ar0202.are, ar0701.are,ar1608.are, ar1611.are, ar2000.are)
- In Firkraag's dungeon, the door leading to Semia is supposed to be unlocked by the Chapel Key. However, the door could have its lock picked, leading to a great deal of confusion as to the purpose of the Chapel Key. The door can now only be opened via the Chapel Key. (ar1202.are)
Area Graphical Fixes
- Throughout areas, various animations play: fires burn in fireplaces, the machinery spins in the Lathander temple, etc. The animations are laid on top of the static image of the area and, in some cases, they're positioned slightly incorrectly. (ar0414.are, ar0510.are)
- At the Helm Temple in the bridge district, the two bowls where water is supposed to be were showing lime green holes due to errors in the area graphics. This glitch would only manifest with 3d acceleration enabled. The Fixpack Screenshot Gallery has before-and-after shots of this graphical glitch. (ar0512.mos, ar0512.tis, ar0512.wed, ar0512ht.bmp, ar0512lm.bmp, ar0512sr.bmp)
- Before the shade lord is defeated, the temple ruins near the Umar Hills are always in night mode. However, the mini-map of the area has a daytime version that gets displayed. The mini-map is corrected to always be in night mode to match the area itself. (ar1404.mos)
- The druid grove and the black dragon area in Suldanesselar both have custom, night graphics for the area that weren't being used. These custom night maps have been restored. A before-and-after comparison is available. (ar1900.are, ar1900n.wed, ar2807.are)
- The entrance to the Guarded Compound from the Temple Disctrict was offset from its actual door. (ar0900.are)
- Many animations in areas had bad perspective or were displayed over background tiles despite being behind them. This was typically due to a bad layer order; the most common errors were ovens not displaying their internal fire or forges/stoves displaying their flames on top of their hoods. The Fixpack Screenshot Gallery has before-and-after shots of these graphical glitches. Some of these glitches are only encountered with certain graphical settings. (ar0307.are, ar0312.are, ar0313.are, ar0334.are, ar0335.are, ar0406.are, ar0529.are, ar0706.are, ar0713.are, ar1601.are, ar1603.are, ar2001.are, ar2300.are, ar3001.are)
Map Note Corrections
The map note for the western tunnels in the Underdark map was positioned incorrectly. The Crooked Crane at the City Gates had no note. (ar0020.are, ar2100.are)
Multiple Unique Creatures
In some areas, unique characters are duplicated:
- Stanet, a unique commoner, was duplicated in the bridge district. The duplicate has been replaced with a generic commoner. (ar0500.are)
- There is a unique guard that stands near the rubble in Waukeen's Promenade and has specific dialogue about the events leading up to it. The guard is duplicated in both Waukeen's Promenade and the government district; in both cases the dialogue was clearly inappropriate and the guards have been changed to the generic Amnish guards. (ar0700.are, ar1000.are)
- A unique commoner (used to be Anomen's governess) in the government district is duplicated. The duplicate is replaced with a generic female commoner. (ar1000.are)
- Sir Donalus appears in both the Helm temple and the Noble Order of the Radiant Heart. In this case, the creature files were different and only the name was shared. As the NORH version refers to himself as Sir Donalus in his dialogue, the name of the duplicate in the Helm temple is changed. (helmpr.cre)
- Khollynnus Paac is the mage that helps send the Solamnic Knights home in one of the mage stronghold quests. However, Paac is also one of the powerful Cowled Wizards that appears when you use magic without a license around Athkatla too much. Like Sir Donalus, the name of the latter occurrence is altered, as Paac is referred to by name in the mage stronghold quest. (mage16c.cre)
- The temple of Ilmater in Waukeen's Promenade was re-using the priest of Ilmater character from the Ilmater temple in the Slums. The original priest had dialogue for events and creatures that were not appropriate for the Waukeen's Promenade temple; the originally intended character there was a priestess. The area has been updated to use the intended priestess instead of the priest. (ar0703.are, wilmat.dlg)
Low-Reputation Parties Face NORH Paladins Too Often
When the party is at a low reputation, it can be attacked by paladins from the Noble Order of the Radiant Heart. Once encountered, the paladins set a one day timer before they can possibly appear again. However, the variable name of the timer is the same as another variable used by the knights, meaning they respawn faster than originally intended (four hours instead of the intended 24). The variable name is changed so that the knights now operate on a 24-hour timer. (alex.cre, amntrp01.bcs, amntrp02.bcs, amntrp03.bcs, knight.dlg)
Madman in Temple District Rarely Encountered
There is a madman in the temple district that was rarely, if ever, encountered. During the day time, his script would force him to leave permanently. The party only had a chance to meet him if they never entered the temple district during the day. The area file is altered so that the madman is still only available at night, but will not leave permanently if the party enters during the day. (ar0900.are)
Demons Spawned from Resting in Watcher's Keep Had Errors
When resting on various levels of Watcher's Keep, sometimes a creature should be spawned to prevent it. In two cases, the creature reference was invalid due to typos. (ar3004.are, ar3010.are)
Creatures Can Not Move
- One of the trolls inside the troll mound at the druid grove was unable to move as it had been placed on impassable ground. (ar1904.are)
- In the Spellhold maze, the party encounters a group of kobolds and imps around a large crystal. One of the imps is placed in a wall. (ar1513.are)
Common Spell Fix Roundup
Many spells had discrepancies between their descriptions and their actual abilities.
- Name/Description/Icon - Some spells were using the wrong icon in the quick bar or the wrong description. Moon Dog Sight (spin696.spl), Animate Dead (priest) (sppr301.spl), Grease (spwi101.spl), Detect Evil (spwi202.spl)
- Duration - Several spells had durations that did not match their description. Sometimes these durations only affected some of the effects of the spell, or only when cast at certain levels. Spells fixed are Symbol, Fear (strref #14320); Maze (intmod.2da), Horror (spwi205.spl), Luck (spwi209.spl), Invisibility 10' Radius (spwi307.spl), Hold Monster (spwi507.spl), Resist Fire/Cold (sppr210.spl), Hold Animal (sppr305.spl), Holy Smite (sppr313.spl), Righteous Magic (sppr513.spl), Gate (spwi905.spl), Grease (spwi101.spl), Armor (spwi102.spl), Black Blade of Disaster (SoA-only) (spwi915.spl), Burning Hands (spwi103.spl), Friends (spwi107.spl), Farsight (spwi424.spl), Invisible Stalker (spwi601.spl), Cacofiend (spwi707.spl), Sphere of Chaos (spwi711.spl), Summon Hakeashar (spwi719.spl), Power Word: Blind (spwi815.spl), Absolute Immunity (spwi907.spl), Meteor Swarm (metswarm.pro), Improved Alacrity via Wish (spwish17.spl), Spell Shield (spwi519.spl), Chromatic Orb (spdr101.spl, spwi118.spl), Champion's Strength (sppr507.spl), Protection from Evil (spwi113.spl), Monster Summoning I (spwi309.spl), Monster Summoning II (spwi407.spl)
- Range - Several spells have ranges at odds with their descriptions. Note that maximum range for spells in BG2 is visual range (30 feet). Spells fixed are Detect Evil (projectl.ids, spcl212.spl, spin120.spl, sppr104.spl, spwi202.spl), Gate (sppr703.spl, spwi905.spl), Grease (spwi101.spl), Color Spray (cspray.pro, spin937.spl, spwi105.spl), Magic Missile (spin685.spl, spin962.spl, spwi003.spl, spwi112.spl), Cone of Cold (spwi503.spl), Larloch's Minor Drain (spin104.spl, spwi119.spl), Blindness (spwi106.spl), Infravision (spwi111.spl), Sleep (spwi116.spl), Spook (spwi125.spl), Skull Trap (spwi313.spl)
- Magic Resistance - In several cases, spell effects would be a mixed bag of bypassing or being blocked by magic resistance, resulting in incorrect feedback in the battle window. For example, Spook can be resisted by magic resistance, but the message 'panic' would always play as if the spell worked. Spells fixed are Detect Evil (cddetevl.pro, cddetevl.spl), Spook (spwi125.spl), Melf's Acid Arrow (spwi211.spl), Dispel Magic (deva.itm, devaevil.itm, elemchan.itm, elemcryo.itm, elemhydr.itm, elemimix.itm, elemogre.itm, elemsunn.itm, elemyanc.itm, elemzaam.itm, planetar.itm, ravag01.itm, spin866.spl, sppr303.spl, spwi326.spl, sw2h10dm.spl), Remove Magic (spwi302.spl), Edwin's Nether Scroll bonuses (spin664.spl), heal before ettin fight at CoC (spin923.spl), mind flayer heal (spin958.spl), beholder Death Ray (spin991.spl), Death via Skull of Death (helm17.itm), Energy Drain (spwi914.spl), Larloch's Minor Drain via Foebane (sw1h63.itm), Simulacrum via Vhailor's Helm (wa2helm.itm), Sunray via Helm of Brilliance (helm16.itm), Cloudkill via Wand of Cloudkill (wand13.itm), Chromatic Orb (spdr101.spl, spwi118.spl)
- Damage - Several spells had deviations from their listed damage. Spells affected are Magic Missile (spin685.spl, spin962.spl, spwi003.spl, spwi112.spl), Cone of Cold (spwi503.spl), Delayed Blast Fireball (spwi712.spl), Holy Smite/Unholy Blight (sp313l02.eff, sp313l03.eff, sp313l04.eff, sp313l05.eff, sp313l06.eff, sp313l07.eff, sp313l08.eff, sp313l09.eff, sp313l10.eff, sppr313.spl, sppr314.spl)
- Saves - Several spells had discrepancies in their saves, i.e. penalties/bonuses that were wrong, saving throws of the wrong type, missing saves, etc. In some cases multiple saves were allowed. Spells fixed are Teleport Field1 (strref #25894), Sol's Searing Orb (udead66.eff), Control Undead (undchstr.eff, undchvis.eff), Hold Undead (undchvis.eff), Edwin's Nether Scroll bonuses (spin664.spl), Entangle (sppr105.spl), Hold Animal (sppr305.spl), Death via Skull of Death (helm17.itm), Color Spray (cspray.pro, spin937.spl, spwi105.spl), Confusion (spwi401.spl), Flesh to Stone (cut scene) (spin950.spl), Polymorph Other (spwi415.spl, spwm183.spl), Bigby's Crushing Hand (spwi918.spl), Dragon's Breath (spwi922.spl), Horror (spin105.spl, spwi205.spl)
- Headers - Every spell has headers, which determine what effects occur when cast at a particular level. In many cases, spells were missing headers, generally meaning they were cast at a lower level than the actual caster. Spells are also capped at level 20. Spells fixed are Silence (dragon innate could fail if level-drained) (spin692.spl), Spell Shield (spwi519.spl), Animate Dead (priest) (sppr301.spl), Holy Smite (sppr313.spl), Free Action (sppr403.spl), Grease (spwi101.spl), Black Blade of Disaster (SoA-only) (spwi915.spl), Friends (spwi107.spl), Protection from Fire (spwi319.spl), Protection from Cold (swi320.spl), Cone of Cold (spwi503.spl), Conjure Air Elemental (spwi621.spl), Conjure Earth Elemental (spwi622.spl), Summon Hakeashar (spwi719.spl), Champion's Strength (sppr507.spl), Holy Power (sppr412.spl)
- Portrait Icons - Spells are supposed to set and remove portrait icons as feedback for active effects on party members. In many cases they were failing to set or remove these properly. Spells fixed are Remove Paralysis (sppr308.spl), Holy and Unholy Word (icondeaf.eff, sppr710.spl, sppr715.spl), Hold Monster (spwi507.spl), Chromatic Orb (spdr101.spl, spwi118.spl), unused yellow dragon breath (spin595.spl), Mephit's Mist Ball (spin929.spl), Holy Smite (sppr313.spl, cdblind.eff), Glitterdust (spwi224.spl), Power Word Blind (enemy) (spwi958.spl), Dragon's Breath (spwi922.spl), Spell Shield (hardcoded to use wrong icon; BAMs switched in states.bam and other spells adjusted) (spwi519.spl, spwi606.spl, statdesc.2da, states.bam, states2.bam), Entangle (enemy) ( spin688.spl, spwm111.spl), Abazigal's Shockwave (spin531.spl), Anti-Magic Ray (spin550.spl, spin992.spl), Dead Magic Area (spin646.spl), Insect Plague (spin689.spl, sppr517.spl), spell failure via Wish (spin731.spl), Anti-Magic Zone (spin779.spl), Miscast Magic (sppr310.spl, sppr986.spl, spwish30.spl), Summon Insects (sppr319.spl), Creeping Doom (sppr717.spl), Wild Surge: Repulsion (spwm128.spl), Storm of Vengeance (sppr722.spl), unused (spcl132.spl), Anti-Magic (multiplayer) (spin712.spl)
- Casting Animations - Spells play a set graphic on the caster, depending on the school of the spell. Several spells were using the wrong animation. Spells fixed are Bigby's Clenched Fist (spwi818.spl), Bigby's Crushing Hand (spwi918.spl), Shield (spwi114.spl), Chaos Shield (spwi222.spl), Improved Chaos Shield (spwi723.spl), Contagion (spwi409.spl), Farsight (spwi424.spl), Oracle (spwi515.spl), Shadow Door (spwi505.spl)
- Cosmetic Effects - Spells use a number of animations and sound effects, and in some cases these weren't showing up or being played properly. Spells fixed are Regeneration (sppr711.spl), Flame Strike (before-and-after comparison) (spin799.spl, sppr985.spl, spwi979.spl, spwm186.spl)), psionic blast (spin974.spl), Armor (spwi102.spl), Protection from Evil (spwi113.spl)
- Targeting - Several spells had targeting errors, i.e. Neutralize Poison would always cure disease on the caster instead of its intended target. Spells fixed are Protection From Normal Missiles (spra303.spl, spwi311.spl), Geas from ToB Spectator Beholder (senbehkd.spl), Holy Smite (sppr313.spl), Free Action (sppr403.spl), Neutralize Poison (sppr404.spl), Death Ward (sppr409.spl), Abazigal's dragon transformation (abzaway.spl), Power Word: Blind (holdsumm.pro), Wild Surge: Destroy Gold (spwm117.spl), Chromatic Orb (spdr101.spl, spwi118.spl)
- Casting Time - Several spells had an incorrect casting speed per their description. Spells affected are Larloch's Minor Drain (spin104.spl), Detect Evil (sppr104.spl), Doom (sppr113.spl), Draw Upon Holy Might (sppr214.spl), Animate Dead (divine) (sppr301.spl), Call Lightning (sppr302.spl), Hold Animal (sppr305.spl), Invisibility Purge (sppr309.spl), Miscast Magic (sppr310.spl), Rigid Thinking (sppr311.spl), Free Action (sppr403.spl), Cure Critical Wounds (sppr502.spl), Iron Skins (sppr506.spl), Harm (sppr608.spl), Regenerate (sppr711.spl), Creeping Doom (sppr717.spl), Earthquake (sppr720.spl), Elemental Summoning (sppr723.spl), Greater Elemental Summoning (sppr724.spl), Grease (spwi101.spl), Armor (spwi102.spl), Find Familiar (spwi123.spl), Nahal's Reckless Dweomer (spwi124.spl), Know Alignment (spwi208.spl), Melf's Acid Arrow (spwi211.spl), Strength (spwi214.spl), Agannazar's Scorcher (spwi217.spl), Monster Summoning I (spwi309.spl), Dimension Door (spwi402.spl), Stoneskin (spwi408.spl), Minor Sequencer (spwi420.spl), Animate Dead (mage) (spwi501.spl), Monster Summoning III (spwi504.spl), Shadow Door (spwi505.spl), Protection from Normal Weapons (spwi511.spl), Protection from Acid (spwi517.spl), Minor Spell Turning (spwi522.spl), Pierce Magic (spwi608.spl), True Sight (spwi609.spl), Contingency (spwi617.spl), Spell Sequencer (spwi710.spl), Improved Chaos Shield (spwi723.spl), Protection from Energy (spwi802.spl), Spell Trigger (spwi809.spl), Symbol, Fear (spwi811.spl, spwi899.spl, spwm123.spl), Symbol, Stun (spwi816.spl, spwi898.spl), Symbol, Death (spwi817.spl, spwi897.spl)
- Combat Feedback Messages - Spells are generally accompanied by messages such as 'held' or 'blind'. Several of these errors are corrected. Spells fixed are Hold Monster (spwi507.spl), Protection From Normal Weapons (spwi511.spl), Sol's Searing Orb (sorb.itm), Chromatic Orb (spdr101.spl, spwi118.spl), unused yellow dragon breath (spin595.spl), Shadow's Drain (spin878.spl), Shadow Dragon Breath (spin893.spl), Mephit's Mist Ball and Sooty Ball (spin929.spl, spin931.spl), Holy Smite (sppr313.spl, cdblind1.eff), Sunray (sppr707.spl), Prismatic Spray (spwi714.spl), Power Word Blind (spwi815.spl spwi958.spl), Blindness via Celestial Fury or the Wand of Cursing (sw1h51.itm, wand19.itm), Pierce Shield (spwi805.spl)
- Timing Cleanup - Several opcodes should only be used as permanent effects, and some permanent effects had durations. These are cleaned up. (spcl906b.eff, spin935d.eff, stunstrg.eff)
Creeping Doom Fixes
Creeping Doom's panic effect was not working because of how the engine handles staggered, repeating effects. The fear effect is now farmed out to a secondary spell to fix it. (flpr717a.spl, sppr717.spl)
Chromatic Orb Fixes
Chromatic Orb already has a number of issues addressed in the Common Spell Fix Roundup. At level one, the spell is supposed to cause blindness but was instead imposing penalties to THAC0, AC, and saves. (spdr101.spl, spwi118.spl)
Errors with the Paralyzation Effect via Spell and Undead Attack
Items and spells that cause paralyzation can be targeted against specific targets, i.e. limited to a certain race or class. Unfortunately, when the paralyzation effect was bound this way often times the other effects (portrait icons, visuals, etc.) were not, meaning creatures not affected by paralyzation would nonetheless get the graphics and combat feedback as if they were. Errors with undead paralyzation were also addressed: some were playing their un-paralyze sound effect too late, the ghoul lord's nauseated icon lasts too long, and some were using the old BG-stystem and therefore missing half-orcs. (cdhda108.eff, cdhda120.eff, cdhda132.eff, cdhda144.eff, cdhda156.eff, cdhda168.eff, cdhda180.eff, cdhda192.eff, cdhda204.eff, cdhda216.eff, cdhda228.eff, cdhda240.eff, cdhda30.eff, cdhda60.eff, cdhda72.eff, cdhda84.eff, cdhda96.eff, cdhdb108.eff, cdhdb120.eff, cdhdb132.eff, cdhdb144.eff, cdhdb156.eff, cdhdb168.eff, cdhdb180.eff, cdhdb192.eff, cdhdb204.eff, cdhdb216.eff, cdhdb228.eff, cdhdb240.eff, cdhdb30.eff, cdhdb60.eff, cdhdb72.eff, cdhdb84.eff, cdhdb96.eff, cdheld.eff, demmau01.itm, ghoul1.itm, ghoullor.itm, lacedo.itm, lacedo2.itm, lich02.itm, ghoullor.itm, spcl415.spl, spin648.spl, spin988.spl, sppr208.spl, sppr305.spl, sppr989.spl, spwi306.spl, spwm122.spl)
Simulacrums, Projected Images, and Mislead Issues
Projected Images and Simulacrums, when created, are now stripped of their Slayer Change and Pocket Plane abilities. Creatures who are not the protagonist can cause a lot of wonk if they use these abilities. Mislead clones could attack if the caster was equipped with an item that boosts attacks per round. (mislead.spl, projimag.spl, simulacr.spl)
Chaotic Commands Not Fully Protecting Against Maze
Chaotic Commands is supposed to protect against being Mazed, but it was not protecting against the psionic version of Maze. (sppr508.spl)
Luck was not providing saving throw or thieving bonuses, per its description. (spwi209.spl)
Prismatic Spray Fixes
Prismatic Spray was blinding targets up to level seven instead of five per its description. (spwi714.spl)
Breach via Wish Turns Summons Hostile
The breach spell cast via wish was affecting friendly summons and turning them hostile. (spwish38.spl)
Greater Command Affects Allies
Greater Command would affect allies, or not, depending on the level of the caster. The spell has been standardized to be a party-friendly spell and not affect allies. (sppr512.spl)
Errors in Spell Animations
A few spell projectiles had minor errors, as did animations that play for spell effects. Errors in projectiles were typically missing shadows, whereas the animations were typically not playing intro sequences or misordered frames. (iceglyp.pro, spattck1.vvc, spattck2.pro, spauraff.vvc, spbldbtm.vvc, spbldtop.vvc, spcloud1.vvc, spgreorb.pro, spwood.vvc)
Conjured Earth Elemental Always Hostile
When summoned via the divine Conjure Earth Elemental spell, the elemental is always hostile. The elemental should match the allegiance of the caster. (speart3p.eff)
Improved Invisibility Fixes
Of the many forms of Improved Invisibility, most do not provide the +4 save bonuses that it is supposed to confer. Improved Invisibility is also not supposed to be able to stack with itself. (balth10.spl, balth10a.spl, balth10b.spl, spdr401.spl, spdr401a.spl, spdr401b.spl, spin544.spl, spin544a.spl, spin544b.spl, spin687.spl, spin687a.spl, spin687b.spl, spin698.spl, spin698a.spl, spin698b.spl, spwi405.spl, spwi405a.spl, spwi405b.spl, spwi505.spl, spwi505a.spl, spwi505b.spl, spwi607.spl, spwi607a.spl, sspwi607b.spl, spwi721.spl, spwi721a.spl, spwi721b.spl)
Many Spells Should Not Be Able To Stack With Themselves
Many spells should not be able to stack with themselves, i.e. casting multiple Slows would allow a creature to add up AC and THAC0 penalties despite not getting any slower. Due to engine limitations, they only way to effectively eliminate this problem is to prevent another casting of the same spell until the duration ends, as trying to target the illegal effects that are stacking blocks way too many legitimate uses. Spells affected are Armor of Faith (dgfaith.spl, sppr111.spl), Righteous Magic (dgright.spl, sppr513.spl), Assassin's Poison Weapon (spcl423.spl), Hardiness (spcl907.spl), Evasion (spcl913.spl), Greater Evasion (spcl914.spl), Avoid Death (spcl917.spl), Blur (spin943.spl, spwi201.spl), Doom (sppr113.spl), Resist Fire (sppr210.spl), Protection from Fire (sppr306.spl, spwi319.spl), Defensive Harmony (sppr406.spl), Holy Power (sppr412.spl), Friends (spwi107.spl), Luck (spwi209.spl), Strength (spwi214.spl), Protection from Cold (spwi320.spl), Tenser's Transformation (spwi603.spl), Protection from the Elements (spwi702.spl), Project Image (spwi703.spl), Slow (spin575.spl, spin977.spl, spin983.spl, spwi312.spl, spwish25.spl, spwm164.spl)
Harper's Call Not Draining Stats
Harper's Call was not draining the stats of the person resurrected, per the description. (cdspja00.eff, cdspja01.eff, cdspja02.eff, cdspja03.eff, cdspja04.eff, cdspja05.eff, spja01.spl)
Barkskin Granting Incorrect AC Bonus
Barkskin was not setting AC to the correct value, particularly when cast at higher levels. (sppr202.spl)
Animate Dead Errors
When cast at level 5 it had a 25% chance of three summons instead of two; when cast at level 11 there was a 10% chance of no summons at all. (sppr301.spl)
Free Action Errors
Free Action was protecting against charm. (sppr403.spl)
Spells vs. Spell Protections
There were many errors in the ways that spell protections--combat protections such as Mantle or anti-spells such as Spell Immunity or Globe of Invulnerability--interacted with regular spells, innate abilities, and their counter spells. Every spell has a school (divination, transmutation, etc.), a secondary type (a rough description of what a spell does, used internally by the engine), and every individual effect of a spell has a power level (power is essentially the spell level applied individually to each effect; item effects are generally zero). Spell schools matter to spells like Spell Immunity, secondary types matter to spells such as Breach, and power levels matter to spells that protect against spells of level X such as Globe of Invulnerability.
- Schools - Schools are fixed for a number of spells and abilities. In a few cases, such as dragon wing buffet, schools are removed so that they bypass Spell Immunity and Spell Trap. Spells affected are Shield (spwi114.spl), Nahal's Reckless Dweomer (spwi124.spl), Mass Invisibility (spwi721.spl), Energy Blades (spwi920.spl), Improved Alacrity (spwi921.spl), Dragon's Breath (arcane) (spwi922.spl), Summon Planetar (spwi923.spl, spwi924.spl), Comet (spwi925.spl), hell door buffet (spin658.spl), dragon wing buffet (spin695.spl)
- Clarifications - The descriptions of Minor Globe of Invulnerability, Globe of Invulnerability, and Spellstrike were updated to better reflect their interaction with other spells and protections. (strrefs #80641, #121641, and #26315)
- Power levels - For the most part, power level errors resulted in mainly cosmetic bugs with a few notable exceptions, i.e. the Short Sword of Mask is supposed to entangle its target on a hit, but it would be blocked by spell protections. (arow06.itm, arow08.itm, arow09.itm, aurstaf.itm, ax1h07.itm, blakblad.itm, blun20.itm, bolt03.itm, bolt05.itm, bonedag.itm, brac20.itm, brdflute.itm, chalcy2.itm, dart03.itm, dart04.itm, dart05.itm, dartmel.itm, eneblade.itm, globblu1.itm, globred1.itm, globred2.itm, gorcamb.itm, halb06.itm, hamm03.itm, hamm05.itm, helm16.itm, helm17.itm, hgber01.itm, hgnya01.itm, icetrl.itm, killsw01.itm, kuobolt3.itm, misc5c.itm, mistcd.itm, mistho.itm, mistice.itm, mistva.itm, mistva2.itm, mistwa.itm, mound.itm, nebdag.itm, potn13.itm, potn26.itm, potn27.itm, quasclaw.itm, ravag01.itm, ravag02.itm, revent1.itm, ring20.itm, rods03.itm, scrl03.itm, scrl04.itm, scrl05.itm, scrl06.itm, scrl08.itm, scrl09.itm, scrl15.itm, secret02.itm, sendai.itm, shille.itm, slaylive.itm, spermel.itm, spin658.spl, spin695.spl, sppr105.spl, sppr210.spl, sppr303.spl, sppr306.spl, sppr315.spl, sppr401.spl, sppr502.spl, sppr512.spl, sppr609.spl, sppr712.spl, sppr721.spl, spwi106.spl, spwi111.spl, spwi113.spl, spwi210.spl, spwi223.spl, spwi224.spl, spwi302.spl, spwi326.spl, spwi410.spl, spwi414.spl, spwi613.spl, spwi711.spl, spwi721.spl, spwi803.spl, spwi910.spl, spwi918.spl, spwi920.spl, spwi922.spl, spwi925.spl, staf10.itm, staf11.itm, staf12.itm, staf13.itm, staf14.itm, sw1h06.itm, sw1h51.itm, sw1h58.itm, sw1h59.itm, telslav.itm, trolltor.itm, ttwand.itm, wa2helm.itm, wand11.itm, wand12.itm, wolfwi1.itm, wolfwi2.itm, xbow15.itm, xbow16.itm)
- Spells From Items - Various spells and abilities from items are now properly classed so that they interact with other spells. For example, a thief's detect illusion ability could see through a mage using the Mirror Image spell, but not Mirror Image cast from Ilbratha. These are set to the same spell school and secondary type as the spell.
- Invisibility from the Ring of Air Control (ring28.itm) and Mirror Image from Ilbratha +1 (sw1h26) are set as illusions: illusionary protections
- Spell Trap from the Staff of the Magi (staf11.itm) is set as abjuration: spell protection
- Breach and Pierce Magic from a Wand of Spell Striking (wand18.itm) are set as abjuration: magic attack
- Shield from the Shield Amulet (amul15.itm) is set as invocation: combat protection.
- Lightning and Call Lightning from the Staff of Thunder and Lightning (staf13.itm), Magic Missiles from a Wand of Magic Missiles (wand03.itm), Fireball and Aganazzar's Scorcher from a Wand of Fire (wand05.itm), Column of Ice from a Wand of Frost (wand06.itm), Lightning from a Wand of Lightning (wand07.itm), and Flame Strike from a Wand of the Heavens (wand11.itm) are set as invocation: offensive damage.
- Cloudkill from a Wand of Cloudkill (wand13.itm) is set as invocation: battleground.
- Improved Haste from the Bracers of Blinding Strike (brac16.itm) and the Ring of Gaxx (ring39.itm), Stone to Flesh from the Ring of Earth Control and Staff of Earth (staf16.itm), Haste from Arbane's Sword (sw1h27.itm) are set as transmutation: non-combat.
- Stoneskin from Gargoyle Boots (boot12.itm) is set as transmutation: combat protection.
- Silence 15' Radius from Namarra +2 (sw1h36.itm) is set as transmutation: disabling.
- Detect Invisible from Dragonslayer (sw1h32.itm) and Albruin +1 (sw1h34) are set as divination: divination attack.
- Resist Fear via Magic Flute (brdflute.itm) is set as abjuration: specific protections
- The Wand of Lightning (misc7n.itm) had a primary school set and we add a secondary type of offensive damage
- The Wands of Fear (wand02.itm), Paralyzation (wand04.itm), and Sleep (wand08.itm) had primary schools set and we add a secondary type of disabling
- The Wand of Monster Summoning (wand10.itm) had a primary school set and we add a secondary type of conjuration
- Summoning Spells - Since many summoning spells are technically targeted at the caster, they could fail due to the caster's spell protections. They are changed to bypass spell protections. (melis03.spl, senspisu.spl, spcl621.spl, spcl923.spl, spin615.spl, spin616.spl, spin622.spl, sppr301.spl, sppr402.spl, sppr410.spl, sppr501.spl, sppr601.spl, sppr602.spl, sppr604.spl, sppr605.spl, sppr702.spl, sppr703.spl, sppr723.spl, sppr724.spl, sppr726.spl, sppr727.spl, spra305.spl, spra306.spl, spwi309.spl, spwi407.spl, spwi423.spl, spwi501.spl, spwi504.spl, spwi516.spl, spwi520.spl, spwi521.spl, spwi601.spl, spwi619.spl, spwi620.spl, spwi621.spl, spwi622.spl, spwi623.spl, spwi624.spl, spwi707.spl, spwi716.spl, spwi717.spl, spwi718.spl, spwi719.spl, spwi807.spl, spwi905.spl, spwi923.spl, spwi924.spl, spwish18.spl, spwm154.spl, sumslay.spl)
Transformation Spells Not Cleaning Up Spells
The various spells and abilities that allow party members to transform are a bit of a mess. They're pretty good about cleaning up leftover abilities if you shift to a form and then back to human, but if you start going directly between forms without returning to human and/or mixing in transformations from items (i.e. Cloak of the Sewers) you can be left with a lot of spell cruft by the time you're back to human. We patch many of the transformation spells to be more thorough in cleaning out leftover spells and abilities. This patch also corrects an oversight where the Cloak of the Wolf had no way for the wearer to return to human form prior to the expiration of the spell. (cdwolfm.itm, clck04.itm, spcl611.spl, spcl612.spl, spcl613.spl, spcl632.spl, spcl633.spl, spcl634.spl, spcl643.spl, spcl644.spl, spin122.spl, spin123.spl, spin124.spl, spin823.spl, spin852.spl, spinhum.spl, sppr731.spl, sppr732.spl, spwi491.spl)
Secret Word Fixes
Secret Word was unable to take down a Globe of Invulnerability despite its description saying it works against protections of eighth level or below. (spwi419.spl)
Sol's Searing Orb Fixes
Undead hit by Sol's Searing Orb were not getting the proper duration on their blindness (should be six rounds, 12 on a failed save). Non-undead were getting blinded for a fixed six rounds instead of 1d6 rounds. (cdsorb1.eff, cdsorb2.eff, sorb.itm, udeadbli.eff)
Black Blade of Disaster Errors
In SoA, the Black Blade of Disaster does not grant grandmastery in long swords per its description. In ToB, the blade was supposed to disintegrate targets instead of simply killing them. (blakblad.itm)
Physical Mirror and Shield of Reflection Not Very Reflective
The Shield of Reflection and the Physical Mirror spell were not accounting for all forms of missile weapons. Notably, Arrows of Ice would get through both and Physical Mirror failed to also reflect many other projectiles. (shld24.itm, sppr613.spl)
Otiluke's Resilient Sphere Fixes
Otiluke's Resilient Sphere was not working, pretty much at all. Because of misordered effects, it blocked most of its own effects and was missing quite a few anyway. The sphere should now behave pretty close to how the developers intended--because of engine limitations this is probably the closest we can get. The Sphere caused by a bounty hunter's special snares is also fixed. (spcl415.spl, spcl415a.spl, spwi413.spl, spwi413a.spl)
Polymorph Other Attacks Per Round
Polymorph Other was setting the target's attacks per round to zero, despite giving them a squirrel paw weapon. (plyrate.eff)
Monster Summoning III Fixes
When cast at level 9, there was a 99% chance of one monster being summoned and 1% chance of two, instead of the listed 60/40% split. (spwi504.spl)
Casting Mordenkainen's Sword Should Break Invisibility
Casting Mordenkainen's Sword should break invisibility. (spwi716.spl)
Symbol, Fear and Symbol, Stun Sound Effects
Symbol, Fear and Symbol, Stun were using different sound effects when cast at level 17 than at any other level. (spwi811.spl, spwi816.spl)
Power Word: Blind Doesn't Affect Allies
Power Word: Blind was only affecting enemies instead of all creatures in the area of effect. (holdsumm.pro)
If you cast Wish and select "Cast a double-length 'Time Stop' and 'Improved Alacrity' on the caster" option, the Improved Alacrity was not working as it was using the wrong opcode. The "I wish to be rich" option would also do nothing as it was giving the party 2000 gold from the genie, but the genie actually had no gold. (spwish17.spl, wish.dlg)
Flame Blade Errors
Flame blades, per the description, do 1d4 slashing damage and an additional 1d2 +4 fire damage. The damage actually being done was swapped: 1d4 fire damage and 1d2 + 4 slashing. Flame blades were also adding an undocumented +4 THAC0 bonus. (fblade.itm)
Casting Spells from Scroll Fixes
Several issues were identified with casting spells from scrolls and the Book of Infinite Spells. The common issues identified and addressed:
- Spells that could be cast at points were requiring a creature for a target (and vice-versa);
- Effects were also targeted differently than the underlying spell
- Scrolls were casting spells at an incorrect power level, causing incorrect interactions with spell protections
- Casting range between the scroll and spell disagreed, i.e. a spell that could be cast from sight range required the caster to be in touch distance when used from a scroll
- Ray of Enfeeblement lacked an icon due to a typo
(misc3a.itm, misc3a1.itm, misc3a2.itm, misc3a3.itm, misc3a4.itm, misc3a5.itm, misc3a6.itm, misc3a7.itm, misc3a8.itm, misc3a9.itm, misc3aa.itm, scrl1o.itm, scrl1u.itm, scrl2f.itm, scrl56.itm, scrl58.itm, scrl59.itm, scrl5b.itm, scrl5c.itm, scrl5d.itm, scrl5f.itm, scrl5i.itm, scrl5k.itm, scrl61.itm, scrl62.itm, scrl63.itm, scrl6j.itm, scrl6v.itm, scrl70.itm, scrl7i.itm, scrl76.itm, scrl7m.itm, scrl80.itm, scrl8c.itm, scrl8h.itm, scrl8p.itm, scrl8y.itm, scrl94.itm, scrl9h.itm, scrla1.itm, scrla3.itm, scrla6.itm, scrla7.itm, scrla8.itm, scrlai.itm, scrlaj.itm, scrlak.itm, scrlb4.itm, tooltip.2da)
Larloch's Minor Drain, Vampiric Touch Fixes
Larloch's Minor Drain and Vampiric Touch were healing the caster even if the target was not affected due to magic resistance. Both spells now only heal the caster if the target is affected. This also fixes an additional bug of Vampiric Touch being able to boost the caster's multiple times through multiple castings, though the description explicitly states this shouldn't happen. This also fixes a damage bug with the innate version of this spell (the one added as a Bhaalspawn ability and used by Foebane on hit) where it did 1d4 damage instead of 4 points, per its description. (spin104.spl, spin104a.spl, spin106.spl, spin106a.spl, spin106b.spl, spin997.spl, spin997a.spl, spin997b.spl, spwi119.spl, spwi119a.spl, spwi314.spl, spwi314a.spl, spwi314b.spl)
Protection From Normal Missiles Protecting Against Some Magical Weapons
Some magical throwing items, primarily axes and hammers, were using the same projectile as their non-magical kin. This was causing them to be erroneously blocked by the Protection from Normal Missiles spell. The projectiles for these items have been changed to magical projectiles which correctly bypass this spell. (aegis.itm, arow02.itm, ax1h05.itm, ax1h06.itm, ax1h08.itm, ax1h09.itm, ax1h16.itm, hamm06.itm, wasling.itm)
Simulacrum Restoration Exploit
Simulacrums are basically level-drained copies of the caster. As such, an exploit existed where the party could cast restoration on simulacrums to make them as powerful as the original caster. This exploit has been removed. (simulacr.spl)
Faldorn's Summon Dread Wolf Can Crash Game
Faldorn's Summon Dread Wolf ability can crash the game as it is trying to use an old BG resource that is no longer present. The spell is updated to use the BG2 dread wolf, though the spell is not scripted to be used. (spin114.spl)
Anti-Magic Ray Not Destroying All Magically Created Weapons
The anti-magic ray used by beholders and hive mothers destroyed most, but not all, magically created weapons such as flame blades and shillelaghs. The spells now cover all magically created weapons. (spin550.spl, spin779.spl, spin992.spl)
Bolt of Glory Damage Type Fixes
Bolt of Glory does missile damage, in every form--except for the bonus damage to undead, which is classed as magic damage. (boltund.eff)
Armor of Faith Issues
Armor of Faith was applying its reduction from missile damage twice and lacked damage reduction against electrical and acid damage. (dgfaith.spl, sppr111.spl)
Spells Lacking Sounds and Animations
Several spells had typos in calls to external resources, such as sound effects and animations, when cast; these typos are corrected. In a few cases, the spells referred to old BG resources that are not present in BG2 and the resources were imported from BG. (amb_e09b.wav, amb_m09a.wav, amb_m09b.wav, drgrbrht.spl, spin691.spl, spin783.spl, spin852.spl, spin893.spl, spwi995.spl)
Chant Not Affecting Enemies
Chant is supposed to confer save, attack, and damage bonuses to the party but penalize enemies. However, chant was not affecting enemies. (sppr203.spl, sppr203d.spl, sppr203e.spl)
Spells Not Setting Miscast Effects for Divine Magic
Both Abizigal's Shockwave and the Anti-Magic Ray of hive mothers cause miscast magic effects. However, in both cases, they were removing any divine spellcasting miscast effects instead of setting them. Both now properly set miscast effects for divine spells. (spin531.spl, spin550.spl)
Remove Magic Not Dispelling Feeblemind
Remove Magic is supposed to be the combat form of Dispel Magic, affecting only enemies. However, Dispel Magic removes feeblemind effects but Remove Magic did not. (spwi302.spl)
Minor Spell Turning Behaves as Spell Turning
The fifth level spell Minor Spell Turning is supposed to reflect spells of up to level four and not affect spells of fifth level or higher. However, it was affecting spells of up to level seven. (spwi522.spl)
Conjure Fire Elemental Was Not Restricted from Diviners
Conjure Fire Elemental was lacking its exclusion flag to prevent it from being learned by diviners. (spwi620.spl)
Enemy Versions of Symbol Spells Lacked Casting Sounds
Several versions of the enemy mage Symbol spells lacked casting sounds due to typos in the resource references. (spwi897.spl, spwi898.spl, spwi899.spl, spwm123.spl)
Shield Does Not Completely Protect Against Magic Missile
Per its description, the Shield Amulet is supposed to protect the user per the mage spell Shield. However, the amulet was not protecting against the Magic Missile spell. The Shield spell itself was not protecting against Magic Missiles from traps. (amul15.itm, spwi114.spl)
References to Non-Existent and Dropped Spells
Several creatures and items refer to spells that do not exist, either because the spells were dropped prior to the release of the game or typos. Where appropriate, the spells are either corrected or removed. (bhaal4a.spl, spellh01.itm, spinhum.spl, spja01.spl, sppr504.spl, sppr712.spl, sppr729.spl, spwish10.spl)
Immunities Don't Suppress All Effects
If a creature is immune to a hold effect, they frequently failed to suppress the associated effects--the hold portrait icon might still appear, or the 'Held' message might get displayed in the battle text despite the creature not actually being held. This is a very common error, and was not limited to creatures, but items and spells as well. The basic idea behind this patch is that it checks for these supplementary immunities, and adds them if they're not present. (One exception: portrait icon effects are ignored on creatures and undroppable items, as the party will never see these portrait icons.) This fix combines several smaller fixes and expands them. The immunities addressed and files patched as a result are as follows:
- Free Action: Free action is supposed to provide immunity to haste, slow, hold, change in movement rate, entangle, web, and grease effects. It's also supposed to remove any of these effects (and their icons) that are currently active. You'll notice that these files also get patched in other batches to round out their full protections. (blun30.itm, potn45.itm, ring09.itm, sper12.itm, sppr403.spl)
- Entangle: Entangle immunity should suppress the entangle icon and explicitly protect against entanglement spells. If not, a creature would be immune to the entangle itself, but still receive the armor class penalty for being entangled. (abazring.itm, aldeth.itm, bazpatrg.itm, beholder.itm, blun30.itm, chaldt01.cre, chalin01.cre, chalslay.cre, dragring.itm, freering.itm, fsspir.itm, gorair01.cre, gorair02.cre, gorchr.itm, gormistp.cre, gorstalk.cre, holdring.itm, invulner.itm, jwsuper.itm, mage05.itm, mistpo01.cre, npplat.itm, objring.itm, palring.itm, potn45.itm, ring09.itm, ring97.itm, rossring.itm, shalt01.itm, spcl415.spl, sper12.itm, spin853.spl, sppr403.spl, spwi853.spl, surehp1.itm, sw2h06.itm, sw2h13.itm)
- Grease: Grease immunity should suppress the grease icon. (blun30.itm, jwsuper.itm, potn45.itm, ring09.itm, rossring.itm, spcl415.spl, sper12.itm, spin853.spl, spwi853.spl, sw2h06.itm, sw2h13.itm)
- Slow: Slow immunity should suppress the slow icon as well as prevent 'slow' and 'slowed' from appearing in the text window. Slow immunity also adds explicit protections against slow spells--otherwise a slow immune creature would not be slowed, but still suffer the related AC and THAC0 penalties. (aldeth.itm, ammgrd01.cre, ammgrd02.cre, ammgrd03.cre, ammgrd04.cre, ammgrd05.cre, ammlegs.cre, ammonk01.cre, ammonk02.cre, ammonk04.cre, ammonk05.cre, ammonk06.cre, balelite.cre, balth.cre, bazmonk.cre, bazpatrg.itm, beholder.itm, blun30.itm, cutamgrd.cre, cutbalth.cre, dragring.itm, freering.itm, fsdragon.cre, fsspir.itm, golstone.itm, gorchr.itm, holdring.itm, invulner.itm, jwsuper.itm, killmonk.cre, killsw01.itm, kuoring.itm, mage05.itm, npplat.itm, npsw01.itm, potn45.itm, ring09.itm, ring97.itm, rossring.itm, senmonk.cre, spcl814.spl, sper12.itm, sppr403.spl, surehp1.itm, sw2h06.itm, sw2h13.itm, tobpar03.cre)
- Confusion: Confusion immunity should suppress the chaos, confusion, and rigid thinking icons as well as suppressing 'confused' and 'rigid thinking' from appearing in the text window. It should also suppress the confusion animation that plays with some confusion spells. (abazring.itm, ammonk07.cre, ammonk08.cre, amul17.itm, chalcy3.itm, chalslay.itm, chwraith.itm, demogorg.itm, devaevil.cre, devagood.cre, devast01.cre, devmon01.cre, elearb11.cre, fangel01.cre, finmel01.itm, finsol01.cre, finsol04.cre, firlch01.cre, gorfirg.itm, gorjelfu.itm, gorjelgr.itm, gormisti.itm, helljon.cre, helljon2.cre, hllich.cre, hlshade.cre, innoc.itm, ipsion.itm, killsw01.itm, leat20.itm, lichel01.cre, mage20.cre, mage20b.cre, mage20c.cre, maharper.itm, mane01.itm, mdk2gun.itm, mdk2ring.itm, objring.itm, palring.itm, planet01.cre, planevil.cre, plangood.cre, planwish.cre, potn21.itm, ppguy01.cre, ppireni2.cre, ravag03.itm, ring94.itm, ring95.itm, ring98.itm, ring99.itm, ringdemn.itm, ringkora.itm, sendai7.cre, sengua04.itm, sewyag04.cre, shalt01.itm, shararm.itm, shld25.itm, solar.cre, solar01.cre, spcl152.spl, spcl321.spl, spcl542a.spl, spcl920a.spl, spin117.spl, spin632.spl, spin783.spl, spin823.spl, spin852.spl, spin872.spl, spin906.spl, sppr508.spl, stalker.itm, sujon.cre, sujon2.cre, suraam.cre, susuneer.cre, sw1h54.itm, sw2h14.itm, sw2h21.itm, sword01.cre, telslav2.itm, trollimm.itm, tstatue.itm, uddrow50.cre, udsola01.cre, umber01.itm, umber02.itm)
- Level Drain: Level drain immunity should suppress the level drain icon, display the negative plane protection icon, and suppress 'X level(s) drained' from appearing in the text window. (abazring.itm, balth02.spl, bazpatrg.itm, bhaal3a.spl, bhaalhp1.itm, bhaalimm.itm, blun25.itm, chalslay.itm, chwraith.itm, demogorg.itm, deva.itm, devaevil.cre, devagood.cre, devast01.cre, devmon01.cre, famcat25.cre, famdus25.cre, famfai25.cre, famfer25.cre, famimp25.cre, fampsd25.cre, famqua25.cre, famrab25.cre, fangel01.cre, finmel01.itm, finsol01.cre, finsol04.cre, fsspir.itm, gorchr.itm, gorfirg.itm, gorjelfu.itm, gorjelgr.itm, gormisti.itm, hamm10.itm, hamm11.itm, holdring.itm, immcloud.itm, imoenhp1.itm, innoc.itm, invulner.itm, jonhp1.itm, jwsuper.itm, killsw01.itm, mel01.itm, objring.itm, palring.itm, planet01.cre, planevil.cre, plangood.cre, planwish.cre, ppguy01.cre, ravag03.itm, ring94.itm, ring95.itm, ring97.itm, ring98.itm, ring99.itm, rossring.itm, sengua04.itm, shalt01.itm, solar.cre, solar01.cre, spcl152.spl, spcl242.spl, spcl321.spl, spcl415.spl, spcl741.spl, spcl917.spl, spin117.spl, spin783.spl, spin852.spl, spin853.spl, sppr413.spl, spwi853.spl, stalker.itm, surehp1.itm, sw1h61.itm, sw1h69.itm, telslav2.itm, tstatue.itm, vampreg1.itm, vampreg2.itm, vvarkan.cre, vvcat.cre, vvryokoi.cre)
- Hold: There are two types of effects which cause hold, so immunity must be provided against both. In addition, the hold icon must be suppressed, the 'held' string should not appear in the text window, and the spinning animations caused by mind flayer hold should be suppressed. (aldeth.itm, amul17.itm, antiweb.itm, beholder.itm, bhaalhp1.itm, bhaalimm.itm, blun30.itm, chalcy3.itm, chalslay.itm, chwraith.itm, demglab.cre, demglab2.cre, demglasu.cre, demilich.itm, demogorg.itm, dragring.itm, elemhydr.cre, elemimix.cre, elemogre.cre, elemsunn.cre, elemzaam.cre, enddem01.cre, enddem02.cre, enddem03.cre, enddem04.cre, enddem05.cre, finmel01.itm, finsol04.cre, freering.itm, golbra.itm, golcla.itm, golfle.itm, golmag01.itm, golstone.itm, gorfirg.itm, gorjelfu.itm, gorjelgr.itm, gormisti.itm, icbone01.cre, immchs.itm, imoenhp1.itm, innoc.itm, ipsion.itm, irongol.itm, jondem01.cre, jondem02.cre, jondem03.cre, jondem04.cre, jondem05.cre, jwsuper.itm, killsw01.itm, kuoring.itm, lich.itm, mage05.itm, magiweb.itm, mel01.itm, mindva01.cre, mindvam.cre, minhp1.itm, npplat.itm, objring.itm, palring.itm, plytroll.itm, potn45.itm, ravag03.itm, ring09.itm, ring94.itm, ring95.itm, ring97.itm, ring98.itm, ring99.itm, ringkora.itm, rossring.itm, sengua04.itm, shalt01.itm, shld25.itm, spcl152.spl, spcl233b.spl, spcl242.spl, spcl321.spl, sper07.itm, sper12.itm, spin117.spl, spin872.spl, spin906.spl, sppr403.spl, sppr508.spl, stalker.itm, surehp1.itm, sw1h27.itm, sw2h06.itm, sw2h13.itm, sword01.cre, telslav2.itm, torgal.cre, torgal2.cre, torgal3.cre, trollall.itm, trollimm.itm, udvamp.cre, vampreg.itm, vampreg1.itm, vampreg2.itm)
- Fear: There are a couple of effects which can cause fear or panic, so all must be guarded against. The icon for panic and the string 'panic' are suppressed and the resist fear icon should be displayed. Fear immunity also removes existing fear effects. In v10, beta core fixes introduces a unique spinny-head animation for Horror spells so that it's no longer blocked by hold immunity. (abazring.itm, ammonk07.cre, ammonk08.cre, amsmith.cre, amul17.itm, balth.cre, bazdra02.cre, bazpatrg.itm, bhaalhp1.itm, bhaalimm.itm, brdflute.itm, cdhorror.vvc, chalcy3.itm, chalslay.itm, chwraith.itm, clck30.itm, ddguard1.cre, ddguard2.cre, ddguard3.cre, ddguard4.cre, ddguard5.cre, ddguard6.cre, ddguard7.cre, demogorg.itm, elemhydr.cre, finmel01.itm, firlch01.cre, fsspir.itm, golbra01.cre, golbra.itm, golcla.itm, golfle.itm, golmag01.itm, golstone.itm, gorair01.cre, gorair02.cre, gorcamb6.cre, gorcamb7.cre, gorchr.itm, gorfirg.itm, gorjelfu.itm, gorjelgr.itm, gormisti.itm, gormistp.cre, gorstalk.cre, hamm11.itm, helljon.cre, helljon2.cre, helm14.itm, hgber01.itm, hgfel01.cre, hllich.cre, hlshade.cre, holdring.itm, igolem01.cre, imoenhp1.itm, innoc.itm, invulner.itm, ipsion.itm, irongol.itm, jonhp1.itm, kaypal02.cre, kaypal03.cre, kaysmg01.cre, kaysmg02.cre, kaysmg03.cre, killsw01.itm, lichel01.cre, mage20.cre, mage20b.cre, mage20c.cre, maharper.itm, mane01.itm, mdk2gun.itm, mdk2ring.itm, mdog1.itm, mel01.itm, minhp1.itm, miscbc.itm, mistpo01.cre, nofear.itm, objring.itm, palring.itm, potn21.itm, ppireni2.cre, ravag03.itm, ring94.itm, ring95.itm, ring98.itm, ring99.itm, ringdemn.itm, ringkora.itm, sarvie01.cre, sendai7.cre, sengua04.itm, sewyag04.cre, shalt01.itm, shararm.itm, spcl152.spl, spcl221.spl, spcl222.spl, spcl321.spl, spcl542a.spl, spcl920a.spl, spcl921a.spl, spec01.itm, spec02.itm, spin105.spl, spin117.spl, spin676.spl, spin823.spl, spin872.spl, spin891.spl, spin906.spl, sppr108.spl, spwi205.spl, spwi210.spl, spwi411.spl, stalker.itm, sujon.cre, sujon2.cre, suraam.cre, surehp1.itm, susuneer.cre, sw1h32.itm, sword01.cre, telslav2.itm, torgal.cre, torgal2.cre, torgal3.cre, trollimm.itm, tstatue.itm, uddrow50.cre, udgolem.cre, udlesa.cre, vampreg.itm, vampreg1.itm, vampreg2.itm)
- Charm: Charm immunity should prevent charm, dire charm, and domination portrait icons as well as suppressing 'charmed', 'dire charmed' and 'dominated' from the text window. It should also prevent the visual effect normally associated with charm as well as displaying the mind shield icon. (ammgrd01.cre, ammgrd02.cre, ammgrd03.cre, ammgrd04.cre, ammgrd05.cre, ammlegs.cre, ammonk01.cre, ammonk02.cre, ammonk04.cre, ammonk05.cre, ammonk06.cre, ammonk07.cre, ammonk08.cre, amul17.itm, balelite.cre, balth.cre, bazmonk.cre, bhaalhp1.itm, bhaalimm.itm, c6guen.cre, chalcy3.itm, chalslay.itm, chevil02.cre, chevil06.cre, chevil07.cre, chgood04.cre, chgood05.cre, chgood09.cre, chwraith.itm, cuphaer.cre, cutamgrd.cre, cutbalth.cre, demogorg.itm, devaevil.cre, devagood.cre, devast01.cre, devmon01.cre, dragring.itm, drow05.cre, fangel01.cre, finmel01.itm, finsol01.cre, finsol04.cre, golbra01.cre, golbra.itm, golcla.itm, golfle.itm, golmag01.itm, golstone.itm, gorair01.cre, gorair02.cre, gorcamb6.cre, gorcamb7.cre, gorfirg.itm, gorjelfu.itm, gorjelgr.itm, gormisti.itm, gormistp.cre, gorstalk.cre, helm06.itm, hgber01.itm, hgfel01.cre, icbone01.cre, immchs.itm, imoenhp1.itm, innoc.itm, ipsion.itm, irongol.itm, jonhp1.itm, killmonk.cre, killsw01.itm, maharper.itm, mane01.itm, mdk2gun.itm, mdk2ring.itm, mdog1.itm, mel01.itm, mindva01.cre, mindvam.cre, minhp1.itm, miscbc.itm, mistpo01.cre, npchan.itm, objring.itm, palring.itm, planet01.cre, planevil.cre, plangood.cre, planwish.cre, potn21.itm, ppguy01.cre, ravag03.itm, reaver.itm, ring95.itm, ring98.itm, ringdemn.itm, sendai.cre, sendai2.cre, sendai3.cre, sendai4.cre, sendai5.cre, sendai6.cre, sendai7.cre, sendai8.cre, sengua04.itm, senmonk.cre, shalt01.itm, shld25.itm, solar.cre, solar01.cre, spcl152.spl, spcl221.spl, spcl233b.spl, spcl321.spl, spcl817.spl, sper07.itm, spin117.spl, spin121.spl, spin632.spl, spin783.spl, spin823.spl, spin852.spl, spin872.spl, spin906.spl, sppr508.spl, staf11.itm, stalker.itm, surehp1.itm, sw1h35.itm, sw1h54.itm, sw2h14.itm, sword01.cre, telslav2.itm, tobpar03.cre, torgal.cre, torgal2.cre, torgal3.cre, trollimm.itm, tstatue.itm, udgolem.cre, udphae01.cre, udsola01.cre, udvamp.cre, vampreg.itm, vampreg1.itm, vampreg2.itm)
- Haste: Haste immunity should prevent the haste icon and the 'hasted' message in the text window. Explicit protections against some haste spells are added--otherwise the haste spell would fail, but the target would still become fatigued. (ammgrd01.cre, ammgrd02.cre, ammgrd03.cre, ammgrd04.cre, ammgrd05.cre, ammlegs.cre, ammonk01.cre, ammonk02.cre, ammonk04.cre, ammonk05.cre, ammonk06.cre, balelite.cre, balth.cre, bazmonk.cre, blun30.itm, cutamgrd.cre, cutbalth.cre, finmel01.cre, killmonk.cre, potn45.itm, ring09.itm, senmonk.cre, spcl521.spl, spcl814.spl, sper12.itm, sppr403.spl, tobpar03.cre)
- Disease: Disease immunity should prevent the nauseated icon as well as the 'stricken by a foul disease' and 'diseased' messages in the text window. If disease immunity is also coupled with poison immunity, all poison damage is suppressed. (demogorg.itm, finmel01.itm, minhp1.itm, misc8j.itm, ravag03.itm, ring39.itm, sengua04.itm, spcl814.spl, sword01.cre, tstatue.itm)
- Poison: Poison immunity can come in two forms, either as a reduction of poison damage to zero or an immunity to the poison effect itself. Unfortunately neither by themselves actually confer full poison immunity, so they both must be added. Poison immunity should also suppress the poison and bleeding icons, strings 'poison' and 'poisoned', and display the protection from poison icon. (amcst02.cre, amcst03.cre, ammgrd01.cre, ammgrd02.cre, ammgrd05.cre, ammlegs.cre, ammonk01.cre, ammonk02.cre, ammonk03.cre, ammonk07.cre, ammonk08.cre, amul22.itm, balelite.cre, balth.cre, barl.cre, barlfl.itm, bazdra02.cre, bazdra03.cre, bazmonk.cre, bazpatrg.itm, bhaalhp1.itm, bhaalimm.itm, chalslay.itm, chwraith.itm, cutamgrd.cre, cutbalth.cre, demogorg.itm, demosum1.cre, deriny01.cre, devaevil.cre, devagood.cre, devast01.cre, devmon01.cre, dimp01.cre, elemprin.itm, fangel01.cre, finmel01.itm, finsol01.cre, finsol04.cre, fsdragon.cre, fsspir.itm, golbra01.cre, golbra.itm, golcla01.cre, golcla.itm, golem01.cre, golfle.itm, golice01.cre, goljug01.cre, golmag01.itm, golsan01.cre, golsto01.cre, golstone.itm, gorbat1.cre, gorbat2.cre, gorbat3.cre, gorbat4.cre, gorcamb6.cre, gorcamb7.cre, gorfirg.itm, gorgua01.cre, gorgua02.cre, gorjelfu.itm, gorjelgr.itm, gormisti.itm, gormistp.cre, gormistp.itm, gorwom01.cre, gorwom03.cre, gorwom04.cre, helm30.itm, hgber01.itm, hgfel01.cre, holdring.itm, icbone01.cre, imoenhp1.itm, innoc.itm, invulner.itm, irongol.itm, killmonk.cre, mdog1.itm, mel01.itm, melsum05.cre, mindva01.cre, mindvam.cre, minhp1.itm, mistpo01.cre, morsword.itm, nishrusu.cre, objring.itm, planet01.cre, planevil.cre, plangood.cre, planwish.cre, ppguy01.cre, ppiron.cre, pudden01.cre, pudden02.cre, ravag03.itm, ring39.itm, ring46.itm, ring94.itm, ring95.itm, ring98.itm, ring99.itm, ringdemn.itm, ringkora.itm, scrl08.itm, sengua04.itm, senmonk.cre, shalt01.itm, shararm.itm, solar.cre, solar01.cre, spcl221.spl, spcl415.spl, spcl818.spl, spcl924.spl, spin853.spl, spwi853.spl, stalker.itm, surehp1.itm, sw1h34.itm, telimp1.cre, telpit1.cre, telslav2.itm, tobpar03.cre, tomegol2.cre, tomegol3.cre, trolldie.itm, tstatue.itm, udgolem.cre, udvamp.cre, vampreg.itm, vampreg1.itm, vampreg2.itm)
- Web: Web immunity should prevent the web icon and the 'held' string in the message window. It should also protect against the hold that accompanies web. (abazring.itm, bazpatrg.itm, chaldt01.cre, chalin01.cre, chalslay.cre, fsspir.itm, gorchr.itm, gormistp.cre, gortan3.cre, holdring.itm, invulner.itm, jwsuper.itm, killsw01.itm, mistpo01.cre, npplat.itm, potn45.itm, rossring.itm, sw2h06.itm, sw2h13.itm)
- Spell Immunities: Some creatures are immune to spells of less than level X and some items and spells provide the same immunities. However, the effects that grant these immunities often don't protect against spells that target with projectiles; i.e. one of the most commonly known oversights is a (minor) globe of invulnerability not protecting against skull trap. (aurstaf.itm, balth.cre, bazpatrg.itm, demilich.itm, demogorg.itm, finmel01.itm, fsspir.itm, golmag01.cre, holdring.itm, icbone01.cre, invulner.itm, jwglobe.spl, lich.itm, mageamul.itm, misc73.itm, potn33.itm, rakring.itm, ravag03.itm, scrl07.itm, spcl415a.spl, spellh01.itm, spwi406.spl, spwi413a.spl, spwi602.spl, spwm126.spl, ucounter.cre, uhostile.cre)
- Petrification: Immunity to petrification should suppress the 'petrified' string from being displayed. (balth02.spl, bazdra02.cre, chaldt01.cre, chalin01.cre, chalslay.cre, chalslay.itm, chwraith.itm, demogorg.itm, demosum4.cre, devaevil.cre, devagood.cre, devast01.cre, devmon01.cre, elemhydr.cre, elemimix.cre, elemogre.cre, elemsunn.cre, elemzaam.cre, fangel01.cre, finsol01.cre, finsol04.cre, golstone.itm, gorair01.cre, gorair02.cre, gorbat1.cre, gorcamb.cre, gorstalk.cre, hgber01.itm, immcloud.itm, innoc.itm, jonhp1.itm, mdk2gun.itm, mdk2ring.itm, minhp20.itm, objring.itm, planet01.cre, planevil.cre, plangood.cre, planwish.cre, potn38.itm, ppguy01.cre, ravag03.itm, ring94.itm, ring98.itm, ringkora.itm, scrl15.itm, shalt01.itm, solar.cre, solar01.cre, spcl415.spl, spcl917.spl, spin853.spl, spwi108.spl, spwi853.spl, stalker.itm, surehp1.itm, sw1h71.itm, sword01.cre, telpit1.cre, telslav2.itm)
- Kill Target: Immunity to kill target effects (such as those used by vorpal weapons) should suppress the 'death' and 'vorpal hit' strings from being displayed. (ammonk07.cre, ammonk08.cre, bazdra01.cre, bazdra02.cre, bhaalhp1.itm, bhaalimm.itm, chalrv01.cre, chalslay.cre, demilich.cre, demogorg.itm, finmel01.itm, golice01.cre, gorchr.itm, gorsal.cre, hgmnd2.cre, hgmound.cre, holdring.itm, imoenhp1.itm, invulner.itm, jonhp1.itm, mel01.itm, minhp1.itm, sengua04.itm, shararm.itm, spcl917.spl, sw1h71.itm, tstatue.itm, yaga01.cre)
- Invisibility: Some special creatures are not allowed to be turned invisible. These creatures should suppress the 'invisible' string from being displayed. (bazpatrg.itm, fsspir.itm, gorchr.itm, holdring.itm, invulner.itm, surehp1.itm)
- Silence: Immunity to silence effects should suppress the Silence icon as well as the 'silence' and 'silenced' strings. (ammonk07.cre, ammonk08.cre, amul21.itm, amul28.itm, dragring.itm, firlch01.cre, gorair01.cre, gorair02.cre, gorstalk.cre, helljon.cre, helljon2.cre, hgber01.itm, hllich.cre, hlshade.cre, lichel01.cre, mage20.cre, mage20b.cre, mage20c.cre, minhp1.itm, ppireni2.cre, sendai7.cre, sengua04.itm, sewyag04.cre, spwi219.spl, sujon.cre, sujon2.cre, suraam.cre, susuneer.cre, sw1h50.itm, telqua1.cre, telqua2.cre, tstatue.itm, uddrow50.cre)
- Blindness: Immunity to blindness should suppress the Blind icon as well as the 'blind' and 'blinded' strings. (sword01.cre, npmisc1.itm)
- Deafness: Immunity to deafness should suppress the Deaf icon as well as the 'deaf' string. (sword01.cre)
- Slay: Immunity to slay should suppress the Dying icon. (balth02.spl, spcl415.spl, spcl917.spl, spin853.spl, sppr409.spl, spwi853.spl, sw1h71.itm)
- Detect Invisible: Some special invisible creatures are immune to being detected but were not suppressing the 'detect invisible' string. (swordi.itm, ucounter.cre, uhostile.cre)
- Polymorph: Immunity to polymorph is difficult, as most of the associated effects with a polymorph (creation of a magical weapon, stat changes, etc.) are legitimate effects for other spells and can't be blocked. In this case, spells that could be used by the party to polymorph enemy creatures are blocked explicitly. (bazdra02.cre,bazdra03.cre, bhaalhp1.itm, bhaalimm.itm, chaldt01.cre, chalin01.cre, chalslay.cre, demilich.itm, demogorg.itm, demsuc01.cre, deriny01.cre, finmel01.itm, finsol04.cre, gorbat1.cre, gorbat2.cre, gorcamb.cre, gormistp.cre, gorsuc01.cre, gortan2.cre, imoenhp1.itm, jonhp1.itm, lich.itm, mel01.itm, minhp1.itm, mistpo01.cre, ravag03.itm, ringdemn.itm, sengua04.itm, spcl415.spl, spin853.spl, spwi853.spl, sword01.cre, telpit1.cre, tstatue.itm)
- Sleep: Immunity to sleep should suppress the Sleep icon as well as the 'sleep' string. (abazring.itm, amul17.itm, barl.cre, bhaalhp1.itm, bhaalimm.itm, chalcy3.itm, chalslay.itm, chevil02.cre, chevil06.cre, chevil07.cre, chgood04.cre, chgood05.cre, chgood09.cre, chwraith.itm, demilich.itm, demogorg.itm, dragring.itm, finmel01.itm, finsol04.cre, golbra.itm, golcla.itm, golfle.itm, golmag01.itm, golstone.itm, gorfirg.itm, gorjelfu.itm, gorjelgr.itm, gormisti.itm, gormistp.cre, hgber01.itm, icbone01.cre, immchs.itm, immcloud.itm, imoenhp1.itm, innoc.itm, ipsion.itm, irongol.itm, jondem05.cre, jonhp1.itm, killsw01.itm, lich.itm, mel01.itm, mindva01.cre, mindvam.cre, minhp1.itm, mistpo01.cre, objring.itm, palring.itm, plytroll.itm, ravag03.itm, ring92.itm, ring94.itm, ring95.itm, ring98.itm, ring99.itm, ringkora.itm, sengua04.itm, shalt01.itm, spcl152.spl, spcl321.spl, spin117.spl, spin783.spl, spin823.spl, spin852.spl, spin872.spl, spin906.spl, sppr508.spl, stalker.itm, surehp1.itm, sword01.cre, telslav2.itm, torgal.cre, torgal3.cre, trollall.itm, trollimm.itm, tstatue.itm, udvamp.cre, vampreg.itm, vampreg1.itm, vampreg2.itm)
- Stun: Immunity to stun should suppress the Stun icon as well as the 'stun' and 'stunned' strings. (abazring.itm,aldeth.itm, amul17.itm, beholder.itm, bhaalhp1.itm, bhaalimm.itm, chalcy3.itm, chaldt01.cre, chalin01.cre, chalslay.cre, cuphaer.cre, demogorg.itm, dragring.itm, drow05.cre, elearb11.cre, elemhydr.cre, elemimix.cre, elemogre.cre, elemsunn.cre, elemzaam.cre, finmel01.itm, finsol04.cre, firlch01.cre, freering.itm, gorfirg.itm, gorjelfu.itm, gorjelgr.itm, gormisti.itm, gormistp.cre, helljon.cre, helljon2.cre, hgber01.itm, hllich.cre, hlshade.cre, hslaywpn.itm, imoenhp1.itm, invulner.itm, ipsion.itm, jwsuper.itm, killsw01.itm, lichel01.cre, mage05.itm, mage20.cre, mage20b.cre, mage20c.cre, mel01.itm, minhp1.itm, mistpo01.cre, npsw01.itm, objring.itm, palring.itm, plytroll.itm, ppireni2.cre, ravag03.itm, ring95.itm, ring99.itm, rossring.itm, sendai7.cre, sengua04.itm, sewyag04.cre, shalt01.itm, shararm.itm, slayerwp.itm, spcl152.spl, spcl321.spl, spcl542a.spl, spcl920a.spl, spin783.spl, spin852.spl, spin872.spl, spin906.spl, sppr508.spl, stalker.itm, sujon.cre, sujon2.cre, suraam.cre, surehp1.itm, susuneer.cre, sw2h06.itm, sword01.cre, torgal.cre, torgal3.cre, trollall.itm, tstatue.itm, uddrow50.cre, udphae01.cre, udsilver.cre, udsola01.cre)
- Intelligence Drain: Immunity to intelligence drain should suppress te 'devour brain' and 'intelligence modification' strings. (sword01.cre, ipsion.itm)
Joinable NPC Error Roundup
Many of the joinable NPCs have errors in their creature files, which are outlined below:
- Aerie - Aerie had an extra star in clubs at level 7 mage/7 cleric. Aerie's spellbook lacked Flame Blade. (aerie6.cre, aerie7.cre, aerie9.cre, aerie10.cre, aerie11.cre, aerie12.cre)
- Anomen - Anomen was shorted four proficiency stars at every level; Fixpack bumps up his sword and shield from one to two stars. Two stars are moved into spears even though Anomen can no longer use them since dualing to cleric (he mentions his prowess with spears in banter). At low levels the last point missing goes to staves; at higher levels where he already has staff proficiency he receives a second star in war hammers. Anomen has a non-zero value in his 'specifics' field, unlike all other joinable NPCs which can cause him to erroneously respond (or fail to respond) to group scripting actions. At his lowest level incarnation, Anomen's save vs. breath is wrong. Anomen retains access to Unholy Blight and Unholy Word if his alignment changes to good as part of his quest; these spells are now removed from his spellbook when his alignment changes. If Sir Anomen was killed, upon resurrection he would lose his title and become Anomen again due to a bad timing mode in the effect that changes his name. And finally, Anmoen had the druid-only Fire Seeds spell in his spellbook. (anom25.bcs, anomen.bcs, anomen6.cre, anomen7.cre, anomen8.cre, anomen9.cre, anomen10.cre, anomen12.cre, cdlv3na.spl, cdlv7na.spl, cdrm313.eff, cdrm314.eff, cdrm710.eff, cdrm715.eff, spin678.spl)
- Cernd - Cernd is missing a star in single weapon style at level 12. His level 13 versions also had some leftover BG-style proficiencies, which are removed. Cernd also had the cleric-only spells of Mental Domination, Champion's Strength, and Zone of Sweet Air in his spellbook. At high levels in SoA and ToB, Cernd's script was not assigned; among other things it prevented Cernd's SoA quests from starting if he was picked up at level 13 or above.. (cernd10.cre, cernd12.cre, cernd13.cre, cernd13b.cre, cernd14.cre)
- Edwin - All versions of Edwin have more memorized spell slots than he should. Edwin's soundset was not completely switching over when he becomes female. His animation cycles as a female can cause him to appear to glide, especially when under the effects of a spell that changes his movement rate. (edwin7.cre, edwin9.cre, edwin11.cre, edwin12.cre, edwin13.cre, edwin15.cre, edwin.bcs, edwinj.dlg)
- Haer'Dalis - Haer'Dalis has no pickpocketing ability at all. One of his high-level versions had no spells in his spellbook. (haer10.cre, haer11.cre, haer13.cre, haer15.cre, haer19.cre)
- Imoen - Post-Spellhold, Imoen's biography refers to her containment in the opening dungeon as if it was still current and she lost her battlecry sound as well. In her low-level versions her THAC0 is off by a point. In one of the post-Spellhold versions, she is not assigned her script. Imoen was shortchanged thieving points and gets boosts to her pickpocketing, open locks, and detect/disarm traps abilities. Imoen is short one proficiency star at all levels, and short two in her level 13 mage/7 thief versions. Imoen receives a star in short swords at all levels and one in single weapon style at higher levels. (imoen10.cre, imoen15.cre, imoen211.cre, imoen213.cre)
- Jaheira - If Jaheira joins at level 9 fighter/12 druid, her dexterity is 14. In all other versions of Jaheira her dexterity is 17. Jaheira is missing a proficiency star at level 9 fighter/12 druid and 10 fighter/12 druid. The missing point is allocated to scimitars, increasing her proficiency from one to two stars. Jaheira has an incorrect THAC0 score when joining the party that would correct itself at her next level-up. Jaheira had access to the cleric-only spells Remove Fear, Zone of Sweet Air, Mental Domination, and Champion's Strength. (jaheir7.cre, jaheir8.cre, jaheir11.cre, jaheir12.cre, jahei12b.cre, jahei14.cre)
- Jan - Jan was shorted thieving points and receives boosts in set trap, open locks, detect illusion, and detect/disarm traps. Jan was also not receiving his bonus spell for being a specialist mage. (jan8.cre, jan10.cre, jan11.cre, jan12.cre, jan15.cre)
- Keldorn - Keldorn is missing two proficiency stars at level 9 in long sword. At every level, Keldorn's saves are two points better than they should be. Due to a typo in his dialogue that sets a variable, Keldorn may be unable to rejoin if he leaves after complaining to go visit his family. (keldor8.cre, keldor9.cre, keldor10.cre, keldor12.cre, keldor14.cre, keldorj.dlg)
- Mazzy - Mazzy's soundset was lacking a few entries. Mazzy has an extra proficiency star at levels 9 and 12; the star is removed from her short sword proficiency. (mazzy8.cre, mazzy9.cre, mazzy11.cre, mazzy12.cre, mazzy15.cre)
- Minsc - Minsc had no spells in his spellbook. (minsc8.cre, minsc9.cre, minsc10.cre, minsc12.cre)
- Nalia - Nalia is shorted one proficiency star at all levels. At levels below 4 thief/11 mage she gets a star in dart; at levels above this she gets a star in slings as she already has a dart proficiency. In versions of Nalia from level 12 mage/4 thief and up, Nalia's save vs. death is too high. The level 12 mage/4 thief version has an additional error: the quantity in her stack of arrows is set to 0. Some versions of Nalia have more memorized spell slots than she should. (nalia8.cre, nalia10.cre, nalia11.cre, nalia13.cre, nali15.cre, nali18.cre)
- Sarevok - Sarevok's soundset is not completely switching over if he changes alignment. Sarevok's save vs. breath was also too low. (sarev25.bcs, sarevok.cre)
- Valygar - In one of Valygar's incarnations, he's a level 11 ranger with 800,000 experience points. With that much XP, he should only be level 10 and his level is changed to correctly match his XP total. Valygar had no spells in his spellbook. (valyg8.cre, valyg9.cre, valyg11.cre, valyg12.cre, valyg14.cre)
- Viconia - Viconia is short one proficiency star at all levels, and two stars short at levels greater than 12. She gets a star in sword and shield at all levels, and a second star in flails at levels greater than 12. Viconia no longer knows Holy Smite (good characters only) and Fire Seeds (druids only), but should know Flame Blade. At low levels, Viconia has an incorrect secondary script assigned. (viconi6.cre, viconi8.cre, viconi9.cre, viconi11.cre, viconi13.cre, viconi16.cre)
- Yoshimo - Yoshimo has too many thieving points for his level and kit, and his stealth scores are bumped down to compensate. If Yoshimo dies from a petrification attack, he can drop an extra heart. Yoshimo could also be kept post-Spellhold (the geas should kill him) and this exploit is now closed. (yoshi7.cre, yoshi8.cre, yoshi10.cre, yoshi11.cre, yoshi12.cre, yoshimo.bcs, yoshimox.bcs)
In addition to the above, an additional bug with joinable NPCs is fixed. When one of the BioWare NPCs joins the party, the engine looks up which specific version of the creature to join the party in a table based on the PC's level. However, the table ended at level 25, so NPCs joining in SoA when the PC's level was higher than 25 would use their lowest-level version instead of their highest. The table is now extended so that they use their highest-level incarnation in these circumstances. (npclevel.2da)
Common Creature Fix Roundup
- Soundset Fixes (individuals) - Individual creatures needed fixes to their soundsets (i.e. battle cries, death lines, etc.). Creatures affected are Adalon (strref #60724 and #60741, udsilver.cre), Am-Si (amsi.cre), Damien (gpthief1.cre), Irenicus-as-Slayer in the SoA finale (hellslay.cre), two mind flayers (melsum06.cre, mindal01.cre), Parisa (vvparis.cre), orcs in Saradush (sarculto.cre, sarorc01.cre, saroro01.cre, sarrein1.cre, sartro01.cre, sartro03.cre), duergar sapper (sewdue02.cre), monk (ammonk05.cre), Nerit (c6nerit.cre), sahuagin (chevil04.cre), Cowled Enforcer (cowenf1.cre), elven mage (daelf.cre), Roenall soldier (kproen05.cre), pirate mage (ppmag01.cre), mage (sargrd06.cre), elven warrior (suelf8.cre, suelfw6.cre), servant (ttser2.cre), war elf (udelf05.cre), shadow thief (vvshad2.cre), lieutenant mage (yaga02.cre), cleric of Talos (yssold16.cre)
- Soundset Fixes (groups) - Many similar creatures share soundsets, and these needed some fixes as well. In some cases the soundsets are attached to specific creature animations (i.e. orcs with bows as opposed to just orcs). Creatures affected are slimes1 (strref #5962), chickens (achk.2da), carrion crawlers (mcwl.2da), djinn (mdjl.2da), goblin elite (axes and bows) (mgo3.2da, mgo4.2da), lizard men (casters) (mli3.2da), blue myconids (mmy2.2da), orcs (bow, ranged) (mor2.2da, mor4.2da), frost salamanders (msa2.2da), shriekers (mshr.2da), armored skeletons (no helmet) (mskt.2da), small spiders (msps.2da), small trolls (mtrs.2da), pseudo dragons (mwfm.2da), water weirds (mwwe.2da), and yuan-ti elites (myu2.2da).
- Spellbook Fixes - Spells such as Holy Smite, Holy Word, Unholy Blight, and Unholy Word have alignment-based restrictions. The first two can not be learned or used by evil priests, and the latter two by good priests. In addition, divine spells can also be flagged as restricted from cleric/paladins or druid/rangers. Several creatures and items refer to spells that do not exist, either because the spells were dropped prior to the release of the game or typos. These spells were removed from spellbooks and, if memorized, substituted for another spell. (aerbod01.cre, ammajira.cre, amcarras.cre, amelm01.cre, chgood09.cre, drow06.cre, heartg3.cre, heartg4.cre, heartg5.cre, jael01.cre, jatermin.cre, planevil.cre, ppumb01.cre, pries18b.cre, slmage2.cre, sppain.cre, uddrow19.cre, vakola.cre)
- Incorrect Flags - A handful of creatures that are asleep were not flagged as in the sleeping state, and a handful of visible creatures were flagged as invisible. The former will likely have little to no impact, but the latter cases were unselectable and untargetable even though they were fully visible. The Sea Zombie Lord was flagged as everything. (arnman11.cre, arnwar03.cre, sahzomb.cre, sleepdw.cre, sleepfh.cre, sleepmh.cre)
- Creature Racial Fixes - Various creatures had the wrong race set, which could affect how items and
spells affected them. In a few cases the race was clearly wrong, but there
was not an exact match to which to change so a 'best fit' was selected.
- Changed to Human: bdturm03.cre, clcoti01.cre, cowenf1.cre, cowenf3.cre, cowenf4.cre, eyevig01.cre, firmag01.cre, fsmage01.cre, fsmage02.cre, fsmage03.cre, hllayen.cre, hspectr2.cre, riftg03.cre, sahbeh03.cre, slvic02.cre
- Changed to Elf: alufie01.cre, arnman07.cre, bounha.cre, chevil09.cre, copamb03.cre, csiren.cre, csjon.cre, cujon.cre, cujon2.cre, cujon3.cre, cujon4.cre, d1mothel.cre, demfig02.cre, dpjon01.cre, dpjon02.cre, dream2.cre, driren.cre, drjon.cre, eyesnt01.cre, gorsta02.cre, gorsta09.cre, gorsta11.cre, harpass1.cre, helljon.cre, helljon2.cre, hlarch.cre, hspectr1.cre, hspectr3.cre, jade1.cre, jahei1.cre, jarev1.cre, jon1.cre, life01.cre, life02.cre, life03.cre, life04.cre, mgappr01.cre, ppdra2.cre, ppdradee.cre, ppireni1.cre, ppireni2.cre, ppsuna.cre, rielev.cre, senani01.cre, senani02.cre, sendro01.cre, sendro02.cre, senfod01.cre, senfod02.cre, sengua01.cre, senken01.cre, suelf10.cre, sujon.cre, sujon2.cre, suna.cre, thraxi.cre, tolmag02.cre, valran01.cre
- Changed to Half-Elf: beast.cre, dkhalid.cre, dkhalid2.cre, kaysmg01.cre, lin.cre, shank.cre
- Changed to Dwarf: d1mothdw.cre, druff2.cre, duemag01.cre, duemag02.cre, gorsta04.cre, sardw01.cre, sardw02.cre, sleepdw.cre, tobpar05.cre
- Changed to Halfling: bbegg2.cre, chgood01.cre, d1mothha.cre, disrup01.cre, escort2.cre, escort2a.cre, mourner6.cre, sarbha02.cre, sarhal.cre, trevil01.cre, wellyn.cre
- Changed to Gnome: eyesek01.cre, udsvir07.cre, udsvir08.cre
- Changed to Basilisk: eyegor01.cre
- Changed to Gibberling: gibber01.cre, gibbersu.cre, fsgibb.cre, ttgibb.cre
- Changed to Gnoll: hlmafer.cre
- Changed to Hobgoblin: hobeli01.cre, hobgob01.cre, hobgobsu.cre
- Changed to Kobold: fsgobl.cre, icgob03.cre, icgob04.cre
- Changed to Ogre: ceglut.cre, gorsta12.cre
- Changed to Skeleton: sahskel.cre, skelwa02.cre, skelwa03.cre, skelwasu.cre
- Changed to Slime: slifis01.cre, slifis02.cre
- Changed to Fairy: hamasu.cre, kslave01.cre, rspirit1.cre
- Changed to Lycanthrope: aewere2.cre, aewere3.cre, aewere4.cre, aewere5.cre, aewere6.cre
- Changed to Mind Flayer: gormind.cre, mindul01.cre
- Changed to Otyugh: otyugh01.cre
- Changed to Rakshasa: rakruh01.cre
- Changed to Troll: kptrol01.cre, kptrol02.cre, kptrol03.cre, kptrol04.cre, kptrol05.cre, kptrol06.cre, trolde01.cre, trolde02.cre, trolfr01.cre, trolfr02.cre, trolgi01.cre, trolgi02.cre, trolic01.cre, trolic02.cre, trolic03.cre, trolic04.cre, troll01.cre, troll02.cre, troll03.cre, trollens.cre, trollsm2.cre, trolsi01.cre, trolsi02.cre, trolsn01.cre, trolsn02.cre, trolsp01.cre, trolsp02.cre, troluo01.cre
- Changed to Sahuagin: sahangu.cre
- Changed to Specter: bodfgt01.cre, bodfgt02.cre, drshsp01.cre, elearb01.cre, elearb02.cre, elearb03.cre, elearb04.cre, elearb05.cre, elearb06.cre, elearb07.cre, elearb08.cre, elearb09.cre, elearb10.cre, elearb11.cre, elepuz01.cre, elepuz02.cre, elepuz03.cre, elepuz04.cre, senstalk.cre, stalke.cre
- Changed to Wraith: banshe01.cre, eyeded01.cre, firmon01.cre
- Changed to Mist: haksu.cre, nishrusu.cre
- Changed to Cat: coplion.cre, jaguarsu.cre, ncat.cre, slcat.cre, spirlion.cre, tranim03.cre
- Changed to Giant: giafir01.cre, yagaspir.cre
- Changed to Orc: ar18fig.cre, gromg02.cre, hlolaf.cre, kchild1.cre, kchild2.cre, sarbul04.cre, tobban02.cre
- Changed to Elemental Fire: plysala.cre
- Changed to Zombie: sahzomb.cre, zombie01.cre, zombse01.cre
- Changed to Lich: cedelich.cre, hgsku01.cre, hlskull.cre
- Changed to Rabbit: rabbit.cre, rabbit01.cre
- Changed to Yuan-Ti: bounha04.cre, icliz01.cre, icliz02.cre
- Changed to Planetar: planet01.cre
- Changed to Ettin: pettin.cre, plshfg01.cre, plshfg02.cre, sahoty01.cre
- Changed to Sword: statue01.cre, statue02.cre, statue03.cre, statue04.cre, statue05.cre, statue06.cre, sword01.cre, sword02.cre, sword03.cre
- Changed to Unknown: daabol.cre, mephsp1.cre, mephsp2.cre, mephsp3.cre, mephsp4.cre
- Creature Class Fixes - Many creatures were assigned incorrect classes. In many cases BioWare set
up classes that were more or less along racial lines--i.e. in addition to the
player classes like fighter and mage, there are troll and otyugh classes.
- Changed to Fighter: icyuan01.cre, icyuan02.cre, icyuan04.cre, kpyuan01.cre
- Changed to Mage: icyuan03.cre, icyuan05.cre, kpsham01.cre, pbhunt03.cre, pbhunt04.cre, planet01.cre, planevil.cre, plangood.cre, planwish.cre
- Changed to Cleric: devagood.cre, devaevil.cre, devast01.cre, devmon01.cre
- Changed to Otyugh: otyugh01.cre
- Changed to Troll: trolde01.cre, trolde02.cre, trolfr01.cre, trolfr02.cre, trolgi01.cre, trolgi02.cre, trolic01.cre, trolic02.cre, trolic03.cre, trolic04.cre, troll01.cre, troll02.cre, troll03.cre, trollens.cre, trollsm2.cre, trolsi01.cre, trolsi02.cre, trolsn01.cre, trolsn02.cre, trolsp01.cre, trolsp02.cre, troluo01.cre
- Changed to Elemental (Air): elemchan.cre
- Changed to Elemental (Fire): plysala.cre
- Changed to Mustard Jelly: gorjelf2.cre, gorjelfu.cre, pudden01.cre, pudden02.cre
- Changed to Gray Ooze: jelgra01.cre
- Changed to Green Slime: gorjelgr.cre, jelgre01.cre
- Changed to Wyvern: nwyvbab.cre, plywyvrn.cre, wyvbab01.cre, wyvern01.cre, wyvgre01.cre
- Changed to Giant: pettin.cre
- Changed to Zombie (Normal): sahzomb.cre
- Changed to None: chickdef.cre, chicke.cre, chicker.cre, cow.cre, cowh.cre, deadcow1.cre, deadcow2.cre, gorstalk.cre, mephsp1.cre, mephsp2.cre, mephsp3.cre, mephsp4.cre, nchick.cre, ncow.cre, senstalk.cre, stalke.cre
- General Categorization Creature Changes - Creatures are also defined by a very broad description, such as humanoid or
undead. These affect how spells work as well as the Turn Undead ability.
- Changed to Humanoid: kchild1.cre, kchild2.cre, kuoarc20.cre, kuocle20.cre, sahchf01.cre, shagrl01.cre, townc01.cre
- Changed to Animal: eyeegl01.cre
- Changed to Undead: bodtan.cre, cedelich.cre, d1ghost.cre, d1gori.cre, d1mothdw.cre, d1mothel.cre, d1mothha.cre, d1mothhu.cre, d1skel.cre, hlskull.cre, laune.cre, rspirit1.cre, sahbeh02.cre, sdshadfi.cre, sdshadow.cre, skelded.cre, wellyn.cre
- Changed to Giant Humanoid: dgtrol01.cre, dgtrol02.cre, druear01.cre, elairl01.cre, elairsu1.cre, elairsu2.cre, elairsu3.cre, elairsuw.cre, elearpr.cre, elearpr2.cre, elearpr3.cre, elearsu2.cre, elearsu3.cre, elearsu4.cre, elearsuw.cre, elfirl01.cre, elfirsuw.cre, genie02.cre, gorair01.cre, gorsta12.cre, giafir01.cre, igolfle3.cre, kptrol01.cre, kptrol02.cre, kptrol03.cre, kptrol04.cre, kptrol05.cre, kptrol06.cre, mdearth.cre, mdearth2.cre, mekear01.cre, obsgol02.cre, plangood.cre, plshfg01.cre, plshfg02.cre, sahoty01.cre, sarfaki2.cre, sarfakie.cre, suelew2.cre, swaair01.cre, swaair02.cre, swaear01.cre, swaear02.cre, swaair01.cre, swafir01.cre, torgal.cre, trolde01.cre, trolde02.cre, trolfr01.cre, trolfr02.cre, trolgi01.cre, trolgi02.cre, trolic01.cre, trolic02.cre, trolic03.cre, trolic04.cre, troll01.cre, troll02.cre, troll03.cre, trollens.cre, trollsm2.cre, trolsi01.cre, trolsi02.cre, trolsn01.cre, trolsn02.cre, trolsp01.cre, trolsp02.cre, troluo01.cre, uhogre03.cre, yscara03.cre, ysguar01.cre, yssold10.cre
- Changed to Weapon: statue01.cre, statue02.cre, statue03.cre, statue04.cre, statue05.cre, statue06.cre, sword01.cre, sword02.cre, sword03.cre
- Changed to Monster: bounha04.cre, daabol.cre, daspitro.cre, dragblac.cre, dragshad.cre, finsol04.cre, glbear.cre, gormim01.cre, gormim02.cre, gormim03.cre, gormim04.cre, haksu.cre, hdragsil.cre, hdragred.cre, icsalcol.cre, icsalfir.cre, jugmim01.cre, mephsp1.cre, mephsp2.cre, mephsp3.cre, mephsp4.cre, mimic01.cre, nishrusu.cre, obsdem04.cre, planevil.cre, planwish.cre, riftcr04.cre
- Creature Sex Fixes - Various creatures were incorrectly identified as male, female, or neither.
- Changed to Male: bazliz01.cre, bazliz02.cre, c6gofus.cre, c6kach.cre, cowenf1.cre, cscleric.cre, derrick.cre, dpmon01.cre, drofod03.cre, escort3.cre, kaysmg01.cre, kpsold10.cre, kuoarc20.cre, palern.cre, palkni02.cre, palkni04.cre, palkni05.cre, pcapt02.cre, sarbha01.cre, slvic02.cre, tobpar04.cre, trfued02.cre, winnkeep.cre, yarmy03.cre
- Changed to Female: amfem01.cre, amfem02.cre, amgirl01.cre, ammonk08.cre, ar18arch.cre, c6catti.cre, c6catti2.cre, c6cler3.cre, c6del.cre, c6guen.cre, c6guen2.cre, cefald02.cre, chickdef.cre, chicke.cre, chicker.cre, cow.cre, csheck3.cre, cssupp2.cre, deadcow1.cre, deadcow2.cre, deer01.cre, devaevil.cre, devast01.cre, devmon01.cre, dpfemale.cre, dpstat05.cre, drofod02.cre, drofod04.cre, drow04.cre, dsbody01.cre, fangel01.cre, finsol01.cre, garkid01.cre, gemch01.cre, gemch02.cre, gorsta05.cre, hlshyr.cre, hspectr1.cre, jade1.cre, jahei1.cre, jarev1.cre, mgkhol01.cre, nchick.cre, ncow.cre, nymphsu.cre, pirfsh02.cre, pirsal02.cre, planet01.cre, planevil.cre, plangood.cre, planwish.cre, ppmag01.cre, sendai7.cre, sleepfh.cre, solar.cre, solar01.cre, suendel2.cre, suendel4.cre, suendel6.cre, suendel8.cre, tobpar02.cre, trftow04.cre, trskin01.cre, uddoor06.cre, uddrow35.cre, vampaer.cre, vampjah.cre, vampvic.cre, vvmadman.cre, wpwench1.cre, yarmy01.cre, ysmage02.cre
- Changed to Neither: statue01.cre, statue02.cre, statue03.cre, statue04.cre, statue05.cre, statue06.cre, sword01.cre, sword02.cre, sword03.cre
- Creature Gender Fixes - There exists a gender identifier for creatures in addition to sex. Gender
has several different values beyond male and female, such as summoned or illusionary.
Summoned, in particular, is what allows scripts to detect summoned creatures,
the summoning cap to work, and for the death spell to work against just summons.
Gender also controls the casting soundset of creatures.
- Changed to Male: bazliz01.cre, bazliz02.cre, bdock1.cre, c6gofus.cre, c6kach.cre, cowenf1.cre, dadrow2.cre, dadrow8.cre, dadrow9.cre, dadrow15.cre, dagnoll.cre, daumber.cre, derrick.cre, dgtrol01.cre, dgtrol02.cre, dorkus.cre, dpmon01.cre, drofod02.cre, drofod03.cre, escort3.cre, gith05.cre, gith06.cre, gorapr.cre, gorgua04.cre, gorgua05.cre, hlmage.cre, jondal.cre, kaysmg01.cre, kchild1.cre, kchild2.cre, kproen03.cre, kpsold10.cre, kptrol01.cre, kptrol02.cre, kptrol03.cre, kptrol04.cre, kptrol05.cre, kptrol06.cre, kruin.cre, kuoarc20.cre, lavok02.cre, ogre01.cre, ogrhal01.cre, ogrill01.cre, palern.cre, palkni02.cre, palkni03.cre, palkni04.cre, palkni05.cre, pcapt02.cre, pettin.cre, plyogre.cre, plysala.cre, rethug02.cre, riftg03.cre, sahbeh03.cre, sahoty01.cre, sarbha01.cre, sewerm.cre, shth03.cre, slvic02.cre, tobban01.cre, tobpar04.cre, tolger.cre, tolger2.cre, townc01.cre, trcut06.cre, trfued02.cre, trfued05.cre, trolde01.cre, trolde02.cre, trolfr01.cre, trolfr02.cre, trolgi01.cre, trolgi02.cre, trolic01.cre, trolic02.cre, trolic03.cre, trolic04.cre, troll01.cre, troll02.cre, troll03.cre, trollens.cre, trollsm2.cre, trolsi01.cre, trolsi02.cre, trolsn01.cre, trolsn02.cre, trolsp01.cre, trolsp02.cre, troluo01.cre, winnkeep.cre, yarmy03.cre
- Changed to Female: ammonk08.cre, ar18arch.cre, c6catti.cre, c6catti2.cre, c6cler3.cre, c6del.cre, c6guen2.cre, cefald02.cre, chickdef.cre, chicke.cre, chicker.cre, coplion.cre, cow.cre, csheck1.cre, csheck3.cre, cssupp2.cre, dadrow10.cre, dadrow23.cre, daghaun1.cre, daghaun2.cre, deadcow1.cre, deadcow2.cre, deer01.cre, devast01.cre, devmon01.cre, dpfemale.cre, dpstat05.cre, drofod04.cre, drow04.cre, dsbody01.cre, fangel01.cre, finsol01.cre, gemch01.cre, gemch02.cre, gorsta05.cre, hlshyr.cre, hspectr1.cre, jade1.cre, jahei1.cre, jarev1.cre, jameroni.cre, mgkhol01.cre, nchick.cre, ncow.cre, pirfsh02.cre, pirsal02.cre, planet01.cre, planwish.cre, ppbodhi3.cre, ppmag01.cre, ppvalen.cre, remage01.cre, sendai7.cre, sleepfh.cre, suendel2.cre, suendel4.cre, suendel6.cre, suendel8.cre, tobpar02.cre, trftow04.cre, trskin01.cre, uddoor06.cre, uddrow35.cre, vamanc01.cre, vamemi01.cre, vammat01.cre, vampat01.cre, vamver01.cre, vampaer.cre, vampjah.cre, vampvic.cre, vvbodhi.cre, vvdel.cre, vvparis.cre, vvsalia.cre, vvtanov.cre, wpwench1.cre, yarmy01.cre
- Changed to Neither: abisred1.cre, abydem01.cre, ar18skel.cre, behhiv01.cre, bhghoul2.cre, bhghoul4.cre, dacemist.cre, deaddem1.cre, deathkni.cre, deck615.cre, delmist.cre, demabi01.cre, demcor01.cre, demgla01.cre, demilich.cre, demnab02.cre, dempit01.cre, demosum1.cre, demosum2.cre, demosum3.cre, dglab01.cre, dpdem01.cre, dpmon02.cre, elearb01.cre, elearb02.cre, elearb03.cre, elearb04.cre, elearb05.cre, elearb06.cre, elearb07.cre, elearb08.cre, elearb09.cre, elearb10.cre, elearb11.cre, elepuz01.cre, elepuz02.cre, elepuz03.cre, elepuz04.cre, firlch01.cre, firwra01.cre, fsskel.cre, ghogr01.cre, glbear.cre, gorbat1.cre, gorbat3.cre, gorcamb.cre, gorchr.cre, gormistp.cre, gortan1.cre, gortan4.cre, gorwom05.cre, grskel1.cre, grskel2.cre, hellfear.cre, hellgree.cre, hellprid.cre, hellself.cre, hgmis02.cre, hgskl01.cre, hgskl02.cre, hgskl03.cre, hgwra01.cre, hldemi.cre, hlskull.cre, icfung02.cre, icmyc01.cre, icmyc02.cre, igolfle3.cre, igolfle4.cre, kelzomb.cre, kshadow.cre, lester.cre, mistho01.cre, mistwa01.cre, nevm2.cre, obsdem01.cre, pmaster.cre, ppdemon.cre, pwarden.cre, ppnab01.cre, ppnab02.cre, ppnab03.cre, rngsha.cre, rngsha01.cre, rngsha02.cre, rngsha03.cre, rngsha04.cre, rngsha2d.cre, rskel01.cre, rskel03.cre, rumar02.cre, sdshadfi.cre, sdshadow.cre, sendark.cre, sewsha01.cre, sewsha02.cre, sewsha03.cre, shadel.cre, shadeld.cre, shadfi01.cre, shadfi02.cre, shadow01.cre, shape.cre, shawol01.cre, shawol02.cre, skelar01.cre, skelar02.cre, skele2.cre, skelet01.cre, skelhp1.cre, slifis01.cre, slifis02.cre, sword03.cre, tanari01.cre, tanomist.cre, telbal1.cre, telcam1.cre, telcor1.cre, telpit1.cre, telpit2.cre, telslav.cre, teltan1.cre, teltan2.cre, telwrai.cre, uddeath.cre, uddeath2.cre, uddoor07.cre, udnaba.cre, uhcreat.cre, valemist.cre, wish02.cre, wolfzo01.cre, wraith01.cre, wrashi01.cre
- Changed to Summoned: bearblsu.cre, beargrsu.cre, ettercsu.cre, sumdjinn.cre, sword02.cre, worgsu.cre, xvartsu.cre
Errors With Summoned Creatures
Most summoned creatures were summoned with zero experience value, but some were not. The same issue exists for items on the creatures--a handful could drop their weapons. The weapons of summoned creatures were either blank or 'skull'. These are changed to the very generic 'attack'. If a summoned creature was imprisoned, it forever counted against the party's summoning cap of five. (basilg1.itm, basilg2.itm, basilg3.itm, basill1.itm, basill2.itm, b1-6.itm, b1-8.itm, b1-8m1.itm, b1-10m2.itm, b1-12.itm, b1-12m3.itm, b1-20m3.itm, b1-20m4.itm, b2-16.itm, b3-24.itm, b4-32.itm, b4-32m3.itm, b4-32m4.itm, bearblsu.cre, bearbrsu.cre, bearcasu.cre, bearposu.cre, c6guen.cre, carrio1.itm, catjag.itm, catlio.itm, catliosu.cre, catliowp.cre, cdwi910.eff, cdwi917a.spl, cdwi917a.eff, dagnoll.cre, demglasu.cre, djinnisu.cre, dogwasu.cre, dogwawp.itm, dogwisu.cre, efreetsu.cre, elairl.itm, etterc1.itm, etterc2.itm, ettercsu.cre, figspid.itm, fireelel.itm, fireelem.itm, gender.ids, genscim.itm, ghast1.itm, ghastsu.cre, gibbersu.cre, golfle.itm, golcla.itm, golsto.itm, gnollsu.cre, haksu.cre, hamasu.cre, hobgobsu.cre, jellmu1.itm, koboldsu.cre, lacedo.itm, mistpo.itm, nishrusu.cre, nishruu.itm, nymphsu.cre, ogre1.itm, ogregrsu.cre, ogremasu.cre, p1-4.itm, p1-8.itm, p1-8m1.itm, p3-12m4.itm, rabbitsu.cre, s1-8.itm, s1-10m4.itm, sahangu.cre, sahlace.cre, sahskel.cre, sahzomb.cre, senstalk.cre, servsu.cre, skelwasu.cre, smoundsu.cre, spidgisu.cre, spidgi1.itm, spidph1.itm, spidphsu.cre, spidsw1.itm, spidswsu.cre, spin580.spl, spin626.spl, spin788.spl, spwi910.spl, spwi917.spl, stalke.cre, stalkesu.itm, sumdjinn.cre, sumefree.cre, sumelair.cre, sumelear.cre, sumelfir.cre, tasloisu.cre, telelfir.cre, telicesa.cre, tomegol1.cre, tomegol2.cre, tomegol3.cre, tomegol4.cre, wish02.cre, wolfdisu.cre, wolfwi1.itm, wolfwi2.itm, wolfwisu.cre, wolfwwsu.cre, worgsu.cre, wraith1.itm, wyvern1.itm, wyvern2.itm , wyvernsu.cre, xvartsu.cre)
- All of Gromnir's troops were named 'Il-Khan Soldier' except the two which were inexplicably named 'Gromnir Soldier'. (sarbul04.cre, sarbul05.cre)
- Creatures in the game get two names, one used in dialogue and the feedback window, and a second name that appears on a scroll when a mouse hovers over them (also known as a tooltip). In several cases these should match but do not. (alphonse.cre, behobs01.cre, behspe01.cre, elesah02.cre, gendjn01.cre, genefn01.cre, kptrol06.cre, kuotoa01.cre, lasmist.cre, obsfir01.cre, obssah03.cre, ppbodbat.cre, ppdjinn2.cre, ppmind01.cre, rngbeh01.cre, sahbar01.cre, sahextra.cre, sahgrd01.cre, sahgrd02.cre, sahgrd03.cre, tanomist.cre, trolfr01.cre, trolfr02.cre, trolsn01.cre, trolsn02.cre, udelder.cre, valemist.cre, vampbat.cre)
- Several creatures have names but were not using them in-game and were instead using generic monikers. For example, the ranger guarding Valygar's cabin is named Derrick but was using 'ranger' as his name. The strings were only added if they existed in game; no new strings were added. In a few cases, the given name and apparent name did not match. (arnboy01.cre, korcrazy.cre, korpimg1.cre, pirpir06.cre, shop03.cre, valran01.cre)
Lilarcor's Glowing Pool Is A Man, Baby
The glowing pool used in Lilarcor's quest is handled by an invisible creature that provides the dialogue to begin the quest. However, the invisibility is susceptible to a Dispel Magic revealing a creature with the name 'Glowing Pool'. The invisibility can no longer be dispelled. (sewsw.cre)
Creature Animation Fixes
The wyvern and Tanar'ri animations had some bad offsets and frames that could cause occassional issues. (mtang21.bam, mtang21e.bam, mtang22.bam, mtang22e.bam, mtang23.bam, mtang23e.bam, mwyvg21.bam, mwyvg22.bam, mwyvg23.bam, mwyvg24.bam)
There were a lot of errors with equipment of creatures throughout the game:
- Several creatures did not have items due to typos in the resource references. The results of the errors run the gamut from missing a minor treasure to the Trademeet genies lacking their melee attack weapon and Phaere not wearing armor. (arntra01.cre, cor.cre, cultist1.cre, cuphaer.cre, demosum4.cre, drow05.cre, excult1.cre, excult2.cre, genie01.cre, genie02.cre, genie03.cre, genie04.cre, gorcamb.cre, gorcamb6.cre, gorcamb7.cre, gorje.cre, gorsta10.cre, gorwom01.cre, hgfel01.cre, laune.cre, pirexe01.cre, pirsea01.cre, ppdjinn.cre, sahspc01.cre, senani03.cre, sendro03.cre, telimp1.cre, tirthold.cre, trgeni02.cre, trgeni03.cre, udchal.cre, udphae02.cre)
- A handful of creatures were illegally using shields alongside two-handed weapons. (firarc01.cre, rielev.cre, trple01.cre)
- Various creatures have bows or slings, but are unable to use them due to a lack of ammo (or vice-versa). The Fixpack adds basic ammo or launchers to these creatures. (amarch01.cre, edwin12.cre, edwin13.cre, prisonk1.cre, refigh01.cre, yoshi11.cre)
- One of Balthazar's monks is missing the special monk fist item that allows him to strike with increased damage and as a magical weapon. (ammonk03.cre)
- The juggernaut golem summoned by the golem tome has special attack, but it's not referenced as his selected weapon so the golem attacks barehanded. The golem is supposed to be immune to +1 and normal weapons but lacked the correct item; he's only immune to normal weapons. (tomegol4.cre)
- Two BG items can be imported and scattered in the opening dungeon; one is in a container near the dryads, and the other goes to Ilyich. Ilyich always receives armor, so it is now equipped by him as it is usually much, much better than his leather armor. (ilyich.bcs)
- Many creature files have items listed in their creature files, but unassigned to an inventory space. In many cases, this is because the developers went with a special version of the item instead and left the old resource reference, i.e. Drizzt has a special pair of Boots of Speed equipped and an unused reference to normal Boots of Speed. The old references are removed. (amwyvern.cre, bazdra03.cre, bearbr01.cre, bearca01.cre, bearpo01.cre, bhelm.cre, bodhi.cre, bodhi2.cre, bodhiamb.cre, braiwa2.cre, c6bodhi.cre, c6drizz.cre, c6drizz2.cre, c6drizz3.cre, c6guen.cre, c6guen2.cre, catjag01.cre, catjagsu.cre, catjagwp.cre, catlio01.cre, catliosu.cre, catliowp.cre, catlis01.cre, catpan01.cre, cefald02.cre, chevil02.cre, cubodhi.cre, deck622.cre, dopgre01.cre, dopple01.cre, dragyell.cre, drizzt.cre, e32.cre, famcat.cre, famcat25.cre, famimp.cre, famqua25.cre, famquas.cre, famrab.cre, firkra02.cre, fsridd.cre, genie1.cre, golsan01.cre, hellho01.cre, hellil01.cre, idjinni.cre, kgenie1.cre, kgenie2.cre, korgan8.cre, korgan9.cre, korgan11.cre, korgan12.cre, lacedo01.cre, lacedo02.cre, mumgre01.cre, nwyvbab.cre, obsdem04.cre, plywyvrn.cre, ppbhaal.cre, pries12c.cre, resuna.cre, riftcr03.cre, rngsta01.cre, rskel01.cre, sahlace.cre, sendai2.cre, sahoty01.cre, shape.cre, skele2.cre, skelet01.cre, skelhp1.cre, tranim03.cre, trevil05.cre, trgeni01.cre, uddeath2.cre, udlesa.cre, vbearca.cre, vvamn1.cre, weregrdr.cre, wolfdi01.cre, wraithsu.cre, wyvbab01.cre, ysfire02.cre)
- Many creatures also have items that are in inventory slots but not equipped. (aegnoll.cre, aerie9.cre, ammerc07.cre, bhaal01.cre, c6coran.cre, c6elven2.cre, c6elvenw.cre, c6god.cre, c6lanf.cre, chgood09.cre, cowled.cre, d1ghost.cre, dacemist.cre, dagnoll.cre, delmist.cre, dragblac.cre, duearc01.cre, e32.cre, elekob01.cre, firmon02.cre, garkid02.cre, garock.cre, ghogr01.cre, gibbersu.cre, gibmut01.cre, gith04.cre, gnleli01.cre, gnlwar01.cre, gnoll01.cre, gnollhp1.cre, gorgith2.cre, gorkuo05.cre, hamasu.cre, hobcap01.cre, icliz01.cre, icliz02.cre, imoen.cre, imp01.cre, impqua01.cre, jaerto1.cre, jaerto2.cre, jondal.cre, kchild1.cre, kobcom01.cre, kobsla01.cre, kuowhi01.cre, lester.cre, pirmur02.cre, plfarm03.cre, plfarm06.cre, plmetg02.cre, plmetr01.cre, pries18c.cre, riftcr01.cre, rock.cre, rumar01.cre, rumar03.cre, sahbeh04.cre, sahcpt02.cre, sahextra.cre, sahimp01.cre, sahimp02.cre, sahimp03.cre, sahimp04.cre, sahimp05.cre, sahimp06.cre, sahimp07.cre, sahpri02.cre, sahramb1.cre, sahrnt01.cre, sarevok.cre, sarjai01.cre, suziyaad.cre, swsfoll1.cre, swsfoll6.cre, swshaman.cre, tanomist.cre, tasloisu.cre, teltief3.cre, tethto.cre, tethto2.cre, udduer01.cre, udimp.cre, uhogre03.cre, valemist.cre, vvshad1.cre, vvshad4.cre, warsage.cre, xvartsu.cre)
- Some creatures have the wrong item types in slots; a very common error was mage robes being equipped in the cloak slot instead of armor. This batch of fixes also addresses creatures who have duplicate copies of the same item in their inventory due to malformed inventory lists. This will fix, for example, Aerie coming equipped with leather armor in one of her quickslots. (aerie10.cre, amlich01.cre, anomen6.cre, anomen7.cre, anomen8.cre, anomen9.cre, anomen10.cre, aran02.cre, bshop01.cre, corneil.cre, dario.cre, drush.cre, dshop01.cre, edwin12.cre, edwin13.cre, elders.cre, elearb01.cre, elearb02.cre, elearb03.cre, elearb04.cre, elearb05.cre, elearb06.cre, elearb07.cre, elearb08.cre, elearb09.cre, elearb10.cre, elearb11.cre, elekob01.cre, ffactor2.cre, flyfgt04.cre, garrick.cre, gerhardt.cre, gmage14.cre, gorfirg.cre, gorsta11.cre, gorwom03.cre, gromg05.cre, gromg08.cre, gromg13.cre, hlsion.cre, icgob02.cre, impqua01.cre, jaga4.cre, jamage1.cre, jamage2.cre, jameroni.cre, jan15.cre, jangit02.cre, kobcom01.cre, kpsold06.cre, kuocle20.cre, loveone5.cre, nalia8.cre, nalia10.cre, nalia11.cre, nalia13.cre, nalia15.cre, ogrema01.cre, ogrmag01.cre, plshom01.cre, ppsail03.cre, pwarden.cre, rigen02.cre, rskel03.cre, rumar01.cre, sarmag01.cre, scyarryl.cre, sewyag03.cre, shugmg01.cre, shupol01.cre, stein.cre, surly.cre, swsfoll1.cre, swsfoll6.cre, temsup.cre, thief5.cre, trfued05.cre, valyg9.cre, valyg11.cre, valyg12.cre, vara.cre, yaga01.cre)
- Some creatures have weapons (even in weapon slots) but still attack barehanded because they have no weapon selected in their creature file. (aemess.cre, alex.cre, ammajira.cre, amtcle01.cre, amtcler0.cre, antenos.cre, arled.cre, bazeye01.cre, bguard1.cre, boo.cre, bounha02.cre, bounha03.cre, c6kach2.cre, ch3mag01.cre, chgood09.cre, chsam01.cre, chsam02.cre, copamb01.cre, copamb03.cre, copamb04.cre, dadrow11.cre, dadrow17.cre, dadrow20.cre, dadrow4.cre, daqilue.cre, dawnmas.cre, democler.cre, derrick.cre, drow04.cre, eyeegl01.cre, firorc02.cre, firorc03.cre, glad2.cre, gorcamb2.cre, gorcamb3.cre, gorpri1.cre, gromg05.cre, gromg08.cre, gromg13.cre, hgber01.cre, hgnya01.cre, hgskl01.cre, hgskl03.cre, hlassa.cre, hlketta.cre, hlketta2.cre, hlmage.cre, hprelate.cre, jolus.cre, kendak.cre, kuocle20.cre, magetest.cre, mvpries.cre, pace.cre, pcapt04.cre, pettin.cre, pirmur09.cre, ppaltk1.cre, ppaltk2.cre, ppguard3.cre, ppsail03.cre, ppsuna.cre, reband05.cre, recler01.cre, recler02.cre, rethie01.cre, rethug03.cre, rigen02.cre, ribald.cre, ryan.cre, sahamb03.cre, sahamb06.cre, salvanas.cre, sarcult.cre, sarcult2.cre, sarculto.cre, sarhal.cre, sarmag01.cre, sartem01.cre, sendai.cre, sendai2.cre, sendai8.cre, senorc01.cre, senorc03.cre, senpri01.cre, shugmg01.cre, shugpr01.cre, snake01.cre, snakeg01.cre, suna.cre, teltief3.cre, temsup.cre, thief5.cre, tobpar05.cre, trevil01.cre, trthf02.cre, turn.cre, uddear02.cre, uddrow14.cre, uddrow15.cre, uddrow31.cre, uddrow35.cre, udduer01.cre, udelf05.cre, udgirl.cre, udtrap05.cre, uhmer02.cre, vorsquir.cre, wauksna.cre, yaga02.cre, yaga04.cre, yssold14.cre, yssold16.cre, zilmag01.cre)
- To avoid being pickpocketed, some items were placed in the head inventory slot. This ends protecting the creature illegitimately as anything in the helmet slot protects against critical hits, i.e. the Neb's Head item protects Neb from critical hits. These items are shifted to other slots to remove critical hit protection and to continue keeping these items from being pickpocketed. (jarlich.cre, neb.cre, ppjoye2.cre, pptroll1.cre, trolsi01.cre, trolsi02.cre, trolsp01.cre, trolsp02.cre)
- The mimic in the Umar Hills cave lacked a standard mimic item. (jugmim01.cre)
Waukeen's Promenade Bystanders Can use BG Dialogue
Under unlikely circumstances, one of the gawking bystanders in Waukeen's Promenade could switch over to a leftover BG dialogue due to using a leftover BG script. (bystand2.cre)
Creatures Have Illegal Attribute Scores
A number of creatures had attributes exceeding the maximum score of 25, including Anath of the Umar Hills. The scores are adjusted to the maximum value of 25. (bonebld.cre, deadb01.cre, deadb02.cre, deadb03.cre, firwlf01.cre, firwlf02.cre, rngwlf01.cre, rngwlf02.cre, rngwlf03.cre, rngwlf04.cre, rngwlf05.cre, sword01.cre)
'Devour Brain' Message From Mind Flayer Attack Not Appearing
On a successful intelligence draining attack by a mind flayer, the string 'devour brain' is supposed to appear in the message window. The string was being erroneously delayed for 300 seconds after the attack, preventing it from appearing. (mindflay.itm)
'Invincible' Creatures Could Still Be Killed
Creatures that must stay alive for plot- or dialogue-related reasons (i.e. Irenicus at Spellhold) have a special item equipped that prevents any and all forms of death. However, the item was not quite protecting against everything. Shapechanging into a mind flayer and killing such creatures via intelligence drain is a common way around this item, for example. The invincibility item has been beefed up to protect against additional fatal attacks. The item was also allowing many subsidiary effects of attacks go through, potentially confusing the player--i.e. it would prevent level drains but not the 'X levels drained' messages. (minhp1.itm, ppireni1.cre, ppireni2.cre)
- Of the four mephit-spawning portals in the opening dungeon, one had a different dexterity than the other three. In all other ways they are the same. (mephsp1.cre)
- The two different versions of the wish genie vary wildly from one another. One is now cloned from the other. (wish01.cre)
- The six djinnis who possess the pieces of King Strohm III's mask were inconsistent from one another and had miscellaneous errors. (ddguard2.cre, ddguard3.cre, ddguard4.cre, ddguard5.cre, ddguard6.cre)
- High Merchant Logan Coprith has two different copies of his creature file, one for the cut scene and his regular one. There were significant differences between the two, such as equipment, class, level, etc. As one is only used for a cut scene, his regular creature file was cloned and adjusted for the cut scene. (trcut07.cre)
- The version of Dawnmaster Kreel that is in the Morninglord Temple has different clothing, coloring, and equipment than the version of him that appears outside to denounce the Unseeing Eye cultists. (dawnmas.cre)
Ice Mephit Errors
Two ice mephits were copied from radiant mephits, but a number of things were not updated to be inline with ice mephit stats. They had incorrect color, AC, dexterity, resistances and melee weapon. These two and another ice mephit had magma ball memorized instead of ice shard. (mepice01.cre, mepice02.cre, obsice02.cre)
- Evil and good planetars had significant differences in their regeneration rates.
- Planetars and fallen devas are all set as 25th level characters. Devas, however, are level 30, which affects their spellcasting abilities. Devas are reduced to level 25 to be inline with the other celestials.
- If you summon a hostile planetar via a wish spell, it used the same script as a summoned planetar which would cause it to cast beneficial spells on the party despite being hostile. This has been changed to use its intended, hostile script.
- When celestials such as devas or planetars attack, their glowing weapons turn into plain looking weapons. This fix corrects this bug so that their weapon looks consistent all the way through their attacks. A before-and-after screenshot is available in the Fixpack screenshot gallery.
- Fallen devas have their own script but were instead using the script of normal devas. This causes the devas to behave slightly differently in their combat scripting and properly display different effects when they perish. A discrepancy between the number of spells memorized between devas and fallen devas is also fixed.
(devaevil.cre, devagood.cre, maslg2bw.bam, maslg2s1.bam, msolg2bw.bam, msolg2s1.bam, planet01.cre, plangood.cre, planwish.cre)
Anath and Other Lycanthropes Well-Nigh Invincible
Anath and a few other lycanthropes were using an old BG item (ringloup.itm) that protected them from all but 'cold iron' weapons. Cold iron is an old BG flag that was used to determine which items could hurt lycanthropes, as BG had no enchantment levels to determine who could hit what. In BG2, this flag is all but unused (weapon enchantment is used instead) which is why only a very few (and very random) weapons would hurt Anath or other creatures with this item equipped. The item is replaced with a standard item that provides lycanthrope abilities.
... and the standard item that provides lycanthrope abilities had its own bug. The regeneration effect was set not to be in effect while equipped, but permanently. Every time the game was reloaded in an area with someone wearing this item, the regeneration effect would get applied again. This could lead to wolfweres regenerating at fantastic rates, much too high to be killed via anything other than a spell or effect that killed instantly. (firwlf01.cre, firwlf02.cre, ringwolf.itm, rngwlf01.cre, rngwlf02.cre, rngwlf03.cre, rngwlf04.cre, rngwlf05.cre, weregr01.cre, weregrdr.cre)
Creature Innate Immunity Fixes
Golems used a mishmash of items to provide their normal immunities, and often these immunities were incomplete or the golem did not have its immunity item equipped. Liches are supposed to be protected from summoned demons and dragons are supposed to be immune to many projectiles such as arrows and axes. A common item used to give undead a bevy of special abilities had a typo, making undead immune to Lightning instead of Hold Person.(arngol01.cre, csgolem.cre, dragring.itm, golbra.itm, golcla.itm, golfle.itm, golem01.cre, golice01.cre, golmag01.itm, golstone.itm, icbone01.cre, igolem01.cre, igolem02.cre, igolfle1.cre, igolfle2.cre, igolfle3.cre, igolfle4.cre, irongol.itm, jonhp1.itm, lich.itm, ring95.itm, xgolem.cre)
Creature Alignment Corrections
The Fixpack changes the alignments of creature files with alignments that seem at odds with their BG2 behavior. For example, some instances of Jon Irenicus are chaotic good and there are other similar egregious errors, such as paladins that are not lawful good. These changes are important because they effect the operation of spells such as Detect Evil or items such as the Equalizer. We change the creature files to the alignments we believe make most sense for them; as there are inevitably judgment calls involved, please feel free to discuss any of these changes in the forums. These changes are based upon the changes originally made by Kish for the Oversight mod. Some of these have been moved into an optional component after listening to player feedback; see the Optional But Cool Documentation or check out the alignment discussion threads.
- Changed to no alignment: Statue (shaava01.cre)
- Changed to Lawful Good: Balthazar (balth.cre, cutbalth.cre), Branet Al-Thon (c6bran.cre), Dragon (pride test) (hdragsil.cre), Ellesime (suelle.cre, suelle2.cre, suelleap.cre), Eric Vanstraaten (c6eric.cre, c6eric3.cre), Errard (sarmag01.cre), Garren Windspear (garren.cre), Haletlatess Jillian (pwauk2.cre), Madulf (uhogre01.cre), Nerit (c6nerit.cre), Sleeping Dwarf (sleepdw.cre), William Reirrac (c6will.cre)
- Changed to Lawful Neutral: Amnish Guard (bamng01.cre, bamng02.cre), Amnish Soldier (civamng1.cre), Cowled Enforcer (cowenf02.cre, cowenf1.cre, cowenf2.cre, cowenf3.cre, cowenf4.cre, cucow1.cre, cucow2.cre, cucow3.cre, cuwiz1.cre, cuwiz2.cre, cuwiz3.cre, cuwiz4.cre, cuwiz5.cre, cuwiz6.cre, cuwizc.cre, cuwizsu.cre), Cowled Wizard (cowld.cre, cowled.cre, cowled01.cre, cscowl1.cre, cscowl2.cre, cscowl3.cre, cscowl4.cre, cscowl5.cre, cscowl6.cre, cscowl7.cre, cscowl8.cre, cscowl9.cre, mage16c.cre), mage18a.cre), Finderlig (uddear03.cre), Goshan (shth02.cre), Guardian Vottnar (bhelm.cre), Higgold (bdhigg01.cre), Jariel (shthlt01.cre), Jermien (jugjer01.cre), Lord Milsire Donderbeg (fulord.cre), Lord Ophal (noblem3.cre), Major Domo (kpdomo01.cre), Mercenary of Riatvin (loutm02.cre), Metrich Footman (plmetg01.cre), Metrich Yeoman (plmetg02.cre), Monk (killmonk.cre), Nobleman (noblem1.cre, noblem2.cre), Perth the Adept (ppcowled.cre), Quint Roenal (quint.cre), Rattell (shthstor.cre), Sailor (pirsal01.cre, pirsal02.cre), Shvanana (bdprst01.cre), Teos (mgteos01.cre), Trax (trax.cre), Zallanora (mage18z.cre), Zaren (bdact05.cre)
- Changed to Lawful Evil: Aboleth (daabol.cre), Adsaan (suadsaan.cre), Anishai (thief7.cre), Announcer (anno1.cre), Aran Linvail (aran.cre, aran02.cre), Archer (mgketg02.cre), Assassin (mvguard1.cre), Bandit (reband03.cre), Beholder (behobs01.cre), Bessen (jaga1.cre), Bhaal (bhaal01.cre, ppbhaal.cre), Black Reaver (zilarc01.cre), Black Reaver (zilfgt01.cre, zilfgt02.cre, zilmag01.cre), Booter (booter.cre, booter02.cre), Bounty Hunter (bounha02.cre, bounha03.cre), Copper Coronet Guard (copamb02.cre, copamb05.cre, guard2.cre, guard3.cre), Corneil (corneil.cre), Cultist Guard (cguard1.cre, cguard2.cre), Degardan (degard.cre), Deril (cederil.cre), Duergar (duearc01.cre, duegau01.cre, duegau02.cre, duergar.cre, duergar1.cre, duergar2.cre, duergar3.cre), Dunbar (ppright.cre), Frankie (copgreet.cre), Goblin Commando (elehob01.cre), Front (pirmur03.cre), Goon (korgoo01.cre, korgoo02.cre), Guard (pirmur04.cre, pirmur08.cre, pirmur11.cre, pirmur12.cre), Guard Capt (pirmur05.cre, pirmur06.cre, pirmur13.cre), Guard Captain (docsol03.cre), Hobgoblin Slayer (plshhg01.cre), Hobgoblin Wizard ( plshhg02.cre), Ilyich (duecla01.cre), Imp (mekimp01.cre), Isaea Roenall (isaea.cre), Jalaal (trrak03.cre), Jalin Tix (parfig16.cre), Joster (shth05.cre), Khollynnus Paac (mgkhol01.cre), Kobold Shaman (ppaltk1.cre), Lehtinan (lehtin.cre), Lieutenant Cleric (yaga04.cre), Lieutenant Mage (yaga02.cre), Llynis (llynis.cre), Lord Igen Tombelthen (rigen01.cre), Lord Ketlaar Argrim (argrim.cre, mgket01.cre), Madam Nin (madam.cre), Mage (duemag01.cre, duemag02.cre), Maferan (hlmafer.cre), Mage (rethug02.cre, sargrd06.cre, tolmag01.cre, tolmag02.cre), Mahar (parmonk.cre), Maharajah (mdrak.cre, rakmah01.cre, surakmah.cre), Man-at-Arms (mgketg01.cre), The Master Brain (udmaster.cre), Mekrath (hamek.cre), Officer Dirth (naldirt.cre), Olaf Rassmusen (hlolaf.cre), Orc (army01.cre), Orc Archer (sewarc01.cre, sewarc02.cre, sewyag02.cre), Philosopher (gphil02.cre), Pit Fiend (dempit.cre, dempit01.cre, dempitsu.cre, telpit2.cre), Pooky (sevpat03.cre), Rajah (rakraj01.cre, surakraj.cre), Rakshasa (sewrak01.cre, suraksha.cre), Rakshasa (raksha01.cresurakw1.cre, surakw2.cre, surakw3.cre, surakw4.cre), Rayic Gethras (ralej.cre), Revanek (hlrevan.cre), Ruhk (rakruh01.cre, surakruh.cre), Saadat (trrak02.cre), Sahuagin Priestess (obssah02.cre), Sailor (pirpir06.cre), Scrooloose (korscroo.cre), Sergeant Natula (mgass01.cre), Shadow Thief (stolethf.cre), Shady Character (mugger1.cre, mugger2.cre, mugger3.cre), Shagbag (korshag.cre), Skeleton Assassin (hgskl02.cre), Skeleton Cleric (hgskl01.cre), Skeleton Mage (hgskl03.cre), Slave Woman (hgslv01.cre), Slaver (rethie02.cre, rethie03.cre), Slayer (chalslay.cre, drslayer.cre, slayer.cre), Sorcerous Amon (sevpat02.cre), Suna Seni (resuna.cre), Surly (surly.cre), Thief (sargrd05.cre, sargrd09.cre), Thug (rethug01.cre, rethug03.cre, rethug04.cre, tantug01.cre, tantug02.cre, tantug03.cre), Tiana (tiana.cre), Traveler (rerak01.cre, rerak02.cre, rerak03.cre, rerak04.cre, rerak05.cre, rerak06.cre), Tyrian (mgass02.cre), Umar (rumar01.cre), Vaelag (vaelag.cre), Vilhelm (mgass03.cre), Yaga-Shura Mage (ysguar03.cre, ysmage01.cre, yssold14.cre), Yaga-Shura Officer (ysguar06.cre, yssold03.cre, yssold15.cre), Yaga-Shura Soldier (ysgrunt.cre, ysguar02.cre, ysguar04.cre, ysguar05.cre, yssold01.cre, yssold02.cre, yssold13.cre), Ziyaad (suziyaad.cre), Zyntris (mage8a.cre, mage8b.cre)
- Changed to Neutral Good: Acolyte Lara (latlara.cre), Chan (elemchan.cre), Dawnbringer Alvanna (acolyte2.cre), Dawnmaster Kreel (cscleric.cre), Dawnbringer Sain (scsain.cre), High Mornmaster Arval (bharval.cre), Malchor Harpell (c6harp.cre), Morning Knight (proplat.cre), Mourner (mourner5.cre), Priest of Waukeen (amcler01.cre), Radeel (radeel.cre), Raissa (trskin01.cre), Renfeld (renfeld.cre)
- Changed to True Neutral: Alatelo De Bonito (sevdru01.cre), Alenina (trtavp05.cre), Arnolinus (shop02.cre), Bel Dalemark (merchant.cre), Biff The Understudy (ffbiff01.cre), Black Market Thief (slshop01.cre), Brain Golem (udgolem.cre), Caravan Merchant (trcar04.cre), Carlig (udduer01.cre), Chyil (amcler02.cre), Clay Golem (golem01.cre, ppiron.cre), Commoner (bfishw1.cre, ffcrowd5.cre, sbutler.cre), Customer (trple04.cre), Druid (dgdru01.cre, gdruid.cre), Drush (drush.cre), Enge (shop04.cre), Galoomp the Bookkeeper (shop8.cre), Groundhog (grhog01.cre), Guardian Golem (obsgol01.cre), Guardian of the Source (trevil02.cre), Hes (shop06.cre, shop6.cre), Jaguar (jaguarsu.cre), Jahaboam (jahaboam.cre), Jailkeep Golem (igolem02.cre), Jerlia the Ore Merchant (scjerlia.cre), Joluv (wmart1.cre), Jospil (ttser1.cre), Kyland Lind (tdr10a.cre), Loren (drshlo01.cre, drshlo02.cre), Master Verthan (trevil03.cre), Merchant (trmer02.cre, yscara01.cre, yscara02.cre), Minotaur (uhogre03.cre), Mira (shop01.cre), Moose (moose.cre), Nobleman (ffcrowd1.cre, postul6.cre, trcut02.cre), Otyugh (iotyugh.cre, otyugh.cre, otyugh01.cre), Party's Dog (cpchick1.cre), Peddler (trmer01.cre), Perter (shop05.cre, shop5.cre), Pheasant (pheas01.cre), Qar Jysstev (scqar.cre), Raafee (trcar01.cre), Rabbit (rabbit.cre), Rabid Dog (dogwisu.cre), Raevilin Strathi (udtrap02.cre), Servant (ttser2.cre), Shadow Druid (cefgt02.cre, cefgt04.cre, tdr10b.cre, tdr6a.cre, tdr8a.cre, tdr8b.cre), Sir Parick (trnobm01.cre), Skeleton (ttskel.cre, uddoor07.cre), Sleeping Man (sleepmh.cre), Sleeping Woman (amfsleep.cre, sleepfh.cre), Storekeep (figpit.cre, shop07.cre, shop1.cre, shop2.cre, shop3.cre, shop4.cre, shop7.cre), Spirit of the Grove (drshsp01.cre), Squirrel (squirl.cre, squirr.cre, wauksqu.cre), Surly's Dog (cpchick2.cre), Tiris (trskin02.cre), Uda the Cook (ffcook.cre), Uder Mordin (uddear02.cre), Welther (welther.cre), Yarin (yarin.cre), Zombie (kelzomb.cre),
- Changed to Neutral Evil: Antenos (antenos.cre), Bandit (reband04.cre, reband05.cre), Beastmaster (beast.cre), Bounty Hunter (pbhunt04.cre), Cleric (recler02.cre), Coordinator (ppireni1.cre), Crazyface (korcrazy.cre), Derg the Orc (firorc02.cre), Dermin Courtierdale (jadermin.cre), Dilav (redilav.cre), Dockhand Ogre (bdock1.cre, bdock2.cre), Duergar Sapper (sewdue01.cre, sewdue02.cre, sewyag01.cre), Dust Mephit (elemep08.cre), Earth Mephit (elemep06.cre), Eldarin (reeldar.cre), Elite Orog (seworo01.cre, sewyag03.cre), Fighter (sargrd07.cre, sargrd08.cre, sargrd10.cre, sargrd11.cre), Fire Mephit (elemep04.cre, obsfir02.cre), Gerg (firamb02.cre), Gorch (gorch.cre), Gracien (jamage1.cre), Hell Hound (hellho01.cre, obsfir05.cre), Ice Mephit (obsice02.cre), Jarlaxle (jarlaxle.cre), Jon Irenicus (cujon.cre, cujon2.cre, cujon3.cre, cujon4.cre, dpjon01.cre, dpjon02.cre, dream2.cre, driren.cre, drjon.cre, jon1.cre, ppireni2.cre, sujon.cre, sujon2.cre), Lady Lilith Lurraxol (trcut05.cre, trfued01.cre), Legdoril (legdor.cre), Lieutenant Fighter (yaga03.cre), Lin (lin.cre), Lord Roenall (kproen01.cre), Lord Skarmaen Alibakkar (trcut06.cre, trfued05.cre), Mage (hlmage.cre), Magma Mephit (elemep05.cre, obsfir03.cre), Malacazar (jamage2.cre), Mineral Mephit (elemep07.cre), Mugger (bmugg1.cre), Nadinal (jaga3.cre), Nobleman (copcust3.cre), Olhydra (elemhydr.cre), Ooze Mephit (elemep01.cre), Orc (firban04.cre, firban05.cre), Pitch (gpfam1.cre), Prison Captain (pcapt02.cre, pcapt03.cre, pcapt04.cre, pcapt05.cre, pcapt06.cre), Rengaard (rengaa.cre), Salt Mephit (elemep03.cre), Sethle (sethle.cre), Shadow Thief (arntra06.cre), Shagbag (shagbag.cre), Slaver Wizard (remage02.cre), Slayer (hellslay.cre), Smoke Mephit (obsfir04.cre), Smuggler (amsmug01.cre, dedsmug.cre), Sorsha (pardru.cre), Steam Mephit (elemep02.cre), Tamoko (chtaz02.cre), Terrece (terrece.cre), Tiefling (teltief1.cre), Trainee (arntra02.cre)
- Changed to Chaotic Good: Avatar of Rillifane (suavatar.cre), Captain Aduo'on (suelf12.cre), Elf (sarelf05.cre, sarelf06.cre, suelf1.cre, suelf2.cre, suendel5.cre, suendel6.cre), Elf Female (dreself2.cre, dreself4.cre, dreself6.cre, suendel4.cre), Elf Male (dreself1.cre, dreself3.cre, dreself5.cre, dreself7.cre, suendel3.cre), Elhan (c6elhan.cre, suelhan.cre), Elven Archer (suelfw13.cre, suelfw14.cre, suelfw15.cre), Elven Battle Mage (suelfw10.cre, suelfw11.cre, suelfw12.cre, suelfw9.cre), Elven Mage (daelf.cre, daelf2.cre), Elven Man (sarelf01.cre, sarelf02.cre), Elven Spirit (m05spir1.cre, m05spir2.cre), Elven War Guard (c6elven2.cre, c6elvenw.cre), Elven War Sage (warsage.cre), Elven Warrior (c6elf1.cre, chgood04.cre, chgood05.cre, cupris1.cre, cupris2.cre, m05elf1.cre, m05elf2.cre, sudead01.cre, sudead02.cre, sudead03.cre, suelf13.cre, suelf3.cre, suelf6.cre, suelf7.cre, suelf8.cre, suelfw1.cre, suelfw2.cre, suelfw3.cre, suelfw4.cre, suelfw5.cre, suelfw6.cre, suelfw7.cre, suelfw8.cre, suelleg1.cre, suendel1.cre, suendel2.cre, suendel7.cre, suendel8.cre, sumoon.cre), Elven Woman (sarelf03.cre, sarelf04.cre), Enslaved Genie (hellgen.cre), Golin (pirmur09.cre), Harper (jarev4.cre), Priestess Demin (sudemin.cre), Reirra (suelf10.cre), War Elf (udelf01.cre, udelf02.cre, udelf03.cre, udelf04.cre, udelf05.cre)
- Changed to Chaotic Neutral: Aesgareth (gorcamb.cre), Amnish Centurion (slcent.cre), Anath (rngwlf01.cre, rngwlf02.cre, rngwlf03.cre, rngwlf04.cre, rngwlf05.cre), Aulava (crothf02.cre), Brannel (shthdr01.cre), Gereth (gereth.cre), Gromnir Il-Khan (gromnir.cre), Hanz (shth01.cre), Hectan (sarthf01.cre), Kretor (shth03.cre), Lanfear (c6lanf.cre), Lathan (shthlt02.cre), Morsa (shth04.cre), Rania (clrani01.cre), Saladrex (gorsal.cre), Squip (sarthf02.cre), Tiiro (crothf01.cre), Varia (shth06.cre), Vittorio (lout.cre)
- Changed to Chaotic Evil: Acolyte Vilon (talvilon.cre), Alu-Fiend (telsuc1.cre), Amalas (ruffian.cre), Anarg (kaypal01.cre), Andante (ppduel1.cre), Andar the Pirate (pirpir02.cre), Assassin (pirmur02.cre, plass02.cre, plass03.cre, plass04.cre), Caehan (caehan.cre), Chandrilla (gppri1.cre), Chremy (pirpir05.cre), Cleric Of Talos (yssold16.cre), Darsidian Moor (trskin06.cre, trskin6b.cre, trskind2.cre), Desharik (ppdesh.cre, ppdesh2.cre), Dirbish the Black (ppduel2.cre), Drow (c6drow1.cre, uddoor01.cre, uddoor02.cre, uddoor03.cre, uddrow12.cre, uddrow14.cre, uddrow15.cre, uddrow18.cre, uddrow23.cre, uddrow24.cre, uddrow25.cre, uddrow26.cre, uddrow27.cre, uddrow28.cre, uddrow29.cre, uddrow31.cre, uddrow37.cre, udrunner.cre), Duel Coordinator (ppduelc.cre), Egg Guard (uddrow20.cre, uddrow21.cre), Entu (obshal01.cre), Ertof Dand (jaertof.cre), Fanatic (vicg2.cre), Galvena (pirmur01.cre), Gnoll (gnlwar01.cre, gnoll01.cre), Gnoll Captain (gnlcap01.cre), Gnoll Elite (gnollsu.cre, gnleli01.cre), Gnoll Slasher (gnlsla01.cre), Gnoll Veteran (gnlvet01.cre), Golden Skull (hlskull.cre), Handmaiden of Lolth (uddrow36.cre), Hobgoblin Archer (hobarc01.cre, hobarc02.cre), Hobgoblin Captain (hobcap01.cre), Hobgoblin Elite (hobeli01.cre), Hobgoblin Warrior (hobwar01.cre), Hobgoblin Wizard (hobwiz01.cre), Iko (jaga4.cre), Il-Khan Soldier (sarbul04.cre, sarbul05.cre, sarbul06.cre, sarbul07.cre), Ilmryn (uddrow06.cre), Iycanth the Mad (bazeye01.cre, bazeye02.cre), Jarden (jaerto1.cre), Kail (jaga2.cre), Kalah (kalah.cre, kalah2.cre), Kaol (kaol.cre), Ketta (hlketta.cre, hlketta2.cre), King Ixilthetocal (sahkng01.cre, sahkng02.cre), Lord Khellon Menold (trevil01.cre), Mencar Pebblecrusher (sevpat01.cre), Mistress Ada (talmiss.cre, talmiss2.cre), N'ashtar (gpmage1.cre), Necre (obshal03.cre), Ogre (ogre01.cre), Olben the Pirate (pirpir03.cre), Orog (rorcs01.cre), Pirate (pirpir01.cre, pirsea02.cre, pirsea03.cre, ppguard.cre, ppguarda.cre, pplackey.cre, pppirate.cre, ppsail01.cre, ppsail02.cre, ppsail03.cre, ppthf01.cre, ppthf02.cre), Pirate Bill (pirpir07.cre), Pirate Captain (pirsea01.cre), Pirate Dan (pirpir08.cre), Pirate Door Guard (ppdoor.cre), Pirate Jimmy (pirpir09.cre), Pirate Leader (ppldr01.cre), Pirate Mage (ppmag01.cre), Pirate Paul (pirpir11.cre), Pirate Newf (pirpir12.cre), Pirate Scotty (pirpir10.cre), Priest of Cyric (ar18prie.cre, slapri.cre), Priestess of Umberlee (ppumb01.cre), Qilue (daqilue.cre), Rejiek Hidesman (trskin03.cre, trskin3b.cre), Rune Assassin (tanthf01.cre), Samia (samia.cre), Shade Lord (shadel.cre), Simbja (gpsimb.cre), Smaeluv Orcslicer (sevpat04.cre), Storm Knight (clstkn01.cre, talkni01.cre, talkni02.cre), Stormherald Nallabir (nalla.cre), Taibela (obshal06.cre), Talon Nirkhas (cldad.cre), Talon Yarryl (scyarryl.cre), Talon Zogas (acolyte1.cre), Tamile (jaerto3.cre), Tiax (pptiax.cre, pptiax2.cre), Tiefling (teltief3.cre), Troll (eletro02.cre), Turg (jaerto2.cre), Vampire (dvampfl.cre, vampbat.cre), Weather Master (cltalp01.cre), Wurn (jaerto4.cre), Yaga-Shura Elite (yssold04.cre)
- Several fire giants use two-handed swords. However, the fire giant avatar lacks an animation for wielding and attacking with two-handed swords, so the giants appeared to attack unarmed. The animation is changed to an axe to allow the giants to not appear empty-handed while attacking. (giants01.itm)
- A skeleton warrior in the North Forest was using the regular skeleton avatar. (ar18skel.cre)
- Ellisime clones were using generic elf animations (clone1.cre)
- Dradeel, trapped in the Asylum, is an elf but was using a human avatar. (ppdra2.cre, ppdradee.cre, redrad01.cre)
- Shyressa, a female vampire, was using a male vampire avatar. (hlshyr.cre)
- Throughout SoA, it seems that BioWare were unable to decide what animations they should use for various demons. All glabrezu in SoA now use the new animation that shipped with ToB. All pit fiends now use the "raver" or ravager animation (for lack of one fitting the description more closely), and all baalor now use the winged demon animation. Although the changes only affects SoA (the animation choices in ToB were better), the glabrezu animation changes will only occur if you have ToB installed. (abisred1.cre, demgla01.cre, demglab.cre, demglab2.cre, demglasu.cre, dempit01.cre, enddem01.cre, enddem02.cre, gordem.cre, jondem01.cre, jondem02.cre, jondem03.cre, jondem04.cre, jondem05.cre)
- Some Amnish guards and one zombie come equipped with bows and arrows. However, they lack an arrow shooting animation so the arrows appear to shoot out of their chest. The guards are changed to use their equipped melee weapons and the zombie to a normal zombie attack. (bamng01.cre, bamng02.cre, bhghoul5.cre, circg1.cre)
Several Errors With Familiars
In Throne of Bhaal, you have the option of feeding your familiar. The food is supposed to heal your familiar, but was not due to a bad spell reference. Familiars also had several discrepancies between their descriptions and their actual abilities where applicable:
- Every familiar had an incorrect armor class and (where applicable) thieving skills, as dexterity bonuses were not being taken into account
- SoA pseudo dragons did not have their proper magic resistance or weapon
- ToB pseudo dragons did not have their proper magic resistance and inexplicably lost 8 strength from SoA
- SoA rabbit had incorrect magic and elemental resistances as well as the wrong weapon
- ToB rabbit had incorrect elemental resistances
- SoA fairy dragons had incorrect elemental resistances and the wrong weapon
- SoA fairy dragons had incorrect hit points and the wrong weapon
- SoA cat received the full soundset that its ToB counterpart has and had zero attacks per round
- ToB cat had zero attacks per round
- SoA quasit was using the wrong weapon
- ToB dust mephit lost spells from SoA to ToB
- Fairy dragons and pseudodragons used the imp icon when stored in inventory
- In ToB, feeding the familiar was supposed to help heal it
- Imp and quasit attacks lacked attack icons in the quick bar
- Descriptions of the familiars and the Find Familiar spell itself was updated to reflect actual abilities
(strrefs1 #4432-4438, #41385, #45889, #72757 , #72760, #72762-72767, cdfampsd.itm, famcat01.wav, famcat.cre, famcat25.cre, famdust.cre, famdus25.cre, famfai25.cre, famfai25.itm, famfair.cre, famfair.itm, famfer.cre, famfer25.cre, famil125.dlg, fmail225.dlg, famil325.dlg, famimp.cre, famimp25.cre, fampsd.cre, fampsd.itm, fampsd25.cre, fampsd25.itm, famqua25.cre, famquas.cre, famrab.cre, famrab25.cre, imp.itm, impclaw.itm, impqua.itm, quasclaw.itm, hastring.itm)
Juggernaut Golem Dies Immediately When Summoned By Clone
The juggernaut golem dies instantly if summoned via a simulacrum, unlike every other golem. (tomegol4.bcs)
Elven and Half-Elven Resistance to Sleep and Charm
Elves and half-elves are supposed to have 90% and 30% resistance, respectively, to sleep and charm effects. This was not being applied. (cdelfcm0.eff, cdelfcm1.eff, cdelfcm2.eff, cdelfcm3.eff, cdelfcm4.eff, cdelfcm5.eff, cdelfcm6.eff, cdelfsl0.eff, cdelfsl1.eff, cdelfsl2.eff, cdelfsl3.eff, cdelfsl4.eff, clck07.itm, dagg13.itm, dwbolt01.itm, gorwom1.itm, hgnymph.itm, misc2p.itm, misc9x.itm, psdclaw.itm, regisamu.itm, ring03.itm, ring30.itm, staf09.itm, staf14.itm, staf15.itm, wand08.itm, beguile.spl, demochm.spl, spcl311.spl, spcl641.spl, spin108.spl, spin119.spl, spin553.spl, spin558.spl, spin883.spl, spin966.spl, spin980.spl, spin985.spl, sppr102.spl, sppr204.spl, sppr512.spl, sppr982.spl, spwi104.spl, spwi116.spl, spwi316.spl,spwi506.spl, spwi929.spl, spwi930.spl, spwi943.spl, spwm179.spl, spwm187.spl, urgekill.spl)
Bad Moon Dog Avatar
The avatar for the Moon Dog had serious issues (very pixelated) and is replaced as a bugfix. The Fixpack Screenshot Gallery has before-and-after shots of this graphical glitch--the original is in the left column and the replacement is on the right. Because the moon dog has a cyclical glowing effect the brightness varies from frame to frame. (mdog_mo.bmp)
A quick background on how trolls work in the engine before an explanation of the fixes is in order. Trolls are equipped with an item that keeps their hit points from going below one to prevent them from being killed via traditional means. When they reach one hit point, they're replaced with a 'dead' troll--the dead version only has one hit point, but is immune to any damage save fire or acid. (Incidentally, this transformation is also why trolls sometimes seem invincible if the party is doing too much damage too quickly: the troll never gets a chance to swap creature files.) The dead troll has a scripted timer that if it isn't killed fast enough it replaces itself with the live version again. The whole affair is a bit flaky in the engine, and several bugs regarding trolls have been fixed:
- Many trolls were not flagged as trolls in their race or class, preventing troll-specific effects (like the instant kill ability of Crom Faeyr) from working
- The 'dead' trolls were killable by poison, despite the game explicitly requiring acid or fire to destroy them
- Some trolls had the wrong item equipped, meaning they were not only unable to drop below one hit point but were also immune to many other fatal and non-fatal effects
- As a consequence of the above, some scripts had to be updated to point to the new item
- Scripts that transform the trolls were not strict enough in their triggers; for example a troll killed via Finger of Death would still spawn the dead version that could only be killed via fire or acid, allowing XP to be gained twice
- Several trolls lacked their item that prevented them from reaching zero hit points or were not scripted to have a dead version, thus removing the requirement of using acid or fire to kill them
- Some trolls had differences between their original, 'dead', and revived versions, such as mismatched XP, coloring, level, and species (freshwater trolls revived as giant trolls)
- The 'dead' versions of several trolls had more than one hit point and have been adjusted accordingly.
(ar1300.bcs, cdtroll1.bcs, cdtroll1.cre, cdtroll1.spl, cdtroll2.bcs, cdtroll2.cre, chaltrol.bcs, dgtrol02.bcs, dgtrol01.bcs, drshnl01.cre, drshnl11.bcs, drshnl11.cre, drshnl21.bcs, drshnl21.cre, drshnl21.spl, eletro01.bcs, eletro01.cre, eletro01.spl, eletro03.bcs, eletro03.cre, firamb03.bcs, firamb05.bcs, firamb05.cre, firtrl01.cre, hgtrl01.bcs, hgtrl01.cre, kptrol01.cre, kptrol02.cre, kptrol03.cre, kptrol04.cre, kptrol05.cre, kptrol06.cre, kptrol13.bcs, kptrol13.cre, kptrol13.spl, kptrol23.bcs, kptrol23.cre, obsice01.bcs, obsice01.cre, obsice01.spl, obsice11.bcs, obsice11.cre, pptroll1.bcs, pptroll1.cre, pptroll1.spl, pptroll2.bcs, pptroll2.cre, rogtro01.bcs, rogtro01.cre, sutroll.bcs, sutroll.cre, sutroll.spl, sutroll2.bcs, sutroll2.cre, torgal.cre, torgal2.bcs, torgal2.cre, torgal3.bcs, torgal3.cre, torgal3.spl, trolde01.bcs, trolde01.cre, trolde02.cre, trolfr01.bcs, trolfr01.cre, trolfr02.cre, trolgi01.bcs, trolgi01.cre, trolgi02.cre, trolic01.bcs, trolic01.cre, trolic02.cre, trolic03.bcs, trolic03.cre, trolic04.cre, troll01.bcs, troll01.cre, troll02.cre, troll03.bcs, troll03.cre, trolldie.itm, trollens.cre, trollsm2.cre, trolsi01.bcs, trolsi01.cre, trolsi02.cre, trollsm2.bcs, trolsn01.bcs, trolsn01.cre, trolsn02.cre, trolsp01.bcs, trolsp01.cre, trolsp02.cre, troluo01.cre)
Weakening Bodhi Does Not Stop Her Regeneration
Elhan gives the party elven holy water prior to sending the party off to confront Bodhi. The party can use the holy water in the blood pool to weaken the vampires; one of the consequences of this is that Bodhi's item that makes her regenerate is removed. This was not occurring due to a typo in the script. Other effects of her weakness were also being prevented from another item, which is temporarily removed to allow the effects to occur. (c6bweak.bcs)
Critters Should Love Elves, Druids, and Rangers
Some creatures, such as pheasants and deer, run away from the party. However, they're not supposed to run away from elves, druids, or rangers. Unfortunately, the script was only having them stay if all three conditions are true, i.e. if the character was an elf, druid, and ranger--which is impossible. The script now checks for one of those three conditions to be true. (genshy.bcs)
Hendak's Cellmate Lethargic
Hendak's fellow gladiator never leaves the area to go enjoy his freedom. Once the cell is opened, he will also make a break for it. (glad2782.bcs)
Lesser Clay Golems in Opening Dungeon Could be Killed Twice
In the opening SoA dungeon, the player can encounter two inert lesser clay golems. These golems become active and are summoned to the alarm in the bedroom. The change from the inert to active forms is scripted--but the check was never bothering to see if the golems were already dead. This eliminates the ability to kill them twice and earn XP both times. (igolfle1.bcs, igolfle2.bcs)
Illusionary Werewolves Doing Actual Damage
The illusionary werewolves in Kalah's tent are supposed to do no damage (unless attacked). However, the engine was granting them the standard +4 to attack and +4 damage against unarmed characters and characters equipped with ranged weapons, resulting in damage. (illusion.itm)
Glabrezus Worth 0 XP
The glabrezus in the ranger stronghold quest and at the Sulanessalar temple were providing zero experience when defeated. (demgla01.cre, demglab2.cre)
Common Item Fix Roundup
- Weight - Several items had discrepancies between their actual weight and the weight listed in the description. Items affected are regular plate mail1 (strref #1768), regular maces (strref #6709), +1 flail2 (strref #19359), Bala's Axe2 (strref #21957), Strong Arm2 (strref #39511), Saving Grace2 (strref #39579), Shaman's Staff2 (strref #47131), Handmaiden's Mace2 (strref #54340), kuo-toa bolts2 (strref #57897), Shield of Balduran2 (strref #61580), potion cases2 (strref #71131), Short Bow +1 (bow06.itm), Bracers of Defense AC 3 (brac15.itm), Traveller's Robe (clck13.itm), throwing daggers (dagg05.itm), Drow Adamantine Chain +5 (dwchan02.itm), Drow Shield +3 (dwshld01.itm), Fortress Shield +3 (shld23.itm), Spear +3 (sper06.itm), quarterstaff (staf04.itm), Martial Staff +3 (staf08.itm), Staff of Curing (staf10.itm), Staff of the Magi (staf11.itm), Staff of Thunder and Lightning (staf13.itm), Staff of Rynn +4 (staf20.itm), Scimitar +3 Frostbrand (sw1h15.itm), Scimitar +5 Defender (sw1h16.itm), Scimitar +2 Rashad's Talon (sw1h23.itm), Dragonslayer (sw1h32.itm), Cursed Berserking Sword +3 (sw2h03.itm), Flame of the North (sw2h12.itm), Silver Sword (sw2h15.itm), Catti-Brie's copy of Tansheron's Bow (cattibow.itm)
- To-Hit Bonuses: Several bows were missing their extra +1 to-hit from being a longbow/composite longbow. Items affected are Ripper +2 (bow09.itm), Mana Bow +4 (bow13.itm), long bow +2 (bow17.itm), Taralash +4 (bow22.itm), Taralash +5 (bow23.itm), and long bow +3 (bow25.itm).
- Weapon Speed - Several weapons had discrepancies between their actual speed and the speed listed in the description. Items affected are +2 long bow1 (strref #176), +2 short bow1 (strref #199), Spear of Withering1 (strref #2494), Sword of Flame1 (strref #4421), Staff of the High Forest2 (strref #8505), Embarl's dagger2 (strref #34732), Strong Arm2 (strref #39511), Dragon's Bane2 (strref #39531), Staff of Curing2 (strref #39626), Staff of the Magi2 (strref #39627), Staff of Thunder and Lightning2 (strref #39629), Staff of Air2 (strref #39631), Staff of Earth2 (strref #39632), Staff of Fire2 (strref #39633), generic +2 staves2 (strref #39634), three variants of the Flail of Ages +22 (strref #41389, strref #41620, strref #41621), Shaman's Staff2 (strref #47131), Silver Sword2 (strref #48658), Water's Edge2 (strref #51884), Entropy2 (strref #51947), Chaos2 (strref #51949), Harmonium Halberd2 (strref #61593), Angurvadal +42 (strref #66203), Serpent Shaft2 (strref #66369), Ixil's Nail +42 (strref #66372), Ixil's Spike +62 (strref #66474), Long Sword +32 (strref #70758), Long Bow +32 (strref #71058), Ice Star +42 (strref #73912), Aegis Fang (aegis.itm, aegis2.itm), Bala's Axe (ax1h07.itm), Long Bow +3 (bow25.itm), darts (dart01.itm), Embarl's Dagger (misc4u.itm), scimitar (misc9q.itm), Spear +3 Backbiter (sper03.itm), Ixil's Spike +6 (sper12.itm), Quarterstaff (staf04.itm), Staff of Striking (staf05.itm), Staff of Thunder and Lightning (staf13.itm), Ilbratha +1 (sw1h26.itm), Sword of Flame +1 (sw1h53.itm), Spectral Brand +5 (sw1h69.itm), Cursed Berserking Sword +3 (sw2h03.itm), Bow of Arvoreen (npbow.itm)
- Damage - Several weapons had discrepancies between their actual damage and the damage listed in the description. In some cases, this is only affecting specialty damage, such as Dragonslayer's bonus damage vs. dragons. Items affected are Blade of Roses2 (strref #39461), Flail +22 (strref #36460), Flame of the North +2 (flamenor.eff), Carsomyr +5 (sw2h10.itm), Wand of the Heavens (ttwand.itm, wand11.itm), Club of Detonation (blun26.itm), Bruenor's Axe (bruenaxe.itm), Daystar (sw1h31.itm, daystar1.eff, daystar2.eff ), Dragonslayer (sw1h32.itm), Oil of Fiery Burning (potn13.itm), Staff of the Ram +6 (staf22.itm), Shazzelim +1 (sw1h50.itm), Dwarven Thrower (hamm06.itm), Asp's Nest Darts (dart05.itm), Seeking Sword (sw1hseek.itm)
- Portrait Icons - Items are supposed to set and remove portrait icons as feedback for active effects on party members. In many cases they were failing to set or remove these properly. Items affected are Cloak of Reflection (clck24.itm), Bala's Axe (ax1h07.itm), Cursed Scroll of Stupidity (scrl11.itm), Mage Robe of Fire Resistance (clck10.itm), Cloak of Mirroring (clck26.itm), Dart of Stunning (dart03.itm), Bone Dagger (dartmel.itm), Shuruppak's Plate +3 (plat22.itm), Ring of Gaxx (ring39.itm), Blackrazor (miscbc.itm), Wong Fei's Ioun Stone (helm34.itm), Dragonslayer +2 (sw1h32.itm), Weapon of Cyric's Favored (chalcy2.itm), Cursed Scroll of Stupidity (scrl18.itm), Wand of Paralyzation (wand04.itm), unused attacks (paracarr.itm, paraghas.itm, paraghou.itm), Belt of Inertial Barrier Icon (belt10.itm), Staff of Curing (staf10.itm), Dagger of Venom (misc75.itm)
- Magic Resistance - Effects from some items were bypassing/not bypassing magic resistance, as appropriate, and are corrected. Items affected are Soul Reaver (sw2h08.itm), Protection from Acid (scrl03.itm), Protection from Cold (scrl04.itm), Protection from Electricity (scrl05.itm), Protection from Fire (scrl06.itm), Protection from Poison (scrl08.itm), Protection from Undead (scrl09.itm), Protection from Petrification (scrl15.itm), Staff of Curing (staf10.itm), Adjatha the Drinker (sw1h35.itm)
- Combat Feedback - Item abilities are generally accompanied by messages such as 'held' or 'blind', and this was lacking or incorrect in several cases. Items affected are Nalmissra's attack (gorwom4.itm), Darts of Stunning (dart03.itm), Stiletto of Demarchess +2 (dagg17.itm), Weapon of Cyric's Favored (chalcy2.itm)
- Item Type - Several items had their type defined incorrectly. This could prevent the equipping of a weapon, or allow reading books to be placed in the quickslot. (book05.itm, book07.itm, book08.itm, book32.itm, book94.itm, book95.itm, book96.itm, dagg10.itm, misc73.itm, scrla9.itm, scrlaa.itm, scrlab.itm, scrlac.itm, scrlad.itm, scrlaf.itm, scrlag.itm, scrlhp.itm, scrlick.itm, scrlmz.itm)
- Lore - Several items throughout the game lack a lore value, negating the need to identify them. For items that were also in BG, the BG lore value was used; otherwise an estimate was made based on similar items. Some items (such as those forged by Cromwell and Cespenar) are intentionally without lore and are not altered. (bull06.itm, chan03.itm, chan21.itm, dwchan01.itm, dwchan02.itm, dwplat01.itm, halb03.itm, leat03.itm, leat06.itm, misc3a.itm, misc3aa.itm, plat02.itm, plat23.itm, rodmace.itm, rods02.itm, rods02a.itm, rods06.itm, rodspear.itm, rodsword.itm, tooltip.2da, shld17.itm, slng03.itm, staf06.itm, staf07.itm, sw1h06.itm, wand11.itm)
- Cosmetic Effects - Items use a number of animations and sound effects, and in some cases these weren't showing up or being played properly. Items fixed are Wand of the Heavens (before-and-after comparison) (ttwand.itm, wand11.itm), Flaming Sword from Rod of Lordly Might (rodsword.itm),
- Expiring Items - Items on some creatures have expiry tags set, meaning they can disappear from creatures after a certain time. These items are regular items and should not be disappearing from inventories, so the expiry tags are removed. (abydem01.cre, bdturm02.cre, csiren.cre, deaddem2.cre, demosum2.cre, demosum3.cre, dglab01.cre, dquas01.cre, duegau01.cre, duegau02.cre, duemag01.cre, duemag02.cre, duergar1.cre, duergar3.cre, gorbat1.cre, gorchr.cre, gortan1.cre, gortan2.cre, gortan3.cre, gortan4.cre, gortan5.cre, lavok01.cre, lavok02.cre, melsum01.cre, melsum04.cre, obsdem01.cre, pmaster.cre, ppdemon.cre, shth01.cre, shth011.cre, shth03.cre, sumtan01.cre, sumtan02.cre, tanari01.cre, teltan1.cre, teltan2.cre, teltief3.cre, tolger.cre, tolger2.cre, uddwarf.cre, uhman02.cre, uhogre04.cre, vakg02.cre)
Item Name and Descriptions
- The Defender of Easthaven's name was incorrect.2 (strrefs #32186 and #32187)
- The string being used by Chain Mail +2 for its identified description was incorrect. The description being used was actually from Chain Mail +2. (chan02.itm)
- When fully assembled, the Flail of Ages is named Flail of Ages +3. When it only has one head, it is the Flail of Ages +1. However, with two heads it is called the Flail of Ages. The versions with two heads are now named the Flail of Ages +2. (blun14d.itm, blun14e.itm, blun14f.itm)
- The Aegis Fang was showing its identified name while unidentified. (aegis.itm, aegis2.itm)
- The arcane Detect Evil scroll was using the divine spell description (scrl86.itm)
- The short name of Yoshimo's katana was simply Katana +1, making it difficult to distinguish from the generic Katana +1. The name has been altered to Yoshimo's Katana +1. (npsw02.itm)
- The three weapons that can be created from the Rod of Lordly Might had generic or incorrect names. (rodmace.itm, rodspear.itm, rodsword.itm)
- Weapons created by the spell Enchanted Weapon are named as regular items instead of by their enchantment levels. (enmace.itm, enmorn.itm, ensw1h01.itm, ensw1h02.itm, ensw2h.itm)
- The arcane Dispel Magic scroll was using the description from the divine version of the spell. (scrl1e.itm)
- Melf's Minute Meteors had the name 'scroll' set in one of its name fields. (scrla5.itm)
- All clubs only use swinging animations and no thrusting animations when attacking, save regular clubs and club +3. (blun01.itm, blun31.itm)
- Both the Blackblood club and Improved Club of Detonation were not using the club animation. (blun22.itm, blun27.itm)
- Several drow were also carrying whips which had no animations. (dwwhip.itm, dwwhip01.itm)
Item Ability Fixes
Various items have special abilities that could be activated that were not working correctly:
- The Heartseeker +3 has the ability to increase the wielder's THAC0 by seven for nine seconds for the bow. However, the bow was granting a generic THAC0 bonus, so the player could potentially swap to melee weapons and get the benefits of the bow's ability. The bonus is now applied strictly to missile THAC0. (Note that it's still possible to use this exploit with another missile weapon, but this is not possible to fix without a large hack.) (bow10.itm)
- Miscellaneous figurines throughout the game were using an unusual method of recharging to try and simulate the figurine coming to life rather than simply being a charged item. However, the method used was causing issues--for example, if the character using the figurine was dead when the figurine was supposed to reappear, the figurine would never return. (misc3d.itm, misc3e.itm, misc3f.itm, misc7t.itm)
- Per its description, the Ring of Djinni Summoning is supposed to disappear if the summoned djinni dies. However, the ring would only disappear if the djinni's hit points were reduced to zero and was not accounting for other ways to die (i.e. level drained to zero, disintegrated, etc.) The ring should now disappear if the djinni is killed via any means. (sumdj01.bcs)
- Per its description, Methlid's Harp is supposed to dispel 'hold-like effects'. It was not. (misc3o.itm)
- The Wand of Cursing is supposed to induce silence, blindness, and deafness on its target. Though it set a 'Deaf' icon on its target, the wand was not actually causing deafness. (wand19.itm)
- On melee attacks, Blackrazor's strength bonus was supposed to happen on 15% of hits but was actually occurring on every hit. When Blackrazor successfully drains a target, it now displays haste and strength icons as well as 'Healed' and 'Four Levels Drained' strings appropriately. (miscbc.itm)
- Neb's Dagger is supposed to have poison on it. When the poison is gone, it is supposed to revert to a normal, enchanted dagger. Neb's Dagger was not changing into a non-poisonous dagger, and also had spurious slow effects attached to it. (cdnebdag.itm, nebdag.itm)
- Arbane's Sword confers hold immunity to the wielder, but was conferring effects closer to free action. As such, several effects were removed to bring the sword inline with its description. (sw1h27.itm)
- The various Protection from X scrolls all had a listed range of 30 feet, but were actually limited to 20. (scrl03.itm, scrl04.itm, scrl05.itm, scrl06.itm, scrl07.itm, scrl08.itm, scrl09.itm, scrl15.itm)
- Some of the effects of drinking the Potion of Storm Giant Strength were targeted incorrectly, in particular the strength effect. (potn07.itm)
- Per its description, the potion of magic blocking should be effective against spells of level five and below. However, it was actually protecting against ninth level spells and below. (potn33.itm)
- The Runehammer +4 and Runehammer +5 were allowing two saves for undead to avoid being destroyed. Similar to an issue with the Improved Mace of Disruption, a misordering of effects was preventing the 'Undead destroyed' string from ever displaying. (hamm10.itm, hamm11.itm)
- The potion of free action was erroneously protecting against charm and was displaying its Free Action portrait icon for the wrong duration. (potn45.itm)
- The Staff of Power was casting a Globe of Invulnerability that almost, but not quite, acted like a Globe of Invulnerability. The staff now just directly casts a Globe of Invulnerability. (staf12.itm)
- The equipped barkskin effect of the Staff of the Woodlands was setting armor class to the wrong value and was lacking the save bonuses of barkskin. If the charm spell cast by the staff was dispelled the charm portrait icon would remain in effect. (staf14.itm)
- The blindness ability of the Blackmist halberd is supposed to affect creatures in a 10' radius, but was only affecting one target creature. (halb06.itm)
- The Cloak of Protection was missing several effects that were preventing it from properly reflecting electrical damage, in particular, projectiles from electrical spells. To allow it to reflect electrical attacks from beholders (without reflecting all beholder attacks), a new projectile was created just for the electrical-based beholder gaze attacks. The Shield of Balduran is updated to account for this new projectile as well. (cdbehbla.pro, clck24.itm, projectl.ids, spin579.spl, spin989.spl, wa2shiel.itm)
- The Hallowed Redeemer's ability to damage attackers would summon cowled wizards if used in Athkatla. The spell that provided this effect was copied from Fireshield, and still had a number of fields that were causing it to trip the appearance of the cowled wizards. (keldorn.spl)
- The Shield of Harmony and Small Shield +2 were providing an erroneous +1 bonus against missiles. (shld25.itm, shld28.itm)
- Despite being thrown at enemies, the Oil of Fiery Burning would display 'Gulp!' on the user. (potn13.itm)
- The equipped effects of the Claw of Kazgaroth can be removed via dispel magic and should not be. Items that provide effects when equipped normally can't be removed via a dispel magic effect. The listed save penalties were also incorrect. (strref #118481, misc72.itm)
- The equipped effects of the Shield of Harmony could be removed via dispel magic and should not be. Items that provide effects when equipped normally can't be removed via a dispel magic effect. (shld25.itm)
- The Cloak of Mirroring protects against all spells of type 'offensive damage'. This resulted in incomplete protection against area of effects spells--fireball would not affect the wearer, but delayed blast fireball would. This is now standardized to protect against all area of effect spells. (clck26.itm)
- The dispel magic on hit effects of both Carsomyr +5 and Carsomyr +6 were rebuilt as they were occasionally flaky. The ability to cast Dispel Magic was also not requiring the sword to be identified first and it was also requiring a creature target, unlike the spell. (sw2h10.itm, sw2h19.itm)
- Arrows of Fire have a spurious +2 THAC0 bonus that is incorrect per the description. (arow08.itm)
- The Cursed Scroll of Foolishness was causing divine spell failure but not arcane. (scrl12.itm)
- Jan's Flasher Master Bruiser Mate Fixes lacked their advertised +1 THAC0 bonus and were adding a spurious save penalty to their penalties. (bolt07.itm)
- Mordenkainen's Swords are immune to a host of mind-altering effects, being a sword, but these protections could be erroneously disspelled. (ipsion.itm)
- Several of the abilities from the Firecam Full-Plate Armor, such as the protections from grease/web/entangle, could be disspelled. (npplat.itm)
Rod of Lordly Might Transformation Problems
The Rod of Lordly Might is supposed to change at will into one of its three sub-weapons and back again. However, the sub-weapons were being created without charges so they could not be turned back into the original Rod without resting. (rodmace.itm, rodspear.itm, rodsword.itm)
- A handful of full plate mails had effects to slow movement and also imposed THAC0 penalties. As this was not consistent with other armors (or even regular full plate mail) the effects were determined to be bugs and removed. (plat19.itm, plat22.itm, plat23.itm)
- Throwing daggers all alter the user's attacks per round to allow for two attacks per round. The shadow thief dagger also had this effect applied despite being a melee weapon. (dagg18.itm)
- Imps and quasits had a spurious poison attack attached to their melee attacks. (imp.itm, impqua.itm)
- There is an undocumented vocalize effect attached to Drow Scimitars +3. The effect is removed. (dwsw1h01.itm)
Armor Not Affecting Thieving, Casting
- Full Plate Mail +1 was not disabling thieving skills. (plat05.itm, plat14.itm)
- Valygar's armor is not restricting arcane spellcasting when worn. (npchan.itm)
Bonuses vs. Creature Types Not Working
- Skullcrusher was mistargeting its +2 damage vs. humanoids. (blun18.itm)
- The THAC0 and damage bonuses of the Hammer +1, +4 vs. Giantkin were only being applied when a giant was attacking another giant. (hamm04.itm)
- Per its description, Crom Faeyr should kill ettins in a single blow. However, the ettins in the game were classified as giants so it was impossible to enable this without also granting Crom Faeyr the ability to kill giants as well. A new entry, ettin, was added to the race table and assigned to ettins in the game allowing Crom Faeyr to be effective against them as intended. (hamm09.itm, race.ids)
- The Wave Halberd was failing to instantly kill salamanders (per its description) due to a combination of effects. Some salamanders were not properly flagged as such in their racial or class fields, which is fixed by the creature patches above. The other issue is that most salamanders have a protection item that prevents the effect being used by The Wave to kill them. The Wave is altered to use a slightly different but equally effective effect. (halb09.itm)
- Due to typos in the resource references of Jerrod's Mace, the player was not receiving their +5 THAC0 and +5 damage bonuses against demons. (wamace.itm)
- The extra 7 points of damage that the Rod of Smiting does to golems was being applied as an equipped effect rather than a melee effect. (rods04.itm)
- Due to some errors in the underlying opcodes, only one of the bonus damages vs. a specific monster type would get applied--i.e. a Cavalier (+3 damage vs. dragons) wielding Dragon's Bane (+3 damage vs. dragons) would only get +3 extra damage against dragons instead of the expected +6. This also closes an exploit where the extra damage bonuses of a one-handed weapon would also get applied to the other weapon if dual-wielding. Unfortunately the same issues exist with the THAC0 bonuses stacking, but there's no way to fix this. (blun18.itm, blun23.itm, carsomyr.itm, cdhalb04.eff, cdhamm06.eff, cdsw1h03.eff, chevil10.itm, dagg09.itm, damacea.eff, doppdam.eff, equal01.eff, equal02.eff, equal03.eff, equal04.eff, equal05.eff, equal06.eff, equal07.eff, equal08.eff, evildam2.eff, flamenor.eff, ft1dam.eff, ft2dam.eff, ft3dam.eff, giantdam.eff, halb04.itm, hamm04.itm, hamm06.eff, hamm06.itm, holyaven.eff, hsword.itm, lycndam3.eff, lycndam4.eff, phanblad.eff, phanblad.itm, skullcr.eff, sw1h03.itm, sw1h18.itm, sw1h24.itm, sw1h31.itm, sw1h54.itm, sw1h62.itm, sw1h62b.eff, sw1h62c.eff, sw1h62d.eff, sw1h62e.eff, sw1h62f.eff, sw1h63.itm, sw1h64.itm, sw1h64a.eff, sw1h65.itm, sw1h65a.eff, sw2h10.itm, sw2h12.itm, sw2h19.itm, sw2h19a.eff, trolld1.eff, unddam1.eff, wamace.itm)
- The Dwarven Thrower was applying its bonus damage to a whole range of creatures instead of just giants and ogres (hamm06.itm)
- Burning Earth's bonus to-hit and damage against trolls was mistargeted and not being applied (trolld1.eff, trollh1.eff)
- Similar to the Mace of Disruption, a Deva's weapon was not showing the 'Undead Destroyed' message due to a misordering of effects (deva.itm)
- Runehammer +4 and Runehammer +5 had incorrect damage vs. undead. (hamm10.eff, hamm10.itm, hamm11.eff, hamm11.itm)
- The Root of the Problem was doing an extra three damage vs. unnatural creatures instead of just two (giandam.eff, monstdam.eff, undeddam.eff)
- Bone Club was not receiving its extra to-hit bonus against undead due to a targeting error (undhit1.eff)
- Additional minor errors in the effs are cleaned up. (damaceb.eff, sw1h32c.eff)
Under- and Overcharged Items
Items with special abilities have charges to use those abilities. They can be a total number (such as wands) or they can be of the form 'x per day' uses. Each item has a number of maximum charges set in its item file. When listed in containers, at stores, in a creature's inventory, or when created via dialogue/script, the game assigns the actual number of charges. By convention items sold in stores, items with x-per-day abilities, and items created by dialogue or scripting (for example, items forged by Cespenar or Cromwell) always come fully charged. Where this is not the case, these items are adjusted to be fully charged. Some items were also found to be created with charges in excess of the listed maximum in their item file. The most egregious example is the Wand of Wonder, which came with 50 charges despite have a listed maximum of 10. This meant this 3,000 gp item was sellable for 15,000 gp. (aerbod01.cre, aerie6.cre, aerie9.cre, aerie10.cre, aerie11.cre, amarch01.cre, amarch02.cre, amcarras.cre, ammerc08.cre, amsmug01.sto, amsmug02.sto, ar0018.are, ar0305.are, ar0311.are, ar0317.are, ar0329.are, ar0334.are, ar0405.are, ar0505.are, ar0527.are, ar0530.are, ar0706.are, ar0801.are, ar0903.are, ar1202.are, ar1302.are, ar1514.are, ar18dwaf.cre, ar2400.are, ar3016.are, ar3021.are, ar3022.are, ar5502.are, ar6300.are, aran.cre, aran02.cre, bag20.sto, bag21.sto, bag22.sto, bag23.sto, bag24.sto, bag25.sto, bag26.sto, bag27.sto, bag28.sto, bag29.sto, bag30.sto, bdturm02.cre, beast.cre, bhcrypt.cre, bonebld.cre, botsmith.bcs, bshop01.sto, bshop02.sto, c6catti.cre, c6kngt1.cre, c6regis.cre, chalcy02.cre, chalpc01.cre, chalpc02.cre, chalpc03.cre, chalpc04.cre, chalpc05.cre, chalpc06.cre, chalpc07.cre, chalpc08.cre, chalpc09.cre, chalpc10.cre, chalpc11.cre, chalpc12.cre, chalpc13.cre, chalpc14.cre, chalpc15.cre, chalpc16.cre, chang01.cre, chang02.cre, chevil09.cre, chgood08.cre, chsam01.cre, chsam02.cre, chtaz01.cre, deckass1.cre, deshar.cre, docsol01.cre, docsol02.cre, drshsp01.dlg, duearc01.cre, e33.cre, elemimix.cre, firkra02.cre, firmon01.cre, flyfgt03.cre, fsdragon.cre, fshorde2.cre, fshorde6.cre, garlena.sto, gorcamb.dlg, gordeck5.cre, gordeck6.cre, gordeck7.cre, gordeck8.cre, gordeck9.cre, gordecka.cre, gorkuo05.cre, gorlic01.cre, gororc02.cre, gorsta09.cre, gorwom02.cre, grvlch01.cre, habib.cre, hgnya01.cre, hgskl02.cre, hldemi.cre, hlkang.cre, hobarc02.cre, icgob01.cre, icgob02.cre, jaga4.cre, jaylos.cre, kaysmg01.cre, keldor8.cre, kobarc01.cre, kobcap01.cre, kproen03.cre, kuoarc20.cre, kuowhi01.cre, latkni01.cre, latkni02.cre, maevar.cre, marlowe.dlg, nalia13.cre, orc02.cre, pbhunt03.cre, pcapt03.cre, pcapt04.cre, pirexe01.cre, pirmur07.cre, pirsea02.cre, plshhg01.cre, pparan2.cre, ppcowled.cre, ppguard1.cre, resuna.cre, ribald.sto, ribald3.sto, rumar01.cre, saerk.cre, sahpr1.sto, sahuag01.cre, sargrd05.cre, sargrd09.cre, sarkis01.cre, sarkis02.cre, sarkis03.cre, sarkis04.cre, sarvie01.cre, senani05.cre, sendai.cre, sendai3.cre, sendro05.cre, sevpat05.cre, sewdue01.cre, sewyag01.cre, shabod01.cre, shadeld.cre, shop03.dlg, shth01.cre, shth011.cre, shth03.cre, suelf10.sto, sword01.cre, swsfoll4.cre, swsfoll5.cre, swshaman.cre, tanthf01.cre, teltief3.cre, tolger.cre, tolger2.cre, trcar04.sto, trmer02.sto, trrak01.cre, uddemon.dlg, uddrow23.sto, uddrow24.sto, udtrap02.dlg, uhman02.cre, uhogre04.cre, vakg02.cre, viekang.cre, vulfgt02.cre, wand12.itm, waukni01.cre, wish.dlg, xappren1.cre, yaga05.cre)
Undroppable Portal Key Could Trap Party in Opening Area
The portal key that is used to escape the opening area in SoA can cause the party to be trapped. If the key is in possession of a party member that gets killed, it does not get dropped and remains on their corpse. If the party has no means to revive the dead character they can be trapped with no way to escape. (misc4g.itm)
Deck of Many Things Fixes
Various cards and effects of the Deck of Many Things had slight errors. (domt.dlg, spin606.spl, spin607.spl, spin609.spl, spin610.spl, spin611.spl, spin613.spl, spin618.spl, spin619.spl, spin621.spl, spin632.spl, spin640.spl)
- If you gamble your experience against Aesgareth and lose, or if you draw the jester card and gain experience, both changes are applied with incorrect timing mode
- The blind portrait icon from the Talons card was being applied with a different timing and duration than the blind effect itself
- The Moon card would increase maximum hit points but did not increase current hit points as well
- The Emperor card is supposed to provide immunity to charm and confusion for a week; however, the charm immunity had a duration of zero so it wasn't being applied and the sound effect that indicated the effects of the card had ended was playing after only 120 rounds.
- Thieves or bards drawing the star card were supposed to receive a dexterity bonus, but a logic error was preventing it
- Other beneficial effects could fail due to spell protections or magic resistance.
Instant Healing Exploits
The Sensate Amulet and Spear of Kuldahar could be exploited for instantaneous healing by re-equipping them repeatedly. The problem lay in that they were increasing both current and maximum hit points instead of just increasing the maximum. (wa2amu.itm, waspear.itm)
Items With Incorrect Icons
Various items throughout the game had incorrect icons assigned. The 'inventory icon' is the graphic that's used on the screen with your paperdoll, where you move items around your inventory. The 'inventory graphic' is the nice black and white sketch that is displayed with the item description on a parchment background; only the Short Bow +1 had this wrong. The 'attack icon' is the icon used in the game screen to actually select the weapon.
- The Periapt of Life Protection (amul23.itm) and Necklace of Form Stability (amul24.itm) have their own, unique graphics but were instead using the icons from the Periapt of Proof Against Poison.
- The Flail of Ages +2 (blun14e.itm), the version with cold and acid heads was using the graphics from the cold-fire Flail of Ages +2.
- The Mace of Disruption +2 (blun25.itm) was using generic mace graphics.
- All generic composite long bow (bow01.itm) and generic long bow (bow03.itm) graphics were swapped.
- Short Bow +1 (bow06.itm) was using the generic long bow icon for its inventory and attack, and the composite long bow for its inventory graphic. Its actual graphics were only being mistakenly used by other bows.
- Ripper +2 (bow09.itm) was using the Composite Long Bow +1 icon for its attack icon.
- Strong Arm +2 (bow11.itm) was using the Composite Long Bow +1 icon for its attack icon.
- Elven Court Bow +3 (bow12.itm) was using the Long Bow +1 icon for its attack icon.
- Tuigan Bow +1 (bow14.itm) was using the Short Bow +1 icon for its attack icon.
- Tansheron's Bow +3 (bow15.itm) was using the Short Bow +1 icon for its attack icon.
- Composite Long Bow +2 (bow16.itm) was using the Composite Long Bow +1 icon for its attack icon.
- Long Bow +2 (bow17.itm) was using the Long Bow +1 icon for its attack icon.
- Short Bow +2 (bow18.itm) was using the Short Bow +1 icon for its attack icon.
- Taralash +4 and Taralash +5 (bow22.itm, bow23.itm) were using the Mana Bow +4 icon for their attack icons.
- The Bow of Arvoreen +2 (npbow.itm) was using the generic short bow icon for its attack icon.
- Borok's Hammer (hamm05.itm) was using the icon from the Ashideena hammer instead of its own unique icon
- The Helm of Brilliance (helm16.itm) was using graphics from the Helm of Glory instead of its own, unique set.
- The scroll of Conjure Lesser Fire Elemental (scrl6x.itm) was using the Conjure Lesser Earth Elemental icons.
- The Crom Faeyr scroll (scrlag.itm) had a unique icon that was not being used
- The Staff of Power (staf12.itm) was using the Quarterstaff +1 for its inventory and attack icons.
- Katana +2 (sw1h55.itm) was using the Katana +1 inventory icon.
- The ranged icon of the Dwarven Thrower is also adjusted to better differentiate thrown and melee abilities in the quick bar. (hamm06.itm)
- A typo in the item file was causing the scroll of Ray of Enfeeblement's casting ability to be blank. (scrlai.itm)
- Boo occupies a quickslot icon on Minsc's inventory, but the slot shows as empty when Minsc is selected on the game screen. A Boo icon will now appear on the game screen. (misc84.itm)
- Several spell scroll inventory icons were cutting off their right and top edges. The edges of the scroll are no longer cut off. Before-and-after images are available for comparison. (iscrl5a.bam, iscrl5b.bam, iscrl5c.bam, iscrl5d.bam, iscrl5e.bam, iscrl5f.bam, iscrl5g.bam, iscrl5h.bam, iscrl5i.bam, iscrl5j.bam, iscrl5k.bam, iscrl5l.bam, iscrl5m.bam, iscrl5n.bam, iscrl5o.bam, iscrl5p.bam, iscrl5q.bam)
- Two items unavailable to the party in the game were also fixed as part of this review: Algernon's Cloak (clck08.itm) and a copy of the Elven Court Bow +3 (gorwom2.itm) used by The Huntress in Watcher's Keep.
Party No Longer Loses Item Stacks
The entrance to Shangalar's Lair could potentially eat a stack of rogue stones rather than just one. Maheer, the merchant on Waukeen's Promenade, will no longer take stacks of diamonds/beljurils for Horn of Valhalla upgrades. (tran1008.bcs, shop03.dlg)
Maces of Disruption Fixes
The Improved Mace of Disruption had additional errors that needed to be addressed: the damage being done to undead was 1d6 + 5 instead of the listed 2d6 + 4, the 'Undead destroyed' string never appeared because of a bad order of effects, and it lacked the same glowing effect of the regular Mace of Disruption. The regular Mace of Disruption should have been doing 2d6+4 to undead but was actually only doing 1d6+4 damage. Becuase Runehammer +4, Runehammer +5, and the deva attack item all use the same file to apply undead damage, they are also patched. (blun12.itm, blun25.itm, cddisr.eff, deva.itm, hamm10.itm, hamm11.itm, macedisu.eff)
Slings Applying Strength Damage
Slings are very consistent in not applying strength bonuses to damage when used, save two (one by design, one by bug). However, many sling users were getting strength damage anyway because several magic bullets were flagged to use strength bonuses. (bull02.itm, bull03.itm, bull04.itm, bull05.itm, bull06.itm, quiver05.itm, quiver06.itm, wasling.itm)
Magical Armor Can Not Be Worn With Protection Rings
The cursed Missile Attraction +2 armor and the Mithral Field Plate Armor +2 were not being properly excluded from wearing rings of protection. (itemexcl.2da)
Issues With Normal Darts
Regular darts had a number of issues that needed to be addressed. Unlike all other darts, they were not setting attacks per round to 3, were doing slashing damage instead of missile, and were applying strength bonuses to their damage. (dart01.itm)
Weapons Using Incorrect Proficiencies
Several weapons had the incorrect proficiency set in their item file. This can result in characters not receiving proficiency bonuses when trying to wield them.
- Aegis Fang (aegis.itm, aegis2.itm) changed to war hammer proficiency.
- Short Bow +1 (bow06.itm) changed to short bow proficiency.
- The Long Bow of Marksmanship (bow07.itm) changed to long bow proficiency.
- Bruenor's Axe (bruenaxe.itm) changed to axe proficiency
- The Ogre's Sword (misc4q.itm) changed to bastard sword proficiency
- Embarl's Dagger (misc4u.itm) and Dagger of Venom (misc75.itm) changed to dagger proficiency
- Shaman's Staff (misc5t.itm) changed to staff proficiency
- Most arrows, bolts, and bullets had no proficiency set, allowing characters to wield bows, crossbows and slings without non-proficiency penalties. (arow01.itm, arow02.itm, arow03.itm, arow04.itm, arow05.itm, arow06.itm, arow07.itm, arow08.itm, arow09.itm, arow10.itm, arow11.itm, arow14.itm, arow15.itm, arow1a.itm, bolt01.itm, bolt02.itm, bolt03.itm, bolt04.itm, bolt05.itm, bolt06.itm, bolt07.itm, bolt08.itm, bolt09.itm, bull01.itm, bull02.itm, bull03.itm, bull04.itm, bull05.itm, bull06.itm, dwbolt01.itm, dwbolt02.itm, dwbolt03.itm, flam01.itm, frag01.itm, frosty.itm, iarow01.itm, kuobolt.itm, kuobolt2.itm, kuobolt3.itm, laser.itm, light.itm, puls01.itm, puls02.itm, quiv01.itm, quiver01.itm, quiver02.itm, quiver03.itm, quiver04.itm, quiver05.itm, quiver06.itm, sahbolt.itm, secret02.itm, secret03.itm, secret04.itm)
Enchantment Level Errors
Every weapon in BG2 has an 'enchantment' level. The enchantment is generally straightforward: an axe +1 has one enchantment, axe +3 is three, etc. The enchantment level is what determines which weapons can bypass spells such as mantle or hit creatures that need +x weapons to hit. The enchantment level is incorrect in several cases. One very notable case is that the attack item of many demons was flagged as just one enchantment instead of four. The engine does not handle weapons such as the Bastard Sword +1/+3 vs. Shapeshifters, Hammer +1/+4 vs. Giantkin, and Daystar +2/+4 vs. Evil Creatures consistently. In all but a few cases, the weapon uses the higher of the two bonuses as its enchantment level. All weapons of this nature use the higher of the two bonuses as their enchantment; i.e. Daystar will be treated as a +4 weapon. (arow04.itm, bearspir.itm, bolt07.itm, bow06.itm, bruenaxe.itm, bull04.itm, dagg19.itm, dart05.itm, kuobolt2.itm, lionspir.itm, misc75.itm, p3-12m4.itm, snakspir.itm, staf10.itm, sw1h03.itm, sw1h31.itm, wolfspir.itm)
Several magical items were not being flagged as such. For weapons in particular this can result in magical weapons failing to harm a mage under the effects of Protection From Normal Weapons, or being unable to hit creatures which require +x weapons to hit. Additional items, such as familiars, were also flagged as magical so that the black dragon in Suldanessellar would not take them if the party handed over all of their gear. (aeriebab.itm, bearspir.itm, bootdriz.itm, clck18.itm, dagg19.itm, dax1h01.itm, famcat.itm, famcat25.itm, famdus25.itm, famdust.itm, famfai25.itm, famfair.itm, famfer.itm, famfer25.itm, famimp.itm, famimp25.itm, fampsd.itm, fampsd25.itm, famqua25.itm, famquas.itm, famrab.itm, famrab25.itm, helmskwa.itm, kuobow.itm, kuosper.itm, lionspir.itm, misc4g.itm, misc73.itm, misc84.itm, plat98.itm, plybass.itm, plyfist.itm, plymstar.itm, plysala.itm, plyspid.itm, plywyvrn.itm, scrlag.itm, snakspir.itm, sw1h47.itm, wolfspir.itm)
Illithid Control Circlet Durations
The control circlets obtainable in the Underdark illithid lair have had their durations reduced to six hours, following the existing Baldurdash solution. The circlets could cause serious issues when used on party members, specifically, not being able to rejoin if they left the party for any reason while under the influence of the circlet. (misc9x.itm)
Two of the normal books in the game--the History of Shadowdale (subtitled Doust Chooses Mourngrym Amcathra to Succeed Him) and the History of the Drow (subtitled The Dark Wars)--could not be sold, despite being able to sell every other similar item of this type. The Root of the Problem has a price of zero and can't be sold. It now uses its value from BG. (blun10.itm, book27.itm, book39.itm)
Magically Created Weapons Have Zero Weight
Nearly all magically created items in BG2 have zero weight, though there are a few exceptions. Fixpack changes Melf's Minute Meteors, Jan's Flasher Master Bruiser Mates, weapons created by Enchanted Weapon, Shillegagh, and a few others to have zero weight. (bolt07.itm, brdflute.itm, enmace.itm, enmorn.itm, enstaff.itm, ensw1h01.itm, ensw1h02.itm, ensw2h.itm, melfmet.itm, plymstar.itm, plysala.itm, shille.itm, sorb.itm)
Boots of Speed and Grandmaster Armor Applying Haste, Not Movement Rate Increases
The boots of speed and the grandmaster armor describes their effects as "increases movement rate" and "Increase movement rate as Boots of Speed", respectively. However, both were trying to apply haste effects instead of just a movement rate increase, which lead to miscellaneous errors (such as haste failing to work) on characters with these items equipped. (boot01.itm, leat24.itm)
Item Effects Failing Due to Bad Timing Modes
Some items were failing to apply effects due to bad timing modes on their effects. Items should apply their effects continuously while equipped, but many were using instant or permanent timing modes. The former would cause the effect to disappear immediately, while the latter would force the effect to persist after the item had been removed, or even stack if they item was re-equipped. For example, Lilarcor would permanently make wielders immune to the spinning confusion animation (but not confusion itself). The infamous stacking regeneration of greater wolfweres is another effect of this bug.
For the most part, the effects are minor or cosmetic (usually colors not being set) but there a few very important ones, particularly monster immunities: many creatures (Bodhi, for example) have immunities to Nature's Beauty, Demogorgon is immune to Lower Resistance, and liches were missing many spell level protections and resistances. (aegis.itm, aegis2.itm, ax1h04.itm, ax1h05.itm, ax1h06.itm, ax1h08.itm, bazpatrg.itm, blun01.itm, blun04.itm, blun06.itm, blun10.itm, blun23.itm, blun24.itm, blun31.itm, bodhi.itm, bow02.itm, bow05.itm, bow08.itm, bow09.itm, bow10.itm, bow11.itm, bow14.itm, bow15.itm, bow16.itm, bow18.itm, bow19.itm, bow20.itm, bow21.itm, bow24.itm, bow26.itm, bow99.itm, bownon.itm, cattac1.itm, cattibow.itm, chalslay.itm, chwraith.itm, clown.itm, dagg04.itm, dagg05.itm, dagg16.itm, dagg18.itm, daggshit.itm, demogorg.itm, demsuc01.itm, dwhalb01.itm, enmace.itm, enmorn.itm, ensw2h.itm, frosty.itm, fsspir.itm, ghost.itm, ghost2.itm, giafir.itm, giafir2.itm, giafir3.itm, giants01.itm, gorchr.itm, gorfirg.itm, gorjelfu.itm, gorjelgr.itm, gormisti.itm, gorwom1.itm, halb01.itm, halbrd01.itm, hamm01.itm, helm14.itm, hgber01.itm, hgnymph.itm, hgwra01.itm, holdring.itm, hslaywpn.itm, hspectre.itm, iax1h01.itm, iblun04.itm, ibow03.itm, ihamm01.itm, innoc2.itm, invulner.itm, irongol.itm, kuobow.itm, lich.itm, mdog1.itm, npbow.itm, objring.itm, plymstar.itm, reaver.itm, ring94.itm, ring95.itm, ring99.itm, ringwolf.itm, seltest.itm, shalt01.itm, skelclub.itm, skelwasu.itm, slayerwp.itm, slaysh01.itm, spectr.itm, stalker.itm, stonring.itm, stonskin.itm, surehp1.itm, sw1h08.itm, sw1h14.itm, sw1h57.itm, sw1h99.itm, sw2h01.itm, sw2h01b.itm, sw2h02.itm, sw2h05.itm, sw2h14.itm, telslav.itm, telslav2.itm, ttsword2.itm, vamp.itm, vamp1.itm, vamp2.itm, vamp3.itm, wight.itm, wraith1.itm, xbow01.itm, xbow02.itm, xbow03.itm, xbow07.itm, xbow08.itm, xbow17.itm)
Corrections to Item Usabilities
Many, many errors here. Items have sets of flags (64 in all) that determine which items can be used by what class, race, alignment, and kit.
- Adventurer's Robe (clck14.itm), Knave's Robe (clck12.itm, clck18.itm), Mage Robe of Cold Resistance (clck09.itm), Mage Robe of Electric Resistance (clck11.itm), Mage Robe of Fire Resistance (clck10.itm), Robe of the Evil Archmagi (clck17.itm), Robe of the Good Archmagi (clck15.itm, clck19.itm, hgwra02.itm), Robe of the Neutral Archmagi (clck16.itm), Robe of Vecna (wa2robe.itm), Traveller's Robe (clck13.itm): Now usable by dual-classes from wizard slayers (if allowed by new class).
- Amulet of Power (amul21.itm): Now usable by rangers and paladins. Now unusable by monks and barbarians.
- Ankheg Plate (plat06.itm): Now unusable by stalkers and avengers; now usable by archers.
- Antidote (potn20.itm), Antidote (Cursed) (potn32.itm), Elixir of Health (potn17.itm), Extra Healing Potion (potn52.itm), Healing Potion (Cursed) (potn25.itm), Healing Potion (ipotn08.itm, potn08.itm), Superior Healing Potion (potn55.itm): Now usable by wizard slayers.
- Belm +2 (sw1h30.itm), Drow Flail +3 (dwblun01.itm), Drow Halberd +3 (dwhalb01.itm), Drow Lance +3 (dwsper01.itm), Drow Long Sword +3 (dwsw1h02.itm), Drow Piwafwi Cloak (dwclck01.itm, misc9w.itm), Embarl's Dagger (misc4u.itm), Scimitar (sw1h20.itm), Scimitar (sw1h56.itm), Scimitar +1 (sw1h22.itm), Scimitar +2, Rashad's Talon (sw1h23.itm), Scimitar +3 (sw1h52.itm), Sendai's Flail (sendai.itm), Shazzellim +1 (sw1h50.itm): Now unusable by beast masters.
- Big Metal Unit (scrladj.itm, secret01.itm, secret02.itm, secret03.itm, secret04.itm): The Big Metal Unit is supposed to be usable by all classes, races, alignments, and all kits.
- Blue Dragon Plate (plat20.itm): Now usable by druids and archers; now unusable by stalkers.
- Boots of Speed (boot01.itm): Now usable by monks.
- Bow of Arvoreen (npbow.itm): Now unusable by bards, fighter-mages, rangers, paladins, fighter-mage-thieves, mage-thieves, half-orcs, and kensais.
- Chaos (npsw05.itm), Entropy (npsw06.itm), Yoshimo's Katana (npsw02.itm): Now unusable by half-orcs.
- Contingency (scrl7u.itm): Now usable by dual-classes from berserkers (if allowed by new class).
- Corthala Family Armor (npchan.itm): Now unusable by lawfuls, neutrals (good-evil axis), evils, chaotics, fighter-mage-clerics, fighter-clerics ,fighter-mages, fighter-druids, fighters, cleric-rangers, cleric-thieves, cleric-mages, figher-thieves, fighter-mage-thieves, half-orcs, beastmasters, and archers. Removed redundant restriction flags for kensais.
- Corthala Family Blade (npsw04.itm): Now unusable by lawfuls, neutrals (good-evil axis), evils, chaotics, and half-orcs. Now usable by thieves (allows backstab). Removed redundant restriction flags for undead hunters, inquisitors, cavaliers, kensais, wizard slayers, and berserkers. Minimum stat requirements are also altered slightly to restrict this to Valygar more strictly.
- Crimson Dart +3 (dart08.itm): Now unusable by kensais.
- Dagger of <CHARNAME> (dagg19.itm), Poisoned Throwing Daggers (dagg16.itm): Now usable by druids.
- Drow Adamantine Chain +5 (dwchan02.itm), Drow Elven Chain +3 (dwchan01.itm): Now unusable by beast masters, stalkers, and archers. Now usable by dual-classes from enchanters (if allowed by new class).
- Drow Crossbow of Speed (dwxbow01.itm), Sling of Everard +5 (wasling.itm): Now unusable by cavaliers and kensais.
- Drow Full Plate +5 (dwplat01.itm): Now unusable by barbarians, shapeshifters, beast masters, stalkers, and archers. Now usable by dual-classes from enchanters (if allowed by new class).
- Drow Medium Shield (dwshld01.itm): Now usable by shapeshifters. Now unusable by monks.
- Drow Scimitar +3 (dwsw1h01.itm): Now unusable by monks and beast masters.
- Dwarven Thrower (hamm06.itm): Now unusable by bards, fighter-mage-clerics, fighter-mages, cleric-rangers, cleric-thieves, cleric-mages, rangers, paladins, fighter-mage-thieves, and half-orcs.
- Extra Healing Potion (ttpot.itm): Now usable by inquisitors and wizard slayers.
- Firecam Full-Plate Armor (npplat.itm): Now unusable by neutrals (lawful-chaotic axis), neutrals (good-evil axis), evils, chaotics, half-orcs, monks, and gnomes. Minimum stat requirements are also altered slightly to restrict this to Keldorn more strictly.
- Fireshield (Blue) (scrl1w.itm), Stoneskin (scrl2b.itm): Now usable by dual-classes from Morninglords of Lathander, Watchers of Helm, Stormlords of Talos, swashbucklers, bounty hunters, assassins, kensais, wizard slayers, and berserkers (if allowed by new class).
- Full Plate Mail +1 (plat05.itm), Firetooth +4 (xbow15.itm), Firetooth +5 (xbow16.itm): Corrected the minimum strength requirements.
- Gauntlets of Crushing (brac19.itm): Now usable by druids. Now unusable by kensais and wizard slayers.
- Gauntlets of Extraordinary Specialization (brac21.itm): Now unusable by monks. Now usable by barbarians and dual-classes from bounty hunter and assassin kits (if allowed by new class).
- Gauntlets of Ogre Power (brac06.itm): Now usable by bards.
- Gloves of Pickpocketing (brac17.itm): Now unusable by fighter-mages, fighters, rangers, paladins, and monks.
- Hallowed Redeemer (npsw03.itm): Now unusable by neutrals (lawful-chaotic axis), neutrals (good-evil axis), evils, chaotics, elves, fighter-mage-thieves, half-orcs, monks, gnomes, halflings, half-elves, and dwarves.
- Handmaiden's Mace (hlolth.itm): Now unusable by half-orcs. Now usable by dual-classes from swashbucklers, bounty hunters, assassins, stalkers, archers, transmuters, necromancers, invokers, illusionist, enchanters, diviners, conjurers, abjurers, kensais, berserkers, and wizard slayers (if allowed by new class).
- Harp of Discord (misc3m.itm), Methild's Harp (misc3o.itm): Now unusable by paladins.
- Harper Pin (misc5x.itm): Despite its description, the developers clearly sought to limit this pin to Jaheira only. Stat restrictions are now in place and it is now unusable by bards, half-orcs, barbarians, avengers, shapeshifters, totemic druids, kensais, wizard slayers, and berserkers.
- Mercykiller Ring (wa2ring.itm), Ring of Lock Picking (ring35.itm): Now unusable by bards, cleric-mages, and monks.
- Metaspell Influence Amulet (amul16.itm), Potion of Master Thievery (potn36.itm), Remove Curse (scrl5g.itm), Ring of Acuity (ring40.itm), Ring of Holiness (ring22.itm), Rod of Reversal (rods06.itm), Rod of Terror (rods05.itm), Shaman's Staff (misc5t.itm), Staff (misc9o.itm), Stone to Flesh (scrl8c.itm), Summon Nishruu (scrl8b.itm): Now unusable by monks. Vocalize (scrl3g.itm): Now unusable by monks. Wand of Apprenti (wand15.itm), Wand of Cloudkill (wand13.itm), Wand of Fear (wand02.itm), Wand of Fire (wand05.itm), Wand of Frost (wand06.itm), Wand of Lightning (wand07.itm), Wand of Monster Summoning (wand10.itm), Wand of Paralyzation (wand04.itm), Wand of Polymorphing (wand09.itm), Web Sack (wand14.itm): Now unusable by monks.
- Moon Dog Figurine (misc7t.itm): Now usable by dual-classes from Morninglords of Lathander, Watchers of Helms, and Stormlords of Talos (if allowed by new class).
- Ogre's Sword, The (misc4q.itm): Now unusable by fighter-druids and beast masters.
- Patrol Leader Helmet (misca6.itm): Now unusable by bards, mage-thieves, mages, and monks.
- Pierce Shield (scrl9a.itm), Protection from Electricity (scrl5t.itm): Removed redundant restriction flags for avengers, shapeshifters, totemic druids, beast masters, stalkers, archers, undead hunters, inquisitors, and cavaliers. Now usable by dual-classes from Morninglords of Lathander, Watchers of Helm, Stormlords of Talos, swashbucklers, bounty hunters, assassins, kensais, wizard slayers, and berserkers (if allowed by new class).
- Protection From Evil (scrl3h.itm): Now unusable by transmuters.
- Protection From The Elements (scrl8e.itm): Now unusable by thieves. Now usable by dual-classes from swashbucklers (if allowed by new class). Removed redundant restriction flags for beast masters.
- Red Dragon Scale (plat18.itm): Now unusable by stalkers and usable by archers.
- Robe of the Apprenti (clck29.itm): Now unusable by monks. Now usable by dual-classes from wizard slayers (if allowed by new class).
- Rod of Absorption (rods01.itm): Now unusable by fighter-druids and monks.
- Rod of Lordly Might - Mace (rodmace.itm), Sword of Chaos (sw1h99.itm): Now unusable by fighter-druids.
- Rod of Smiting (rods04.itm): Now unusable by fighter-druids, fighter-thieves, and monks.
- Rogue's Potion of Frost Giant Strength (potn56.itm): Now usable by cleric-thieves, mage-thieves and by dual-classes from Morninglords of Lathander, Watchers of Helm, Stormlords of Talos, transmuters, necromancers, invokers, illusionists, enchanters, diviners, conjurers, abjurers, kensais, and berserkers (if allowed by new class). Now unusable by wild mages.
- Claw of Kazgaroth (misc72.itm), Horn of Kazgaroth (misc73.itm), and Ruby Pendant of Beguiling (regisamu.itm): Now unusable by wizard slayers.
- Scarlet Ninja-To +3 (waninja.itm): Now unusable by neutrals (lawful-chaotic axis), chaotics, fighter-mage-thieves, and half-orcs.
- Scimitar (misc9q.itm): Now unusable by fighter-mage-clerics, fighter-clerics, cleric-rangers, cleric-thieves, and beast masters.
- Scrolls of Champion's Strength (scrl5e.itm) and Chaotic Commands (scrl5f.itm) required 9 wisdom instead of 9 intelligence.
- Shadow Dragon Scale (leat19.itm): Now unusable by shapeshifters.
- Shadow Thief Dagger (dagg18.itm): Now unusable by fighter-mage-clerics. Now usable by druids.
- Shield of Harmony (shld25.itm): Now usable by dual-classes from enchanters (if allowed by new class).
- Staff of Woodlands (staf14.itm): Now unusable by rangers.
- Summon Fiend (scrl9b.itm): Removed redundant restriction flags for avengers, shapeshifters, and totemic druids. Now usable by dual-classes from Morninglords of Lathander, Watchers of Helm, and Stormlords of Talos (if allowed by new class).
- Sword of Arvoreen (npsw01.itm): Now unusable by bards, fighter-mages, rangers, paladins, mage-thieves, fighter-mage-thieves, and half-orcs.
- Wakizashi (sw1h46.itm), Wakizashi +1 (sw1h47.itm), Yamato +4 (sw1h66.itm): Now unusable by fighter-druids and druids.
- White Dragon Scale (chan20.itm): Now usable by mage-thieves. Now unusable by shapeshifters and stalkers.
- Wizard Eye (scrla1.itm): Now unusable by abjurers.
- Wong Fei's Ioun Stone (helm34.itm): Now usable by berserkers and dual-classes from avengers, totemic druids, shapeshifters, Morninglords of Lathander, Watchers of Helm, Stormlords of Talos, swashbucklers, bounty hunters, assassins, transmuters, necromancers, invokers, illusionists, enchanters, diviners, conjurers, abjurers, and kensais (if allowed by new class).
Halberd Flagged as Stolen
In the first level of Watcher's Keep, one of the statues can drop a +2 halberd. The item is erroneously flagged as stolen. (gorsta09.cre)
The attack ranges of the various spears in the game were set inconsistently, resulting in some spears having the range of daggers and others being able to strike from well outside of physical range. Spears now have the same range as other two-handed melee weapons. (sper02.itm, sper03.itm, sper05.itm, sper06.itm, sper07.itm, sper08.itm, sper09.itm, sper10.itm, sper11.itm, sper12.itm, spermel.itm, tasloiil.itm, waspear.itm)
Staff of the Magi Errors
The Staff of the Magi had several errors. The staff was displaying a protection from magic icon instead of a mind shield icon, and several of its equipped effects (such as immunity to charm) could fail since they were not bypassing magic resistance or could be dispelled. (The invisibility effect alone remains disspellable; otherwise characters who left the party with the staff equipped could never rejoin, as they would be permanently invisible.) It also lacked additional effects from its equipped protection from evil, notably the -2 attack penalty of evil creatures and protection from demons. The dispel magic on hit was revamped since it could be occasionally flaky and the staff's spell trap now works exactly as the spell of the same name. (staf11.itm, staf11.spl)
Habib's Mighty Scimitar
Habib is the thief that appears and throws a scimitar at the party in the docks and then runs away. His scimitar is supposed to be 'caught' by the party member targeted, but was being created on the target as a magical weapon. The caught scimitar is now created in inventory. (sw1h57.itm)
More Than One Copy of Unique Items Can Be Obtained
- In the Mazzy-Gorf encounter, the player has the opportunity to buy a potion from Festule the alchemist to weaken Gorf. Festule's Potion is also available inside a chest in the Temple of Helm--the potion should only be available from Festule in the course of the Mazzy-Gorf encounter, so the potion in the chest is changed to a healing potion. (ar0901.are)
- Varscona, a unique +2 long sword, is available from many sources throughout the game, most notably amongst several of the Suldanessellar elves. Varscona now only exists on Ribald in the Adventurer's Mart and all other instances have been replaced with generic +2 long swords. (c6bran.cre, c6catti.cre, c6catti2.cre, c6elf1.cre, c6fake.cre, c6gener.cre, c6god.cre, c6kach2.cre, c6kalden.cre, c6levin.cre, c6nerit.cre, c6will.cre, cupris1.cre, cupris2.cre, e34.cre, suelf12.cre, suelf13.cre, suelleg1.cre, suendel1.cre, suendel2.cre, suendel3.cre, suendel4.cre, suendel5.cre, suendel6.cre)
- Suryris's Blade, a +2 halberd, is available for sale at the Adventurer's Mart as well as on a few creatures throughout the game. It remains on sale at the Adventurer's Mart and is swapped for a generic +2 halberd in all other instances. (bazliz04.cre, gorsta02.cre, gorsta09.cre, jarevia.cre)
- Tolgerias can be exploited to obtain multiple Rings of the Ram. If his ring is pickpocketed, it's still given to the party as a reward if the party turns over Valygar's body for a reward or if he is killed in the course of obtaining the planar sphere. If the ring is pickpocketed from Tolgerias, he will not have another one. (tolger.dlg, tolger.bcs)
- Valygar would drop a copy of his body if imprisoned (valygar.bcs)
- In the conflict between the King and Prince in the Sahuagin City, the party typically ended up with multiple copies of the Treasury Key, Rebel Orb, and Magical Rope. If the party was aggressively pickpocketing, they could end up with even more than two copies of these items. Various aspects of the quest are reworked so that each item is unique and consistent, and the party can obtain only one of each. Some lines needed to be changed as well. (strrefs #46589 snd #46590, ar2300.bcs, sahkng01.bcs, sahpr2.dlg, sahpr4.cre)
Several items could be pickpocketed, though it made no sense to be able to do so. For example, Ti'Vael's Head could be pickpocketed from Ti'Vael or an ankheg shell from an ankheg. (ankheg01.cre, ar0901.bcs, bazdra02.cre, cltiva01.cre, firmag01.cre, gemch02.cre, hellgen.cre, hlkang.cre, sctelwyn.dlg, trrak01.cre, udprince.cre)
Fire Giant's War Hammer Doing Slashing Damage
The war hammers wielded by fire giants was doing slashing damage instead of crushing. (giafir.itm)
Rings of Air/Earth/Fire Control Charming Everyone, Other Errors
The three rings of elemental control were able to charm any creature, not just their corresponding elementals. The spells cast by these rings also had the same errors as their underlying spells. These are fixed, along with two other minor issues: some of the rings were not recharging after rest, and the range was set incorrectly. The Ring of Air Control had an additional error in that the save bonus that comes with improved invisibility was not being applied. The Ring of Earth Control was also granting an erroneous +1 save bonus which is removed. (cdcmelem.eff, ring27.itm, ring28.itm, ring29.itm)
Azuredge Axe Corrupted, Other Errors
The Azuredge Axe is corrupted; the effect indices were not correctly referencing an existing effect. The axe has additional issues which are also addressed, such as the item not destroying undead, doing an extra two dice of damage when thrown, and missing the strength bonus when thrown (other throwing axes get strength damage) as well as its bonus damage against undead. (ax1h10.itm, ax1h10a.eff, ax1h10b.eff)
Keep (Drow) Adamantine Items Exploit
The drow items made of adamantine are supposed to disintegrate in sunlight. This is accomplished by swapping the items for dust but these swaps are only performed in the Underdark Exit area. This opened the exploit of muling items by giving them to a character like Mazzy or Jaheira, kicking them out of the party, and then adding them back to the party at a later juncture. The checks have been moved to the main game script to prevent this exploit. (baldur.bcs)
Captain Arat Gives Infinite Fire Arrows
Prior to clearing out the de'Arnise Keep, Captain Arat would give the party a quiver of fire arrows every time the party speaks with him. This exploit is now closed. (kpcapt01.dlg, naliaj.dlg)
BG2 shipped with some bad references in its key file. The four items and two areas, though unused, are removed from the key file to eliminate issues with editing applications. (iplot01k.itm, iplot04g.itm, iplot04h.itm, iplot04i.itm, xr2400.are, xr2600.are)
Quest Reward Bugs
Various quests had bugs and exploits when handing out quest rewards:
- The party was not receiving 20,000 XP for opening the final seal in Watcher's Keep, another 20,000 for activating the fans on the elemental level, and another 20,000 for directing the poison fumes into the ice room. (fswheel.bcs, gorgoli.bcs, itglobes.bcs)
- Elhan erroneously grants the party 74,500 XP twice when bringing them to Suldanessellar. (elhan.dlg)
- Raissa, the girl in Trademeet who's been turned into a skin dancer against her will, can be exploited for multiple XP. If the party restores her, she can be spoken to repeatedly for her XP reward. (trskin01.dlg)
- After using the sleeping potion in the Festhall on Brynnlaw, the party could speak to Ellie multiple times and receive an XP reward. Ellie now leaves after granting the party XP. (pircor05.dlg)
- If you talk to Khollynnus Paac as she's trying to leave after the Solamnic Knights are being sent home, you can get the 45,000 XP reward every time. It's now impossible to speak to her as she leaves, closing the loophole. (mgkhol01.dlg)
- If you convince Desharik to admit you to Spellhold, he rewards the party XP and then transports the party to the Asylum. As part of changing areas, the game is auto-saved. If you reload the auto-save, you can speak to Desharik again to receive the reward again, and repeat. The XP reward is moved out of Desharik's dialogue and into the script that runs after the auto-save to prevent this exploit. (ppdesh.dlg, cut41f.bcs)
- At certain levels, killing Gromnir in Saradush could result in receiving much more than the 30,000 experience you were supposed to receive. (xplist.2da)
- When you bring the Hand of Dace and Kurtulmak's Crystal Shard to the head in Spellhold, it rewards XP and opens the passage to the next level. If you're fast enough, the head can be spoken to multiple times for the reward. (ppridd.dlg)
- If you assemble the rift device, defeat the Unseeing Eye, and return the drained rod to the diseased ones, there exists an exploit to receive the quest rewards more than once. After speaking to the diseased one outside the temple, he transports you inside and then initiates dialogue again. In the short pause, you can manually initiate dialogue--every time you manage to do so, another avatar appears and each one gives you XP and the Saving Grace shield. This exploit is closed. (riftm01.dlg)
- After placing the three items to summon the avatar of Rilifane, the game grants the XP reward and then summons the avatar. If the party removes the items in the brief space of time between placing the items in the altar and the appearance of the avatar, the process can be repeated. (suavatar.dlg, sustatue.bcs)
- If you attack Rejiek Hidesman and then try to speak with him, you can gain repeated XP rewards for exposing him. (tanner.dlg)
- After killing the brain in the Underdark illithid lair and freeing the slaves, you can speak to the slave leader for a reward. However, the leader's dialogue is not setting a variable to prevent the dialogue from repeating--allowing the party to obtain the quest reward repeatedly by speaking with him multiple times. (udilsla2.dlg)
- Vithal, the mage that can be freed in the Underdark, could be force-talked repeatedly for experience after returning from the air gate. (udvith.dlg)
- When leaving, Brother Odren at Watcher's Keep could be spoken to multiple times for the XP reward. (gorodr1.dlg)
- In the lowest level of de'Arnise Keep, the player can lure the umberhulks in the area off to a side room instead of fighting them. However, the trigger that grants the XP reward for doing this doesn't check to make sure the player hasn't already killed the umberhulks. Approaching the container where the dog stew goes also displays a nonsensical string if the umberhulks are already dead. (ar1301.bc, umbpoly.bcs, kpumb01.cre)
- After killing the paladins upon entering Windspear Hills, Garren Windspear appears, asks that you follow him to his cabin, and then teleports you right outside. If you just go straight to Firkraag's dungeon instead of into the cabin he appears again to inform you of the kidnapping of his son/daughter. After defeating Firkraag, you can ring up both copies (the one now outside the dungeon and the one back in the cabin) for XP. The Garren at the entrance of the dungeon now disappears at the rescue of his daughter; go to the cabin instead. (garren.bcs)
- You can talk to Jermien multiple times at the conclusion of the Daar-Colette-Jermien quest involving the juggernaut golem in Imnesvale and receive experience points each time. (jugdar01.dlg, jugjer01.dlg)
- Jarlaxle is supposed to give the party 2500 gold for their efforts on his behalf, however, no gold is given since Jarlaxle has none. The party now properly receives their reward. (jarlaxle.dlg)
- Bringing Firkraag the deed to the Windspear Hills nets everyone XP except for the PC (firkra02.dlg)
Stronghold Errors and Exploits
The stronghold quests were put under the microscope, and several issues were addressed:
- de'Arnise Keep (ar1303.bcs, kpforge.bcs, kpglai01.cre, kpglai01.dlg, nalia.dlg)
- The forge used to create the Flail of Ages is supposed to work after the player has obtained the stronghold, but it was not due to variable scope issues in the script. In addition, if the party assembles the Flail of Ages piece by piece they can miss various XP rewards.
- If the player is eligible, Nalia will offer the de'Arnise Keep as a stronghold, however, Nalia omits the check to see if the player already has a stronghold in several of the branches, allowing the player to acquire more than one stronghold.
- When encountering Glaicus, the party is supposed to be able to charm Glaicus instead of fighting him; this was failing because the area script was un-charming him with a version of dispel magic that almost always failed. An alternative method is being tested in the beta core fixes that allows the party to charm or use dispel magic on Glacias.
- Druid Grove (ar0020.bcs, cechalle.dlg, dgdru01.bcs, druidad.cre, druidad.bcs)
- Flydian remains in the City Gates, ready to hand out the quest to rescue Trademeet, even after Trademeet has already been rescued. He now goes away if Trademeet's troubles have already been settled.
- You must be level 14 to challenge for the title of Great Druid in the Druid Grove. However, Master Verthan was checking the fighter level, not druid level, for multi- and dual-class fighter-druids.
- The messenger that summons the PC back to the grove to challenge for Great Druid status can end up with a 'no valid replies or links' error if not spoken to prior to the player becoming Great Druid (he now leaves if this happens).
- On their way through the druid grove, the party encounters a group of druids fighting trolls. If the druids could not see any party members, the druids would display 'Foul unnatural creatures!' without any trolls present.
- Five Flagons Playhouse (ar0522.bcs, ar0523.bcs, bdhigg01.dlg)
- The player could continue to earn income from the theater after selling it to Higgold.
- Meck would also sometimes fail to spawn after the conclusion of the stronghold quests and Jenna would move to the wrong spot after some events.
- The portal to the planar prison could be left open under some circumstances.
- Noble Order of the Radiant Heart (ar0415.bcs, ar0903.bcs, kaypal02.bcs, kaypal03.bcs, kaysmg04.bcs, plfarm04.cre, plfarm05.cre, plfarm06.cre, plgirl01.bcs, plgirl01.cre)
- In the course of the paladin stronghold, the PC must protect Tyrianna from assassins until her relative arrives. The quest can be broken in many simple ways, such as going up or down the stairs. The quest is now more tightly controlled via cut scene to prevent it from being broken.
- Under certain outcomes, Tyrianna would never leave at the conclusion of her quest.
- Killing the squatters in the Baron Metrich quest would erroneously cause the townspeople to go hostile.
- The player could not rest in the NORH once they became a member.
- Several actors in the fallen paladin-smuggler fight had bad targeting in their scripts, causing them to try and attack a foe that was already dead in lieu of valid targets.
- Planar Sphere (ar0411.bcs, ar1002.are, ar1002.bcs, lavok.dlg, lavok02.bcs mgteos01.dlg)
- If you refuse to take Lavok outside after returning the Planar Sphere to Athkatla, Lavok will give the sphere to mage PCs without checking if the PC already has a stronghold.
- Lavok has an invincibility item so that he can survive attacks from the player and still deliver his required dialogue to advance the plot and allow the party to escape the planar sphere. He's also assigned a script that kills him instantly if the item is removed. In Lavok's dialogue, this item is removed during the course of his final dialogues. Occasionally, the script will kick in and kill Lavok before he is able to deliver his final dialogue. This is most prevalent when he is taken outside, as he can die before offering the player the sphere as a stronghold. As Lavok's final dialogues already kill him at their conclusion, the removal of the invincibility item is unnecessary--the action is removed to prevent him from dying prematurely.
- If the player sneaks up and kills Lavok before his initial dialogue--say, via backstab--he'll transform, give his opening dialogue, and go hostile, breaking the quest and trapping the player in the sphere.
- Under rare circumstances, the assassins in the planar sphere would fail to spawn due to engine quirks with creating creatures via dialogue; the spawning is now passed to the area script instead
- Ketlaar Argrim and two bodyguards hang out in the Council building in the government district. If Ketlaar is killed or imprisoned he disappears from the Council building--but his bodyguards remain forever. When Ketlaar is removed, his bodyguards now disappear as well.
- Ranger Cabin (delon.bcs, delon.dlg)
- Under a few dialogue branches, Delon can give the party the quest to investigate the killings in the Umar Hills but not add the area to the map. Delon also has a number of minor script errors, such as not leaving when he's supposed to and not realizing the party has spoken to Minister Lloyd.
- Temple of Helm (ar0901.bcs)
- If the player was stripped of the Helm temple, the party was still able to rest there due to a bad variable scope.
- Temple of Lathander (ar0900.bcs, ar0902.bcs, arval.bcs, bharval.dlg, borinall.dlg, scsain.dlg, travin.dlg)
- Cleric-rangers are not offered the Lathander temple as a stronghold, though all other variants of clerics are eligible. This is altered so that cleric-rangers can now acquire the Lathander temple as their stronghold instead of the Umar Hills ranger cabin.
- Thieves' Guild (ar0321.bcs, ar0322.bcs, ar0323.bcs, ar0324.bcs, baldur.bcs, joster.bcs, lathalrm.bcs, shthlt01.dlg)
- There were a number of ways the player could avoid paying guild dues to Renal Bloodscalp.
- The floating text above the PC's head could also be unnecessarily repeated.
- The player could not rest in the Guild once acquired.
- As part of the quests to expose Mae'Var, a logic error in a script was casing an invisible character stealing the Statuette of Lathander to get caught.
- The Fixpack includes some of the scripting fixes from the deprecated Ease of Use mod. The fixes mainly re-order scripting blocks into a better order, fix triggers, etc. (aerie.bcs, anom25.bcs, anomen.bcs, jahe25.bcs, jaheira.bcs, viconia.bcs)
- A half-orc PC should be able to initiate the Viconia romance, but a bad trigger in the main game script was preventing this. (baldur.bcs)
- Aerie and Viconia use a number of variables to track the progression of their romance. Both set their romance active variables upon joining, regardless of whether the PC is actually romanceable by them (i.e. player is female or not one of the allowed races). Despite the romance being set to active, it never actually starts because the match variable is not set. However, other characters such as Bodhi only check the active variable and thus mistakenly act as if the romance is active. (aerie.dlg, viconi.dlg)
- Anomen's personal quests--the issues with Saerk and his trial for joining the Noble Order of the Radiant Heart--would not work at all for female PCs whom he could not romance. For male PCs, his dialogue would set variables to initiate the quest; for females he would start the romance--which would initiate the quests as the romance progressed. The problem is that the while it set variables to start the romance, the romance won't proceed unless the PC is a human, half-elf, elf, or halfling. This would leave non-romanceable female PCs no way to actually proceed in the romance or to start the quests, and falsely identify them as actively romancing Anomen when checked by Bodhi or other characters. His dialogue now checks the variable set if the player is romanceable instead of a straight male/female check (non-romanceable females now get the proper variables set as if they were male), allowing the quests to proceed. (anomen.dlg)
- Because of a disagreement between his script and dialogue triggers, Galvarey would stutter if the party returned to the Harper HQ and Jaheira was invisible. His dialogue and script have been altered to remove this issue. (jagalvar.cre, jagalvar.dlg)
- If you kick Jaheira out after returning to the Harper Hold and killing Galverey, she protests that you have to go to the Harper Hold in Athkatla, even though you've already been there and confronted Galverey. (bjaheir.dlg, jagalvar.dlg, jaheirap.dlg)
- Lucette, the harper assassin, should kill Xzar at the conclusion of this quest. Lucette, however, could be interrupted by dialogue and fail to kill Xzar. This sequence can no longer be interrupted by dialogue. (harpass1.bcs)
- The priest in the Oghma Temple in the Docks is supposed to be able to help the PC cure their love interest of vampirism. However, in one branch of the dialogue a trigger was requiring that the party have the vampiric bodies of all four BioWare love interests, which is impossible. The trigger now only checks for one of the four bodies. (doghma.dlg)
- The elven war sages in Elhan's camp have information to help the PC cure their romantic interest of vampirism in chapter 6. However, the trigger to get this information was overly restrictive so the PC would not be able to receive this information as appropriate. (warsage.dlg)
- Baron Ployer's curse can kill Jaheira outright if she has too few hit points originally. If this happens in mid-conversation, it will break the game. The cut scene with Ployer has been altered to prevent this. (cut12b.bcs, dw#fpplo.spl)
- With Aerie, a variable to track whether you slept with her was not being set. Also, two of the dialogue options would leave the romance in perpetual 'in progress' status, despite being the last love talk in SoA. (baerie.dlg)
- If you add Aerie, Jaheira, or Viconia in chapter six and are a romantic match, they will immediately comment about the PC and Phaere--despite not being in the party at the time. Additional checks are added to ensure these talks only occur in the Underdark. (aeriej.dlg, jaheirj.dlg, viconij.dlg)
- After leaving with Meronia, when Jaheira returns she will respawn and repeat her dialogue if you refuse to go. (jaheirap.dlg)
Journal Entry Errors
- When you are trapped by the illithid in their Underdark lair, you encounter doors that either require you to transform into the slayer or to use one of the illithid to open them for you. When you first encounter one of these doors, they set a journal entry that is erased when the door is opened. However, if you open the doors quickly enough these script blocks can fire in reverse order, resulting in a journal entry that will remain forever. An additional check is added to prevent the journal entry if the door is already opened. (uddoor2.bcs, uddoor3.bcs)
- Due to a bad variable scope, a journal entry from Firkraag's dungeon was not being created. (ar1202.bcs)
- When speaking to the guard outside the circus tent in the Promenade, he does not add journal entries if Minsc or Yoshimo interject their comments at the end of his dialogue. The journal entries now appear if they interject. (circg1.dlg)
- Mekrath can send the party on a mission to retrieve a mirror from an imp and sets a journal entry to go with it. After completing the mission, under certain dialogue branches, Mekrath was not clearing the journal entry. Similarly, if the party later decides to simply kill Mekrath the journal entry would remain. Both of these instances are now fixed. (ar0705.bcs, mekrat.dlg)
- When you defeat TorGal with Nalia in the party, the player's journal would get two nearly identical entries in their journal. (naliaj.dlg)
Ust Natha Quest Fix Roundup
- The tasks you perform in Ust Natha for Phaere are, for the most part, on timers. The game uses two variables to track this: one variable that contains the actual timer, and another to determine if the timer is active. When one of the timed quests is given, the timer is set and the other variable is set to active. When a quest is completed, the second variable is set to inactive. Phaere instructs you to go the temple and meet her and Mother Ardulace, and the timer is set. However, meeting Mother Ardulace does not deactivate the timer. This can result in the timer expiring and the city going hostile despite performing all of Phaere's tasks correctly. (udphae01.dlg)
- If the player speaks to Phaere more than once after she assigns the Eye Tyrant quest, she becomes unresponsive when you encounter her at the platform, thus preventing the appearance of the beholder and preventing the player from completing the Ust Natha quests. (udphae01.dlg)
- If anything causes Ust Natha to go hostile between the time the Matron Mother closes the city and the summoning ritual begins, the player would be permanently trapped and unable to continue the game. (udphae01.dlg)
- Phaere will turn on you if you do not convince her of your loyalty when she proposes to eliminate Matron Mother Ardulace. As part of this, she exposes you and Ust Natha goes hostile. In one of these branches, the city does not go hostile due to a typo when setting the hostile Ust Natha variable. An additional issue of Phaere having a malformed action to leave is also addressed. (udphae01.dlg)
- While in Ust Natha, Taso Kala asks your party to eliminate the last of a sect of Ghaunadar followers. If you tarry too long and speak with Taso Kala again, she tries to reset the timer but instead sets a useless variable. (dadrow17.dlg)
- The drow guarding Adalon's eggs will sound the alarm even if the PC is invisible. (udeggs.bcs)
- In the initial mission with Solaufein, you are tasked with rescuing Phaere. If Solaufein is incapacitated during the fight, Phaere's post-rescue dialogue will break when she tries to pass it off to Solaufein. Worse, this will cause the necessary variables to not be set correctly with no way of continuing the Ust Natha quests. Phaere will now check Solaufein to make sure he's not incapacitated and, if necessary, cast Dispel Magic on him. (udphae01.bcs)
- When you first enter Deirex's area, a cut scene begins and he imprisons you (where you end up speaking with Jaraxle). The party's action queues are not properly cleared, however, and party members often ended up attacking and even killing a hapless Deirex during this sequence. (ar2207.bcs, jarlich.cre)
Twisted Rune Fixes
- The entrance to Shangalar's lair requires a rogue stone. During the cut scene that transports the party, the rogue stone is taken from the party and then the party gets moved, forcing a save. Because the rogue stone is taken before the move, reloading from the save means the party no longer has the stone. The order of actions in the cut scene is altered so that the rogue stone is taken after the auto-save. (tran1008.bcs)
- If Shangalar is killed quickly when entering the Twisted Rune HQ from the bridge district he never gets a chance to spawn his cronies, including Vaxall. Without the eyestalk from Vaxall the party is unable to leave the area. The area script is altered such that Vaxall and the other Twisted Rune members are still spawned in these circumstances. (ar1008.bcs)
Errors While Leaving Brynnlaw with Saemon Havarian
There were numerous errors that could occur in the sequence of events in the party's passage from Brynnlaw to the City of Caverns. Brynnlaw Saemon could interject into the ship sequence in the middle of the ocean, party members with AI enabled could attack during the cut scenes, and all sorts of other miscellany could go wrong. This is an extensive fix and owes much to the intense scrutiny of Roana. (ar1600.bcs, cut41q.bcs, cut41zf.bcs, cut41zg.bcs, ppsaem2.bcs, ppsaem3.dlg, ppsailor.dlg)
City of Caverns Exploit
By standing in the right place just north of the sea zombie lord, the player could initiate dialogue with the rebel sahuagin chieftain. This allows the party to see the prince without having to run through the rebel ambush and, more importantly, skip the old drow section of the city to get Sekolah's tooth. (ar2300.bcs)
Tamoko Running Away Prevents Completion of Pocket Plane Challenge
In the Pocket Plane challenge where the PC must face himself, Tamoko is included. She has a generic script assigned that, under certain circumstances, can cause her to flee and disappear, preventing the completion of the challenge. She now uses a slightly modified script so that she retains her current behavior but no longer runs away. (cdtamoko.bcs, chtaz02.cre)
Asylum Scripting Bugs
The game could be irrevocably broken in two different ways when entering Spellhold. If the party gained entry via the wardstone and then attacks Irenicus, under rare circumstances he would disappear and initiate dialogue from another area, breaking a number of post-Spellhold maze triggers and, ultimately, looping back and trapping the player in the experiment jar. The other game-breaker would occur only if the player got admitted by the Pirate Lord, declined his offer, then acquired the wardstone and entered Spellhold. Under these circumstances, Irenicus would not greet the player, no doors would be open, and the trap on the bridge would be reactivated, trapping the party. (ar1515.bcs)
Brynnlaw Vampire Attack May Prevent Quest From Advancing
If you take Aran Linvail's help in reaching Brynnlaw, three of Bodhi's vampires would attack you upon arrival. If any of them turn to mist and escape instead of being killed, the script to advance the plot further stalls, as it is only explicitly checking for the deaths of all three vampires. The script now accounts for them being driven off instead of killed. (ar1600.bcs)
Vampires Transforming to Gas Prevents Conclusion of Quest for Aran Linvail
If the PC works for Aran Linvail in chapter three, the final task is clearing out Bodhi's lair. Three key vampires, Lassal, Durst, and Gellal, must be driven back to their tombs and staked. However, the vampires could sometimes be killed too quickly, preventing the tombs from becoming 'stakeable' via the scripted actions. An additional safeguard, added as scripting to the area, will now allow the player to still stake the vampires in case this occurs. (ar0801.bcs)
Umar Hills Kids Only Take One Bastard Sword
Dirbert, Valsben, and Neler are the three boys in the Umar Hills that ask the PC to get them ale and bastard swords. If the PC gets swords for them, in certain dialogue branches the boys only take one of them instead of all three. A second bug was fixed where Dirbert would only accept the bastard swords if the party had exactly three. (uhkid01.dlg)
Unseeing Eye XP Exploit, Quest Breakage
- Down in the Unseeing Eye's lair, there were actions (such as a save) that could prevent the appearance of the Unseeing Eye after constructing the rift device. This is caused by a scripted delay between the construction of the Rift Device from its component parts and the appearance of the Unseeing Eye. The delay has now been changed into a timer as a more robust solution.
- Both ways of summoning the Unseeing Eye (via Gaal or constructing the rift device) will only work if the Eye has not already appeared.
- A script block from another area (ar0701, the Temple Sewers) would also sporadically trigger (though this shouldn't even be possible), causing crashes and sometimes killing the player when they retrieved the rod. The offending blocks now have additional safeguards to prevent them firing in inappropriate areas.
- If the third question of the guardian bridge in the Unseeing Eye quest was answered incorrectly, the scripting failed and the bridge could not be activated again, which broke the Unseeing Eye quest.
- The empathic manifestation at the forgotten Amaunator temple can only be defeated by casting a beneficial healing spell on it. However, there was a loophole that also caused the manifestation to die if the party left, rested, and returned.
(ar0202.bcs, ar0205.bcs, ar0701.bcs, riftcr04.bcs, riftg01.bcs)
Limited Wish Quest Fixes
Grae has an item equipped that prevents her from being killed so she can deliver her second dialogue to the party to further the plot in the Limited Wish quest. If the party lets her go, she can sometimes be killed as she escapes by an arrow or bullet that was on its way to hitting her. This is caused by a premature destruction of her 'invincible' item by her script; the item is now destroyed only by her dialogue in hostile branches. The quest can also be broken by Vittorio appearing slightly behind the wall, just out of sight of Dennis. This causes their dialogue to fail, preventing the quest from advancing. If the party casts (Limited) Wish via a projected image, the scroll given to start the quest is given to the image with no way for the party to recover it short of killing the image. The scroll is now always given to the PC, regardless of the summoner. You can ask Roger in the sewers about the gong repeatedly. (grae.dlg, grae.bcs, lout.dlg, roger.dlg, wish.dlg)
Additional Hero Quests in Trademeet Wait Until Hero is Officially Named
In Trademeet Jenia would initiate her quest, referring to the PC as the Hero of Trademeet, prior to the official ceremony that designates the PC as such. This component changes Jenia to wait until the ceremony to initiate her quest. (ar2000.bcs)
Uder Mordin Could Assign Completed Imprisoned Mage (Vithal) Quest in Underdark
Uder Mordin, one of the three duergar merchants in the Underdark, gives the party information to start the quest to free and help Vithal, the imprisoned mage. Because he has completely separate dialogue branches depending on the appearance of the party (disguised as drow or not) he could initiate the quest even though it was already completed. (udduer02.dlg)
Mazzy-Gorf Encounter Fixes
Gorf's initial dialogue is missing a trigger condition to ensure it doesn't repeat, which can cause Gorf to get caught in a loop of spawning and killing peasants then speaking again. (gorf1.dlg, gorf.bcs)
NORH Ally in Bodhi's Lair Turn Allies Against Party
The party can enlist help from the Noble Order of the Radiant Heart when going to face Bodhi. The NORH sends Eric Van Straaten who, unfortunately, is assigned a copy of Harbinger--Harbinger will occasionally cause a fireball on a successful hit, damaging enemies and allies alike. Because the damage appears to be coming from an ally it drives anyone recruited to help the party away. The fireball effect is removed from Van Straaten's sword. We also alter his stats to bare minimum paladin stats, as they were previously all 9s. (c6eric.cre, c6eric3.cre, cdsw2h07.itm)
There were several errors and exploits available in the SoA finale. (ar2900.bcs, ar2901.bcs, ar2902.bcs, ar2903.bcs, ar2904.bcs, ar2905.bcs, cut85a.bcs, hellself.dlg, spin658.spl, spin772.spl, spin747.spl, spin749.spl, spin750.spl, spin751.spl, spin753.spl, spin755.spl, spin765.spl, spin766.spl, spin767.spl, spin768.spl, spin769.spl, spin770.spl, spin771.spl, teardoor.bcs)
- The player could avoid the Selfish test immobilization of their party member due to a brief delay between the end of the dialogue and the hold spell cast on the party member.
- In the fear trials in hell, the fear spell bypasses magic resistance, but one of the cosmetic effects (the sound that plays when the fear expires) is not set to bypass magic resistance. This results in a spurious 'magic resistance' message if the target passes their magic resistance check, even though they still suffer all of the effects of the spell.
- When the eye door opens in hell for the SoA finale, the party is blown back… except for summoned creatures and your familiar. This is altered so that characters, summons, and familiars are all pushed back.
- Various penalties could be resisted by spell protections (notably Spell Immunity) in the Selfish trial
- Some attribute penalties were being applied with the wrong timing mode, causing them to appear red on the character sheet, instead of permanent adjustments.
- Doors in the Selfish Trial must now be opened sequentially, and one of the two final doors must be open for the demon to speak with you
- If an alignment change occurs because of taking the evil path in the trials, the lawful-chaotic aspect of the alignment will be preserved (i.e. a chaotic neutral becomes chaotic evil instead of the current change to neutral evil)
- The spells that provide rewards for the evil path in the hell trials had wonky targeting and power levels, potentially causing them to not work.
- Ranger or paladin PCs taking the evil path in any of the hell trials should immediately fall.
'No Valid Links or Replies' Fixes
If a dialogue reaches a point where it can't find a valid branch on which to proceed, it displays 'No valid links or replies'. Fixpack addresses these errors:
- Belmin Gergas, the elf-hater on Waukeen's Promenade, has no valid triggers (except for his one shot NPC banters) if the player has a mod NPC or a multiplayer character that is elven. There are also issues with the Jaheira/Aerie/Viconia banters--if they're in the party but not valid for dialogue, or if the random number check fails, he will also have no valid banters. His triggers are adjusted so that he will always have something to say. (belmin.dlg)
- Under certain circumstances--buy the slaves in Ust Natha, with no equipment, and Jaheira and Nalia are either not in the party or not valid for dialogue--the Slave Leader dialogue will end prematurely with a 'No Valid Links' error. (daslave1.dlg)
- In the Trademeet tavern, representatives of the two dueling families can have a fight. After one (or both) are dead, a militia wizard appears. If one of the two duelists is still alive, they'll initiate dialogue. In the process of the dialogue, they increment a variable that leaves the wizard with no valid dialogue. The wizard now checks his own unique variable so he'll properly comment on the duel and the families. (trfued11.dlg)
- The player can use an 'evil' method of removing Faldorn and her shadow druid cabal by poisoning the grove. If the party does this while Cernd is not in the party, he is left with no valid dialogue. Cernd now turns hostile under these circumstances. (cernd.bcs)
- One of the commoner dialogues has an interjection by Valygar, but the trigger is checking for the presence of Viconia. If Valygar is not in the party, this can end the dialogue prematurely. (gmtown02.dlg)
- If you respond "No, you don't. You can leave our group, if that is what you wish." in Viconia's love talk that begins "Do not stand so close to me. It is bad enough that I have to smell your stench on the occasional breeze... must I also bask in your rancid aura?" the dialogue will have no valid replies or links due to a broken branch. (bviconi.dlg)
- If the player retrieved Mekrath's mirror and then killed Mekrath, Haer'Dalis would be free but would have no valid dialogue, preventing completion of the quest. (haerda.dlg)
- When the party first meets Cernd, he tries to explain the problems at the grove. At one point he appeals to Jaheira, Minsc, or to the PC (if the PC is a druid or ranger). Under rare circumstances, this transition could exit prematurely. (cernd.dlg)
Dialogue Loops and Repeating Banters
- Due to not setting a variable, one of Jaheira's banters with the PC could repeat endlessly if the PC was not a romantic match for her. (bjaheir.dlg)
- Anomen's script can cause an issue (due to action misordering) when he tries to complain about rescuing Garren Windspear's child. Worse, if you choose to cut a deal with Firkraag, Anomen will whine endlessly that you should rescue Garren's child, even though the child was killed when you made the deal. (anomen.bcs)
- When he spots the PC in the Trademeet tavern, Viekang initiates dialogue, takes some lightning damage, and then tries to teleport away. However, Viekang's script is structured such that, if he takes any damage he'll initiate dialogue (essentially along the lines of 'why are you hurting me?') and teleport away. Presumably this is so he would teleport away if the party attacks him, but it also trips when he self-inflicts his lightning, resulting in two dialogues instead of one. Viekang will no longer initiate the second dialogue if he takes damage from his own lightning. (viekang.bcs, viekang.dlg)
- Murtlen's specific dialogue with Aerie does not properly check a variable to track if it's occurred (it's checking the Murtlen-Edwin variable), meaning it can be repeated instead of properly only occurring once. (murtlen.dlg)
- After Nalia is kidnapped by Isaea, the lines where she thanks the PC are weighted above her normal kicked-out dialogue and can happen any number of times, meaning that once she's been kidnapped the only reaction she'll ever show to being removed from the party is to thank the PC again. This ensures she thanks the PC only once and otherwise behaves normally. (naliap.dlg)
- One of Viconia's non-romance banters with the PC was lacking a tracking variable, meaning it could occur multiple times. (bviconi.dlg)
- When the player acquires the bard stronghold, the area is actually changed from ar0509 to ar0522. Because of this, some of the creature files are also changed. However, many of the Five Flagon patrons track which dialogues they've had already with 'local' variables, so when their creature file is changed, they lose these variables and can repeat dialogues. (ffbart.dlg, ffcust03.dlg, ffcust04.dlg, ffcust05.dlg, ffcust06.dlg, ffcust08.dlg, ffcust09.dlg, ffwench.dlg)
- The Korgan banter about his old comrades that starts with "Ye know, though ye all be gutless, clumsy and nay too bright, this party is a sight better than me former crew of delvers and ne'er-do-wells." could repeat. (bkorgan.dlg)
- In Brynnlaw, if you save Claire and send her to Golin, they have advice on how to get into Spellhold. However, since Desharik was failing to set a variable if the party gets in that way, Claire and Golin would continue to give their advice even after you got back. (pirmur09.dlg, pirmur10.dg, ppdesh.dlg)
- Reedle, a fishmonger in the bridge district, has dialogue about the skinner murders in the area. However, Reedle is still willing to discuss the murders as if they are ongoing even after the case is solved due to some missing variable checks in his dialogue triggers. (reedle.dlg)
- The Aerie-Anomen banter that begins with "Anomen... I... I've been watching you since you failed your Test, and... you... you're starting to scare me a little, I think..." could repeat since Aerie's banter file was not setting a variable. (baerie.dlg)
- When speaking with Frankie, the manager of the Copper Coronet slave fighting pits, Viconia and Korgan's interjections prevent Frankie from setting a variable. In this case, Frankie never realizes he's already spoken to the party and will repeat his opening spiel. (copgreet.dlg)
- The banter between Jan and Nalia that begins with "Nalia, my dear, you've been positively morose as of late. Probably from studying all those scrolls. You remind me of Golodon... prior to his addiction to poppy seed muffins, of course." could potentially repeat due to the tracking variable not being set. (bjan25j.dlg)
Missing Banters, Interjections, and Replies
A lot of content is missed due to bad triggers or branches in dialogue.
- Two of Aerie's love talks were not being triggered correctly, either due to bad weighting (order) or checking the wrong values of variables. (baerie.dlg)
- Once Anomen is summoned home on the death of his sister, his second complaint about the matter (if you dawdle too long) does not fire because the proper variable is not set in his first complaint. (anomenj.dlg)
- Anomen also has a comment on the dead NORH paladins in the Windspear Hills that often gets preempted by Garren Windspear's appearance. A slight delay is introduced to Garren in this circumstance to allow Anomen's banter, as it will not fire after Garren has his say. (garren.bcs)
- Adratha, the rakshasa being sought by the Trademeet dao, is supposed to have an additional line of dialogue if attacked. (trrak01.bcs)
- Due to a malformed action, the option to buy the helmet from the svirfneblin patrol leader was not appearing. (udsvir08.dlg)
- Brannel stands guard outside of the thief stronghold once the player takes control of it. Brannel has two quest-specific dialogues regarding Ama that were not occurring due to his script a) not being assigned and b) referencing the wrong quest variables. Brannel's script was also initiating dialogue with himself (rather than the PC), which can cause issues with dialogue tokens. (brannel.bcs, shthdr01.cre)
- Lady Delcia and her guard are trapped in one of the upstairs rooms of the de'Arnise Keep. When the player enters the room and speaks with the guard, Lady Delcia walks over and interrupts with her own dialogue. This is fixed by allowing the guard's dialogue to pause the game. Lady Delcia will still approach the party and initiate dialogue as intended, but will no longer interrupt. (kpsold01.dlg)
- When you speak with Lilarcor, there should be an option to tell him "Never mind. Let's just continue on, for now." However, the option is only available if the PC is of a lawful alignment and doesn't have a full inventory as it's a leftover from the familiar dialogues, from which Lilarcor's file was copied. Both of these triggers are irrelevant to Lilarcor and are removed, making this option always available. (sw2h14.dlg)
- Cernd is supposed to have an interjection when speaking with Wellyn's parents, but it was always being blocked if Mazzy was in the party. (mourner5.dlg)
- When pulled into hell after defeating Irenicus at the Tree of Life, every party member is supposed to have dialogue. However, Imoen's comment tries to pass the dialogue to Edwin without bothering to check if he's in the party, prematurely terminating the dialogue. (imoen2j.dlg)
- After Edwin's Tree of Life gut check, he's supposed to pass it to the PC's female love interest--but the Viconia check is malformed. (edwinj.dlg)
- When you return to the Graveyard in Chapter Six to confront Bodhi, she will kidnap the romantic partner of the PC. Bodhi first taunts the PC, followed by an interjection from the love interest, and then the dialogue continues. In Anomen's case, the dialogue link was pointing to the wrong place, preventing this exchange. (bodhiamb.dlg)
- If both the Aerie and Viconia romances are active, Aerie and Viconia will eventually force the PC to choose one for a romance partner. In one of Aerie's love talks, Viconia's jealous interjection, under certain dialogue branches, could prematurely end the dialogue. (bviconi.dlg)
- Due to broken checks, both Aataqah (from the opening dungeon) and the fortune-telling gypsy at Trademeet do not deliver their Imoen-specific dialogue. (aataqah.dlg, trgyp03.dlg)
- Captain Cernick and Chanelle the Maid were not recognizing Nalia and delivering their Nalia-specific dialogue due to broken triggers. (kpcapt02.dlg, kpmaid01.dlg)
- Dialogue options when speaking to the dryads in the opening dungeon were not available due to typos in the variable scope of their dialogue triggers. (idryad1.dlg, idryad2.dlg, idryad3.dlg)
- Visaj has several stat checks for the party to allow different dialogue options, i.e. high charisma characters should be able to bargain down his asking price for the rope. This was not available due to a typo in the trigger. (breg01.dlg)
- In ToB, Imoen initiates a banter with Anomen. If Anomen did not pass his trial in SoA he would make a comment about the NORH. At this point Keldorn, Jaheira, Mazzy, or Korgan could interject--however, the dialogue was failing to actually check if these NPCs were actually present, causing the dialogue to exit early. There was one other error with the dialogue, in that Anomen would have one last retort to Keldorn to finish the dialogue. (banome25.dlg, bkeldo25.dlg)
- In very unlikely circumstances, the Troll Cook can be set free from Firkraag's lair. If the party kills the orc chieftain without making the cook go hostile, you can speak to her and let her go. The trigger for this option (checking to see if DigDag is dead) was broken. (firtrl01.dlg)
- The minister at the funeral for Nalia's father has a broken check to see if he's speaking to Nalia. (fumin.dlg)
- Marcus at the Sea's Bounty is the person from whom you acquire documents for Edwin in the Mae'Var quests. In one of the dialogue branches a female human, elf, or half-elf with high charisma should be able to sweet talk him into handing over the documents. The half-elf check is broken. (marcus.dlg)
- Yoshimo should be able to convince Desharik, the pirate lord of Brynnlaw, to let the party into Spellhold. The checks for Yoshimo in Desharik's dialogue, however, are malformed. (ppdesh.dlg)
- An additional dialogue with the Solamnic Knights for non-mage PCs had a malformed trigger on the mage check. (obssol01.dlg)
- Kich is the black market thief in Trademeet. Non-thief characters should be able to threaten to call the guards on him via dialogue and force him to leave. (trthf02.dlg)
- Kirinaldo, one of Raelis' actors, has different lines depending on whether Haer'Dalis was alive, but the check was broken. (ffactor1.dlg)
- If the party seeks out Mekrath about Haer'Dalis, he should have a slightly different dialogue if the party retrieves his mirror for him. This is not happening because of a typo when trying to set a variable to track this. (hamek.dlg, mekrath.dlg)
- During the quest to help Raelis, speaking with Quayle would get a normal banter between Aerie and Quayle instead of quest-specific Raelis dialogue. (aeriej.dlg)
- When Kiser Jhaeri makes an offer to the player to kill the Countess or Errard, most of the good NPCs object and the player is given a chance to mollify them. Under the rare circumstance that both Anomen (after becoming lawful good) and Mazzy are in the party, brushing off Anomen's concerns would also prompt Mazzy to leave as well without a chance for the player to mollify her as well due to a bad dialogue link. (anome25j.dlg)
- Several ToB dialogues link to a Mazzy dialogue file that doesn't exist instead of Mazzy's actual dialogue file. (edwin25j.dlg, jahei25j.dlg, sarcnt01.dlg, valyg25j.dlg)
- When Keldorn discovers that Aerie is pregnant in ToB, the player can be presented with two identical "Don't even go there, Keldorn!" replies if Jan is available to interject. If the player chooses the wrong one, they'll miss Jan's interjection. The dialogue now branches properly based on Jan's presence instead of presenting duplicate replies. (bkeldo25j.dlg)
- Quayle is supposed to set a one-day timer until the circus ends. The timer is used by various creatures to offer more relevant dialogue to the circus. In certain dialogue branches, Quayle does not set the timer due to a malformed action. (quayle.dlg)
- If the party attempts to get Cernd to rejoin the party, he may not recognize that the player now leads the druid grove. (cerndp.dlg)
- Two banters, one between Aerie banter and a female protagonist and a second between Haer'Dalis and Edwin, never occur due to double rested party triggers. Essentially, the banter would be prompted to start, but the rested trigger would be expired by the time the dialogue started, resulting in no banter or a different banter. (baerie.dlg, bhaerda.dlg)
Minor Dialogue Errors
- Gracie at the Sea's Bounty has a banter with Edwin where she flirts heavily and reminds him of their past affair, but there's no check to make sure Edwin is not currently under his nether scroll transformation. Being as she mentions his (current) beard, a check is added. (sbwench.dlg)
- If you use the wardstone to enter Spellhold and encounter Irenicus in his role as 'Director', he is supposed to unlock and open a door via his dialogue. One of the branches (the hostile one) will unlock but not open the door due to a malformed action. (ppireni1.dlg)
- If you speak to either Necre or Entu, all dialogue options lead to combat. Unfortunately, only the one with whom you're speaking goes hostile instantly as the action to make the other is malformed. (obshal01.dlg, obshal03.dlg)
- Zaren, as part of the play put on during the bard stronghold, has the following line: "Now go, my pupil... leave me with my bride. I shall touch her cold and unrelenting cheek once more... tonight a part of me has died inside." After this line, Marcus, playing the part of the pupil, is supposed to move away but does not due to a malformed move action. (bdact05.dlg)
- Marcus' dialogue is supposed to trip a cut scene but has a malformed initiation action. (bdact06.dlg)
- Biff the Understudy's flubbed line in the opening play prompts Raelis to come out and address the crowd, but the dialogue initiation has a malformed target. (ffbiff01.dlg)
- If the party is mean to the lost child in the Docks, she is supposed to run away. If Keldorn or Viconia interject, however, she erroneously stays put. (dlost.dlg)
- Captain Arat has specific dialogue for the PC after the drawbridge is lowered. Due to a loose trigger, this dialogue could occur while the drawbridge was still up. (kpcapt01.dlg)
- If speaking to Aran in Chapter 7, Aran would behave as if the party had not gone to Spellhold already. There were also some flaky reputation checks when asking for help that are fixed. (aran.dlg)
Dialogues Not Setting or Checking Variables
The game uses variables to track what the party's done, with whom they've spoken, how much progress has been made in a quest, etc. There are several typos in dialogues that are improperly checking or setting them due to malformed triggers, typos in the variable name, or specifying an incorrect variable scope. (aeriej.dlg, banome25.dlg, bhgaal01.dlg, bhoisig.dlg, bounha.dlg, burch2.dlg, cederil.dlg, cerndp.dlg, cor.dlg, dadrow16.dlg, docsol03.dlg, drshsp01.dlg, edwinj.dlg, firban02.dlg, gorf1.dlg, haerdaj.dlg, hellsare.dlg, ilyich.dlg, keldo25p.dlg, keldorp.dlg, naliaj.dlg, ppguy.dlg, rufpal2.dlg, rumora.dlg, sarboy01.dlg, sarbul04.dlg, sargrl01.dlg, sarvolo.dlg, teven.dlg, trfued11.dlg, uhmay01.dlg, viconij.dlg)
Malformed/Broken Triggers and Actions
Many triggers and actions are broken, but don't have an effect in game. These are fixed anyway.
- Fovem has a dialogue trigger which is always supposed to be true, i.e. he'll always have at least something to say. The trigger was malformed. dmark1.dlg
- In one of his banters, Anomen checks his reaction to the PC. The trigger for doing this is malformed. banomen.dlg
- Lord Ophal's dialogue with the player should be driven mainly by his reaction check, but it's malformed. noblem3.dlg
- Vincenzo the Innkeeper in the Umar Hills has a malformed dialogue trigger to check if Willet is alive. uhinn01.dlg
- Aerie, in her dialogue file prior to joining the party, and Kalah both have missing targets for initiating dialogue. This appears to have no effect in game, though it is modified to target a party member to eliminate the error. aerie.dlg, kalah2.dlg
- A malformed escape action of the svirfneblin patrol leader is fixed. (udsvir08.dlg)
Various lines of dialogue had sound files missing or the text didn't match the audio. Dialogues affected are Imoen1 (strref #4330), Valygar (strref #17890), Ellisime (strref #58250), Haer'Dalis (strref #35168), and Jan (strref #37155).
Incorrect Lines in Dialogues
Various dialogues are correct in their branches and progression, but they reference incorrect lines of dialogue. Dialogues affected are Viconia (strrefs #8857 and #8863), Joster's opening dialogue (shth05.dlg), the PC's dialogue (player1.dlg).
Mayor Never Goes to See Madulf
If you suggest that Lloyd go speak with Madulf, certain dialogue branches would not set a variable. This would prevent Madulf from rewarding the player appropriately for sending the mayor. (uhmay01.dlg)
Errors in Setting Quest Timers for Keldorn and Vithal
If you decline to visit Keldorn's estate when you visit the Government District, the engine sets a timer. If you don't visit before the timer expires, he'll remind you a few more times. Vithal, the mage that you can free in the Underdark, also sets timers for you to arrive and advance his quest at each portal. In both cases, the action to set the follow-up timers is malformed. (keldorj.dlg, udvith.dlg)
Nalia Reacting Oddly in Keep
Due to errors in Nalia's dialog file, she behaved oddly when thrown out of the party in the de'Arnise keep. This is corrected. (naliap.dlg)
Anomen's Knighthood Not Being Checked
Anomen has two interjections that presume he's a knight, one with Mirienne Santele and one with Kiser Jhaera, but both have triggers that check the exact opposite. In one of Imoen's banters in ToB, Anomen makes a snotty interjection about the NORH, but it's not checking to see if he's a member first. (bimoen25.dlg, sarcnt01.dlg, valyg25j.dlg)
Valygar's Ranger Friend Derrick No Longer Erroneously Attacks
Derrick, the ranger standing guard near Valygar's cabin, challenges the party when they approach the cabin. If the party has not heard of Valygar (i.e. is not working for the Cowled Wizards) then Derrick would always turn hostile. Derrick now turns hostile depending on whether the party is lying or not. (valran01.dlg)
Party Always Recognizes Spectator Beholder in Sendai's Lair
The spectator beholder in Sendai's lair is the same spectator beholder that the party can encounter in the City of Caverns. When you encounter him in Sendai's lair, the dialogue assumes you encountered him previously. However, the party can bypass the spectator beholder entirely--in fact, the entire area can be bypassed. The dialogue options are now adjusted if the party has never interacted with the spectator beholder prior to meeting him in Sendai's lair. (sahbeh01.dlg, senbeh01.dlg)
NPC Talks Prior to Resting Prevent Actual Resting
Both Viconia and Anomen have some dialogues in their romance tracks which occur prior to resting. However, under some dialogue branches, they were not actually sending a command to the party to actually rest. (banomen.dlg, bvicon25.dlg)
Jaheira Does Not Recognize She's Been Freed
In the opening dungeon, Jaheira starts a dialogue after her cell door has been opened to discuss plans now that she's free. However, if the player initiates this dialogue instead, she may not realize she's free and will instead tell the PC to hurry up and find the key despite the open cell door. Her dialogue now properly recognizes her freedom regardless of who initiates the conversation. (jaheira.dlg)
Exploit of Invincible Imoen in the Opening Dungeon
For plot continuity, Imoen's belt has secret powers which make her unkillable in the opening dungeon. If she ever drops to one hit point, she leaves the party and flees to the surface. However, under certain circumstances she can be quickly healed and forced to rejoin the party. With her invincibility item, this allows the party to trot her into every room and soak up damage without ever dying. This exploit is closed. (imoenp.dlg)
Dialogues Not Recognizing That You've Already Found Valygar
Even if you've already met Valygar, you can present the Corthala tax notice to Llarsh in the Council Building to learn where to find Valygar. This is fixed. (llarsh.dlg, valygar.dlg)
Fanatics May Still Burn Viconia if Freed
The fanatics that try to burn Viconia at the stake can still kill her even after she's freed. Under moderately rare circumstances, initiating dialogue with the fanatics after you've freed Viconia can cause them to proceed as if she's still tied up, killing her instantly. (vicg.dlg)
Imoen Has No Banter Dialogue File Assigned in Shadows of Amn
Imoen was originally planned to be killed at Spellhold, and was added back very late in the design process. As such, she has no banters and very little dialogue after you pick her back up. In fact, she has no banter dialogue file assigned at all. This component assigns her banter file, though it remains empty. (interdia.2da)
NPCs Do Not Comment on Watcher's Keep Events in the Shadows of Amn Portion of the Game
The BioWare NPCs have several comments and interjections on Watcher's Keep--if the player is in the Throne of Bhaal portion of the game. These comments are now available if Watcher's Keep is tackled in the Shadows of Amn portion of the game. This also fixes the issue of Yakman having no valid links in SoA if spoken to with Aerie, Keldorn, or Jaheira in the group as well as Brother Odren having no valid links or replies in SoA if Keldorn, Mazzy, Imoen, or Anomen were in the group. (aeriej.dlg, anomenj.dlg, cerndj.dlg, edwinj.dlg, fsspir2.dlg, gorapp1.dlg, gorapr.dlg, gorcamb.dlg, gordemo.dlg, gorgit.dlg, gorimp01.dlg, gormad1.dlg, gorodr1.dlg, gorpol1.dlg, haerdaj.dlg, imoen2j.dlg, jaheiraj.dlg, janj.dlg, keldorj.dlg, korganj.dlg, mazzyj.dlg, minscj.dlg, naliaj.dlg, valygarj.dlg, viconij.dlg)
Bugs with Outdoor Banters
NPCs have several banters that were supposed to occur outdoors. If the script lacked the outdoor trigger, then it caused (at best) the wrong banter or (at worst) a stuttering NPC. If the dialogue lacked the trigger, these banters could occur indoors and not make a lot of sense. (aerie.bcs, aeriej.dlg, anomen.bcs, banomen.dlg, minsc.bcs, minscj.dlg, nalia.bcs, yoshimo.bcs yoshj.dlg)
Yoshimo Would Insist on Meeting Renal, Even if Already Contacted
If the party entered the Docks and met with Renal without Yoshimo, and then later returned to the Docks with Yoshimo, he would insist on going to meet Renal. This would set spurious journal entries, and Renal would not have his special dialogue with Yoshimo anyway. Yoshimo will no longer insist on meeting Renal if the party already has. (yoshimo.bcs, yoshj.dlg)
Planar Sphere Apprentice Dialogue Errors
When selecting the first task for the apprentices in the planar sphere, Morul should check that the party has 2,000 gold before the party can select the Ring of Protection option. If the player assigns the task of the mages creating the Ring of Wizardry, there's supposed to be a 50% chance of success if all three apprentices are still alive. However, the player had 0% chance of receiving the ring due to a bad variable set in Morul's dialogue. When Nara gives the player the Dagger of <CHARNAME>, the action is missing parameters, though it has no effect in game. Due to some bad variable tracking, Larz would fail to have any 'intermediate' dialogue while the apprentices were working on a task. There was also a rare chance (1%) that Morul would have no valid relies or links after the PC instructs the apprentices to make the Staff of Power. (mgappr01.dlg, mgappr02.dlg, mgappr03.dlg)
People Leave Through Random Exits After Audiences with the Steward of de'Arnise Keep
After obtaining the de'Arnise Keep as a stronghold, the PC is summoned back for occasional audiences with various characters as the ongoing subplot. After several of these dialogues, multiple characters are supposed to leave by moving towards the front door together and then disappearing. However, the action for them to move away is malformed in several dialogues, resulting in characters that are supposed to leave together (or in a direction that makes sense) leaving via random routes. The best example would be the finale--Captain Cernick is supposed to leave out the front door with two other soldiers, but the two soldiers wander off in their own direction. (kpcapt02.dlg, kpmaid01.dlg, kprang02.dlg)
Many Dialogues Not Properly Checking for Active Romances
A common check in many dialogues is to see if romances are active between the PC and the four romanceable NPCs. In many cases, though, the check is erroneously being made against the romance timer (i.e. the time to the next love talk) instead of the variable that tracks how far the romance has progressed. (baerie.dlg, bviconi.dlg, c6drizz1.dlg, cefald04.dlg, dadrow21.dlg, dadrow23.dlg, jaheirap.dlg, madam.dlg, trevil02.dlg)
Fixed Rumors at Taverns
The rumors you can overhear at taverns had big issues. Many had broken triggers or were mis-weighted, often causing no rumor to be displayed when one should appear, or causing an incorrect rumor to appear. (rumora.dlg, rumori.dlg, rumorp.dlg, rumort.dlg, rumoru.dlg)
Miscellaneous Fixes to Leftover Dialogues
Several patches written for BG2 issues could also be applied to the leftover BG or unused BG2 resources. Miscellaneous errors were fixed even though they'll have no effect on the base game. (abela.dlg, albert.dlg, alora.dlg, amnise.dlg, arghai.dlg, bandic.dlg, baruk.dlg, beldin.dlg, benjy.dlg, brathl.dlg, brevli.dlg, brilla.dlg, carsa.dlg, cattac.dlg, charle.dlg, cult1.dlg, cult3.dlg, cythan.dlg, degrod.dlg, delorn.dlg, deltan.dlg, deltan2.dlg, delthy.dlg, doomsay.dlg, dopdur3.dlg, dratan.dlg, dream4.dlg, drstatu1.dlg, drstatu2.dlg, drstatu3.dlg, drunk.dlg, eldotp.dlg, elkart.dlg, emerso.dlg, feloni.dlg, fergus.dlg, flam7.dlg, flamgg.dlg, friend.dlg, ftobe5.dlg, galken.dlg, galtok.dlg, gantol.dlg, garan.dlg, gazib.dlg, gervis.dlg, glanma.dlg, gorpel.dlg, hajanos.dlg, husam2.dlg, imoemj.dlg, iron10.dlg, iron12.dlg, ironm4.dlg, islsir.dlg, ithmee.dlg, ithtyl.dlg, jacil.dlg, jared.dlg, jondal.dlg, kaish.dlg, karoug.dlg, kielpc.dlg, kieres.dlg, kryla.dlg, laerta.dlg, lahl.dlg, lakada.dlg, laurel.dlg, lothan.dlg, marl.dlg, mazzy4.dlg, melica.dlg, messed.dlg, minern.dlg, mtbe9.dlg, mtob6.dlg, mulahe.dlg, narcil.dlg, narlen.dlg, nestor.dlg, nevill.dlg, nexlit.dlg, nobl10.dlg, nobw8.dlg, obe.dlg, oberan.dlg, osmadi.dlg, palin.dlg, pheirk.dlg, pheirkas.dlg, prism.dlg, pumberl.dlg, quinn.dlg, raiken.dlg, ramazi.dlg, rashad.dlg, ratchi.dlg, read4.dlg, samant.dlg, sarbul4.dlg, sarevo.dlg, sharte.dlg, shoal.dlg, silenc.dlg, silke.dlg, skie.dlg, slvic01.dlg, sonner.dlg, sunin.dlg, taerom.dlg, tamoko.dlg, tersus.dlg, test2.dlg, thalan.dlg, tracea.dlg, tremai.dlg, ulcast.dlg, ulf.dlg, wiven.dlg)
Common Script Fix Roundup
- Creatures Using Incorrect Script Names or Lacking Them Entirely - Several creatures are referenced in scripts, but the references do not work due to the lack of a scripting name or the creature having an incorrect name assigned in their creature file. This fixes, for example, the multiple Brus spawn bug. (alex.cre, ar1002.bcs, baldur.bcs, bodfgt01.cre, bodfgt02.cre, brus.cre, brus2.cre, cattig01.cre, cldad.cre, ffcrowd1.cre, ffcrowd2.cre, ffcrowd3.cre, ffcrowd4.cre, ffcrowd5.cre, gerhardt.cre, guard3.cre, hobarc02.cre, kpumb01.cre, madeen.bcs, mgteos1.dlg, mourner4.cre, mddust.cre, mugger3.cre, nobl4.cre, rogtro01.cre, rskel01.cre, spidgi01.cre, swsfoll1.cre, swsfoll2.cre, swsfoll3.cre, swsfoll4.cre, swsfoll5.cre, swsfoll6.cre, toady.cre, tolger2.cre, tolmag01.cre, uddoor02.cre, vammat01.cre, vamold01.cre, wcust01.cre, wcust02.cre, wcust03.cre, wcust04.cre, wolfdi.cre)
- Many Scripts Not Checking the Correct Creatures/Objects - In addition to variables, scripts also check the state of various creatures to ensure their dialogue is relevant, i.e. if Faldorn at the grove is dead, if Aerie is in the party, etc. Not all names refer to creatures--in the engine various triggers, doors, and other objects also get unique names for scripting. Corrections are made for scripts that refer to a githyanki in Jan's family quest (jangit01.dlg), a specific monk (cut216a.bcs), a specific nobleman (nobl4.dlg), Acton Balthis (hapip.dlg), Adratha (trgeni01.dlg), Anomen (bviconi.dlg), Aran Linvail (ar0329.bcs, cut41d.bcs), Atta (uhmay01.dlg), Balthazar (amwenc01.dlg), Bene (sppain.dlg), Booter (arnboy01.dlg), Cyrando (cadril.bcs, garrick.dlg, tcadril.dlg), Deirex (rumoru.dlg), Drizzt (c6arkan.bcs, c6eric.bcs), Erlin Hendrick (gemfar01.dlg), Faldorn (barl.dlg, temsup.dlg, trgeni01.dlg, trlgrd01.dlg, trmer03.dlg, trrak01.dlg), fanatics (ar1000.are), Firkraag (ar1202.bcs), Hectan (25spell.dlg), Imoen (ToB version) (aerie25j.dlg, ambar01.dlg, bazmonk.dlg, bazeye01.dlg, baerie25.dlg, bcernd25.dlg, bjahei25.dlg, fsspir2.dlg, gorimp01.dlg, haerd25j.dlg, hgnya01.dlg, hgwra01.dlg, jahei25j.dlg, jan25j.dlg, mazzy25j.dlg, sarev25a.dlg, vicon25j.dlg), Irlana (cadril.bcs, garrick.dlg, tcadril.dlg), Jaheira (cut35b.bcs, valygarj.dlg), Jermien (jugjug01.dlg), Keldorn (bedwin.dlg), Korgan (bftown3.dlg), Lady Lilith Lurraxol (trfued06.dlg), Lady Maria (peony.dlg), Lanie (clmom.dlg), Lathan (shthlt01.dlg), Lavok (player1.dlg, valygarp.dlg), Lord Feveran and Lady Diana (bnoble1.dlg, bnoble2.dlg), Lord Skarmaen Alibakkar (trfued02.dlg), Mairyn (ar1400.bcs), Mekrath (xc6elxxx.dlg), Minsc (obshal03.dlg), Rielev (imoenj.dlg), Rindus (kaypal02.dlg), Sarevok (volo.dlg), self-references from familiars (famil1.dlg, famil2.dlg, famil3.dlg, famil125.dlg, famil225.dlg, famil325.dlg), shadow fiends (ar1404.bcs), Squire Elotte (demson.dlg), the PC (mazzy.bcs, temsup.bcs), the Tree of Life (player1.dlg), the Unseeing Eye (c6fake.dlg, keldor.dlg, xc6elxxx.dlg), Tiiro (crodru01.dlg), Tolgerias (mgteos01.dlg), Tolmas Bendelia (kpdomo01.dlg), Trax's Guard (trax.dlg), Viconia (ftown1.dlg, vicg1.dlg), Yusef (surayah.dlg)
- Broken Dead Checks - A very common problem encountered throughout the game was the incorrect usage of triggers to detect if a creature is dead or not, typically in AI combat scripts. Because the trigger only accepts 'scripting names' (i.e. a specific creature with a unique name such as Keldorn or Bodhi) and not objects (i.e. a more flexible description such as enemy or nearest gibberling), many of these triggers were not working. In lieu of Dead(), StateCheck() is used instead against a new entry on the state list. (abazdrag.bcs, aeriex.bcs, aesgar.bcs, alarm25.bcs, amlich01.bcs, amlich02.bcs, anomx.bcs, apprenti.bcs, balmonk.bcs, beheld01.bcs, carch20b.bcs, carch30b.bcs, cassa20b.bcs, cassa20c.bcs, cbarb20b.bcs, cbard12a.bcs, cbers20b.bcs, cfigh20a.bcs, cfigh20b.bcs, cfigh30b.bcs, cfmag20b.bcs, chaldie.bcs, chalpc01.bcs, ckens20b.bcs, ckens30b.bcs, ckmag20a.bcs, ckmag20b.bcs, ckthi20b.bcs, cmacl20a.bcs, cmage20a.bcs, cmage20b.bcs, cmonk20b.bcs, cthie20a.bcs, cthie20b.bcs, dadrow5.bcs, daqdrow.bcs, deck622.bcs, degard.bcs, degard2.bcs, draconis.bcs, dragbrow.bcs, draggre2.bcs, draggree.bcs, dragsilv.bcs, dwvith.bcs, edwin.bcs, eltan.bcs, enforam.bcs, firlch01.bcs, gorcamb2.bcs, gorcamb3.bcs, gorcamb4.bcs, gorcamb5.bcs, gorcamb6.bcs, gordeckf.bcs, gorlic01.bcs, gorsal.bcs, gorstam.bcs, gp115.bcs, gp116.bcs, gparcher.bcs, gphealer.bcs, gpkensai.bcs, gpmage1.bcs, gpmage2.bcs, gpmerc.bcs, gpshout.bcs, gpthief.bcs, grpsht01.bcs, hellgen.bcs, hellslay.bcs, illasera.bcs, jatermin.bcs, kaysmg03.bcs, kaysmg04.bcs, keldornx.bcs, kpfight.bcs, kproen02.bcs, kuoarc20.bcs, kuowar20.bcs, lehtinan.bcs, mage12b.bcs, mage12d.bcs, mage12e.bcs, mage14a.bcs, mage14b.bcs, mage14c.bcs, mage14d.bcs, mage14m.bcs, mage14t.bcs, mage16a.bcs, mage16b.bcs, mage16c.bcs, mage16m.bcs, mage18a.bcs, mage18b.bcs, mage18c.bcs, mage18d.bcs, mage18e.bcs, mage18y.bcs, mage20a.bcs, mage20b.bcs, mage20c.bcs, magehigh.bcs,mindal01.bcs, ppcrus1.bcs, pwarden.bcs, sarbul01.bcs, sarbul02.bcs, sarbul03.bcs, sardw01.bcs, sardw02.bcs, sardw03.bcs, sendark.bcs, sengua04.bcs, sengua05.bcs, shadel.bcs, state.ids, sumtan01.bcs, teltief3.bcs, telwrai.bcs, tempv01.bcs, tief3.bcs, uddrow16.dlg, udmaster.bcs, udtrain.bcs, useitem.bcs, vicx.bcs, xeiwin.bcs, yochlol.bcs, yscara.bcs, ysgp01.bcs, ysgp02.bcs, ysgp03.bcs, ysgp04.bcs, ysgrunt.bcs, zilmag01.bcs)
- Scripts With Incorrect Variable Checks - Miscellaneous scripts have errors when checking or setting variables. They can be due to typos or variable scope or other factors. (keld25.bcs, sardw01.bcs)
- Miscellaneous Script Resource Reference Fixes - Many scripts had incorrect references to sounds, items, animations, etc. typically due to a typo or malformed action or trigger. (apprenti.bcs, ar2500.bcs, ar3020.bcs, ar3021.bcs, ar4000.bcs, asylum.bcs, cauldron.bcs, cespen.bcs, cut01.bcs, cut215a.bcs, cut31q.bcs, cut49e.bcs, cut57c.bcs, cutd1.bcs, ddguard7.bcs, dragbrow.bcs, finsol04.bcs, forcef.bcs, ilyich.bcs, keyscrip.bcs, movie03a.bcs, movie03b.bcs, npc.bcs, ppshad01.bcs, ppshad02.bcs, ppshad03.bcs, ppshad04.bcs, ppshad05.bcs, ppshad06.bcs, spwnrak.bcs, und5509.bcs, yagalt.bcs, yagart.bcs)
- Incorrect Creature Scripts - Creatures use scripts to control their combat AI, how they react to events, etc. In several cases, creatures had incorrect scripts assigned or none due to typos. Creatures affected are Tim Goldensight (bazpat03.cre), Giran (boy1.cre), Drow Torturer (dadrow9.cre, dadrow10.cre), Overseer Handmaiden (dadrow12.cre), drow (dadrow15.cre, sendro05.cre), Ghaunadar Priest Leader (daghaun1.cre), glabrezu (demgla01.cre), nabassu (demnab02.cre), pit fiend (dempit01.cre, telpit2.cre), Acolyte Byron (helmbyr.cre), Acolye Lara (latlara.cre), harlot (sarpro01.cre), Acolyte Vilon (talvilon.cre), peasant (vvstand3.cre, ar0713.are), fighter (yarmy01.cre), ice mephit (ar0603.are), and Amalas (ruffian.cre).
- Syntax Errors - Many scripts have syntax errors which do not seem to affect the game. These are fixed anyway. dmtown1.dlg, elgea.dlg, gorchr.dlg, ishthf01.bcs, jonthief.bcs, ppsaem3.dlg, sarmel01.dlg, udsvir06.dlg, valygarj.dlg, vicg.bcs, vicg1.bcs
Errors in Player AI Scripts
The "DRUID OFFENSIVE/DEFENSIVE (cleric)" script was checking to see if the caster was outdoors before trying to cast Call Lightning and entangle, but the check was malformed. The "SPELLCASTER DEFEND (fighter, ranger, paladin)" script was improperly checking if an aggressor was dead. The "CLERIC AGGRESSIVE (druid)" script cast chaotic commands on enemies. The "WIZARD DISABLER (bard)" script would cast ray of enfeeblement on the player. The "CLERIC DEFENSIVE (druid)" and "DRUID OFFENSIVE/DEFENSIVE (cleric)" scripts would check to see if party members were wounded and try to heal them, but the targeting was sometimes off and the caster would heal the wrong target. (cleric1.bs, cleric2.bs, cleric3.bs, fighter4.bs, mage3.bs)
Combat AI Fixes
- Aledrian, the shopkeeper upstairs in Gaelan Bayle's home, goes hostile if you work for Bodhi. However, a typo in the area script was making him stand there and stutter instead of doing anything. (ar0312.bcs)
- A few spells in forced spell triggers were not being executed due to null spell references. (dlich01.bcs, jatermin.bcs)
- Two mage AI scripts were checking for fear-inducing spells being cast, but one entry was null. The missing reference was Cloak of Fear. (gpmage1.bcs, magehigh.bcs)
- Four rakshasas in Suldanessellar had many calls to null entries for casting spells. Fortunately, the scripts were identical and a comparison between different scripts filled in the missing gaps. (surakw2.bcs, surakw3.bcs, surakw4.bcs)
- Many spellcasting scripts have two missing stat checks in their triggers for casting Dispel Magic. Based on the other checks in the block, they appear to be checking for stoneskins or improved haste effects. (abazdrag.bcs, amlich02.bcs, dragbrow.bcs, finsol04.bcs, gorgua02.bcs, gorsal.bcs, meliss01.bcs, meliss02.bcs, meliss03.bcs, planet.bcs, senbattl.bcs)
- Several blocks have simple 'if I have spell X, cast spell X' blocks in their AI scripts that were failing due to null spell references in either the action or trigger. Healers were especially hard hit, as it seemed the various cure and heal spells suffered repeatedly from this issue. (aeriex.bcs, amlich02.bcs, anomx.bcs, anvskel.bcs, clone1.bcs, gphealer.bcs, jatermin.bcs, mage10d.bcs, mage16m.bcs, mage20a.bcs, mage20c.bcs, mage8d.bcs, pries18a.bcs, pries18b.bcs, pries18c.bcs, pries18d.bcs, saerkx.bcs, senbattl.bcs, vicvskel.bcs, vicx.bcs)
- Catti-Brie had an odd script assigned that would prompt her to attack mages in the party, regardless of whether she was hostile. As the script served no purpose, it was removed outright. (c6catti.cre)
- Ferric Ironblade, the fighter-thief in Semia's band, uses a combat script which contains a block for him to leave if he can't see any enemies and is not in combat. This often happens, as the script calls for him to continually run away if he's not invisible, so he often disappears without aiding Semia much. Ferric's script is changed to a more appropriate choice to make him more useful to Semia's group. (deshar.cre)
- Two common AI scripts, used mainly by archers and air elementals, would instruct the creature to move across an area even if they (or their group) had not yet made contact with the party. The most common place this bug would occur is in the Underdark, where a lone kuo-toan archer would separate from his ambush group at the bridge and make a solo attack, far away from any support. (gparcher.bcs, airele01.bcs)
- Summoned demons will try to attack the party, but will settle for pretty much anything nearby that moved. The targeting was a little wonky, though, and they sometimes attacked invalid targets or ignored valid targets. (demglasu.bcs, demnabsu.bcs (ToB only), dempitsu.bcs (ToB only))
- If the actors are attacked, Samuel and Thalia Thunderburp are supposed to summon the local guard and then go hostile and attack the party. However, the area script was trying to check and set a variable of the incorrect scope. (ar0522.bcs)
- Various mages were casting lightning bolts on themselves rather than enemies due to a bad target in their script. (mage10a.bcs, mage10d.bcs, neva.bcs)
- The Crypt King, encountered in one of the crypts in the Graveyard district, is supposed to cast Horror before combat. Due to an error in his script, this was not occurring. (bhcrypt.bcs)
- The dogs at the de'Arnise Keep were going hostile when the party engaged the otyugh in the de'Arnise Keep courtyard. The dogs now only go hostile when one of them is attacked. (cdkpdog.bcs, kpdog1.cre, kpdog2.cre, kpdog3.cre, kpdog4.cre)
- Valygar goes hostile if you abuse his housekeeper Hervo in any way. However, the script to make this occur was not first dropping Valygar out of the party, meaning he would go hostile, but remain in the party and just stand there. He now properly leaves the party first. (valygar.bcs)
- Due to some loose scripting, enemy devas and planetars would occasionally heal the party. The same can also occur for Minsc or Valygar if they were out of the party and hostile. (devaevil.bcs, devagood.bcs, minscx.bcs, plangood.bcs, valvsed.bcs, valygx.bcs)
- Various scripts were improperly checking to see if they were outdoors; for example druid scripts were trying to check if they were outdoors before casting Call Lightning or Entangle. (druidx.bcs, minscx.bcs, minvsed.bcs, npcdru1.bcs, valvsed.bcs, valygx.bcs)
- The small group guarding the Underdark exit (in the Kuo-toa area) will go hostile if Ust Natha goes hostile. However, if one of them gets charmed, the creature gets trapped in a loop and begins stuttering. That same issue occurs if Tabitha, the leopard in the pens at the Copper Coronet, gets charmed. Based on the assumptions in her script, Tabitha is granted immunity to charm. (coplion.cre, dwgates1.bcs)
Minor Script Fixes
Several script fixes are made that have minor or cosmetic consequences in-game.
- When you enter Carston's level in Watcher's Keep, he is entertaining himself by watching a fight between githyanki and illithid. One of the githyanki is not hasting itself before running away. (cut207c.bcs)
- When the party escapes the opening dungeon, a cut scene ensues between Irenicus, the shadow thieves and the Cowled Wizards. At the end of the cut scene, four of the Cowled Wizards simply disappear--they're supposed to use Dimension Door to escape but were not due to a malformed spell reference. (cut01g.bcs)
- In the Saradush Prison, two information points share a name rather than being unique. This leads to minor scripting errors, such as the party not facing the correct direction when the Prison Spirit appears. (ar5006.are)
- In the Umar Hills, Johanna and Ander should wander back and forth but were not due to bad variable tracking. (uhleave5.bcs, uhleave6.bcs)
- Some townsfolk have scripts that cause them to run away from red-circled creatures. However, due to some sloppy scripting they were actually running away from the party. (runenemy.bcs)
- The candle, bell, and holy book used to open the portal to level two of Watcher's Keep are supposed to disappear once the portal is open. Because of an error in the variable checked, the items were not being removed. (ctaltar.bcs)
- One of the commoners in Amketheran is supposed to flee from the party at high speed. However, the spell that is supposed to give him the speed boost is not being applied due to a malformed action. He now runs away at the correct speed. (amman02.dlg)
- When controlling the spirit warrior in Watcher's Keep, the warrior can open a desk drawer, sometimes encountering contact poison. The action to inflict 25 points of acid damage when this occurs is malformed. (fsspir3.dlg)
- If the player sleeps with the harlot in Saradush, the screen is supposed to fade out first. The fade action is malformed. (sarpro01.dlg)
- The Helmite Ghost in the final seal level of Watcher's Keep had malformed calls to disable trigger points in the area. For the NPCs that interject, the call was also malformed from their dialogues as well. (fsspir2.dlg, imoen25j.dlg, jahei25j.dlg, vicon25j.dlg)
- If the player acquires the Graveyard Key, Faheed and Amajira are supposed to leave. However, Faheed's leave action is malformed. (amfaheed.dlg)
- In the cut scene where the PC is stripped of their Bhaalspawn abilities by Irenicus, the "Loses all Bhaal powers" string occurs in the beginning while the screen is fading to black and can be missed. It's moved to the end of the cut scene instead. (cut41i.bcs)
- There were occasional issues with the initiation of dialogue between Bodhi and the PC at the beginning of the asylum maze. (cut41j.bcs)
- Phealos the trainee in Aran Linvail's lair is supposed to move in a specific direction to leave the area. Pelanna's dialogue informs him to hit the showers, but it has a malformed move action. This allows Phealos to leave towards the nearest exit, possibly back towards the other training areas instead of the intended direction. (pelanna.dlg)
- The two imps are supposed to play a quick animation over their chest before opening it, but it's not occurring due to a malformed action. (sahimp02.dlg)
- Frennedan, the shapeshifter encountered in the opening dungeon, has two minor errors in his dialogue. One action to track his interactions is malformed, and one of his polymorphs has an invalid target. (shape.dlg)
- Krin and his training partner, encountered when going to ally with Aran Linvail, should be playing hide-and-seek through the shadows. After speaking with Krin, his partner should sneak up to him and initiate dialogue, but the movement part of the sequence is a malformed action. (arnman11.dlg)
- Habib is the scimitar-throwing idiot who attacks the party and runs away. After the initial encounter, he can also spawn in an Ilmater temple and hurt the party again by throwing a coin. However, his second spawn doesn't bother checking to see if he was killed in the first encounter. (slilmat.bcs)
- If you kill Amalas in the pit and speak to either of his buddies afterwards, both are supposed to leave together. A broken trigger prevented the other buddy (whichever one you did not speak with) from leaving until you spoke with him as well. (rufpal.bcs)
- Arnolius, the fletcher right off the Promenade, uses area variables set to the Promenade rather than to his specific area. As the Promenade is the master area for his shop, it's unlikely that this would cause issues except under unlikely situations, but it is fixed nonetheless. (shop02.dlg)
- The animation that plays upon the death of a grimwarder was not playing due to being called by a script action that couldn't target dead creatures. (reddeath.bcs)
- If Kruin, the wild mage Githyanki trying to track down the Silver Sword, gets killed before talking to the party he will simply respawn. (githspwn.bcs)
Game Broken if Saved During Bodhi's Spawn
At the end of chapter three, you confront Bodhi and her vampires if you side with the shadow thieves. A bug could occur if the game was saved after you staked the last of Bodhi's vampire lieutenants but before Bodhi herself appeared. Bodhi would never spawn, making the chapter (and by extension, the game) impossible to complete. The actions in Bodhi's spawn have been reordered to prevent this from occurring. (ar0801.bcs)
Ust Natha Cut Scene Could Occur Offscreen
On the upper levels of Ust Natha, a drow priestess tries to push through some duergar in a cut scene. However, due to the odd nature of the trigger here, this cut scene could occur entirely offscreen with few, if any, of the actors visible. The net result is that the game could go into cut scene mode and the player has no idea as to why. When this cut scene is triggered, the screen will now be moved to the scene and the fog of war removed so that the player can see this interaction. (dadrow20.bcs)
Multiple Captain Rerdes Bug
Due to a bad variable scope, Captain Rerdes in Lady Galvena's festhall could be spawned (and killed) multiple times. (ar1613.bcs)
Malformed Allegiance Checks
Many creatures have blocks in their AI scripts to turn into enemies if attacked. To prevent the block from repeating, it included a check to make sure the creature was not already hostile, but part of the check was malformed. (amduel1.bcs, amduel2.bcs, balmonk.bcs, chalpc01.bcs, gorbat.bcs, gorbat1.bcs, gortan.bcs, gortan1.bcs, gparcher.bcs, gphealer.bcs, gpkensai.bcs, gpmage1.bcs, gpmage2.bcs, gpshout.bcs, grpsht01.bcs, sarbul01.bcs, sarbul02.bcs, sarbul03.bcs, sardw01.bcs, sardw02.bcs, sardw03.bcs, sarrein.bcs, teltief3.bcs, trgrd02.bcs, trgrd03.bcs, trgrdr01.bcs, trgrdr02.bcs, trgrdr03.bcs, trgrdr04.bcs)
Errors in Altercation Between Firkraag's Leiutenants
In Firkraag's lair in the Windspear Hills, the party sees a confrontation between a wolfwere captain, a troll, and a hobgoblin named Gerg. There were a number of ways this encounter could be broken by the party, resulting in the principals standing around and not doing anything or failing to initiate follow-up dialogue after the confrontation was resolved. (firamb01.bcs, firamb01.dlg, firamb04.cre)
Innate spells can cause game crashes with scripts that use them. If an innate spell is set to a level other than one and used in a HaveSpell() trigger, the game will crash. A number of innates are changed to level one to address this issue. (spcl232.spl, spcl412.spl, spcl414.spl, spcl621.spl, spcl721.spl, spcl722.spl, spcl731.spl, spcl732.spl, spcl741.spl, spcl742.spl, spcl910.spl, spcl911.spl, spcl912.spl, spcl923.spl, spin683.spl, spin696.spl, spin697.spl, spin698.spl, spin891.spl)
Killing a couple of unrelated baatezu in the Marching Mountains was causing Ka'rashur in Watcher's Keep to go hostile. (ar3005.are, ar3006.are, ar3009.are, ar6012.are, yssumm2.bcs)
Invincible Bat in Bodhi's Lair
When entering Bodhi's Lair in Chapter Six, you initially encounter Valen. If you somehow kill Valen before she notices the party (for example, an invisible thief backstabbing and killing her in one blow), Del never changes out of bat form and will remain in the hallway as an invincible bat. Del relies on variables set in Valen's initial actions to trigger his transformation. He will now perform his normal actions if Valen is killed without seeing the party. (c6valen.bcs)
Terrece Spawn Errors
Terrece would appear outside the Council building while the PC was inside and start dialogue through the transition, which left the player talking to a shaded-out exterior wall. Terrece could also spawn prematurely if you entered the Council building but did not speak with Corneil. (ar1000.bcs, terrece.bcs)
Mazzy Goes Hostile if Valygar Charmed and Vice-Versa
After Mazzy adopts Valygar as her squire, she will leave the party and go hostile if Valygar goes hostile and vice-versa. However, due to the loose triggers on this scripting action, they would leave and go hostile even if the other is only temporarily hostile, i.e. if under a charm spell. They now account for the other being in a charmed state. A slight cleanup of Mazzy's script (removing a reference to a non-existent scripting name) is also performed. (mazzy.bcs, valygar.bcs)
Multiple Specters Trapped in Imps' Chest
If you do not solve the puzzle of the imps in the City of Caverns, a specter appears out of the chest. The specter kills the party member who opened the chest and then teleports away. However, the chest can be opened multiple times, and the same specter will appear and kill another party member. As there is only supposed to be one specter, the chest is altered so that this only occurs once. (impches3.bcs)
Arkanis Gath Spawning Post-Spellhold and When Working for Bodhi
If the player agrees to work for Aran Linvail and then attacks the shadow thieves, Arkanis Gath is spawned. Arkanis is, essentially, an invincible character that kills the PC immediately. Arkanis' role is to prevent the player from breaking their own game--if not for Arkanis, the player would be left with no way to get to Spellhold. However, Arkanis will continue to spawn post-Spellhold if the player attacks Aran or his thieves, when Arkanis (and his cheese) is no longer necessary. He will no longer spawn after chapter five.
An additional issue with Arkanis spawning was that he was being spawned by the rogue guild of Mae'Var under certain circumstances. If the player began working on exposing Mae'Var and then accepted Bodhi's offer, Arkanis would appear if the player then started killing the thieves in Mae'Var's guild. (killpc.bcs, mvally.bcs, mvally2.bcs)
Elhan's Elves Turning Hostile (And Not) Inappropriately
When leaving the Underdark, the party encounters groups of drow and surface elves fighting. The AI scripts used for shouts (used for groups of creatures to work together) are the same for both sides, meaning that a drow calling for help can cause the surface elves to go hostile against the party as a response. A secondary issue is with the elven war guard that appears simply to kill the PC if the player attacks Elhan or his elves. Similar to Arkanis Gath, the war guard exists purely to prevent the player from getting into an impossible-to-finish game. However, if the player attacks the surface elves fighting the drow in the last Underdark tunnels, the player can then attack all of Elhan's camp without the war guard spawning, leaving the player in an impossible to finish game. (ar2401.are, c6elf.bcs, c6elhan.bcs, c6extra.bcs, c6gener.bcs, warsage.bcs)
Cromwell Forges Item Without Ingredients Exploit
There was an exploit when commissioning Cromwell to forge items. The player could give all of the ingredients to one of the party members, get the party to attack that member, and then initiate dialogue with Cromwell and agree to make the item. The party could kill the member holding the ingredients during the forging cut scene, allowing the party to get the newly forged item and pick up the ingredients off the body of the killed member. Party actions are now cleared before the cut scene begins, as is the case for most cut scenes, to close this exploit. (cromwell.bcs)
Party Not Rested From Weeklong Trip to Brynnlaw
The party is supposed to arrive in Brynnlaw fully rested, but the cut scene that transports the party is occasionally flaky with the resting actions. (cut41c.bcs, cut41d.bcs)
PC Unable to Re-Enter Bodhi's Lair After First Task
If the player does not make initial contact with Bodhi in the Graveyard area, the door to the vampire area may be impossible to open. The commands in Bodhi's dialogue to open the door only work if she is in the same area when they're issued. This can cause the PC to be unable to return to Bodhi after completing her tasks. (ar0800.bcs)
Repeated Welther Spawns
Welther would spawn repeatedly under certain circumstances when freeing Elgea. (ar0400.bcs)
Quayle the Slime Causes Stutter Bug
Quayle the slime will cause the nearest PC to stutter if Aerie is in the party. He only has one top-level dialogue that checks to make sure Aerie's not in the party; if you get within 5 feet of him and Aerie's in the party he'll continuously try to initiate dialogue. Since he has nothing to say, the feedback window will fill up with "Bumbling simpeltons, get out of my way!" (quaylem.dlg)
Sime Not Always Prompting a Game Save Upon Arrival in Brynnlaw
If the player assists Aran Linvail and takes his help to go to Spellhold, Sime accompanies the player on the passage. Upon arrival, Sime initiates dialogue and then the party is ambushed. In some, but not all, dialogue branches she includes an action to save the game. Sime's dialogue will now save the game under all dialogue branches. (ppsime.dlg)
Jaheira Stutter Bug When Encountering Khalid's Body
If Jaheira is blinded when encountering Khalid's body, she would stutter as a script tried to initiate a dialogue repeatedly. To avoid the stutter Jaheira will deliver her dialogue about Khalid even if blinded. (jaheiraj.dlg)
Kangaxx Gets Stuck as Invincible Lich
If the party is not visible to Kangaxx when he appears as a lich (typically via Protection from Undead scrolls) he does not deliver his opening dialogue. If the party damages Kangaxx to the point where he should transform into his demi-lich form, he then delivers his opening dialogue instead of his demi-lich transformation dialogue. Kangaxx's lich form is protected by an invincible item, so at this point he can't be killed and will never transform. The Fixpack alters his dialogue so that his demi-lich transformation dialogue will occur at the proper time, regardless of whether his opening dialogue occurs or not. (hlkang.dlg)
Miscellaneous Mazzy Dialogue Errors
There are a number of miscellaneous malformed actions in Mazzy's joined and departed dialogues: her move back to her home in Trademeet under certain dialogue branches, initiating dialogue with the PC at the Shade Lord altar, and she may not set the proper variable that tracks that she's been kicked out. (mazzyj.dlg, mazzyp.dlg)
Unlock Bodhi's Lair
The main door to Bodhi's lair remains unpickably locked due to a "powerful sense of danger" even if the player sides with her in chapter two. The main door now unlocks once you receive access to her lair. (ar0801.bcs)
Valygar's Departure in the Slums Can Cause Cut Scene Hang
The Slums has a special trigger so that Valygar can make a comment during a cut scene about the Planar Sphere as the party approaches. If the party kicks out Valygar and he runs over this trigger as he leaves, the game will initiate the cut scene--however, as Valygar is leaving, he can't start dialogue and properly close the cut scene. This leaves the party stuck in a cut scene, unable to escape and continue the game. The special trigger conditions have been tightened to make sure Valygar is in the party and eligible to deliver his dialogue. (valyorb.bcs)
Under certain conditions, Hendak could disappear from the Copper Coronet due to the way he moves from his cell to the front room. This is now handled in a more robust manner. (hendak.bcs)
Surfacer Elves Flee Prematurely
As the party fights their way out of the Underdark they run into surface elves and drow fighting. However, some of the surface elves were leaving prematurely because they relied on a trigger that tracks whether the party was in combat. (udelf1.bcs, udelf2.bcs, udelf3.bcs)
Hostile Acting Troupe
In the Planar Prison, one of the guards is using the wrong shout script, meaning the actors and Haer'Dalis can erreoneously respond and go hostile if they hear him. The guard is updated to use the same shout script as the rest of the guards. (pcapt03.cre)
Several scripts that ship with the game are corrupted and beyond recovery. The Fixpack forces a recompile of the scripts so that they're no longer corrupt. (ar2812.bcs, rdog.bcs, rdwarf.bcs, retter.bcs, rgibbler.bcs, rhalflin.bcs, rhobgoba.bcs, rhobgobf.bcs, rkobold.bcs, rogre.bcs, rsiren.bcs, rsirine.bcs)
Miscellaneous Fixes to Leftover Scripts
Several patches written for BG2 issues could also be applied to the leftover BG or unused BG2 resources. Miscellaneous errors were fixed even though they'll have no effect on the base game. (idiot01.bcs)
The worldmap of Shadows of Amn is broken in several ways, and one fix is made for the Throne of Bhaal worldmap. (ar2601.bcs, worldm25.wmp, worldmap.wmp)
- There are several areas with multiple links to other areas with inconsistent
- The Slums district AR0400 has two links to the Government district AR1000, one of 0 hours and another of 4 hours (0 is correct).
- de'Arnise Hold AR1300 (before TorGal defeated) has travel times to Umar Hills AR1100 of 4 and 12 hours, travel times to Temple Ruins AR1400 (pre-shade lord defeat) of 4 and 12 hours, and travel times to Temple Ruins AR1404 (post-Shade Lord defeat) of 4 and 12 hours. 12 hours is correct in all cases.
- The travel time between Watcher's Keep and Abazigal's Lair was inconsistent.
- The de'Arnise Hold has different travel times and links before and
after you beat TorGal.
Before TorGal, it is AR1300 and has 12 hour links to the Umar Hills AR1100 and Trademeet AR2000, 16 hours to the Windspear Hills AR1200, and 20 hours to the City Gates AR0020. After Torgal is defeated it becomes AR1304, which has a 12 hour link to Umar Hills AR1100 (same), 8 hour links to City Gates AR0020 (previously 20) and Windspear Hills AR1200 (previously 16). It is lacking the previous 20 hour link to Trademeet AR2000. Travel time to Trademeet remains 20 hours, though, because you travel 12 to Windspear and then 8 to Trademeet.
- The Temple Ruins is another area that changes after you defeat the
Shade Lord, and shares many of the same problems as the de'Arnise Hold.
Before the Shade Lord's defeat, it is AR1400 and has a 12 hour link to the Umar Hills AR1100 and a 24 hour link to the City Gates AR0020. After the Shade Lord's defeat, it becomes AR1404. The Umar Hills link remains correct, but the City Gates are now only 16 hours away. On top of that, City Gates AR0020 to before and after Temple Ruins AR1400 and AR1404 is 20 hours.
- Many areas have inconsistent one-way travel times.
- City Gates AR0020 to Umar Hills is 20 hours, return trip is 24. If you have completed the de'Arnise Hold, this seems like it's only a 20 hour journey, as you go 12 hours to the Keep AR1304 and then 8 hours to the City Gates AR0020.
- City Gates AR0020 to Windspear AR1200 is 20 hours, return is 24. This also is masked by the buggy de'Arnise AR1304 to City Gates bug mentioned above.
- City Gates AR0020 to Druid Grove AR1900 is 24 hours, return trip is only 20.
- City Gates AR0020 to Trademeet AR2000 is 20 hours, return is 16.
- City Gates AR0020 to pre-Shade Lord Temple Ruins AR1400 is 20 hours, return is 24.
- City Gates AR0020 to post-Shade Lord Temple Ruins AR1404 is 20 hours, return is 16.
- Trademeet AR2000 to Windspear AR1200 is 4 hours, return is 12.
- Underdark Exit AR2500 to Small Teeth Pass AR1700 is 4 hours, return is 8.
- Windspear AR1200 to post-TorGal de'Arnise Hold AR1304 is 12 hours, return is 8.
- Many areas miss reciprocal travel links, causing inconsistent travel
- City Gates AR0020 has a 20 hour link to the Small Teeth Pass AR1700, but there is no return link. Small Teeth to City Gates is 24 (8 to Underdark Exit AR2500 plus 16 to Gates). Small Teeth to Underdark Exit should only be 4 hours anyway, as noted above.
- Forest of Tethir AR2600 to Small Teeth Pass AR1700 is 8 hours, no return link. Small Teeth to Forest of Tethir is 16 hours (8 to North Forest AR1800 plus 8 to Forest of Tethir).
- North Forest AR1800 to Forest of Tethir AR2600 is 8 hours, no return link. Forest of Tethir to North Forest is 16 hours (8 to Small Teeth Pass AR1700 plus 8 to North Forest).
- Other changes
It seems that travel times were laid out roughly by distance. For example, the trip from Trademeet to the Forest of Tethir is 52 hours, despite a fairly close proximity on the map. Trips from Athkatla to the de'Arnise Hold and Windspear are the same, despite de'Arnise being much closer on the map. Direct travel links between areas have been added to address these issues.
Missing Sound Files
In many places throughout BG2, the game references non-existent sound files. However, many of the sound files are in Baldur's Gate and were simply not included in BG2. To fix the errors, we simply include the relevant sound files from BG. (misc_01b.wav, misc_01c.wav, misc_03a.wav, misc_04a.wav, misc_06b.wav, pre_p06.wav, shael_07.wav2, shael_08.wav2, shael_09.wav2, shael_10.wav2)
The gem bags sold by the Amketheran smugglers and Arledrian (upstairs from Gaelan Bayle) use the same resources, so items placed in one will also appear in the other. A new resource is created for the Amketheran smugglers' store. The merchant who you can help at the City Gates and the store at Brynnlaw were using the same store. (aemerch.dlg, amsmug01.sto, amsmug02.sto, cdaemerc.sto, cdbag02i.itm, cdbag02j.itm, cdbag02i.sto, cdbag02j.sto)
Stores Have Infinite Magical Items
Several stores have infinite quantities of items. While it's common for non-magical items (particularly ammunition such as arrows or bolts) to be in infinite quantities at stores, the magical items should not be infinite. In a few cases, normal items were made to be finite in quantity, as there were other factors that made the infinite flag look suspect (such as a nonzero quantity).
- Arcana Archives (25spell2.sto): Removed infinite flag from Shadow Door (scrl2h.itm)
- Shadow Thief Fence (arled.sto): Removed infinite flags from Katana +1 (sw1h44.itm), Two-Handed Sword +1 (sw2h02.itm), and Halberd +1 (halb02.itm)
- Five Flagons (bdbart01.sto): Removed infinite flag from the History of the Fateful Coin (book40.itm)
- Copper Coronet (bernard2.sto): Removed infinite flag from Prismatic Spray (scrl8p.itm)
- Five Flagons (ffbart.sto): Removed infinite flag from the History of the Fateful Coin (book40.itm)
- Gorch (gorch.sto): Removed infinite flag from Mace +2 (blun21.itm)
- Karthis al-Hezzar (hgkar01.sto): Removed infinite flag from Club +3 (blun31.itm)
- Copper Coronet (lehtinan.sto): Removed infinite flag from the History of the Fateful Coin (book40.itm)
- Merchant (ppstor01.sto): Removed infinite flag from Dart +1 (dart02.itm)
- Adventurers' Mart (ribald.sto): Removed infinite flags from Ring of Animal Control (ring03.itm) and Ring of Air Control (ring28.itm)
- Adventurers' Mart (ribald2.sto): Removed infinite flag from Potion of Agility (potn19.itm)
- Adventurers' Mart (ribald3.sto): Removed infinite flags from Heartseeker +3 (bow10.itm), Warblade +4 (sw2h09.itm), and Two-Handed Sword +2 (sw2h11.itm)
- Waukeen's Wares (sartem01.sto): Removed infinite flag from Elven Holy Water (miscau.itm)
- Merchant (shop03.sto): Removed infinite flag from Bullets +1 (bull02.itm)
- Merchant (shop07.sto): Removed infinite flag from Large Shield (shld05.itm)
- Sea's Bounty (thumb.sto): Removed infinite flag from the History of the Fateful Coin (book40.itm)
- Khan Zahraa (trgeni01.sto): Removed infinite flags from Katana +1 (sw1h44.itm), Two-Handed Sword +1 (sw2h02.itm), and Halberd +1 (halb02.itm)
- Anvil of the Right (trmer04.sto): Removed infinite flag from Potion of Agility (potn19.itm)
- Anvil of the Right (trmer04a.sto): Removed infinite flag from Two-Handed Sword +2 (sw2h11.itm)
- Adventurers' Mart (type2.sto): Removed infinite flags from Splint Mail +1 (chan05.itm), Potion of Agility (potn19.itm), and Katana +1 (sw1h44.itm)
- Merchant (uddrow23.sto): Removed infinite flag from Harbinger +3 (sw2h07.itm)
Stores Selling Stacks of One Throwing Axe
Save for these shops, normal throwing axes are always sold in stacks of five. (bshop02.sto, garlena.sto, sahpr1.sto, suelf10.sto)
Name of Arcana Archives is Incorrect
Lazarus Librarus refers to his store as the Arcana Archives in his opening dialogue, but in the actual store screen it was using the name 'Pen and Parchment'. Pen and Parchment is the name of the store that Lady Yuth runs in the back of the Adventurers' Mart. (25spell.sto, 25spell2.sto)
Infinite Gold Store Exploit
At the City of Caverns Temple and again from the elf merchant in Suldanessellar, the store markups are set in such a way so that a very high charisma PC can buy and sell the same item repeatedly to the merchant and make a profit. The markups have been adjusted to more conventional levels to eliminate this exploit. (sahpr1.sto, suelf10.sto)
Fixed Bug That Prevents Saving Games (OS X Only)
On the OS X version of the game, 'temp' would be created as a file instead of a folder. This would prevent the player from saving their game. If 'temp' is a file, Fixpack will change it to a folder. (temp, if file, changed into folder)
Stores With Duplicate Item Entries
Two stores in the game have two entries for Large Shields +1, but lack any entries for normal large shields. The duplicate entry, based on its ordering and other parameters, can be determined to be intended as the missing normal large shield entry, and is changed. (ribald.sto, shop02.sto)
Load Hint Fixes
With Throne of Bhaal installed, the list of available load hints for both games no longer matches. The missing load hints from the two lists are added to each other. The load hint that says you can import your characters to Neverwinter Nights is removed as NWN does not allow importation. (loadh25.2da, loadhint.2da)
1 This fix is not available in Korean.
2 This fix is only available in English.