How to Add a Custom Module and Hak Packs to a NWN EE Server

Load a custom .mod on a Neverwinter Nights: Enhanced Edition server, with its hak packs, TLK and CEP, and get players the same files so they can join.

Updated Oct 7, 2026 · 6 min read

On this page

To run a custom module on a Neverwinter Nights: Enhanced Edition server, copy the .mod file into the server's modules folder, its hak packs into hak and any custom TLK into tlk, then start the server with the module name set to the file name without .mod. Players need the same hak and TLK files on their own PC (or delivered by NWSync) before they can enter. The rest of this guide covers finding out which files a module needs, the folder layout, and the mistakes that cause "Missing required Hak file".

Adventurers in a custom area in Neverwinter Nights: Enhanced Edition

The three kinds of files

File What it is Server folder Player folder
.mod The module: areas, scripts, conversations modules/ Not needed for multiplayer
.hak Hak pack: models, tilesets, 2DAs, portraits hak/ Documents\Neverwinter Nights\hak
.tlk Custom dialog table with new names and descriptions tlk/ Documents\Neverwinter Nights\tlk

The module file stays on the server. Players never download it, because the server streams areas and scripts to them as they play. Haks and the TLK are different: they hold art and data the client must render, so every player needs a copy.

Step 1: Find out which haks the module needs

Every module lists its required haks and TLK inside it. To see the list:

  1. Open the module in the Aurora Toolset that comes with the game.
  2. Go to Edit, then Module Properties, then the Custom Content tab.
  3. Note every hak in the list, in order, and the custom TLK name if one is set.

If you downloaded the module from the Neverwinter Vault or the Steam Workshop, the description page usually lists its requirements too, often with links. Big community packs such as the Community Expansion Pack (CEP) or Project Q are split into many haks, and the module will name each one. Grab the exact version the module was built against. A newer or older CEP is a common reason for odd missing content and visual glitches.

Step 2: Upload the files to the server

Put each file in its folder inside the server's user directory:

user/
  modules/SilverMarches.mod
  hak/sm_tiles.hak
  hak/sm_creatures.hak
  hak/sm_top.hak
  tlk/sm_custom.tlk

On a self hosted Windows server the user directory is Documents\Neverwinter Nights. On a GamezServers server it is the user folder you see in the file manager, and large hak sets go up faster over SFTP than through the browser.

Two rules that save hours:

  • Keep the exact file names. The module refers to haks by name. If you rename sm_tiles.hak to sm_tiles_v2.hak, the module will not find it.
  • Watch letter case on Linux. Linux treats SM_Tiles.hak and sm_tiles.hak as different files. Hosted servers run Linux, so match the case the module expects, and lowercase names are safest.

Official modules are already included with the server files, so you only upload what is custom.

Step 3: Point the server at the module

Set the module name to the file name with no extension. SilverMarches.mod becomes:

-module "SilverMarches"

On the GamezServers control panel that is the Module Name field. Restart the server and watch the console. When the log shows the module loaded, the server is ready. If the module name is wrong, or a hak the module needs is missing on the server, the module will not load, and the log tells you why.

To continue a saved game instead of starting fresh, use Load Slot # with the save slot number. For a persistent world, leave it empty and let the module's own persistence (server vault and any database) carry state between restarts.

Step 4: Give players the same files

Players have two ways to get the content:

By hand. Share a download link to the exact hak and TLK files, or point players at the Vault pages with the right versions. They drop haks into Documents\Neverwinter Nights\hak and TLKs into Documents\Neverwinter Nights\tlk, then Direct Connect as usual. This is fine for a DM campaign with five regular players.

With NWSync. NWSync is Beamdog's system for persistent worlds: you build a manifest of your haks and TLK with the nwn_nwsync_write tool from the official neverwinter.nim utilities, publish the resulting folder on a web host, and start the server with its NWSync URL. When players connect, the game downloads exactly what they need and keeps it updated. It takes an afternoon to set up, and after that nobody ever asks which CEP version to install again. Do not use the --with-module option for a persistent world: it packs your module's scripts and areas into the public download.

Updating a module on a live server

  1. Build and test the new version locally in the Toolset.
  2. Back up the server first. On our servers that is one click, and it keeps the server vault and module safe if something goes wrong.
  3. Upload the new .mod, replacing the old one with the same name.
  4. If you changed or added haks, upload those, and update players (or rebuild your NWSync manifest).
  5. Restart the server so it loads the new file.

Tell players before you change haks. A player with yesterday's hak gets "Missing required Hak file" or sees broken art until they update.

When it does not load

  • Server fails to start: read the log. A wrong module name or a missing hak on the server side is the usual cause.
  • Players get "Missing required Hak file": they are missing a hak or the TLK, have the wrong version, or (on a Linux server) a hak's file name case does not match.
  • Areas show placeholder or missing models: the haks are there but in the wrong order or the wrong version. Check the Custom Content list again.
  • Characters rejected after you add custom content: Enforce Legal Characters checks builds against the module's rules. New races or classes from a hak can make old characters fail.

For connection problems that are not about content, see the NWN EE can't connect fix.

The world of Neverwinter Nights: Enhanced Edition

Hosting your module

A Neverwinter Nights: Enhanced Edition server from GamezServers is set up for exactly this: upload the .mod, haks and TLK through the file manager or SFTP, type the module name into the panel, and restart. The world stays online without anyone's PC, one click backups cover the module and server vault before each update, and a builder team can split the bill between up to 10 people. A small DM campaign runs on 2 GB and a busy persistent world with heavy haks on 4 GB. If you have not set up a server before, start with how to make a Neverwinter Nights Enhanced Edition server.

FAQ

Where do I put a custom module on a NWN EE server?

In the modules folder of the server's user directory. Set the module name to the file name without .mod.

Do players need the .mod file?

No. The module stays on the server. Players only need the hak packs and custom TLK the module uses.

Can I use Steam Workshop modules on a server?

Yes. Subscribe in Steam, then copy the .mod and any haks from the Workshop download folder to the server. Players connecting still need the haks.

Does the order of hak packs matter?

Yes. Haks higher in the module's Custom Content list override those below. Keep the order the module author set.

What is the CEP?

The Community Expansion Pack, a large set of haks with extra tilesets, creatures and items that many modules use. Install the exact version your module requires on both the server and every client.

Skip the setup. Your own Neverwinter Nights: Enhanced Edition server.

$2.49USD first month

Then $4.99/mo. Just trying it? $1.25 for 3 days

Keep reading