Neverwinter Nights: Enhanced Editionにはデディケイテッドサーバー(Linuxはnwserver-linux、Windowsはnwserver.exe)が含まれ、コマンドラインで指定したモジュールをホストします。Beamdogは単一のガイドを公開していないため、本ガイドはBeamdogフォーラムとNWNX:EEリポジトリを突き合わせ、未確認の点を明記します。所要時間は約20分です。
手順ごとのインストール
サーバーファイルを入手します:ゲームフォルダ(Steam/GOG)、またはBeamdogのデディケイテッドサーバーパッケージ(同社フォーラムで案内)。
.modモジュール(必要ならhak/tlk)をサーバーのユーザーディレクトリに置きます。
「nwserver コマンドライン」ツールで起動行を生成します。
-module、-port、-maxclients、-dmpassword、-publicserverを付けてnwserverを起動します。
ローカルでテスト:ゲームクライアントを127.0.0.1に接続します(マルチプレイヤー>ダイレクト接続)。
サーバーのUDPポート(慣例的に5121)をファイアウォール、ルーター、ホスト側で開放します。
サービス(systemdまたはタスクスケジューラ)と、モジュールとキャラクターのバックアップを設定します。
SQLやRedisなどのプラグインが必要ならNWNX:EE(LinuxまたはDocker)を追加します。
game-rank.com/jeux/neverwinter-nights にサーバーを登録します。
必要条件
- OS:64ビットWindowsまたはLinux(nwserver-linuxバイナリ)。macOSにはnwserver-macosがあります。
- 最小ハードウェア要件は公式には未記載です。単純なモジュールなら小さなVPS(1コア、1GB)で動く見込みです(非公式の推定)。
- サーバーの実行に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 1Linux 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の転送が必要です。自宅ルーターではこのポートをローカルIPへ転送(NAT)し、OVH、Hetzner、Scalewayではファイアウォール/セキュリティグループでも開放します。外部ネットワークから確認してください。
- 5121/UDP — ゲーム(通常の値。-portで変更可)。
Linuxファイアウォール(ufw)
sudo ufw allow OpenSSH
sudo ufw allow 5121/udp
sudo ufw enable
sudo ufw statusWindowsファイアウォール(netsh)
netsh advfirewall firewall add rule name="NWN UDP 5121" dir=in action=allow protocol=UDP localport=5121systemdサービス(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.targetWindowsでの自動起動
コマンドをC:\nwn\start.cmdに保存し(binフォルダへcdしてnwserver.exe ...)、タスクとして登録します:
schtasks /create /tn "NWN Server" /tr "C:\nwn\start.cmd" /sc onstart /ru SYSTEM更新・バックアップ・再起動
サーバーはゲームと同時に更新します(サーバーとクライアントのバージョンを一致させる)。NWNX:EEを使う場合は新バージョンのNWScript.zipをインポートしてモジュールを再コンパイルします。モジュール、hak/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/ファイアウォール)。
- バージョン不一致で拒否される:サーバーとクライアントのバージョンを合わせます。
- Linuxで「Permission denied」:nwserver-linuxに実行権限を付け(chmod +x)、ファイルの所有ユーザーで実行します。
- NWNX:EE更新後のエラー:NWScript.zipを再インポートして再コンパイルし、NWNX_CORE_LOG_LEVEL=7で詳細を確認します。
よくある質問
- サーバー設定ファイルはありますか?
- 一般的な設定はコマンドラインオプションで行います。ゲーム側にはnwnplayer.iniもあり(フォーラムでは名前やDMパスワードなどの設定で言及)、そのキーは公式に文書化されていないため、本ツールはコマンドラインのみ扱います。
- どのポートを使うべきですか?
- Beamdogフォーラムで挙げられている通常値のUDP 5121です。必要なら-portで変更し、同じ番号を開放してください。
- Dockerは使えますか?
- はい、特にNWNX:EE(nwnxee/unifiedイメージ)で有効です。旧beamdog/nwserverイメージは古いと明記されており、コミュニティ製の代替としてurothis/nwserverがあります。
- ホストにはゲームの所有が必要ですか?
- フォーラムによれば、サーバーの実行にCDキーは不要ですが、接続するプレイヤーは有効なコピーが必要です。サーバーパッケージの最新の条件はBeamdogで確認してください。
