Neverwinter Nights 2 v1.23 Beta Patch Notes

Obsidian's v1.23 patch for Neverwinter Nights 2 must be getting close, as Rob McGinnis has posted the beta patch notes on the official forums. Here we go:
Neverwinter Nights 2 Game Update 1.23
English BETA Patch Notes - As of April 7, 2009


BUG FIXES

General

  • Fixed improved versions of Alchemist's Fire, so they give correct damage bonus, when applied to weapon, and not just extra 1d4 fire damage
  • Fixed Fire and Sonic Traps, so they work on enemies when placed with Set Trap skill
  • Fixed Fatal and Epic Sonic Traps, so they don't injure neutrals
  • Fixed Gas Traps, so they won't try to apply poison on same target multiple times. Also, they will work on enemies if placed with Set Trap skill
  • Fixed an issue that was causing the "Character has too many feats" error message to display when attempting to cross-class a level 5 sorceror with a level of Cleric with the Earth or War domain.
  • Players can no longer remove the last living party member from the party.
  • Fixed an issue that was causing enemies to remain highlighted if they died while being highlighted.


Toolset & Custom Content

  • The UI Atlas system has been removed so that UI objects that are not 1:1 will no longer appear blurred.
  • Hook points should now appear properly in the toolset.


Scripting

    (*)Fixed the ActionCastSpellAtLocation() script so that the nDomainLevel parameter is in the right place.


Multiplayer

  • Fixed an issue that was causing servers to crash when a polymorphed character would attempt to transition.
  • Players possessing their familiars will no longer lock up when transitioned by a DM
  • The Missing File error message, when attempting to connect to a server, now reports the file that is missing.


Spells

  • Fixed Magic Fang and Greater Magic Fang spells, so they are properly set as Transmutations (not Conjurations)
  • Fixed Mind Fog, so it is properly set as Enchantment spell (not Illusion)
  • Fixed Shroud of Flame, so it is properly set as Evocation spell (not Transmutation)
  • Warlock Invocations are now properly marked as somantic in the spells.2da file.
  • Fixed an issue that was causing you to damage your own party members, on Normal difficulty setting, with AOE spells.
  • Casting invisibility will now make the affected character silent, as well as invisible.
  • Concentration check for Warlock invocations is now DC10+DamageDealt+SpellLevel.
  • Fixed an issue that was causing Vampiric Regeneration to work intermittently.


Feats

  • Increased duration of Divine Might and Divine Vengeance feats for one round, to compensate for inability to attack in same round when those abilities are activated
  • Fixed Divine Vengeance bonus, so it gives extra 2d6 damage against undead, and not some random value between 2-12
  • AI Controlled characters with the Two-Weapon Fighting feat will no longer unequip off-hand weapons.


Racial Abilities

  • Fixed Cause Fear, Charm Person and Entangle spell-like abilities of Yuan-Ti Purebloods, so that duration and DC are not based on first class
  • taken at character creation. Instead, as per PnP rules, DC is Charisma based and duration depends from total character level
  • Fixed aura used by Drowned undead, so it does not affect creatures with Iron Body (which gives immunity to drowning)
  • Fixed Howl of Fear ability used by Shadow Mastiffs, so it doesn't affect themself when part of player faction on Hardcore difficulty
  • Fixed Summon Gale ability of Air Genasi, so it will not remove auras from other creatures anymore


Class Abilities

  • Fixed Legionnaire's March song, so that increase to base attack bonus doesn't depend from party members outside affected area
  • Already turned outsiders will not count against HD limit for new turning attempts
  • The 'Turning failed' message will not show for creatures that can't be turned
  • Fixed Guarding the Lord ability of the Neverwinter Nine, so that its duration is properly based on character level
  • Updated code for War Glory persistent aura used by Warpriest, so it matches other auras that were changed with 1.21 patch (also includes a fix for issue mentioned above). This should prevent some problems that can happen when refreshing this aura
  • Fixed an issue that was causing the game to crash if a druid, with a sling attached, casts Elemental Shape > Air.
  • Ranger abilities will no longer be disabled when equipping mithral chainmail armor.



NEW FEATURES

Multiplayer

  • New server ini option: HideChallenge RatingInExamine
  • New server ini option: HideEffect ListInExamine
  • Files located in the hak directories will now load prior to character creation.
  • Added support for Server to Server transitions through the function ActivatePortal() - Currently the parameter for seemless transition must be set to TRUE
  • A new .ini option has been added to allow server admins (hosts) to toggle the auto-heal feature on or off for player login. With the feature turned off, when a player rejoins a server, they will be in the same condition as when they logged off (HP, Spells per day, etc.).
  • A new Content Autodownloader system has been added to Neverwinter Nights 2 Multiplayer. It is designed to be used with the dedicated server.
  • Changes have been made to the Dedicated Server, Game Client and Toolset to accommodate this new feature. Two documents, Autodownloader Server Admin Guide.pdf and Autodownloader Toolset User Guide.pdf, can be downloaded separately.


