Stormworks: Build and Rescue Guide

Dedicated Server Setup for Stormworks: Build and Rescue

Dedicated Server Setup

Overview

A short instruction of how to install, config and run a dedicated server

Server Requirements

Hardware

Since most of the physics is calculated on the server side it’s better to have a CPU with a high clock rate. Intel i7-i9 (8-10th generations) or AMD Ryzen 5-9 (2-3 generations) will be better here. For Xeon’s would be good if clock rate will be over 3.5 GHz. Roughly speaking, each server instance will take 2-3 threads so you can run multiple servers on dedicated machines with mentioned CPUs.

Of course, it all depends on the number of servers you plan to create and how loaded they will be. For example, I’m running two simple servers (Climb and Battlebots) that can run even on systems with just two cores and clock speed about 2Ghz. On the other hand, there can be servers that use much more complex vehicles and missions for their game modes. And there is no guarantee that server even with a top-notch CPU will not start slowing down the simulation.

There only two things that you shouldn’t really care about – is GPU and RAM. I don’t think you will ever be needed more than 4 GB per one Stormworks server (unless you are using mods).

Network

A lot of data is required to be sent and received. The more players online the more traffic will be. There are no exact numbers because it all depends on the world scene (the number of objects, vehicles and theirs logic that needs to be sync) but roughly I would say you need to expect 50-300Kb/s per player.

System

Only Windows systems are supported for now. Confirmed to work on Window 7, Windows 10, Windows Server 2016 and 2019. Should work with no issues on Windows 8 and 8.1 as well.

Overall

Minimum:
CPU: 2 GHz
RAM: 4 GB free RAM
Bandwidth: 10 Mbps

Recommended:
CPU: 4-5 GHz
RAM: 4 GB free RAM
Bandwidth: 20 Mbps + static IP address for a public server

Server Installation

Windows

Stormworks Dedicated Server is available as a tool and can be simply downloaded via Steam if you want to try it out on your system first. But even in that case always run server.exe directly from the installation folder (do not use server launch from Steam client).

In case if you want to run an actual dedicated server I would recommend to stick with SteamCMD:

  • Download SteamCMD
  • Unzip it to C:steamcmd for example
  • Go to that folder and launch steamcmd
  • After update is finished you should see this:

  • Now all is needed is login as anonymous and download Stormworks Dedicated Server files. For that you will need to type next commands (or simply copy and paste all three lines at once):
login anonymous force_install_dir c:swds app_update 1247090 validate
  • NOTE: Of course, you can use any other directories for SteamCMD and the Stormworks server.
  • If you did all right then you should be able to see SteamCMD downloading:
  • Once it finished type quit to exit and close SteamCMD:
  • Installation complete. Here how C: drive should look if follow exact the same steps:

Stormworks game is a very frequently updated one. We are getting new features and bugfixes pretty much every week. To keep your server be up to date I would recommend you to create a batch file in the SteamCMD directory with next content:

steamcmd +login anonymous +force_install_dir c:swds +app_update 1247090 +quit
Linux

Linux is not supported but should work fine under the Wine so let me know if you will need a guide for that.

Server Configuration

Go to the server folder and run server.exe at least once to create a server_config.xml file that will be in %appdata%Stormworks folder by default.

Edit that file with any text editor such as default Notepad or more advanced Notepad++, for example:
Please, keep the XML syntax right.

Server settings

Server data parameters are pretty much understandable but I’ll leave a note for some of them:

port=”25564″ set the game and query ports that will be used for the server name=”Stormworks” set the name of the server seed=”” set the seed that will be used for the world generation (empty is random) save_name=”” set the world save name that will be used for save and loading max_players=”32″ set the max number of the players for server password=”” set the password (empty means no password) day_night_length=”60″ set the length of the day in minutes base_island=”” set what player base will be owned on start (empty is start base)

List of bases to put in your config:

