Updates

The server keeps itself up to date. It asks NodeWorld for a new version 30 seconds after it starts, then every hour. When there is one, it downloads it, checks it, and installs it as soon as no one is on the server, then starts again. As long as players are on it, it waits, however long that takes.

Its log says each step:

text
Server 0.2.1 downloaded and checked: it is installed as soon as no one is on the server.
Server 0.2.1 installed: starting it.

What the server checks

Each version comes with the list of its packages, one per system, signed by NodeWorld. The server installs a package only when:

  • the list's signature matches NodeWorld's key, built into the server;
  • the package has the size and the SHA-256 fingerprint that the list gives;
  • the version is newer than the one running: never an older one.

Otherwise it keeps its version and writes why in its log. Your server-config.yaml, your worlds and your scripts are not in the packages: an update never touches them.

How it starts again

  • As a service: the server stops with exit code 4, and systemd or Windows starts it again.
  • In a Linux terminal: the new version takes over the same process, in the same terminal.
  • In a Windows console: the old version starts the new one in the same window and waits for it; Ctrl+C stops both.

Turn automatic updates off

In server-config.yaml:

yaml
AutoUpdate: false

Then restart the server. It still checks every hour and writes in its log when a new version is out, and installs nothing.

A server that is not up to date

When a new version of the game changes the way it talks to servers (its protocol), the servers that have not updated yet are greyed out in Explore and players cannot join them. With automatic updates on, this lasts until your server is empty and installs the new version.

Update by hand

With AutoUpdate: false:

  1. Stop the server.
  2. Download the package of your system: https://downloads.nodeworldvr.com/server/<version>/NodeWorld-Server-linux-x64.tar.gz (or -linux-arm64.tar.gz, -win-x64.zip), and extract it.
  3. Copy NodeWorld.Server (NodeWorld.Server.exe on Windows) and the FL# runtime next to it (libnodeworld_fluxsharp.so, or nodeworld_fluxsharp.dll on Windows) over the old ones. Keep your Config folder.
  4. Start the server.

Go back to the previous version

An update renames each file it replaces by adding .old (NodeWorld.Server.old), and keeps these files until the next update. To go back:

  1. Stop the server and set AutoUpdate: false, or it installs the new version again.
  2. Delete the new files, then remove .old from the names of the old ones.
  3. Start the server.