BG2 Fixpack Docs: Game Mechanics Fixes

This documentation is complete as of Version 12 and will contain game spoilers. Fixes included in the BETA Core Fixes are listed in red.

Game Mechanics Fixes

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)

Broken Actions

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 Definitions

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)

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)

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)

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)

Racial Thieving Bonuses Errors

Elves, half-elves, and halflings were receiving an extra 5% to their move silently skills, contrary to the manual. (skillrac.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)

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)

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. (beguile.spl, cdelfcm0.eff, cdelfcm1.eff, cdelfcm2.eff, cdelfcm3.eff, cdelfcm4.eff, cdelfcm5.eff, cdelfcm6.eff, cdelfcm7.eff, cdelfsl0.eff, cdelfsl1.eff, cdelfsl2.eff, cdelfsl3.eff, cdfampsd.itm, clck07.itm, dagg13.itm, demochm.spl, dwbolt01.itm, gorwom1.itm, hgnymph.itm, misc2p.itm, misc9x.itm, psdclaw.itm, regisamu.itm, ring03.itm, ring30.itm, 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, staf09.itm, staf14.itm, urgekill.spl, wand08.itm)

Percentage-Based Effects Generally Incorrect

Pretty much any item or spell in the game that had a percentage-based chance to do something--e.g. the Club of Detonation +3 doing bonus fire damage on 20% of hits, or the probabilities to summon multiple monsters from summon spells--was marginally wrong. The internal effects are all coded based on percentages from 1-100, but the game engine actually rolled a 0-99. This resulted in the aforementioned Club of Detonation doing extra fire damage on 21% of its hits instead of 20%. (aurstaf.itm, ax1h15.itm, balor.itm, blakblad.itm, blun14.itm, blun26.itm, blun27.itm, blun29.itm, blun30.itm, blun30c.itm, blun30d.itm, bonedag.itm, bonefd.itm, dagg17.itm, dagg20.itm, dagg21.itm, dagg22.itm, demmau01.itm, deva.itm, devaevil.itm, devmon01.itm, dogwawp.itm, dwwhip.itm, dwwhip01.itm, finsol01.itm, finsol02.itm, gith.itm, gorcamb.itm, gorsnake.itm, gorwom1.itm, gorwom4.itm, halb09.itm, halb11.itm, icetrl.itm, insanity.spl, marili.itm, miscbc.itm, mistho.itm, mistice.itm, mistva.itm, mistva2.itm, mound.itm, planetar.itm, ravag01.itm, reaver.itm, rods05.itm, sahzom01.itm, sareveff.spl, sendai.itm, sharswd.itm, slimed2.itm, spauru.spl, spcl918.spl, spermel.itm, spin106a.spl, spin106b.spl, spin203.spl, spin534.spl, spin675.spl, spin787.spl, spogre01.spl, sppr301.spl, sppr416.spl, sppr605.spl, sppr702.spl, sppr720.spl, spwi309.spl, spwi314a.spl, spwi314b.spl, spwi407.spl, spwi423.spl, spwi501.spl, spwi504.spl, spwi620.spl, spwi621.spl, spwi622.spl, spwi623.spl, spwi711.spl, spwish14.spl, spwm130.spl, spwm136.spl, staf13.itm, staf21.itm, staf22.itm, staf23.itm, sw1h51.itm, sw1h58.itm, sw1h59.itm, sw1h67.itm, sw1h99.itm, sw2h07.itm, sw2h15.itm, sw2h17.itm, sw2h18.itm, sw2hdeat.itm, telslav.itm, telwrai.itm, trolltor.itm, vamt01.itm, vamt06.itm, vamt08.itm, vamt10.itm, vamt12.itm, was2h.itm, wastar.itm, zomsea.itm)

Proper Effect Batches

