Patch Version1.81.8193.17
Patch release date (PC)na
Patch release date (Others)
Patch release notes


Bugfixes for the last stable patch, changes for NWSync plus a new script function for setting current HP.

Patch Notes


  • Config: “Hide secondary story tiles” is now disabled by default.
  • Dynamic contrast shader now has config options for intensity and midpoint.
  • Depth of Field shader should now behave better; added configuration option for used focusing type.
  • Armour/metals are now rendered with more detail and less blotches.
  • Shadows now fade out more smoothly in relation to distance and height/angle.


  • Fixed the localisations not loading some keytable content (like voiceovers).
  • Lighting: Fixed an issue in the light range calculation that resulted in lights occasionally flicking off/on rather than fading out smoothly.
  • Renderer: Optimised renderer GL buffer handling.
  • Fix texture animations sometimes not animating. #68
  • Renderer: Fixed clear colour erroneously reverting to black when loading into an area if a game object was received at exactly the wrong time.
  • Fixed the water shader showing seams.
  • Water now always uses the env map.
  • Danglymesh is now properly frozen when the game is paused.
  • Grass: Fixed fade-in Z fighting/shimmering when viewing from above, fixed grass appearing abruptly instead of fading in smoothly.
  • Skyfade fog coloured model below the horizon now covers below area, so missing meshes and keyholing show a black backdrop.
  • Fixed minimap data being assigned incorrectly when deleting an area via VM::DestroyArea.
  • Fixed cloaks and robes not inheriting visual transform animation speed. #159
  • Fixed items losing the possessor reference when failing to merge a stack out of a container, resulting in dead/unusable items and eventually a crash.
  • Model loader: Set mesh ambient and diffuse to vec3(1.0) by default.
  • NWSync command line args now verify the URL and Hash formats.
  • Debug UI: Fixed a client crash in the NWScript Widget when inputting a invalid object ID. #141
  • Fixed an issue where the first texture in a material was replaced with the NULL texture after an area change.
  • Fixed classstat abilities modifiers not being considered for feat requirements on levelup, when the abilities are gained on the very same level. #45
  • Fixed classstat ability modifiers sometimes not updating after a levelup (for example, for STR damage bonus).
  • Renderer: Fixed some erratic keyholing behaviour in certain situations.
  • Renderer: Reduced the number of shader reloads.


  • Toolset: Fixed shadow rendering with fog disabled.
  • Toolset: Fixed VFX emitters not rendering properly. #162
  • Toolset: Fixed some shadows not rendering properly.

Art Fixes

  • Fixed a crash in TNO01 Ship1 and Market Stall, Long: caused by too many mesh parts
  • TTF02 and TTS02 Doors: Fixed DWK naming and settings
  • TTF02 Water: Fixed bad transparency settings in stream tiles (as seen through tree branches)
  • TSS13 (Seaships): Added edge tiles TSS13_edge.2DA
  • TNO01: Fixed chimney & window animations in Inn, Coach 2x2
  • Shields/Cloaks/Robes (all): Turned Ambient and Diffuse values to 1.0 1.0 1.0, so area lighting and tinting can have fullest effect as well as clothing matched-up from race-to-race. Compiled shield models
  • Skybox, Black: Added missing model
  • Restored the "Lightning Tiles" in TDE01, TNI02, and TSW01, added animloops for shutdown where needed
  • XP3 placeables: Many fixes for useability, shadows, z-fighting, walkmesh, and appearance
  • XP3 Gem Golems: Adjusted appearance for proper translucency & shine (creatures/weapons/shields)
  • Daggerford & Tyrants of the Moonsea Placeables:
    • Reworked placeable Use nodes to strict 13-character length requirement, cleaned up PWK walkmesh settings
    • Shadow, Mesh and Bounding Box fixes
    • Rebuilt placeable walkmeshes on several larger models to be 3D instead of a flat plane
    • Low Ambient Values raised to 1 1 1 (to allow other forms of tinting)
    • Added in several missing art models and portraits, along with toolset blueprints (DoD Flags, Signs, & Duke Painting; Tyrants Flowering Plants & Wavy Water 1x1, Invisible Ground 4x4, Worldmaps - Floor and Wall-Mounted)
    • Added half-dragon tail to Half-Dragon blueprint
    • Added missing texture for worldmap placeables
    • Glass and Metal textures: Fixed TXI settings, added an alpha channel to maps for specularity and custom environment mapping (new textures)
    • Candles (Non-Ambient): Added a dynamic light with shadowing (Disclaimer: nearby props must not be set to Static in order to cast shadows, but work much better than Ambient lights)
    • Elven Lanterns, Fixed candle flame not showing through panes, added ambient/dynamic versions as with candles
    • Fixed a SQRT Domain error in TNO01 Boat (at last!)
    • Kochrachon: Fixed deformed arms & a floating "thumb"
  • Appearance.2DA
    • Curst Swordsman: Removed undesired environmental mapping
    • Kobolds/Goblins/Orcs/Golems/Giants/a few others: Added default environmental mapping
  • Doortypes.2DA
    • Added proper blueprint ref's for the two new elven doors (TTF02)
  • Loadscreens.2DA
    • Added default tileset entries for DoD and Tyrants loadscreens
  • Placeables.2DA
    • Fixed various settings on placeable entries
  • PlaceablePalStd.ITP
    • Added new entries for missing blueprints, removed a couple bogus entries
  • Portraits.2DA
    • Added missing entries, for missing blueprints
  • Tailmodel.2DA
    • Changed entry 5000 from "karandas" to "Half-Dragon"


  • DoD: Fixed use node on the Daggerford Wagon in the dev hak

Using NWSync Serverside

The linux/macos nwserver binaries can now bootstrap from NWSync instead of having to have a copy of all hak data.

  • New argument -moduleurl, from which the module data will be sourced.
  • New optional argument -modulehash; which is considered to be `latest` if omitted.
  • You need to generate the server/module repository with --with-module.
  • You can reuse the public repository to save on duplication/disk space; or use a separate/private one. If you reuse the same repository and do not want to leak the module data, turn off http content listing and write the data with --no-latest.
  • Data is stored in SERVERHOME/nwsync, same as on the client. It will auto-prune old data if the group_id matches, also same as the client. The rest is left up to you.

New Scripting Functionality

// Sets the current hitpoints of oObject.
// * You cannot destroy or revive objects or creatures with this function.
// * For currently dying PCs, you can only set hitpoints in the range of -9 to 0.
// * All other objects need to be alive and the range is clamped to 1 and max hitpoints.
// * This is not considered damage (or healing). It circumvents all combat logic, including damage resistance and reduction.
// * This is not considered a friendly or hostile combat action. It will not affect factions, nor will it trigger script events.
// * This will not advise player parties in the combat log.
void SetCurrentHitPoints(object oObject, int nHitPoints);