Running a NWN:EE Dedicated Server on Linux
How to run a NWN:EE dedicated server on Linux — 32-bit library requirements, download and setup steps, and a systemd service example.
Important: 32-Bit Binary
The NWN:EE Linux server binary (bin/linux-x86/nwserver) is a 32-bit executable. On a modern 64-bit Linux system you must install 32-bit compatibility libraries before the binary will run.
Install 32-Bit Libraries (Ubuntu/Debian)
sudo dpkg --add-architecture i386
sudo apt update
sudo apt install libstdc++6:i386 libgcc-s1:i386 lib32gcc-s1
On some distributions the package names differ slightly. If the binary fails with No such file or directory despite the file existing, or reports a missing shared library, run:
ldd bin/linux-x86/nwserver
This lists all required libraries and marks any that are missing.
Download and Extract
Download the Linux server ZIP from:
https://nwn.beamdog.net/downloads/
Extract the archive:
mkdir -p /opt/nwnserver
cd /opt/nwnserver
unzip nwserver-linux.zip
chmod +x bin/linux-x86/nwserver
User Directory
On Linux, the server reads and writes configuration and content to:
~/.local/share/Neverwinter Nights/
Create the required subdirectories:
mkdir -p ~/.local/share/Neverwinter\ Nights/{modules,hak,tlk,override}
Place your .mod file in the modules/ subdirectory before starting the server.
Starting the Server
/opt/nwnserver/bin/linux-x86/nwserver \
-module "MyModule" \
-servername "My Linux Server" \
-publicserver 1 \
-port 5121
systemd Service
To run the server as a managed service that restarts on failure:
[Unit]
Description=Neverwinter Nights: Enhanced Edition Dedicated Server
After=network.target
[Service]
Type=simple
User=nwnserver
WorkingDirectory=/opt/nwnserver
ExecStart=/opt/nwnserver/bin/linux-x86/nwserver \
-module "MyModule" \
-servername "My Server" \
-publicserver 1 \
-port 5121 \
-adminpassword "changeme"
Restart=on-failure
RestartSec=10
StandardOutput=journal
StandardError=journal
[Install]
WantedBy=multi-user.target
Save to /etc/systemd/system/nwnserver.service, then:
systemctl daemon-reload
systemctl enable nwnserver
systemctl start nwnserver
Keeping the Server Updated
Beamdog releases server updates as new ZIPs at the same URL. To update:
- Stop the server:
systemctl stop nwnserver - Download the new ZIP from
nwn.beamdog.net/downloads/. - Extract and overwrite the existing files in
/opt/nwnserver/. - Start the server:
systemctl start nwnserver
Do not delete your user data directory (~/.local/share/Neverwinter Nights/) when updating — it contains your configuration, modules, and save files.