Neverwinter Nights v1.61 Patch Released

BioWare has released the official v1.61 patch for Neverwinter Nights, which includes three versions – one for the original game, one for SoU owners, and one for HotU owners. A full list of the fixes to follow:

Neverwinter Nights Game

  • added in 1.61 support for all game versions – with and without SoU and with and without HotU
  • added Demonflesh Golem to game resources
  • added support for custom TLK files for single-player games. Multiplayer support for custom TLK files will be added in a future update.
  • Made damage reduction for DD and barbarians stack.
  • Added dm_visualeffect console command. first param is int for vfx #, second is duration in seconds (float, optional). Can target ground, doors, creatures and placeable objects.
  • Fixed NPCs trying to use items that they were not usable due to race, alignment or class restrictions and standing around looking dumb.
  • Fixed Whirlwind timing for attacking so you can attack right away after finishing the whirlwind, and fixed too many attacks warnings
  • Fixed a bug with opening inventory while container is opened on top of open inventory, inventory was open but had no items.
  • Fixed a bug on LAN page where connect button was not being updated when the list is empty and a new server is added.
  • Fixed a crash in sound options GUI that could happen when Environment Effects=1 but had disabled hardware sound acceleration through DXDiag.
  • Fixed a crash in the level-up GUI if you had a invalid familiar
  • Fixed a crash when loading saved game when user managed to save between the time an OnHitCastSpell event was signalled and the time it impacted.
  • Fixed a crash when examining object just before area transition
  • Fixed an ELC problem that was sometimes evident in Epic Levels
  • Fixed a Palemaster level bonus bug
  • Fixed a couple relatively rare crash bugs
  • Fixed a save/load bug when using a custom talktable file
  • Made some fixes to prevent game/character hacking. Sorry, but we will never publically discuss specific changes to the game with regards to hacking the game.
  • Made several game stability fixes.

Neverwinter Nights Aurora Toolset

  • Fixed bug where two controls in the Options dialog would cause an array out of bounds error when fetching the StrRefs for their text. Fixes access violation when trying to open Options dialog.
  • Fixed bug where ctrl + up arrow or ctrl + down arrow in the Sound Properties dialog’s waves listbox would cause the selected item index to move twice in the indicated direction instead of once.
  • Small stability fixes
  • Fixed some memory leaks

Custom Content

  • Support for using an alternate tlk file if the StrRef is greater than 0x00ffffff, where the bit 0x01000000 has been set. It will mask off the upper 2 hex digits and use the resulting number as the StrRef into the alternate tlk file.
  • Module Properties dialog Custom Content tabsheet contains setting for specifying a custom tlk file from among those in the user’s tlk subfolder.
  • Added Hak conflicts dialog. It is launched from the Custom Contents page of the module properties dialog.
  • Refreshing Custom palette will now include blueprints from ERFs (read: hak paks) in addition to just the module blueprints.

Items

  • Added robes support
  • Added Cursed/Undroppable property to Items.
  • Whips created in Item Wizard automatically have “Bonus Feat: Disarm (Whip)”
  • Added support for stand-alone Visual Effect item property.
  • Fixed bug where elemental damage vfx would not always override alignment damage vfx.
  • Changed toolset handling of alignment-based vfx to be consistent with game in that any damage amount vs good or evil will generate a vfx.
  • Fixed bug in Item Properties dialog where no color variations would be listed for a weapon part if it has only one color variation.
  • Gold can no longer be set to undroppable in the inventory dialog for creatures.
  • When composing an armor icon, the appropriate armor parts are now hidden according to the settings in parts_robe.2da.

Creatures

  • Added Wings and Tails support.
  • Added Lootable and DecayTime properties to Creatures.
  • Creature Wizard and Creature Dialog allows up to level 60.
  • In Creature Properties dialog, entering a special ability caster level > 15 will clamp the value to 15 instead of restoring the previous value.
  • Restrict maximum Special Ability caster level to 15.
  • Fixed bug in Creature Dialog where visiting the Classes page would cause unspecified classes to count as 1 level toward the creature’s total level when calculating HP. (eg., level 10 abberation would have 12 levels of constitution bonus).
  • Fixed bug where a creature could be saved with a level 0 class.
  • When loading a creature, it will no longer load classes that have -1 classID and/or level 0.
  • Can no longer set a creature’s level to 0 in the creature properties dialog.
  • When loading package names in Creature Editor, fall back on 2da Label if StrRef not found.

