1. Neverwinter Nights: Enhanced Edition
  2. News

Neverwinter Nights: Enhanced Edition News

Neverwinter Nights: Enhanced Edition Development Build 8193.6

Happy New Year, friends!

We’re kicking off 2020 with a brand new development patch for you to play with!

Development Patch 8193.6 focuses on creation for both single player and multiplayer. This dev patch is best suited for our content creator community, as it requires technical knowledge of our toolsets (and a willingness to endure a few issues). We hope you have some fun breaking these features— fair warning: we’re expecting there to be some outstanding bugs in this build.

This patch is network-compatible with all other 8193 releases; however, new features will not work when the patch revision differs (and characters may fail to pass ELC).
Check out the full patch notes below!

All the best,
- Beamdog NWNEE Team

[h2]Customise weapons-related feats in baseitems.2da[/h2]

Weapons-related feats (Focus, Epic Focus, Spec, Epic Spec, Improved Crit, Overwhelming Crit, Devastating Crit, Weapon of Choice) can now be customised on a per-baseitem case.

Please refer to baseitems.2da for the new columns: WeaponFocusFeat EpicWeaponFocusFeat WeaponSpecializationFeat EpicWeaponSpecializationFeat WeaponImprovedCriticalFeat EpicWeaponOverwhelmingCriticalFeat EpicWeaponDevastatingCriticalFeat WeaponOfChoiceFeat

[h2]Custom weapon visual effects[/h2]

Weapons can now have custom visual effects (in addition to the stock fire, ice, electricity, etc.)

Please refer to the new file iprp_visualfx.2da for details.

[h2]Custom spellcaster classes[/h2]

We've added (somewhat partial) support for custom spellcaster classes by "unhardcoding" a lot of the builtin constants and references.

Please refer to classes.2da for the new columns: MemorizesSpells SpellbookRestricted PickDomains PickSchool LearnScroll Arcane ASF SpellcastingAbil SpellTableColumn CLMultiplier MinCastingLevel MinAssociateLevel CanCastSpontaneously

Note that not all combinations are valid. We recommend cloning one of the existing caster classes and then start customising from there. When adding spellcasting to new classes, remember to also update existing columns.

There is also a new ruleset entry: COMPANION_LEVELS_STACK, defaulting to 0.

[h2]Level of Detail[/h2]

You can now specify LODs via a new file type ".lod". When the game loads the model mymodel.mdl, it will look up mymodel.lod. Inside that file, add the following lines:

mymodel_0
40 mymodel_1
80.5 mymodel_2


The game supports LOD files with up to three levels, as shown above. You may omit the last entry. The first line is the high-resolution model; the other two are meant to be lower-resolution model files, that will be dynamically swapped out as the camera reaches the given distance.

Please note that LODs are highly dependent on the screen resolution of the client. The actual mechanisms here need to still be figured out; but for now, we'd suggest choosing LOD distances as if the user had a 1080p screen. To support other resolutions, there is a configuration slider in the debug settings (Ctrl-Shift-F12, select "Config", key: "graphics.lod.scale-factor") that users can influence LOD distances with.

[h2]Animation Slots[/h2]

The game now supports 50 more custom animation slots (LOOPING_CUSTOM21 -> 70).

[h2]Script call to swap out textures on the fly[/h2]

A new script call was added:

// Makes oPC load texture sNewName instead of sOldName.
// If oPC is OBJECT_INVALID, it will apply the override to all active players
// Setting sNewName to "" will clear the override and revert to original.
void SetTextureOverride(string sOldName, string sNewName = "", object oPC = OBJECT_INVALID);


Changes made through this call will appear immediately on clients.

[h2]NWSync[/h2]

When downloading something via NWSync, disk writes now happen asynchronously while more content is downloaded. This should minimise occurrences of "Waiting On Storage". If this is giving you grief, you can turn it off in settings via the key "nwsync.transfer.flush.async".

The NWSync Downloader UI was swapped out with a new version, which is now rendered in Nuklear. It has a fancy graph and a pause button.

Finally, the Storage Manager (Options -> NWSync) now has two tabs: Servers, and Modules. Server manifests (i.e. when joining a PW that offers files) show up in the Server tab.

The Modules tab will show all singleplayer/offline modules you have downloaded via NWSync. To facilitate this, the Storage Manager UI now can download offline modules for you; however, by default, no remote repositories offering this are added to your game.

To add a remote repository, add the following lines to your settings.tml (right at the top is fine, the game will sort them in properly on next launch):
[[nwsync.downloader.repositories]]
name = "NWVault"
url = "http://sync.neverwintervault.org/"


To actually generate a repository of your own that can offer singleplayer modules for download, you need to generate NWSync manifests that have module contents in them (nwsync_write --with-module --group-id N ...). Finally, add all manifests into a big json array in modules.json in the repository root (the nwsync_write tooling will update soon to do this for you). See the sample repository if it is unclear.

Modules downloaded this way will show up under "Other Modules" when clicking Singleplayer -> New Game.

[h2]Texture Binding[/h2]

There is a new, experimental, texture caching system in place that will speed up GL texture binding, depending on your hardware (especially if you are CPU-bound). It is enabled by default, but you can turn it off via the config flag graphics.experimental.aggressive-texture-caching, if it turns out to have issues.