Main Biome data/tiles/island_15.xml Creative Island data/tiles/island_43_multiplayer_base.xml Multiplayer Base data/tiles/island_34_military.xml Military Base data/tiles/island_25.xml Harbour Base data/tiles/island12.xml Starter Base data/tiles/test_tile.xml Helicopter Base data/tiles/island_24.xml Airstrip Base data/tiles/island_33_tile_33.xml Mainland Airstrip data/tiles/island_33_tile_32.xml Terminal Spycakes data/tiles/island_33_tile_end.xml Terminal Camodo Custom Bases data/tiles/island_29_playerbase_submarine.xml Custom Base Submarine data/tiles/island_32_playerbase_heli.xml Custom Base Heli data/tiles/island_30_playerbase_boat.xml Custom Base Large Boat data/tiles/island_31_playerbase_combo.xml Custom Base Small Boat data/tiles/oil_rig_playerbase.xml Custom Base Oil Rig Arcitc Islands data/tiles/arctic_island_playerbase.xml Arctic Island Base data/tiles/arctic_tile_22.xml Arctic Mainland Outpost data/tiles/arctic_tile_12_oilrig.xml Arctic Oil Platform Sawyer Islands data/tiles/mega_island_2_6.xml Harrison Airbase data/tiles/mega_island_12_6.xml O’Neill Airbase data/tiles/mega_island_9_8.xml North Harbor Dock data/tiles/mega_island_15_2.xml Fishing Village Dock
Admins

This section is needed to give admin permissions for clients by using Steam64 ID. To find ID of your or your friends accounts you can use websites like [link] or [link]
Example:

<admins> <id value=”76561198080294966″/> </admins>

Blacklist

Blacklist is simply a ban list. We fill it in the same way as we add admins. Accounts of players that were banned by admins will be automatically stored here too.

Whitelist

Whitelist also fills the same way but note that the server will be automatically switched into whitelist mode if there will be at least one entry. In that mode only players from that list will be able to connect.

Authorized

A list of players that allowed to interact with workbench. By default only admins and whitelisted players are allowed to spawn, despawn and return vehicles so if you want other players to have that permission then you should add them to that list.

Playlists

Here we put all playlists of missions and environment mods that we want on the server.
Example for enabling all default playlists and environment mods:

<playlists> <path value=”rom/data/missions/default_ai”/> <path value=”rom/data/missions/default_ai_aircraft”/> <path value=”rom/data/missions/default_cargo”/> <path value=”rom/data/missions/default_elevators”/> <path value=”rom/data/missions/default_fluid_gantries”/> <path value=”rom/data/missions/default_forest_fire_missions”/> <path value=”rom/data/missions/default_fuel_stores”/> <path value=”rom/data/missions/default_mission_locations”/> <path value=”rom/data/missions/default_mission_transport_locations”/> <path value=”rom/data/missions/default_mission_zones_arctic”/> <path value=”rom/data/missions/default_mission_zones_delivery”/> <path value=”rom/data/missions/default_mission_zones_main”/> <path value=”rom/data/missions/default_mission_zones_sawyer”/> <path value=”rom/data/missions/default_tutorial”/> </playlists>

NOTE: Starting a server with no playlists will automatically add default missions.

Command line parameters

If you want your server config file to be in a more comfortable folder (let’s say, in the same folder where you have your server files like absolutely most of game dedicated servers do) then you can use +server_dir launch parameter to set the path you need.

For example, server launched with these parameters will look for config and world saves in C:swds:

server.exe +server_dir c:swds

Or will create them with default settings if these files and folders are missing:
But if you want to run multiple servers you will need to use separate path for each one. This is how batch script look for my Mad Max server, for example:

@echo off title Mad Max Server :start C:steamcmdsteamcmd.exe +login anonymous +force_install_dir c:swds +app_update 1247090 +quit C:swdsserver.exe +server_dir c:swdsmad_max goto start

This will use server_config.xml from the mad_max folder and automatically update and restart server on process termination (or simply on server crash).

Server Running

Test run

Just try to run the server.exe again and, if there are no issues with the server config, then you should be able to see status console with ticks and timer running.
See Known Issues if you are not reaching that status or server is crashing.

Chat Commands

A very very basic commands we have for now:

?save <savename> saves the game (if savename is not set then will save in autosave_server and also overwrite the save defined in server settings) ?kick <id> kick player ?ban <id> ban player ?add_admin <id> add player to the admins list ?remove_admin <id> removes player from the admins ?add_auth <id> add player to authorized list ?remove_auth <id> removes player from authorized