Creature Wizard and Creature Levelup Wizard

  • Added new package-2da-based backend for Creature Wizard.
  • Added Creature Levelup Wizard. You can run it by right-clicking on a creature instance, or by going to the Classes tab in the Creature Properties Dialog and clicking on the Levelup Wizard button.
  • Fixed bug in Creature Wizard where Starting Package was not being initialized.
  • Changed Creature Wizard to use the CLS_BFEAT_*.2da tables to determine class bonus feats instead of hardcoding rules for each class. Fixes problem where no hardcoded rules were present for some classes and level ranges, causing creatures to miss out on bonus feats.

Areas

  • Added skybox property to Areas.
  • Added area property for fog clip distance.
  • Added reading of default skybox from environment.2da when setting up default area properties.
  • Increased height of Area Wizard dialog so that all tilesets are visible without having to scroll the listbox.
  • Fixed bug in tilegroup painting where it would not lock corners in the interior of a tilegroup that should have been locked.
    When painting group tiles, tiles that belong to the group are locked (at the center) and those tiles can skip the template verification.
    This change allows for 3×3 and larger groups that contain null tiles.
  • When using the context menu to open the Inventory dialog on an object in the area viewer then clicking OK, it will now flag the area as modified.
  • Fixed bug where Location Adjustment dialog would not flag the area as modified.
  • Added Apply button to Location Adjustment dialog.
  • Fixed crash when doing the following: select item, copy, paste, R-click, select item again, copy, paste.
  • Fixed crash that would occur if user did Ctrl-C on an object, then selected a different object in the area treeview, then typed Ctrl-C again.

Stores

  • Added new Store properties: IdentifyPrice, MaxBuyPrice, StoreGold, OnStoreClosed, and the WillNotBuy and WillOnlyBuy lists of baseitem types.
  • fixed crash to desktop due to stack overflow in the store properties dialog when clicking the up/down arrows for the sell markup/markdown values when they contained certain combinations of manually typed in and out-of-bound values.
  • Fixed bug where equality comparison for stores was not checking OnOpenStore event. (Affected use of AddToPalette on store instances)

Module

  • Fixed access violation setting the date/time on a mod or erf when the user’s system clock exceeded the year 2038.
  • Added option to create backup module files on save.
  • Fixed bug where the Strings section of the ERF header of a module was not being set to exactly the same set of strings as in the Module.ifo’s Description CExoLocString.
  • Optimized ERF file I/O. ERF import and export is faster now and uses less memory.
  • Significantly sped up saving custom creature palettes by not doing a full creature load in order to get the CR and FactionID. Instead, it now specifically reads only those fields out of the utc. However, this means that the CR is no longer recalculated, so if anything happened to invalide the CR since the creature was last saved, the CR saved to the custom palette will still be invalid.
  • Build Module Dialog

    • Double-clicking an instance in the message listbox will also edit that instance in its property dialog, not just focus on the instance.
    • Double-clicking a journal-related message in the messages listbox will open the journal editor.

  • Added OnPlayerEquipItem and OnPlayerUnEquipItem event to module properties.

Resource Management

  • Fixed bug in resource selection dialog where multiple “hits” would show up if you typed in a resref quickly enough to get in multiple keystrokes inbetween refreshes of the resources listview.
  • Fixed bug where the editing-a-standard-resources warning and the editing-a-resource–in-a-hak warnings would not be disabled when the user checked the “Never Warn Again” checkbox.
  • Do a total reload of a custom palette if trying to add a blueprint whose palette category does not exist in the current custom palette, which could happen in old modules created prior to the addition of new standard palette categories.

Scripting

  • In Script Editor: when parsing shortcuts for a script, user-defined constants will now appear in bold in the Constants listbox. A user-defined constant must be “const int”, “const float”, or “const string” and have an assignment. eg., “const int BLAH = 0;”
  • Fixed BadStrRef statusbar hint when mousing over main text entry area of script editor.
  • Added context menu items for Location and Variables dialogs from the module contents treeview.
  • Variables dialog

    • Fixed Variables dialog not flagging the current area as modified when it was used on an instance.
    • Added Variables dialog menu option for Encounter and Trigger instances.
    • Replacing a Variable will no longer deselect it from the Variables listview. This will allow you to Replace it again without reselecting it.
    • After deleting a variable, it will select the next variable that moved into selected line, if there is one.
    • Fixed Delete button still being enabled when no variables are selected.

Doors

  • Invisible door models in doortypes.2da (VisibleModel = 0) now show up in the Unique Door Appearances dropdown in the Door Properties Dialog, regardless of what tileset the current area is using.
  • Door Dialog now checks TileSet0, TileSet1, TileSet3 columns in doortypes.2da if the TileSet column does not match the currently open area’s tileset. If one of those additional columns matches the current area’s tileset, then that door appearance is selectable.
  • Door Wizard now sets OnDeath=x2_door_death for new Doors.

