В Neverwinter Nights: Enhanced Edition есть выделенный сервер (nwserver-linux в Linux, nwserver.exe в Windows), который запускает выбранный в командной строке модуль. У Beamdog нет единого руководства: здесь сопоставлены форумы Beamdog и репозиторий NWNX:EE, неподтверждённое помечено. Потребуется около 20 минут.
Пошаговая установка
Получите файлы сервера: папку игры (Steam/GOG) или пакет выделенного сервера Beamdog (анонсируется на их форумах).
Поместите модуль .mod (и хаки/tlk, если есть) в пользовательский каталог сервера.
Создайте строку запуска инструментом «Командная строка nwserver».
Запустите nwserver с -module, -port, -maxclients, -dmpassword и -publicserver.
Проверьте локально: подключите клиент игры к 127.0.0.1 (Мультиплеер > Прямое подключение).
Откройте UDP-порт сервера (по соглашению 5121) в файрволе, роутере и у хостера.
Настройте службу (systemd или планировщик) и резервное копирование модуля и персонажей.
Для плагинов SQL/Redis и др. добавьте NWNX:EE (Linux или Docker).
Добавьте сервер на game-rank.com/jeux/neverwinter-nights.
Требования
- ОС: 64-бит Windows или Linux (бинарник nwserver-linux); для macOS есть nwserver-macos.
- Минимальное железо официально не документировано; простой модуль помещается на небольшой VPS (1 ядро, 1 ГБ) — неофициальная оценка.
- Для запуска сервера ключ CD не нужен, но игрокам для входа нужна игра (форумы Beamdog). Рекомендуется выделенный IPv4 с пробросом портов.
Локальная установка (Windows)
Если игра установлена, nwserver.exe лежит в папке bin (подпапка платформы). Запустите его с параметрами; модуль должен быть в папке modules пользовательского каталога (-userdirectory меняет его).
cd /d "C:\Program Files (x86)\Steam\steamapps\common\Neverwinter Nights\bin\win32"
nwserver.exe -module MyModule -servername "My NWN server" -port 5121 -maxclients 32 -dmpassword ChangeMe! -publicserver 1Установка на Linux VPS (Ubuntu/Debian)
Создайте не-root пользователя, скопируйте туда файлы Linux-сервера (пакет Beamdog) и запустите nwserver-linux. Подтвердить официальное приложение SteamCMD для выделенного сервера не удалось: используйте серверный пакет, анонсированный Beamdog на форумах. В Docker образы beamdog/nwserver помечены как устаревшие; альтернатива сообщества — urothis/nwserver.
sudo adduser --disabled-password --gecos "" nwn
sudo -iu nwn
# copiez les fichiers serveur Linux dans ~/nwserver / copy the Linux server files to ~/nwserver
cd ~/nwserver
chmod +x nwserver-linux
./nwserver-linux -module MyModule -servername "My NWN server" -port 5121 -maxclients 32 -dmpassword ChangeMe! -publicserver 1 -quietПорты для открытия
Порт задаётся параметром -port. По форумам Beamdog для хостинга нужно пробросить UDP 5121. На домашнем роутере пробросьте порт (NAT) на локальный IP; у OVH, Hetzner, Scaleway откройте его и в файрволе / security group. Проверяйте из внешней сети.
- 5121/UDP — игра (обычное значение; меняется через -port).
Файрвол Linux (ufw)
sudo ufw allow OpenSSH
sudo ufw allow 5121/udp
sudo ufw enable
sudo ufw statusБрандмауэр Windows (netsh)
netsh advfirewall firewall add rule name="NWN UDP 5121" dir=in action=allow protocol=UDP localport=5121Служба systemd (Linux)
С параметром -quiet nwserver работает в фоне без консоли, что подходит для systemd. Файл /etc/systemd/system/nwn.service:
[Unit]
Description=Neverwinter Nights server
After=network-online.target
Wants=network-online.target
[Service]
User=nwn
WorkingDirectory=/home/nwn/nwserver
ExecStart=/home/nwn/nwserver/nwserver-linux -module MyModule -servername "My NWN server" -port 5121 -maxclients 32 -dmpassword ChangeMe! -publicserver 1 -quiet
Restart=on-failure
RestartSec=10
[Install]
WantedBy=multi-user.targetАвтозапуск в Windows
Сохраните команду в C:\nwn\start.cmd (cd в папку bin, затем nwserver.exe ...) и запланируйте её:
schtasks /create /tn "NWN Server" /tr "C:\nwn\start.cmd" /sc onstart /ru SYSTEMОбновления, бэкапы и перезапуски
Обновляйте сервер вместе с игрой (версии сервера и клиента должны совпадать), а при NWNX:EE импортируйте NWScript.zip новой версии и перекомпилируйте модуль. Резервируйте модуль, хаки/tlk и при -servervault 1 папку servervault. -reloadwhenempty 1 перезагружает модуль, когда сервер пуст; службу можно перезапускать и через cron.
# Sauvegarde / backup (cron : 0 4 * * *)
tar czf ~/nwn-backup-$(date +%F).tar.gz -C ~ nwserver
# Redémarrage planifié / scheduled restart (cron root : 0 5 * * *)
systemctl restart nwnКак заявить о сервере
С -publicserver 1 сервер появляется в списке «Мультиплеер» игры и в браузере сообщества NWMaster (nwmaster.beamdog.net), где видны модуль, игроки и адрес. Добавьте его также на game-rank.com/jeux/neverwinter-nights.
Устранение неполадок
- Модуль не загружается: неверное имя в -module (без расширения .mod) или файла нет в папке modules.
- Сервера нет в списке: добавьте -publicserver 1 и откройте UDP 5121 (NAT/файрвол).
- Игроков отклоняет из-за разницы версий: согласуйте версии сервера и клиента.
- «Permission denied» в Linux: сделайте nwserver-linux исполняемым (chmod +x) и запускайте от владельца файлов.
- Ошибка после обновления NWNX:EE: заново импортируйте NWScript.zip и перекомпилируйте; для подробностей поставьте NWNX_CORE_LOG_LEVEL=7.
Частые вопросы
- Есть ли файл конфигурации сервера?
- Основные настройки задаются параметрами командной строки. У игры есть и файл nwnplayer.ini (форумы упоминают его для имени или пароля DM), но его ключи официально не документированы: инструмент ограничивается командной строкой.
- Какой порт использовать?
- UDP 5121 — обычное значение с форумов Beamdog. При необходимости меняйте через -port, открывая тот же номер.
- Можно ли использовать Docker?
- Да, особенно с NWNX:EE (образ nwnxee/unified). Старые образы beamdog/nwserver помечены устаревшими; альтернатива сообщества — urothis/nwserver.
- Нужно ли владеть игрой, чтобы хостить?
- По форумам, для запуска сервера ключ CD не нужен, но игрокам для подключения нужна действующая копия. Актуальные условия серверного пакета уточняйте у Beamdog.
