@Tsais 127.0.0.1 is the loopback address. Try connecting to the Server VM's local IP instead. Also ensure it is set to public if you want it listed in the server browser, along with correct port forwarding and allowing through any firewalls you may have.
Thanks. As it turned out, all that was needed was a simple reboot of the VM to make the server visible to me, so anyone experiencing the same problems might want to check that first. Also, the game shows up in "History" section when trying to connect, which isn't very intuitive, but lo and behold, there it was. More weirdness: the Player Name was refused by the server, and continued to be refused, until I ticked the box to 'save' it. Now I have no idea how to 'unsave' (change) it and there's no (obvious) UI option for it.
Hey niv, just wanted to let you know that the 8153 build seems pretty funky right now. It loads the module and people can login, but the UI is...really bare bones -
The Docker Image for nwserver witn NWNX build 8153 is ready. docker pull glorwinger/nwserver:8153.nwnx. Notes are here (still need some updates) https://hub.docker.com/r/glorwinger/nwserver/
Docker images for 8154 are available - pull the tag below for the version desired:
`docker pull glorwinger/nwserver:8154.nwnx`
glorwinger/nwserver:8154 - Docker image with nwserver version 8154 glorwinger/nwserver:8154.nwnx - Docker image with nwserver version 8154 and NWNX glorwinger/nwserver:8154.java.nwnx - Docker image with nwserver version 8154, NWNX and Java runtime
Are you running the server with it's cwd set to the binary path? (i.e. run it from bin/win32/ or create a shortcut to it with it's working directory set there).
when i try to launch the server i get this using linux with that docker thing. docker logs -f viking_northeast [*] Linking in user home '/nwn/run/database' -> '/nwn/home/database' '/nwn/run/hak' -> '/nwn/home/hak' '/nwn/run/modules' -> '/nwn/home/modules' '/nwn/run/override' -> '/nwn/home/override' '/nwn/run/portraits' -> '/nwn/home/portraits' '/nwn/run/saves' -> '/nwn/home/saves' '/nwn/run/servervault' -> '/nwn/home/servervault' '/nwn/run/tlk' -> '/nwn/home/tlk' '/nwn/run/dialog.tlk' -> '/nwn/home/dialog.tlk' '/nwn/run/dialogf.tlk' -> '/nwn/home/dialogf.tlk' [*] Importing configuration [*] Server logs mirrored to stdout [*] Port: 5121/udp Neverwinter Nights Server Build:8153 Copyright BioWare Corp 1998-2004 Registering crash signal handlers.
Server: Loading... Working Directory For Game Install Is: /nwn/data Working Directory For Your Resources Is: /nwn/run Server: Running...
Server: Loading module "hometown" Server: Unable to load module Server: Exiting... [Thu Feb 11 16:39:23] Loading Module: hometown [Thu Feb 11 16:39:23] Server Shutting Down [*] Linking in user home [*] Importing configuration [*] Server logs mirrored to stdout [*] Port: 5121/udp
Docker images for 8155 are available - pull the tag below for the version desired:
`docker pull glorwinger/nwserver:8155.nwnx`
glorwinger/nwserver:8155 - Docker image with nwserver version 8155 glorwinger/nwserver:8155.nwnx - Docker image with nwserver version 8155 and NWNX glorwinger/nwserver:8155.java.nwnx - Docker image with nwserver version 8155, NWNX and Java runtime
I've got the latest server running, but it fails when it tries to load a module
$ ls server/modules
Test.mod
$ bin/linux-x86/nwserver-linux -userdirectory server -module Test
Neverwinter Nights Server
Build:8155
Copyright BioWare Corp 1998-2004
Registering crash signal handlers.
Server: Loading...
Working Directory For Game Install Is:
Working Directory For Your Resources Is: server
Server: Running...
Server: Loading module "Test"
Server: Unable to load module
Server: Exiting..
The only logs this produces is:
[Fri Feb 2 02:24:09] Loading Module: Test
[Fri Feb 2 02:24:09] Server Shutting Down
Has anyone else managed to get a module running under Linux? Is there any way of getting more verbose error reporting?
Has anyone else managed to get a module running under Linux? Is there any way of getting more verbose error reporting?
Please write the run command you use to start the container. If you have taken the image among those made available by Glorwinger remember that you need to copy the module to the appropriate folder. eg: docker run -it --net host --restart unless-stopped -e NWN_PORT=5121 -v $(pwd):/nwn/home -e NWN_MODULE=yourmodule -e NWN_SERVERNAME=yourmodule -e NWN_PUBLICSERVER=1 -e NWN_MAXCLIENTS=64 glorwinger/nwserver:8155
then you have to do something like that docker cp yourmodule.mod 0deb95952c39:/nwn/run/modules/
where 0deb95952c39 is the container id, to show your container id type docker ps -a afterwards you can restart the container by writing docker start 0deb95952c39
Has anyone else managed to get a module running under Linux? Is there any way of getting more verbose error reporting?
Please write the run command you use to start the container.
I'm not using the container; I was trying to get the dedicated server in the zip file to work, based on the idea that's less moving parts. My theory was that if something went wrong, I wouldn't have to eliminate Docker as a factor.
I'm using Digital Ocean's 16.04 Ubuntu image on a 32 bit server, in case that helps. The command I used to run the dedicated server was in my previous post.
My current theory is that the module I've created is malformed (despite working when I run from the toolset), because I've added the ProjectQ hak to my toolset and maybe that's screwing things up somehow. I'm going to try clearing my local directory, making a new minimal module without any haks, and seeing if that works.
If it doesn't, I'll try the Docker image next. Perhaps there's something in the setup that I'm missing. I'd forgotten how opaque NWN's error messages actually were!
Edit: No luck trying a minimal module created with a clean toolkit
Edit 2: It works!! I don't know what I was doing wrong with the manual zip, but running it through Docker worked first time. Now I just need to wait for the 8156 image . Thanks so much for working on this!
The 8156 zip and image have been updated to include the .ltr files (for CNWNameGen / RandomName()) and script source files, so script compilers can make use of the package.
What are the minimum specs to run the docker image?
I live in a funky area where I can't get hardwired internet (not even DSL) but I can get 4G wireless internet. It's expensive as hell though and I don't want to run a server on it. So I'm thinking about using a google compute node. But I want to do it as cheaply as possible. So if I can get away with a micro instance, I will (because a micro instance is free)
I think the free micro instance has .6GB ram (kind of an odd number, but w/e) Does the server benefit at all from multiple cores?
--Edited to say that I'll be running it under a minimal linux installation of some flavor.
During the recent livestream Trent mentioned new settings variables for the server. The docker link has some listed but it hasn't been updated. if we could get a list and possibly some documentation on what the ranges provide. It would be academic.
What are the ranges for these AttackBonusLimit=20 - is this for stacking? I'm not sure what AB this refers to DamageBonusLimit=100 - can I set this to not have a limit? SavingThrowBonusLimit=20 AbilityBonusLimit=12 - Can I raise this? AbilityPenaltyLimit=30 SkillBonusLimit=50
I'm trying to figure out how to gracefully shutdown a server. On both the beamdog and glorwinger docker images, a SIGTERM is ignored, and Docker falls back to using SIGKILL. This might be an issue with the underlying server binary, but I'm not sure. Is this a bug? Should I report it to Redmine?
I have this working on Linux 64-bit (standalone, not docker).
Debian/Ubuntu systems:
# this only needs to be done once sudo dpkg --add-architecture i386 sudo apt install lib32stdc++6 libc6-i386
download zip and extract to BASE_DIR/builds/$BUILD/
# to run:
BASE_DIR=/home/whatever/nwn/ BUILD=8158 NWNSERVER=$BASE_DIR/builds/$BUILD/bin/linux-x86/nwserver-linux # module name WITHOUT .mod MODULE=test SERVERNAME=TEST
# this is required or server will crash. cd $BASE_DIR/builds/$BUILD/bin/linux-x86/
Try running it with --init as an argument to docker run.
No joy, I'm afraid. Using "init" does give me a different error code (143 instead of 137), but as far as I can tell it's just forcibly killing the server in a different fashion. Any clients connected to the server will time out, instead of registering the server as being shut down.
Incidentally, do you need any help maintaining the docker nwnx images? I notice they're a little bit behind the beamdog ones.
@niv I think I may have uncovered another problem that only happens when using the server packages. While CopyItemAndModify does work for things like armor, it does not work for weapons (and maybe more?).
To explain - Put the following code in a trigger in a test mod, then launch the test mod via NWServer from a full install of EE, or just test the mod using F9. Equip a weapon on a the test PC and have it run across the trigger and it will successfully destroy/modify the weapon every time you re-enter the trigger. However, if you run the same module using one of the server packages, the debug "ERROR" line always occur when the PC enters the trigger and the weapon doesn't get modified.
void main()
{
object oPC = GetEnteringObject();
object oItem = GetItemInSlot(INVENTORY_SLOT_RIGHTHAND, oPC);
int nPart = ITEM_APPR_WEAPON_MODEL_TOP;
//int nPart = ITEM_APPR_WEAPON_MODEL_MIDDLE; //This doesn't work using the NWN:EE server package, either
//int nPart = ITEM_APPR_WEAPON_MODEL_BOTTOM; //This doesn't work using the NWN:EE server package, either
int nNewApp = GetItemAppearance(oItem, ITEM_APPR_TYPE_WEAPON_MODEL, nPart)+1;
if (nNewApp > 8) nNewApp = 1;
object oNew = CopyItemAndModify(oItem, ITEM_APPR_TYPE_WEAPON_MODEL, nPart, nNewApp, TRUE);
if (GetIsObjectValid(oNew)) {
DestroyObject(oItem);
AssignCommand(oPC, ClearAllActions(TRUE));
AssignCommand(oPC, ActionEquipItem(oNew, INVENTORY_SLOT_RIGHTHAND));
DelayCommand(0.1, SendMessageToPC(oPC, "New Appearance: " + IntToString(nNewApp)));
}
else SendMessageToPC(oPC, "ERROR: Unable to create a valid weapon with an appearance # of "+IntToString(nNewApp));
}
A new package for 8159 (called 8159-1) has been posted that includes zero-bytes long stubs for all .mdl, .tga, and .dds files. This is needed because CopyItemAndModify() internally checks if the new/intended model and icon texture exist. It doesn't actually need the _data_, just the resref entry.
This is a bit messy but the best way to make this work this right now.
NWNX Docker images for build 8162 are available new location These images are based directly from the beamdog/nwserver:8162 images with the following: - Copy any custom nwnx plugins from nwnx folder into container - Servervault now works on Windows / macOS! - BioDB now now works on Windows / macOS! - Module is NOT copied into the container anymore! Images: - Beamdog server plus NWNX - docker pull nwnxee/nwserver:8162 - Beamdog server plus NWNX and Java - docker pull nwnxee/nwserver:8162.java
I've been at this all day. Trying to get nwnx to work with MySQL. At this point, I think I'm the closest I've been..I'm using the latest docker image from Glorwinger. It seems to be fine, except it cannot connect to the mysql server. I've verified that the mysql server is running, and I can connect to it. Could this be because the path to the mysql socket doesn't exist within the docker image? If so, how can I make the docker image look in the right location? Any insight? Here's what the output of docker looks like:
/var/nwn_ee$ docker run --rm -it -p 5121:5121 -p 5121:5121/udp --env-file docker_env.ini -v $(pwd):/nwn/home nwnxee/nwserver:8164[*] Copying any custom NWNX plugins
'/nwn/home/nwnx/NWNX_Administration.so' -> '/nwn/nwnx/NWNX_Administration.so'
'/nwn/home/nwnx/NWNX_BehaviourTree.so' -> '/nwn/nwnx/NWNX_BehaviourTree.so'
'/nwn/home/nwnx/NWNX_Chat.so' -> '/nwn/nwnx/NWNX_Chat.so'
'/nwn/home/nwnx/NWNX_Core.so' -> '/nwn/nwnx/NWNX_Core.so'
'/nwn/home/nwnx/NWNX_Creature.so' -> '/nwn/nwnx/NWNX_Creature.so'
'/nwn/home/nwnx/NWNX_Data.so' -> '/nwn/nwnx/NWNX_Data.so'
'/nwn/home/nwnx/NWNX_Events.so' -> '/nwn/nwnx/NWNX_Events.so'
'/nwn/home/nwnx/NWNX_Item.so' -> '/nwn/nwnx/NWNX_Item.so'
'/nwn/home/nwnx/NWNX_JVM.so' -> '/nwn/nwnx/NWNX_JVM.so'
'/nwn/home/nwnx/NWNX_Metrics_InfluxDB.so' -> '/nwn/nwnx/NWNX_Metrics_InfluxDB.so'
'/nwn/home/nwnx/NWNX_Object.so' -> '/nwn/nwnx/NWNX_Object.so'
'/nwn/home/nwnx/NWNX_Player.so' -> '/nwn/nwnx/NWNX_Player.so'
'/nwn/home/nwnx/NWNX_Profiler.so' -> '/nwn/nwnx/NWNX_Profiler.so'
'/nwn/home/nwnx/NWNX_Redis.so' -> '/nwn/nwnx/NWNX_Redis.so'
'/nwn/home/nwnx/NWNX_Ruby.so' -> '/nwn/nwnx/NWNX_Ruby.so'
'/nwn/home/nwnx/NWNX_SQL.so' -> '/nwn/nwnx/NWNX_SQL.so'
'/nwn/home/nwnx/NWNX_ServerLogRedirector.so' -> '/nwn/nwnx/NWNX_ServerLogRedirector.so'
'/nwn/home/nwnx/NWNX_ThreadWatchdog.so' -> '/nwn/nwnx/NWNX_ThreadWatchdog.so'
'/nwn/home/nwnx/NWNX_Time.so' -> '/nwn/nwnx/NWNX_Time.so'
'/nwn/home/nwnx/NWNX_Tracking.so' -> '/nwn/nwnx/NWNX_Tracking.so'
[*] Linking in user home
'/nwn/run/database' -> '/nwn/home/database'
'/nwn/run/hak' -> '/nwn/home/hak'
'/nwn/run/modules' -> '/nwn/home/modules'
'/nwn/run/override' -> '/nwn/home/override'
'/nwn/run/portraits' -> '/nwn/home/portraits'
'/nwn/run/saves' -> '/nwn/home/saves'
'/nwn/run/servervault' -> '/nwn/home/servervault'
'/nwn/run/tlk' -> '/nwn/home/tlk'
'/nwn/run/dialog.tlk' -> '/nwn/home/dialog.tlk'
'/nwn/run/dialogf.tlk' -> '/nwn/home/dialogf.tlk'
[*] Importing configuration
[*] Port: 5121/udp
Neverwinter Nights Server
Build:8164
Copyright BioWare Corp 1998-2004
Registering crash signal handlers.
Server: Loading...
I [03:19:21] [NWNXCore.cpp:184] NWNX_Core: Loading plugins from: /nwn/nwnx/
I [03:19:21] [NWNXCore.cpp:212] NWNX_Core: Skipping plugin NWNX_Administration due to configuration.
I [03:19:21] [NWNXCore.cpp:212] NWNX_Core: Skipping plugin NWNX_BehaviourTree due to configuration.
I [03:19:21] [NWNXCore.cpp:212] NWNX_Core: Skipping plugin NWNX_Chat due to configuration.
I [03:19:21] [NWNXCore.cpp:212] NWNX_Core: Skipping plugin NWNX_Creature due to configuration.
I [03:19:21] [NWNXCore.cpp:212] NWNX_Core: Skipping plugin NWNX_Data due to configuration.
I [03:19:21] [NWNXCore.cpp:212] NWNX_Core: Skipping plugin NWNX_Events due to configuration.
D [03:19:21] [NWNXCore.cpp:218] NWNX_Core: Loading plugin NWNX_Item.so
I [03:19:21] [NWNXCore.cpp:221] NWNX_Core: Loaded plugin 0 (Item) v2 by Various / sherincall / Bhaal.
I [03:19:21] [NWNXCore.cpp:212] NWNX_Core: Skipping plugin NWNX_JVM due to configuration.
I [03:19:21] [NWNXCore.cpp:212] NWNX_Core: Skipping plugin NWNX_Metrics_InfluxDB due to configuration.
I [03:19:21] [NWNXCore.cpp:212] NWNX_Core: Skipping plugin NWNX_Object due to configuration.
I [03:19:21] [NWNXCore.cpp:212] NWNX_Core: Skipping plugin NWNX_Player due to configuration.
I [03:19:21] [NWNXCore.cpp:212] NWNX_Core: Skipping plugin NWNX_Profiler due to configuration.
I [03:19:21] [NWNXCore.cpp:212] NWNX_Core: Skipping plugin NWNX_Redis due to configuration.
I [03:19:21] [NWNXCore.cpp:212] NWNX_Core: Skipping plugin NWNX_Ruby due to configuration.
D [03:19:21] [NWNXCore.cpp:218] NWNX_Core: Loading plugin NWNX_SQL.so
I [03:19:21] [SQL.cpp:81] NWNX_SQL: Connecting to type MYSQL
I [03:19:21] [MySQL.cpp:34] NWNX_SQL: Connection info: host=localhost username=nwn
D [03:19:21] [MySQL.cpp:35] NWNX_SQL: : password=SJ--------------------Q
E [03:19:21] [NWNXCore.cpp:226] NWNX_Core: Failed to load plugin (NWNX_SQL.so) because 'Can't connect to local MySQL server through socket '/var/run/mysqld/mysqld.sock' (2 "No such file or directory")'.
F [03:19:21] [NWNXCore.cpp:353] NWNX_Core: The server encountered a fatal error 'Can't connect to local MySQL server through socket '/var/run/mysqld/mysqld.sock' (2 "No such file or directory")' during setup and must now terminate.
We just crashed hard. :( Sorry about that. But you can help us fix this! Please consider reporting this crash at http://redmine.beamdog.com with the relevant information attached.
A log file has been written to /nwn/run/nwserver-crash-1521429561.log containing further diagnostic information.
/nwn/run-server.sh: line 63: 19 Aborted (core dumped) LD_PRELOAD=$NWN_LD_PRELOAD LD_LIBRARY_PATH=$NWN_LD_LIBRARY_PATH ./nwserver-linux $NWN_EXTRA_ARGS -port ${NWN_PORT:-5121} -interactive -servername "${NWN_SERVERNAME:-I was too lazy to configure my server.}" -module "${NWN_MODULE:-DockerDemo}" -publicserver "${NWN_PUBLICSERVER:-0}" -maxclients "${NWN_MAXCLIENTS:-96}" -minlevel "${NWN_MINLEVEL:-1}" -maxlevel "${NWN_MAXLEVEL:-40}" -pauseandplay "${NWN_PAUSEANDPLAY:-1}" -pvp "${NWN_PVP:-2}" -servervault "${NWN_SERVERVAULT:-1}" -elc "${NWN_ELC:-1}" -ilr "${NWN_ILR:-1}" -gametype "${NWN_GAMETYPE:-0}" -oneparty "${NWN_ONEPARTY:-0}" -difficulty "${NWN_DIFFICULTY:-3}" -autosaveinterval "${NWN_AUTOSAVEINTERVAL:-0}" -playerpassword "${NWN_PLAYERPASSWORD}" -dmpassword "${NWN_DMPASSWORD}" -adminpassword "${NWN_ADMINPASSWORD}" -reloadwhenempty "${NWN_RELOADWHENEMPTY:-0}"
The server crashed with return code 134. Trying to save crash data into your mounted server home.
'/nwn/run/nwserver-crash-1521429561.log' -> '/nwn/home/nwserver-crash-1521429561.log'
Comments
I'm sure you figured out by now that dialog.tlk was missing. I've updated the package, and automated it as far as possible.
`docker pull glorwinger/nwserver:8154.nwnx`
glorwinger/nwserver:8154 - Docker image with nwserver version 8154
glorwinger/nwserver:8154.nwnx - Docker image with nwserver version 8154 and NWNX
glorwinger/nwserver:8154.java.nwnx - Docker image with nwserver version 8154, NWNX and Java runtime
Are you running the server with it's cwd set to the binary path? (i.e. run it from bin/win32/ or create a shortcut to it with it's working directory set there).
docker logs -f viking_northeast
[*] Linking in user home
'/nwn/run/database' -> '/nwn/home/database'
'/nwn/run/hak' -> '/nwn/home/hak'
'/nwn/run/modules' -> '/nwn/home/modules'
'/nwn/run/override' -> '/nwn/home/override'
'/nwn/run/portraits' -> '/nwn/home/portraits'
'/nwn/run/saves' -> '/nwn/home/saves'
'/nwn/run/servervault' -> '/nwn/home/servervault'
'/nwn/run/tlk' -> '/nwn/home/tlk'
'/nwn/run/dialog.tlk' -> '/nwn/home/dialog.tlk'
'/nwn/run/dialogf.tlk' -> '/nwn/home/dialogf.tlk'
[*] Importing configuration
[*] Server logs mirrored to stdout
[*] Port: 5121/udp
Neverwinter Nights Server
Build:8153
Copyright BioWare Corp 1998-2004
Registering crash signal handlers.
Server: Loading...
Working Directory For Game Install Is: /nwn/data
Working Directory For Your Resources Is: /nwn/run
Server: Running...
Server: Loading module "hometown"
Server: Unable to load module
Server: Exiting...
[Thu Feb 11 16:39:23] Loading Module: hometown
[Thu Feb 11 16:39:23] Server Shutting Down
[*] Linking in user home
[*] Importing configuration
[*] Server logs mirrored to stdout
[*] Port: 5121/udp
`docker pull glorwinger/nwserver:8155.nwnx`
glorwinger/nwserver:8155 - Docker image with nwserver version 8155
glorwinger/nwserver:8155.nwnx - Docker image with nwserver version 8155 and NWNX
glorwinger/nwserver:8155.java.nwnx - Docker image with nwserver version 8155, NWNX and Java runtime
$ ls server/modules Test.mod $ bin/linux-x86/nwserver-linux -userdirectory server -module Test Neverwinter Nights Server Build:8155 Copyright BioWare Corp 1998-2004 Registering crash signal handlers. Server: Loading... Working Directory For Game Install Is: Working Directory For Your Resources Is: server Server: Running... Server: Loading module "Test" Server: Unable to load module Server: Exiting..
The only logs this produces is:
[Fri Feb 2 02:24:09] Loading Module: Test [Fri Feb 2 02:24:09] Server Shutting Down
Has anyone else managed to get a module running under Linux? Is there any way of getting more verbose error reporting?
eg:
docker run -it --net host --restart unless-stopped -e NWN_PORT=5121 -v $(pwd):/nwn/home -e NWN_MODULE=yourmodule -e NWN_SERVERNAME=yourmodule -e NWN_PUBLICSERVER=1 -e NWN_MAXCLIENTS=64 glorwinger/nwserver:8155
then you have to do something like that
docker cp yourmodule.mod 0deb95952c39:/nwn/run/modules/
where 0deb95952c39 is the container id, to show your container id type
docker ps -a
afterwards you can restart the container by writing
docker start 0deb95952c39
I'm using Digital Ocean's 16.04 Ubuntu image on a 32 bit server, in case that helps. The command I used to run the dedicated server was in my previous post.
My current theory is that the module I've created is malformed (despite working when I run from the toolset), because I've added the ProjectQ hak to my toolset and maybe that's screwing things up somehow. I'm going to try clearing my local directory, making a new minimal module without any haks, and seeing if that works.
If it doesn't, I'll try the Docker image next. Perhaps there's something in the setup that I'm missing. I'd forgotten how opaque NWN's error messages actually were!
Edit: No luck trying a minimal module created with a clean toolkit
Edit 2: It works!! I don't know what I was doing wrong with the manual zip, but running it through Docker worked first time. Now I just need to wait for the 8156 image . Thanks so much for working on this!
I live in a funky area where I can't get hardwired internet (not even DSL) but I can get 4G wireless internet. It's expensive as hell though and I don't want to run a server on it. So I'm thinking about using a google compute node. But I want to do it as cheaply as possible. So if I can get away with a micro instance, I will (because a micro instance is free)
I think the free micro instance has .6GB ram (kind of an odd number, but w/e)
Does the server benefit at all from multiple cores?
--Edited to say that I'll be running it under a minimal linux installation of some flavor.
http://blog.beamdog.com/2018/02/nwnee-8157-8158-patch-notes.html
AttackBonusLimit=20 - is this for stacking? I'm not sure what AB this refers to
DamageBonusLimit=100 - can I set this to not have a limit?
SavingThrowBonusLimit=20
AbilityBonusLimit=12 - Can I raise this?
AbilityPenaltyLimit=30
SkillBonusLimit=50
I have this working on Linux 64-bit (standalone, not docker).
Debian/Ubuntu systems:
# this only needs to be done once
sudo dpkg --add-architecture i386
sudo apt install lib32stdc++6 libc6-i386
download zip and extract to BASE_DIR/builds/$BUILD/
# to run:
BASE_DIR=/home/whatever/nwn/
BUILD=8158
NWNSERVER=$BASE_DIR/builds/$BUILD/bin/linux-x86/nwserver-linux
# module name WITHOUT .mod
MODULE=test
SERVERNAME=TEST
# this is required or server will crash.
cd $BASE_DIR/builds/$BUILD/bin/linux-x86/
$NWNSERVER -module $MODULE -maxclients 6 -publicserver 0 -servername $SERVERNAME
Incidentally, do you need any help maintaining the docker nwnx images? I notice they're a little bit behind the beamdog ones.
Found them lol
To explain - Put the following code in a trigger in a test mod, then launch the test mod via NWServer from a full install of EE, or just test the mod using F9. Equip a weapon on a the test PC and have it run across the trigger and it will successfully destroy/modify the weapon every time you re-enter the trigger. However, if you run the same module using one of the server packages, the debug "ERROR" line always occur when the PC enters the trigger and the weapon doesn't get modified.
void main() { object oPC = GetEnteringObject(); object oItem = GetItemInSlot(INVENTORY_SLOT_RIGHTHAND, oPC); int nPart = ITEM_APPR_WEAPON_MODEL_TOP; //int nPart = ITEM_APPR_WEAPON_MODEL_MIDDLE; //This doesn't work using the NWN:EE server package, either //int nPart = ITEM_APPR_WEAPON_MODEL_BOTTOM; //This doesn't work using the NWN:EE server package, either int nNewApp = GetItemAppearance(oItem, ITEM_APPR_TYPE_WEAPON_MODEL, nPart)+1; if (nNewApp > 8) nNewApp = 1; object oNew = CopyItemAndModify(oItem, ITEM_APPR_TYPE_WEAPON_MODEL, nPart, nNewApp, TRUE); if (GetIsObjectValid(oNew)) { DestroyObject(oItem); AssignCommand(oPC, ClearAllActions(TRUE)); AssignCommand(oPC, ActionEquipItem(oNew, INVENTORY_SLOT_RIGHTHAND)); DelayCommand(0.1, SendMessageToPC(oPC, "New Appearance: " + IntToString(nNewApp))); } else SendMessageToPC(oPC, "ERROR: Unable to create a valid weapon with an appearance # of "+IntToString(nNewApp)); }
Is this anything you may be able to look at?
This is a bit messy but the best way to make this work this right now.
These images are based directly from the beamdog/nwserver:8162 images with the following:
- Copy any custom nwnx plugins from nwnx folder into container
- Servervault now works on Windows / macOS!
- BioDB now now works on Windows / macOS!
- Module is NOT copied into the container anymore!
Images:
- Beamdog server plus NWNX - docker pull nwnxee/nwserver:8162
- Beamdog server plus NWNX and Java - docker pull nwnxee/nwserver:8162.java
/var/nwn_ee$ docker run --rm -it -p 5121:5121 -p 5121:5121/udp --env-file docker_env.ini -v $(pwd):/nwn/home nwnxee/nwserver:8164[*] Copying any custom NWNX plugins '/nwn/home/nwnx/NWNX_Administration.so' -> '/nwn/nwnx/NWNX_Administration.so' '/nwn/home/nwnx/NWNX_BehaviourTree.so' -> '/nwn/nwnx/NWNX_BehaviourTree.so' '/nwn/home/nwnx/NWNX_Chat.so' -> '/nwn/nwnx/NWNX_Chat.so' '/nwn/home/nwnx/NWNX_Core.so' -> '/nwn/nwnx/NWNX_Core.so' '/nwn/home/nwnx/NWNX_Creature.so' -> '/nwn/nwnx/NWNX_Creature.so' '/nwn/home/nwnx/NWNX_Data.so' -> '/nwn/nwnx/NWNX_Data.so' '/nwn/home/nwnx/NWNX_Events.so' -> '/nwn/nwnx/NWNX_Events.so' '/nwn/home/nwnx/NWNX_Item.so' -> '/nwn/nwnx/NWNX_Item.so' '/nwn/home/nwnx/NWNX_JVM.so' -> '/nwn/nwnx/NWNX_JVM.so' '/nwn/home/nwnx/NWNX_Metrics_InfluxDB.so' -> '/nwn/nwnx/NWNX_Metrics_InfluxDB.so' '/nwn/home/nwnx/NWNX_Object.so' -> '/nwn/nwnx/NWNX_Object.so' '/nwn/home/nwnx/NWNX_Player.so' -> '/nwn/nwnx/NWNX_Player.so' '/nwn/home/nwnx/NWNX_Profiler.so' -> '/nwn/nwnx/NWNX_Profiler.so' '/nwn/home/nwnx/NWNX_Redis.so' -> '/nwn/nwnx/NWNX_Redis.so' '/nwn/home/nwnx/NWNX_Ruby.so' -> '/nwn/nwnx/NWNX_Ruby.so' '/nwn/home/nwnx/NWNX_SQL.so' -> '/nwn/nwnx/NWNX_SQL.so' '/nwn/home/nwnx/NWNX_ServerLogRedirector.so' -> '/nwn/nwnx/NWNX_ServerLogRedirector.so' '/nwn/home/nwnx/NWNX_ThreadWatchdog.so' -> '/nwn/nwnx/NWNX_ThreadWatchdog.so' '/nwn/home/nwnx/NWNX_Time.so' -> '/nwn/nwnx/NWNX_Time.so' '/nwn/home/nwnx/NWNX_Tracking.so' -> '/nwn/nwnx/NWNX_Tracking.so' [*] Linking in user home '/nwn/run/database' -> '/nwn/home/database' '/nwn/run/hak' -> '/nwn/home/hak' '/nwn/run/modules' -> '/nwn/home/modules' '/nwn/run/override' -> '/nwn/home/override' '/nwn/run/portraits' -> '/nwn/home/portraits' '/nwn/run/saves' -> '/nwn/home/saves' '/nwn/run/servervault' -> '/nwn/home/servervault' '/nwn/run/tlk' -> '/nwn/home/tlk' '/nwn/run/dialog.tlk' -> '/nwn/home/dialog.tlk' '/nwn/run/dialogf.tlk' -> '/nwn/home/dialogf.tlk' [*] Importing configuration [*] Port: 5121/udp Neverwinter Nights Server Build:8164 Copyright BioWare Corp 1998-2004 Registering crash signal handlers. Server: Loading... I [03:19:21] [NWNXCore.cpp:184] NWNX_Core: Loading plugins from: /nwn/nwnx/ I [03:19:21] [NWNXCore.cpp:212] NWNX_Core: Skipping plugin NWNX_Administration due to configuration. I [03:19:21] [NWNXCore.cpp:212] NWNX_Core: Skipping plugin NWNX_BehaviourTree due to configuration. I [03:19:21] [NWNXCore.cpp:212] NWNX_Core: Skipping plugin NWNX_Chat due to configuration. I [03:19:21] [NWNXCore.cpp:212] NWNX_Core: Skipping plugin NWNX_Creature due to configuration. I [03:19:21] [NWNXCore.cpp:212] NWNX_Core: Skipping plugin NWNX_Data due to configuration. I [03:19:21] [NWNXCore.cpp:212] NWNX_Core: Skipping plugin NWNX_Events due to configuration. D [03:19:21] [NWNXCore.cpp:218] NWNX_Core: Loading plugin NWNX_Item.so I [03:19:21] [NWNXCore.cpp:221] NWNX_Core: Loaded plugin 0 (Item) v2 by Various / sherincall / Bhaal. I [03:19:21] [NWNXCore.cpp:212] NWNX_Core: Skipping plugin NWNX_JVM due to configuration. I [03:19:21] [NWNXCore.cpp:212] NWNX_Core: Skipping plugin NWNX_Metrics_InfluxDB due to configuration. I [03:19:21] [NWNXCore.cpp:212] NWNX_Core: Skipping plugin NWNX_Object due to configuration. I [03:19:21] [NWNXCore.cpp:212] NWNX_Core: Skipping plugin NWNX_Player due to configuration. I [03:19:21] [NWNXCore.cpp:212] NWNX_Core: Skipping plugin NWNX_Profiler due to configuration. I [03:19:21] [NWNXCore.cpp:212] NWNX_Core: Skipping plugin NWNX_Redis due to configuration. I [03:19:21] [NWNXCore.cpp:212] NWNX_Core: Skipping plugin NWNX_Ruby due to configuration. D [03:19:21] [NWNXCore.cpp:218] NWNX_Core: Loading plugin NWNX_SQL.so I [03:19:21] [SQL.cpp:81] NWNX_SQL: Connecting to type MYSQL I [03:19:21] [MySQL.cpp:34] NWNX_SQL: Connection info: host=localhost username=nwn D [03:19:21] [MySQL.cpp:35] NWNX_SQL: : password=SJ--------------------Q E [03:19:21] [NWNXCore.cpp:226] NWNX_Core: Failed to load plugin (NWNX_SQL.so) because 'Can't connect to local MySQL server through socket '/var/run/mysqld/mysqld.sock' (2 "No such file or directory")'. F [03:19:21] [NWNXCore.cpp:353] NWNX_Core: The server encountered a fatal error 'Can't connect to local MySQL server through socket '/var/run/mysqld/mysqld.sock' (2 "No such file or directory")' during setup and must now terminate. We just crashed hard. :( Sorry about that. But you can help us fix this! Please consider reporting this crash at http://redmine.beamdog.com with the relevant information attached. A log file has been written to /nwn/run/nwserver-crash-1521429561.log containing further diagnostic information. /nwn/run-server.sh: line 63: 19 Aborted (core dumped) LD_PRELOAD=$NWN_LD_PRELOAD LD_LIBRARY_PATH=$NWN_LD_LIBRARY_PATH ./nwserver-linux $NWN_EXTRA_ARGS -port ${NWN_PORT:-5121} -interactive -servername "${NWN_SERVERNAME:-I was too lazy to configure my server.}" -module "${NWN_MODULE:-DockerDemo}" -publicserver "${NWN_PUBLICSERVER:-0}" -maxclients "${NWN_MAXCLIENTS:-96}" -minlevel "${NWN_MINLEVEL:-1}" -maxlevel "${NWN_MAXLEVEL:-40}" -pauseandplay "${NWN_PAUSEANDPLAY:-1}" -pvp "${NWN_PVP:-2}" -servervault "${NWN_SERVERVAULT:-1}" -elc "${NWN_ELC:-1}" -ilr "${NWN_ILR:-1}" -gametype "${NWN_GAMETYPE:-0}" -oneparty "${NWN_ONEPARTY:-0}" -difficulty "${NWN_DIFFICULTY:-3}" -autosaveinterval "${NWN_AUTOSAVEINTERVAL:-0}" -playerpassword "${NWN_PLAYERPASSWORD}" -dmpassword "${NWN_DMPASSWORD}" -adminpassword "${NWN_ADMINPASSWORD}" -reloadwhenempty "${NWN_RELOADWHENEMPTY:-0}" The server crashed with return code 134. Trying to save crash data into your mounted server home. '/nwn/run/nwserver-crash-1521429561.log' -> '/nwn/home/nwserver-crash-1521429561.log'
NWNX_SQL_TYPE=MYSQL NWNX_SQL_HOSTNAME=localhost NWNX_SQL_USERNAME=nwn NWNX_SQL_PASSWORD=SJ--------------------Q