Scripting

  • Added script function int GetVariableValueInt(object oObject, int nIndex); Get the value of a local int stored at the index provided. 0 if no var is present.
  • Added script function string GetVariableValueString(object oObject, int nIndex); Get the value of a local string stored at the index provided. Empty string if no var is present there.
  • Added script function float GetVariableValueFloat(object oObject, int nIndex); Get the value of a local float stored at the index provided. 0.00 if no var is present there.
  • Added script function location GetVariableValueLocation(object oObject, int nIndex); Get the value of a local location stored at the index provided. Invalid location no var is present there.
  • Added script function object GetVariableValueObject(object oObject, int nIndex); Get the value of a local object stored at the index provided. OBJECT_INVALID if no var is present there.
  • Added script function int GetVariableCount(object oObject); Get the number of local variables stored on this object.
  • Added script function void SetBaseAbilityScore(object oCreature, int nAbilityType, int nScore); EXPERIMENTAL! Note that any changes to skill rank will NOT be lost if the character is de-leveled. IMPORTANT: Most usages of this will cause characters to fail 'enforce legal character' restrictions.
  • Added script function void SetBaseSkillRank(object oCreature, int nSkill, int nRank, int bTrackWithLevel = TRUE); EXPERIMENTAL! set bTrackWithLevel = TRUE if you wish for the skill change to be associated with the character's level. In other words, should the character lose the skill change if they lose their current level? IMPORTANT: Most usages of this will cause characters to fail 'enforce legal character' restrictions.
  • Added script function void SendChatMessage(object oSender, object oReceiver, int nChannel, string sMessage, int bInvokeCallback = FALSE); This function is used to send a chat message, as if spoken by a PC or by the server. Except for 'CHAT_MODE_SERVER', oSender must be a PC or nothing will occur. oSpeaker - the PC who will speak, OBJECT_INVALID if channel is CHAT_MODE_SERVER. This must be a valid PC object for CHAT_MODE_PARTY to work. oReceiver - if nChannel is CHAT_MODE_TELL or CHAT_MODE_SERVER, then this must be the PC who will be receiving the message. nMode - CHAT_MODE const indicating the type of message to be sent. Only the CHAT_MODE_* values provided are accepted. sMessage - actual message text bInvokeCallback = the module's nChat script will be invoked to filter this message, if this is TRUE. WARNING: use extreme caution if setting bInvokeCallback to TRUE from within the OnChat handler itself -- this could lead to an infinite loop and hang your module!
  • Added script function int GetIsLocationValid(location lLocation); Returns TRUE if the location is a valid, walkable location.
  • Added script function int GetSurfaceMaterialsAtLocation(location lLocation); Returns a bitmask composed of 0 or more SM_* values.
  • Added script function int GetSpellKnown(object oCreature, int nSpell); EXPERIMENTAL! Returns if the spell is known to this creature under any class or level.
  • Added script function int GetItemBaseMaterialType(object oItem); returns the GMATERIAL_* const to get the base material type of the item specified. At this time, only the pre-defineid base material types work.
  • Added script function void SetItemBaseMaterialType(object oItem, int nMaterialType); EXPERIMENTAL! Set the base material type of oItem to nmaterialType, which must be a valid GMATERIAL_* const value.


Toolset & Custom Content

  • A new Content Autodownloader system has been added to Neverwinter Nights 2 Multiplayer. It is designed to be used with the dedicated server.
  • Changes have been made to the Dedicated Server, Game Client and Toolset to accommodate this new feature. Two documents, Autodownloader Server Admin Guide.pdf and Autodownloader Toolset User Guide.pdf, can be downloaded separately.
    Files located in the hak directories will now load prior to character creation.


2DA FILE CHANGES

Neverwinter Nights 2

  • Added Henchspells.2da
  • Spells.2da - Various spell changes
  • Feat.2da - added an "Instant" column.

Neverwinter Nights 2: Mask of the Betrayer

  • Added Henchspells.2da
  • Spells.2da - Various spell changes
  • Feat.2da - added an "Instant" column.

Neverwinter Nights 2: Storm of Zehir

  • Spells.2da - Various spell changes
  • Feat.2da - added an "Instant" column.