Placeable Objects

  • Added Environment-mapping support for placeable objects by reading “Reflection” column from placeables.2da. **** means no reflection. “default” means use the default env map. Any other value means to use the named TGA file.

Sound

  • The Audio page of the Area Properties dialog will no longer show music tracks that do not exist.
  • The Audio page of the Area Properties dialog will no longer show ambient sound tracks that do not exist.
  • Fixed bug where the ambient sound dropdowns, on the Audio page of the Area Properties dialog, were not using the DisplayName column in ambientsound.2da when no StrRef was present in the Description column.

Conversation Editor

  • Fixed bug where the Text Dump function in the Conversation Editor function would not restore the toolset’s original working folder after saving the text dump.
  • removed Looping checkbox for animations in a conversation node. It never worked correctly, and making it would would require the artists to create two copies of every animation in the list–a fire and forget and a looping one.
  • Added context menu option in area viewer to directly edit the conversation of an instance.

SpellCheck

  • Removed MS Word SpellCheck.

Journal

  • Fixed bug where recent changes to the LocName and Comments of a Journal Category would be discarded when R-clicking the treenode for that journal category.

Factions

  • Added progress bars to faction updates when OKing the Faction Editor.

Plot Wizard

  • Fixed bug in Plot Wizard where it would insert OnAcquireItem lines at the top of the Module OnAcquireItem script, if that script already existed, but did not contain any previous Plot Wizard modifications.
  • Fixed bug in plot node wizard where a node that uses the designated villain cast member would always be loaded up with the “Conflict with Villain” radio button checked, even if it was saved with the “Conversation” button checked.

Multi-Language Support

  • Fixed toolset always using English as the user’s language ID. It now uses the language in dialog.tlk
  • Fixed LocString dialog, when initially showing itself, showing the first available embedded string if no string for the user’s current language could be found.
  • Fixed conversation dialog tree always displaying locstrings in English. It will now display in the current language
  • Fixed bug where a LocString control would have its displayed text added to the locstring on initial creation when the displayed text is not for the current language.
  • If a localized text control cannot find a string in the specified language and gender, it will search for a string in the specified language but opposite gender, before it searches for a strref or string in another language.
  • After clicking OK in the multilanguage string dialog, the text in the LocString field would be set to the first available language’s string. If the string shown was not for the current language, it would then change the current language’s string to the displayed string. Fixed so that it no longer sets the text for the current language on returning from the multilanguage dialog.
  • Added Default Editing Language option so that the user can set the default language for editing locstrings to something other than the language specified in the user’s dialog.tlk file. Note that this only affects user-entered module text, not the actual GUI labels. (eg., an English user can edit a module as if he were German, with all localized strings showing up and being saved in German instead of English.)

DM Client

  • Fixed HP sometimes displaying as 0/0 in DM party bar.
  • DMs will now be included in Attack, Damage, and Death messages as if they were a member of the party
  • Fix so that you can’t send a DM possessed creature into Limbo
  • Fixed another instance of the bug when a DM cancels out of game options screen the difficulty was being set to easy.
  • Fixed bug where if a DM stole an item directly from a players equipped slot the weight encumbrance of that character was not being recalulated.

Scripting-specific

  • Added a number of HotU scripting commands including:
    GetCreatureStartingPackage()
    SetCameraHeigth()
    ForceRest()
    SetStolenFlag()
    GetIsCreatureDisarmable()
    GetItemPropertyParam1Value()
    GetItemPropertyParam1()
    GetItemPropertyCostTableValue()
    GetItemPropertyCostTable()
    GetIsInSubArea()
    EffectCutsceneImmobilize() – this effect is meant for the Dwarven Defender’s defensive stance. it roots the creature to the spot so that they can’t move but grants no other penalties. It cannot be resisted (even by Freedom of Movement)
  • We now drop items at the object’s position when CopyItem() or CopyAndModifyItem() fails to add the new item to the inventory.
  • Fix to CopyAndModifyItem() to not always drop the items at your feet
  • Fixed a crash when an area attempted to do an ActionSpeakString()
  • StartNewModule() will no longer crash if the module name is invalid

2DA Files Changed in this Update

  • probably most of them – please see the 2dasource.zip file or the “source” directory in your NWN install.
Share this article:

Leave a Reply

Your email address will not be published. Required fields are marked *