NWNX:EE — Extending Your NWN Server
Overview of NWNX:EE (NWN Extended), the plugin framework that adds database connectivity, scripting hooks, and persistent world capabilities to NWN:EE Linux servers.
What Is NWNX:EE?
NWNX:EE (Neverwinter Nights Extended: Enhanced Edition) is an open-source plugin framework that injects additional functionality into the NWN:EE dedicated server at runtime. It is the successor to the older NWNX2 — do not use NWNX2 with Enhanced Edition servers; it is incompatible.
Source and documentation: github.com/nwnxee/unified
Platform Support
NWNX:EE officially supports Linux only. It hooks into the server binary at the native library level, and the Linux build is the primary target for development and testing. Windows support is not officially maintained.
What NWNX:EE Adds
| Category | Examples |
|---|---|
| Database | Direct MySQL and PostgreSQL connectivity from NWScript |
| Scripting | Additional event hooks, function extensions, and script utilities not present in the base game |
| Player management | Character vault control, CD key access, connection events |
| Custom systems | Persistent storage, economy systems, territory control |
| Server control | Extended admin commands, automated restart hooks |
Most persistent world (PW) servers — large community servers with economies, player housing, and persistent character progression — require NWNX:EE to function.
Installation Overview
- Ensure the NWN:EE Linux server is installed and working (see the Linux server article).
- Download the latest NWNX:EE release from the GitHub releases page.
- Place the NWNX shared library files alongside the server binary.
- Configure plugin settings via environment variables or the NWNX configuration file.
- Launch the server normally — NWNX loads automatically if its libraries are in the correct location.
Refer to the NWNX:EE GitHub wiki for the detailed installation guide, as the exact file locations and environment variable names change between releases.
Configuration
NWNX:EE plugins are configured via environment variables. For example:
# Enable the MySQL plugin
export NWNX_SQL_TYPE=MySQL
export NWNX_SQL_HOST=localhost
export NWNX_SQL_DATABASE=nwnserver
export NWNX_SQL_USERNAME=nwn
export NWNX_SQL_PASSWORD=secret
Each plugin has its own set of environment variables documented on the NWNX:EE GitHub wiki.
NWNX vs. Base Server
| Feature | Base Server | With NWNX:EE |
|---|---|---|
| Database access from scripts | No | Yes (MySQL, PostgreSQL) |
| Persistent player data | Limited (server vault) | Full database-backed persistence |
| Custom event hooks | No | Yes |
| Cross-module player tracking | No | Yes |
| Scripting function extensions | No | Yes |
When You Need NWNX:EE
Use NWNX:EE if you are:
- Running a persistent world with economy, player housing, or persistent progression.
- Building a module that requires database connectivity.
- Extending NWScript with functions not available in the base game.
For standard adventure modules and small multiplayer sessions, the base server is sufficient.