We have seen - depending on scene complexity and the amount of texture maps in use - dramatic performance improvements. We'd appreciate feedback on this.

[h2]Shader Issues[/h2]

We fixed a shader issue that would result in illumination appearing on content that was intended to be black (e.g. the tile borders in the “Dungeon” tileset).

[h2]Texture Issues[/h2]

We fixed mipmaps not being generated for non-compressed textures.

[h2]ResMan[/h2]

ResMan can now use more than 256MB of memory for caching. There is a configuration option to specify the percentage of detected physical memory that ResMan can use. Additionally, new defaults in place will avoid I/O churn, resulting in vastly improved performance in complex scenes.

[h2]ResMan Priorities[/h2]

The priorities of userpatch, modules, haks, and override have been restored.

[h2]Toolset[/h2]
  • Toolset now allows selection of heads from custom slots 50-99.
  • The up and down arrow keys for Adjust Position now progress in perfect sequence.
  • We fixed a bug where double-clicking on an area entry could cause parts of the toolbar to grey out.
  • We fixed a truncation issue when using search & replace in the script editor.
  • You can now add a NAME CExoString field to your custom tileset palettes, instead of having to put a STRREF.
  • Object descriptions over 2000 characters long are no longer truncated.
  • The toolset no longer crashes when moving the start location between areas open in multiple tabs.
  • A group of raised objects now retains their z-level when moved.


[h2]Miscellanea[/h2]
  • [Windows] We fixed large strings, such as chat logs, disappearing if they exceed 1024 characters.
  • We addressed an issue where models/resources would leak over when hopping servers, sometimes resulting in a crash.
  • We updated the crash reporter text and URL.


Have a great start into 2020!

Neverwinter Nights: Enhanced Edition 1.79 Stable 8193.5

Hello everyone!

We'd like to wish you a relaxing holiday season with dear ones, and the time to do the things you love most as you ring in a brand new year.

See you in 2020!

Fixes
  • We restored ResMan priority behavior with regards to haks vs. modules.
  • We fixed CopyObject not duplicating a item if the target inventory or location was not valid.
  • The toolset no longer truncates Description and Comments fields.
  • A potential crash fix inside the HTTP library when running NWSync repeatedly.
  • The ResMan debug UI has gained a few more buttons to help custom content authors.
  • There is a new resman configuration option to log failed resource lookups.
  • We fixed a bug where in singleplayer, the 2da cache would not clear properly between module runs with differing custom content.
  • Object hilite state and colors is now configurable - clientside - in settings.tml.


As is the case with all .X releases, this build is cross-compatible to all previous 8193 builds. You can upgrade or downgrade both client and server and should still be able to join each other in multiplayer!

Neverwinter Nights: Enhanced Edition 1.79 Stable 8193.4

8193.4 contains small, incremental fixes to the stable branch! Thank you all for reporting these issues. We know there are remaining open problems - we'll get to them in future incremental patches.

Fixes


  • We fixed a thread race in the game client when receiving network packets on the builtin server, resulting in issues connecting to local servers.
  • We fixed the configuration option server.restore-spell-uses-on-login.
  • Palemaster natural AC progression has been restored to what it should be (it was off by one level after 4).
  • The script call ActivatePortal() has been fixed to no longer show “Cryptographic Handshake Error”.
  • A small memory issue in RESREF handling was addressed, that could occasionally crash clients when transitioning via ActivatePortal().
  • The toolset will no longer try to deallocate the starting location when closing an area that does not have it.

Neverwinter Nights: Enhanced Edition 1.79 Stable 8193.3

Hello, again!

Today we are shipping 8193.3 to the stable branch. This update includes all of the changes contained in 8193.1 and 8193.2!

Fixes
  • Toolset sound and ambient music has been raised from the dead.

Neverwinter Nights: Enhanced Edition Development Build 8193.2

Greetings!

We're fixing some more things in this minor update to 8193.1.

Again, this release is (mostly) compatible with the current stable release, 8193. Please test it thoroughly and report issues to us; as this is intended to replace 8193 on stable very soon.

Fixes


  • Yet another fix to CampaignDB, where it incorrectly imported records marked as deleted. We would suggest re-running the campaigndb import if you are facing problems because of this.
  • A fix to CampaignDB where it emitted (harmless but confusing) error messages about empty strings and objects being imported.
  • The game now remembers fullscreen mode when toggling via Alt-Enter.
  • The game now remembers window position and size separately for for fullscreen and windowed mode.
  • When toggling out of borderless window mode, the window decorations (title bar) no longer become invisible.
  • On MacOS only, fullscreen mode now defaults to borderless instead of exclusive. There is now a configuration key ("graphics.window.fullscreen.toggle-to-borderless") to affect this if you do not like the default.
  • NWSync: The "nwsync" directory is now being created properly.
  • NWSync: The UI will not crash the game when NWSync had failed to initialise. In addition, it will show the initialisation error in the UI if one is available.
  • NWSync: The UI now properly shows the Close button and an advisory message when nothing had been downloaded yet.
  • Debug UI: Toggling it via Ctrl-Shift-F12 will now be remembered across game restarts.
  • Debug Ui: The Config tree gained a text search.
  • The "development" alias now works on dedicated servers too.
  • The crashiness in all the premium modules should be fixed.