We're shipping the next stable patch for Neverwinter Nights: Enhanced Edition. If you have been following the Development branch and it's announcements, you will know what to expect!
The full list of changes since v1.74 (Build 8166) is:
Server Changes
Features
The player cap for a single server has been increased to 255 (from 96).(Hint: You can still reserve DM slots by setting a lower limit.)
Increased the maximum player name length from 32 characters to 127.
Fixes
NWScript: Fixed a crash in GetAreaSize() when it was called with the module as the area.
We added some basic protection against packet flooding that was seen recently.
Player name checks are now case-insensitive for purposes of locking names to public keys.
Translations/LocStrings: We’ve made it so that when looking up translated strings (for example, in object descriptions), we first consider the opposite gender before falling back to english.
Networking: We fixed some issues with masterserver DNS resolving that would, in rare circumstances, drop servers from the master list.
The Whirlwind attack feat has been fixed.
We fixed an issue with some creatures not spawning lootable corpses.
We fixed the following script events for player characters: OnDamaged, OnSpellCastAt, OnMeleeAttacked, OnPerception, and OnCombatRoundEnd.
We fixed a crash where ActionTakeItem would fail to deposit an item in a full inventory.
We fixed the server time getting stuck if the module had many areas.
We fixed a very rare crash when removing many areas via DestroyArea() in one script.
We fixed SetTransitionTarget() not propagating to clients in all cases.
Doors can now once again initiate conversations with players (via nw_g0_conversat).
Also, the game engine does not assign this script to doors, placeables and creatures with no script set anymore, instead just defaulting to it as a temporary override.
Client Changes
Features
The race selection UI in character generation is now a list (instead of pre-defined buttons) just like class selection.
Races can now have an icon; defined in the new “Icon” column in racialtypes.2da. This is up to custom content, as we do not currently ship icons for the builtin races.
New dynamic contrast shader by Søren Møller (Zarathustra217).
New SSAO shader by Søren Møller (Zarathustra217).
New Depth Of Field shader by Søren Møller (Zarathustra217).
Materials: .mtr files can now specify “renderhint”; mesh-specific definitions overrides this.
Materials: Meshes don’t require a texture if a .mtr was set.
Materials: In the mesh definition, “bitmap”/”texture0” can be used to define the material instead of “materialname”.
The Chat Log and Combat Log UI now remember their size between play sessions (in the .ini); they also remember split mode/combined mode.
UI: All-metallic colours are now animated in the character creation colour picker UI.
NWN:EE can now accept cyrillic key input again; and display as well, if a suitable (community-made) font override is provided. This is a stopgap measure to support our russian friends while we work on proper UTF-8 support.
Linux Fullscreen Mode is now properly supported.
Fixes
SDL has been updated.
A crash when joining a server with haks was fixed.
The multiplayer server browser UI has been fixed to work properly on 1080x2.
The multiplayer server browser now default-sorts by player count, descending.
Steam Workshop now logs to the player log for activity (like progress).
Movie playback on case-sensitive file systems (Linux) and languages with mismatching case movie files has been fixed.
Garbled sound issues have been fixed.
We fixed stopping/resuming audio playback when a audio device is (re)connected.
UI: We fixed the flickering text on loading screens.
Saving and loading ShadowGuard premium module savegames has been fixed.
UI: We fixed Escape not working on some main menu panels.
Renderer: We fixed rendering animated meshes without animations as static (for example, seen as disappearing water on tno01_v20_02).
Death Attack now shows properly in feat messages in the combat log.
Incorrectly rendered armour part colours in character generation have been fixed.
We added a workaround for an issue where servers would get confused by multiple clients behind NAT on on the same port.
Crash handlers have been improved to address issues with people not seeing the crash message, or not finding the right files to attach to a report.
We’re now applying FBOs (full-screen post processing effects) in a predefined order to avoid visual corruption when un/checking them in the UI.
We fixed the Connect button on the Server Details pane not working properly.
We also fixed the Previous/Next buttons not greying out the Connect button as required.
HAK and TLK preloading is now checked immediately upon connection; not after character creation. This fixes an issue where players would attempt to join a server with missing haks, only to be kicked after character creation.
The polish high-res font has been amended to include all needed special characters.
We fixed a crash in the 2D sound system.
We fixed an issue in the 3D sound system that would sometimes stutter or hang the game.
A client crash that would happen when the server sent a visual effect while the client was on a loading screen was addressed.
A client crash that would happen when the server sent a invalid placeable update was fixed.
We fixed inventory PLT icons sometimes displaying the wrong colours.
We addressed some issues with the builtin texture cache sometimes returning the wrong or no image, resulting in visual corruption on layered textures.
We fixed a crash issue with saving games when the thumbnail could not be generated.
We fixed the game crashing while exiting a module/game with a floating popup bubble active.
Content Creation Changes
Features
Object Visual Transformations: You can now scale, translate, rotate the following game objects: Creatures (including players), Items (including held/wielded), Placeables (dynamic only), Doors. You can also adjust the animation speed independently from object scale. This transformation is visual only and has no effect on walkmesh or personal space. (See Scripting Commands below.)
Materials: We’ve added script calls that allow overriding shader uniforms on materials.
Double quotes (“) can now be escaped in nwscript (\”).
The toolset can now open unpacked modules: You need to have it unpacked in a directory the same name as the .mod file (without the .mod extension).
Toolset: You can now move objects along the Z axis by holding down the Alt key and moving the mouse.
We added the livestream contest winner portrait (po_exornova).
Fixes
A crash in the script compiler has been fixed when many includes were nested.
Utils: We’ve re-added nwhak.exe and gffeditor.exe to the torrent. nwhak.exe now understands all new res types (like .mtr).
An issue where custom content tiles could not be laid down in the toolset (notably, Seasonal Forest) was fixed.
We fixed “Stereo WAV in 3D Positional Sound” popping up erroneously in the toolset.
We fixed the toolset not displaying spells or feats on character sheets.
We fixed "sqrt DOMAIN error" showing up on binary models without valid tangent data.
New Scripting Commands
int OBJECT_VISUAL_TRANSFORM_SCALE = 10;
int OBJECT_VISUAL_TRANSFORM_ROTATE_X = 21;
int OBJECT_VISUAL_TRANSFORM_ROTATE_Y = 22;
int OBJECT_VISUAL_TRANSFORM_ROTATE_Z = 23;
int OBJECT_VISUAL_TRANSFORM_TRANSLATE_X = 31;
int OBJECT_VISUAL_TRANSFORM_TRANSLATE_Y = 32;
int OBJECT_VISUAL_TRANSFORM_TRANSLATE_Z = 33;
int OBJECT_VISUAL_TRANSFORM_ANIMATION_SPEED = 40;
// Gets a visual transform on the given object.
// - oObject can be any valid Creature, Placeable, Item or Door.
// - nTransform is one of OBJECT_VISUAL_TRANSFORM_*
// Returns the current (or default) value.
float GetObjectVisualTransform(object oObject, int nTransform);
// Sets a visual transform on the given object.
// - oObject can be any valid Creature, Placeable, Item or Door.
// - nTransform is one of OBJECT_VISUAL_TRANSFORM_*
// - fValue depends on the transformation to apply.
// Returns the old/previous value.
float SetObjectVisualTransform(object oObject, int nTransform, float fValue);
// Sets an integer material shader uniform override.
// - sMaterial needs to be a material on that object.
// - sParam needs to be a valid shader parameter already defined on the material.
void SetMaterialShaderUniformInt(object oObject, string sMaterial, string sParam, int nValue);
// Sets a vec4 material shader uniform override.
// - sMaterial needs to be a material on that object.
// - sParam needs to be a valid shader parameter already defined on the material.
// - You can specify a single float value to set just a float, instead of a vec4.
void SetMaterialShaderUniformVec4(object oObject, string sMaterial, string sParam, float fValue1, float fValue2 = 0.0, float fValue3 = 0.0, float fValue4 = 0.0);
// Resets material shader parameters on the given object:
// - Supply a material to only reset shader uniforms for meshes with that material.
// - Supply a parameter to only reset shader uniforms of that name.
// - Supply both to only reset shader uniforms of that name on meshes with that material.
void ResetMaterialShaderUniforms(object oObject, string sMaterial = "", string sParam = "");
Build 8176
v1.75 carries build 8176, which has not been shipped to Development. However, to keep you in the loop, the following changes were made since 8175:
Fixes
We fixed mainhand weapon visual effects not updating correctly.
We disabled audio hotplugging on Mac, as that resulted in severe audio stuttering. We also reduced the reinitialisation interval to 3 seconds, in case other platforms/systems are affected by this. Audio hotplugging on Mac will be re-enabled once we have time to properly develop and test a fix.
Build 8166
We added a Steam branch called "oldstable", which still contains Build 8166. If you have multiplayer servers that are still on 8166, you can stick to that branch and keep playing until they upgrade.
Development build 8175 for Neverwinter Nights: Enhanced Edition is here.
This build is the new and likely last release candidate for 1.75! We very much appreciate any feedback that comes in from the community.
Please try to break this build, and if you are adventurous, even update your server. Let us know if you run into any issues on the usual channels.
Known Issues
We continue to work with Intel engineers to track down the crash and performance issues we’re seeing on Intel HD GPUs. The moment we have a solution or workaround, we will ship a hotfix.
We are aware of some premium modules not working properly in multiplayer, and are looking into that.
Fixes
A crash in the sound system, most noticeable in the UI when clicking buttons. This may also fix 3d audio sources stuttering and hanging the game client.
We fixed an issue where the server time could become stuck when the module has many areas.
We fixed a very rare potential crash when removing many areas via DestroyArea() in the same script.
The SetTransitionTarget() script call did not always propagate changes to clients.
The “sqrt DOMAIN error” happening in the Toolset on compiled models without tangent data should finally be fixed.
A client crash was fixed when the server was attempting to add a visual effect while the client did not have an area loaded.
A client crash was fixed when the server was attempting to update a placeable the client did not know about.
An issue was fixed where doors would not be able to initiate conversations was fixed. The same change also fixes that the game would auto-assign a script to object events, instead of just overriding a empty one.
We fixed inventory PLT icons sometimes displaying the wrong colours.
We fixed an issue where the texture cache would sometimes pull the wrong image, potentially resulting in visual corruption on PLT textures.
We fixed a saving a game crashing when the thumbnail image could not be created.
The DOF shader has seen minor improvements to the blurring algorithm used.
The SSAO shader has seen minor improvements to improve visual accuracy.
We fixed the game crashing while exiting a module/game with a floating popup bubble active.
Development build 8174 for Neverwinter Nights: Enhanced Edition is now available.
This build is the release candidate for 1.75! We would appreciate any and all testing you can give it.
If all goes well, we will ship this build as 1.75. This will give NWNX:EE time to prepare ahead of time, and also allow server admins to test and migrate over the coming days.
We'll make sure to keep everyone appraised on timing!
Known Issues
We are working with Intel engineers to track down the crash and performance issues we’re seeing on Intel HD GPUs.
We are aware of some premium modules not working properly in multiplayer, and are looking into that.
Features
We’ve added a new, more dynamic depth of field shader kindly provided by Søren Møller.
We added the livestream contest winner portrait (po_exornova).
Fixes
Regression: We fixed the New Game server settings UI not being interactable.
Regression: We fixed the New Game server settings UI disappearing after backing out from character selection.
The Polish high-res font has been amended to include all needed special characters.
HAK and TLK preloading is now checked immediately upon connection; not after character creation. This fixes an issue where players would attempt to join a server with missing haks, only to be kicked after character creation.
We fixed the Connect button on the Server Details pane not working properly.
We also fixed the Previous/Next buttons not greying out the Connect button as required. We fixed a crash where ActionTakeItem would fail to deposit an item in a full inventory.
We fixed OnMeleeAttacked and OnDamaged not firing on creatures.
We fixed the character creation model viewer crashing for racial type appearances without a valid model.
We fixed the racial selection screen title having the class selection title.
We fixed Linux Fullscreen mode.
We fixed “Stereo WAV in 3D Positional Sound” popping up erroneously in the toolset.
We fixed the toolset not displaying spells or feats on character sheets.
We’re now applying FBOs (full-screen post processing effects) in a predefined order to avoid visual corruption when un/checking them in the UI.
We are aware of some premium modules not working properly in multiplayer, and are looking into that.
(Since 8171) The creature script events “OnDamaged” and “OnMeleeAttacked” regressed and do not work correctly. We’re already fixing it, but it did not make this build by less than two hours.
Features
The race selection UI in character generation is now a list (instead of pre-defined buttons) just like class selection.
Races can now have an icon; defined in the new “Icon” column in racialtypes.2da. This is up to custom content, as we do not currently ship icons for the builtin races.
Fixes
Death Attack now shows properly in feat messages in the combat log. Incorrectly rendered armour part colours in character generation have been fixed.
We added a workaround for an issue where servers would get confused by multiple clients behind NAT on on the same port.
An issue where custom content tiles could not be laid down in the toolset (notably, Seasonal Forest) was fixed.
Crash handlers have been improved to address issues with people not seeing the crash message, or not finding the right files to attach to a report.
A crash was fixed when tiles with emitters would not have a valid animation node (for example, on the Steamworks tileset).
Development build 8171 for Neverwinter Nights: Enhanced Edition is available now.
We intend to ship the next stable release (1.75) soon. Please give this development patch a good test, and as always - your issue reports on support.baldursgate.com are read and appreciated.
As usual, we will be collaborating with the NWNXEE developers to make sure everything is ready for persistent worlds to migrate in a timely manner.
Known Issues
We are working with Intel engineers to track down the crash and performance issues we’re seeing on Intel HD GPUs.
Features
Material shader params (added in 8170) are now persisted to gff data (player character vaults, save games).
Fixes
We fixed a crash when setting shader parameters on objects without an animation base.
ShadowGuard premium module autosave/quicksave naming has been corrected.
A crash when joining a server with haks was fixed.
The Whirlwind attack feat has been fixed.
We fixed an issue with some creatures not spawning lootable corpses.
We fixed the area background fog going all black in some areas.
We fixed the following script events for player characters: OnSpellCastAt, OnMeleeAttacked, OnPerception, and OnCombatRoundEnd.
Neverwinter Nights: Enhanced Edition 8170 has shipped to the development branch today. We're now stabilising and working our way towards a 1.75 stable release in the coming weeks.
Known Issues
We are working with Intel engineers to track down the crash and performance issues we’re seeing on Intel HD GPUs.
We are aware of the Whirlwind bug. It will be addressed soon.
Fixes
Sound: We fixed an issue where playing weapon hit sounds would access freed memory, sometimes resulting in playing the wrong sound.
UI: We fixed the flickering text on loading screens.
UI: We fixed Escape not working on some main menu panels.
Renderer: We fixed rendering animated meshes without animations as static (for example, seen as disappearing water on tno01_v20_02).
Object Visual Transforms: We fixed an issue where held-item scaling would reset after a spell was cast.
Networking: We fixed some issues with masterserver DNS resolving that would, in rare circumstances, drop servers from the master list.
Features
Materials: We’ve added script calls that allow overriding shader uniforms on materials. This is still work in progress. Yet more flexibility is to come.
Translations/LocStrings: We’ve made it so that when looking up translated strings (for example, in object descriptions), we first consider the opposite gender before falling back to english.
Networking: We’re working on detecting port-hopping resulting from bad NAT on the server side.
UI: All-metallic colours are now animated in the character creation colour picker UI.
Toolset: You can now move objects along the Z axis by holding down the Alt key and moving the mouse.
Utils: We’ve re-added nwhak.exe and gffeditor.exe to the game download. nwhak.exe now understands all new res types (like .mtr).
NWScript Additions
// Sets an integer material shader uniform override.
// - sMaterial needs to be a material on that object.
// - sParam needs to be a valid shader parameter already defined on the material.
void SetMaterialShaderUniformInt(object oObject, string sMaterial, string sParam, int nValue);
// Sets a vec4 material shader uniform override.
// - sMaterial needs to be a material on that object.
// - sParam needs to be a valid shader parameter already defined on the material.
// - You can specify a single float value to set just a float, instead of a vec4.
void SetMaterialShaderUniformVec4(object oObject, string sMaterial, string sParam, float fValue1, float fValue2 = 0.0, float fValue3 = 0.0, float fValue4 = 0.0);
// Resets material shader parameters on the given object:
// - Supply a material to only reset shader uniforms for meshes with that material.
// - Supply a parameter to only reset shader uniforms of that name.
// - Supply both to only reset shader uniforms of that name on meshes with that material.
void ResetMaterialShaderUniforms(object oObject, string sMaterial = "", string sParam = "");
Neverwinter Nights: Enhanced Edition development build 8169 is coming your way. Enjoy these patch notes as the build uploads.
Known Issues
We are working with Intel engineers to track down the crash and performance issues we’re seeing on Intel HD GPUs. Other
We renamed “Head Start” on Beamdog Client to “Development” to avoid further confusion. “Development” is the Beta branch where new test releases will ship just like with Head Start before. Persistent Worlds are advised to stick to the stable branch.
Beamdog credits updated
Fixes
NWN:EE can now accept cyrillic key input again; and display as well, if a suitable (community-made) font override is provided. This is a stopgap measure to support our russian friends while we work on proper UTF-8 support.
NWScript: Fixed a crash in GetAreaSize() when it was called with the module as the area.
We added some basic protection against packet flooding that was seen recently.
We fixed stopping/resuming audio playback when a audio device is (re)connected.
Saving and loading ShadowGuard premium module savegames has been fixed.
Player name checks are now case-insensitive for purposes of locking names to public keys.
Features
New dynamic contrast shader version by Søren Møller (Zarathustra217).
New SSAO shader version by Søren Møller (Zarathustra217).
The player cap for a single server has been increased to 255 (from 96). (Hint: You can still reserve DM slots by setting a lower limit.)
The Chat Log and Combat Log UI now remember their size between play sessions (in the .ini); they also remember split mode/combined mode.
Object Visual Transformations: You can now scale, translate, rotate the following game objects: Creatures (including players), Items (including held/wielded), Placeables (dynamic only), Doors. You can also adjust the animation speed independently from object scale. This transformation is visual only and has no effect on walkmesh or personal space.
NWScript Additions
int OBJECT_VISUAL_TRANSFORM_SCALE = 10;
int OBJECT_VISUAL_TRANSFORM_ROTATE_X = 21;
int OBJECT_VISUAL_TRANSFORM_ROTATE_Y = 22;
int OBJECT_VISUAL_TRANSFORM_ROTATE_Z = 23;
int OBJECT_VISUAL_TRANSFORM_TRANSLATE_X = 31;
int OBJECT_VISUAL_TRANSFORM_TRANSLATE_Y = 32;
int OBJECT_VISUAL_TRANSFORM_TRANSLATE_Z = 33;
int OBJECT_VISUAL_TRANSFORM_ANIMATION_SPEED = 40;
// Gets a visual transform on the given object.
// - oObject can be any valid Creature, Placeable, Item or Door.
// - nTransform is one of OBJECT_VISUAL_TRANSFORM_*
// Returns the current (or default) value.
float GetObjectVisualTransform(object oObject, int nTransform);
// Sets a visual transform on the given object.
// - oObject can be any valid Creature, Placeable, Item or Door.
// - nTransform is one of OBJECT_VISUAL_TRANSFORM_*
// - fValue depends on the transformation to apply.
// Returns the old/previous value.
float SetObjectVisualTransform(object oObject, int nTransform, float fValue);