Skip to content

Server download packages and docker support

24

Comments

  • TsaisTsais Member Posts: 11

    @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.
  • BalanorBalanor Member Posts: 176
    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 -


  • nivniv Member, Moderator, Developer Posts: 410
    Sigh. Really sorry about that. Attempts to shrink the package further were too zealous.

    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.
  • GlorwingerGlorwinger Member Posts: 41
    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/
  • Chris_theVikingChris_theViking Member Posts: 49
    I'm runnign windows 2003 and it is saying it is not a valid win32 application, any suggestions?
  • GlorwingerGlorwinger Member Posts: 41
    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
  • omedon666omedon666 Member Posts: 48
    Jan 12 windows server update is busted and blank as per Balanor's above image.
  • nivniv Member, Moderator, Developer Posts: 410
    Does data/data/dialog.tlk exist for you?

    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).
  • BalanorBalanor Member Posts: 176
    I am running the 8154 build without that problem, so I don't think what you're seeing has to do with the download package this time.
  • Chris_theVikingChris_theViking Member Posts: 49
    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
  • GlorwingerGlorwinger Member Posts: 41
    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
  • weavejesterweavejester Member Posts: 10
    edited February 2018
    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?
  • AlibertoAliberto Member Posts: 80


    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

  • weavejesterweavejester Member Posts: 10
    edited February 2018
    Aliberto said:


    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!
    Post edited by weavejester on
  • nivniv Member, Moderator, Developer Posts: 410
    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.
  • VallisVallis Member Posts: 11
    edited February 2018
    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.
    Post edited by Vallis on
  • Chris_theVikingChris_theViking Member Posts: 49
    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.
  • BalanorBalanor Member Posts: 176
    You can find them here at the bottom of the patch notes for 8175 & 8158 -
    http://blog.beamdog.com/2018/02/nwnee-8157-8158-patch-notes.html
  • Chris_theVikingChris_theViking Member Posts: 49
    edited February 2018
    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
  • weavejesterweavejester Member Posts: 10
    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?
  • nivniv Member, Moderator, Developer Posts: 410
    Try running it with --init as an argument to docker run.
  • FinalStandFinalStand Member Posts: 87
    edited February 2018

    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











  • weavejesterweavejester Member Posts: 10
    edited February 2018
    niv said:

    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.

    Post edited by weavejester on
  • Knight_ShieldKnight_Shield Member Posts: 51
    edited February 2018
    Where are the server packages?
    Found them lol
  • BalanorBalanor Member Posts: 176
    edited February 2018
    @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)); }

    Is this anything you may be able to look at?
  • nivniv Member, Moderator, Developer Posts: 410
    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.
  • BalanorBalanor Member Posts: 176
    niv you are awesome! Thanks very much for churning this out on a Saturday!
  • GlorwingerGlorwinger Member Posts: 41
    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
  • diavlendiavlen Member Posts: 3
    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'

    NWNX_SQL_TYPE=MYSQL NWNX_SQL_HOSTNAME=localhost NWNX_SQL_USERNAME=nwn NWNX_SQL_PASSWORD=SJ--------------------Q
  • drillerdriller Member Posts: 17
    Something like this should work.
    sudo docker run -itd  -e MYSQL_ROOT_PASSWORD=<your password> -e MYSQL_USER=nwn1 -e MYSQL_PASSWORD=nwn1 -e MYSQL_DATABASE=nwn1 --name nwn-mysql -v $(pwd)/MySQL:/var/lib/mysql mysql:latest
    
    sudo docker run -itd  --link nwn-mysql:mysql -p 5121:5121/udp -e NWNX_CORE_LOG_LEVEL=6 -e NWN_PORT=5121  --name nwnserver -v $(pwd)/server:/nwn/home nwnxee/nwserver:8164.1
Sign In or Register to comment.