Due to the way the Infinity Engine handles effects, it often takes several effects on a spell or item to provide the desired outcome--for example if a creature is immune to a hold effect, they also need to have immunity to the hold portrait icon and the 'held' message in the battle text. While this originally started as a batch for immunity fixes, it's now expanded to cover other common situations that need multiple effects working on tandem, e.g. shapeshifting and dispel magic.

  • Free Action: Free action is supposed to provide immunity to haste, slow, hold, paralyzation, 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)
  • Immunity to 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, sper12.itm, spin853.spl, sppr403.spl, spwi853.spl, surehp1.itm, sw2h06.itm, sw2h13.itm)
  • Immunity to Grease: Grease immunity should suppress the grease icon. (blun30.itm, jwsuper.itm, potn45.itm, ring09.itm, rossring.itm, sper12.itm, spin853.spl, sppr403.spl, spwi853.spl, sw2h06.itm, sw2h13.itm)
  • Immunity to 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)
  • Immunity to 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)
  • Negative Plane Protection: 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, 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)
  • Immunity to 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 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)
  • Immunity to 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. The Fixpack 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, spin117.spl, spin676.spl, spin823.spl, spin872.spl, spin891.spl, spin906.spl, sppr108.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)
  • Immunity to 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, coplion.cre, 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)
  • Immunity to 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)
  • Immunity to Disease: Disease immunity should prevent the disease 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, vampreg.itm, vampreg1.itm, vampreg2.itm)
  • Immunity to Poison: Poison immunity should suppress the poison and bleeding icons, strings 'poison' and 'poisoned', display the protection from poison icon, and add explicit immunity to Cloudkill. Poison immunity does not add immunity to poison-type damage, as this is used by disease effects unless disease immunity is also present. (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, spcl415a.spl, spcl818.spl, spcl924.spl, spin853.spl, spwi413a.spl, spwi415c.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)
  • Immunity to 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, blun30.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, ring09.itm, rossring.itm, sper12.itm, sppr403.spl, sw2h06.itm, sw2h13.itm)
  • Spell Level 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, spwi413c.spl, spwi602.spl, spwi954.spl, spwm126.spl, ucounter.cre, uhostile.cre)
  • Spell School Immunities: Like the above Spell Level Immunites, some spells provide immunites to cerain spell schools, but they often don't protect against spells that target with projectiles. ( spwi590.spl, spwi591.spl, spwi595.spl, spwi596.spl, spwi597.spl)
  • Immunity to 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, spcl917.spl, spin853.spl, spwi108.spl, spwi853.spl, stalker.itm, surehp1.itm, sw1h71.itm, sword01.cre, telpit1.cre, telslav2.itm)
  • Immunity to Kill Target: Immunity to kill target effects (such as those used by vorpal weapons) should suppress the 'death', 'vorpal hit', and 'undead destroyed' 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)
  • Immunity to 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)
  • Immunity to 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)
  • Immunity to Blindness: Immunity to blindness should suppress the Blind icon as well as the 'blind' and 'blinded' strings. (sword01.cre, npmisc1.itm)
  • Immunity to Deafness: Immunity to deafness should suppress the Deaf icon as well as the 'deaf' string. (sword01.cre)
  • Immunity to Slay: Immunity to slay should suppress the Dying icon. (balth02.spl, spcl917.spl, spin853.spl, sppr409.spl, spwi853.spl, sw1h71.itm)
  • Immunity to 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)
  • Immunity to 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, spin853.spl, spwi853.spl, sword01.cre, telpit1.cre, tstatue.itm)
  • Immunity to Sleep: Two different effects can cause sleep, so immunity to sleep should block both as well as 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, torgal2.cre, torgal3.cre, trollall.itm, trollimm.itm, tstatue.itm, udvamp.cre, vampreg.itm, vampreg1.itm, vampreg2.itm)
  • Immunity to Stun: Two different effects can stun, so immunity to stun should block both as well as 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, torgal2.cre, torgal3.cre, trollall.itm, tstatue.itm, uddrow50.cre, udphae01.cre, udsilver.cre, udsola01.cre)
  • Fear Removal: Items and spells which 'cure' fear also need to remove the fear portrait icon. (globblu2.itm, sppr713.spl, spwish07.spl, spwish46.spl)
  • Immunity to Feeblemind: Immunity to feeblemind should also prevent the feeblemind icon. (amul17.itm, chalcy3.itm, killsw01.itm, potn21.itm)
  • Dispel Magic: Dispel magic should destroy illusionary creatures, cure deafness and blindness, and remove deaf and blind portrait icons. Depending on whether it's supposed to be a visible dispel (e.g. not for curscenes or no-magic zones) the it should be accompanied by visuals and a 'dispel effects' string. Most dispels also had effects to remove magical weapons but the main dispel effect already removes these, so they were purged as redundant. (carsomyr.itm, deva.itm, devaevil.itm, elemchan.itm, elemcryo.itm, elemhydr.itm, elemimix.itm, elemogre.itm, elemsunn.itm, elemyanc.itm, elemzaam.itm, misc5c.itm, planetar.itm, plot04i.itm, potn33.itm, ravag01.itm, reaver.itm, scrl07.itm, spcl231.spl, spin112.spl, spin550.spl, spin646.spl, spin703.spl, spin712.spl, spin779.spl, spin866.spl, spin992.spl, sppr303.spl, spwi010.spl, spwi302.spl, spwi326.spl, staf11.itm, sw2h10.itm, sw2h10dm.spl, sw2h19.itm)
  • Blindness: Blinding effects should always be accompanied by a blind icon and a 'blinded' message. (chalcy2.itm, gorwom4.itm, sorb.itm, spdr101.spl, spin595.spl, spin878.spl, spin893.spl, spin929.spl, spin931.spl, sppr313.spl, sppr707.spl, spwi118.spl, spwi224.spl, spwi714.spl, spwi815.spl, spwi958.spl, sw1h51.itm, wand19.itm)
  • Stun: All stun effects should be accompanied by a 'stunned' string and a portrait icon. (carrio.itm, cornugon.itm, demcor01.itm, deva.itm, elemhydr.itm, fampsdat.itm, ghoulc.itm, goltome4.itm, gorcamb.itm, gorsnake.itm, icetrl.itm, mepsal.itm, misc3h.itm, mistwa.itm, ravag02.itm, sareveff.spl, slng06.itm, spcl123.spl, spermel.itm, spin543.spl, spin727.spl, spin832.spl, spin834.spl, spin927.spl, spin934.spl, spin944.spl, spin959.spl, spin974.spl, sppr718.spl, spwi816.spl, spwi959.spl, spwm152.spl, staf13.itm, sw1h51.itm)