All commands works in the chat only for now and <id> here is session ID of player that we can see in the players menu.

Firewalls and Portforwarding

To make your server be visible for other players you need to have a public IP and set your firewall to allow connections for server executable (Stormworks Dedicated Server). Here how it looks for the default Windows Firewall:

If you install Stormworks Dedicated Server as a tool via Steam client then Steam will add that rule automatically for the default Windows Firewall. For all other security software, you will need to add it manually.

Port Forwarding

If you are running a server on the machine that is behind the NAT (WiFi router in most of the cases) then you also will need to forward all three game ports. There are thousands of different router models that go with different hardware and firmware versions so I can’t show you how to forward these ports but you can use [link] website for that.

Here how it may look on popular D-Link routers with “orange” firmware:
If you run more than one server from your network you need to use different port range for each.

But be aware, that if you run server and client from the same network or even from the same computer then to see your own server you will need to enable NAT Loopback or install Microsoft Loopback adapter for example.

Installing Microsoft Loopback Adapter

This is a workaround for those who run a dedicated server on the same computer/network as the game client. Please, use it only if other players already can see and join your server but you can’t.

  • Open Control Panel > Device Manager and select Network Adapters
  • Select menu Action > Add legacy hardware
  • Next
  • Select Install the hardware that I manually select from a list (Advanced)
  • Next
  • Select Network Adapters in the list
  • Next
  • Select Microsoft in Manufacturer list
  • Select Microsoft KM-TEST Loopback Adapter in Model list
  • Next > Next > Finish
  • Close Device Manager window
  • Open Control Panel > Network and Internet > Network Connections
  • You should see a new connection that uses Microsoft Loopback Adapter but cannot establish connection
  • Right click on that connection and select Properties
  • Double click Internet Protocol Version 4 (TCP/IPv4)
  • Select Use the following IP address
  • NOTE: If it was already selected and you see some IPs entered then you opened a wrong connection. Get out of here by clicking Canel in both windows.
  • Enter in IP address field your external IP address (you can see it here for example [link]
  • You can leave default Subnet mask
  • Click OK buttons in opened windows to save settings

If you did all right you should be able to see your own server when that connection is enabled.
If you lost your Internet connection then you probably changed IPv4 parameters of your actual Internet connection.

Known Issues

Server is not launching at all

Make sure that Visual C++ Redistributable 2013[www.microsoft.com] is installed.

Server stops on launch with settings parse error

Means that server config file is corrupted or have a syntax error.

I can launch but don’t get to the status screen

It could be server config error or something wrong with the missions or environment mods. Try to start a server with the default config.

Server is running fine but it does not shows up in Internet tab

If you downloaded it as a tool using Steam client then always run server.exe directly. Also, Make sure that server ports are forwarded and your firewall is not blocking server executable. Check server in the Steam server browser [url]steam://open/servers[/url] or ask your friends to check server visibility. It could be that it’s just because of NAT.

Server is running fine and shows up in Internet tab but with empty name

There is no support for non-latic characters so you better to avoid them in server naming.

Server crashes

The game is still in developement and dedicated server is something that surely may crash. Please, report all issues using a Report a Bug button in the game menu. It would be super helpful if you will also attach crash minidumps that should be in the folder with the Stormworks server files.

Suggestions

This is a very early version of the dedicated server for the Stomrworks game. There is a long road before we will reach something that will be comfortable to run and manage, so please, be patient.

Feel free to ask questions and leave suggestions in comments. I’ll put most popular wants here:

  • Add Linux support
  • Add automatic vehicle cleanup
  • Add vehicle spawn queue
  • Allow admins always have access to creative menu (even if it’s set to false)
  • Allow admins join full server
  • Allow admins join without entering a password
  • Allow whitelisted players join full server
  • Allow whitelisted players join without entering a password
  • Enable/disable whitelist mode only (to have passworded servers with whitelists to allow not whitelisted players join it so admins can ?add_whitelist on the go)
  • Enable/disable that new mode where only authorized players can spawn vehicles
SteamSolo.com