Dedicated servers

This is a short guide on how to set up a Satisfactory dedicated server.

At the moment the server is available for the Windows and Linux platforms and can only be installed through Steam or its command line sibling SteamCMD.

Before you start, you will need to ensure that the following ports are reachable on your server so you might have to create firewall rules or configure port forwarding in your router, depending on your setup. Port redirection is not supported at the moment so the ports that you open in your router need to match the ones presented here (IE: do not forward port 7777 as port 7778 on your router). Each of these ports is overrideable via a parameter, in accordance with the table below. If you want to run multiple instances of the server on one computer you will have to override at least one port.

Steam
You can install the server from your steam library like you would install any other game. You might have to change your steam library filters to include tools but other than that the process does not differ from any other game.

SteamCMD
If you are installing the server on a headless environment, you will most likely want to use SteamCMD, regardless of the platform that you are using. SteamCMD itself is thoroughly documented on the SteamCMD wiki page.

Assuming that SteamCMD has been installed and is ready to use, you can simply install the server using the following command:

This command works for both Window and Linux, and installs the server into a directory

Starting the server
If you are using Steam, just launch it, like you would any other game. However, that is not very useful for most purposes. You might actually want to launch the server from the command line instead.

Windows
Inside the installation directory:

The  and   parameters are not required but are generally quite useful. The first one will open up a console window that is going to be useful if you want to check out what your server is up to. The later one will make sure no UI dialogs are open. This is important because most times there are no users in front of a server who could respond to those dialogs so the server would just stall waiting for user input.

Linux
On Linux, both  and   are implicitly added so all you need to do is just launch the executable.

With both these scenarios though, if the server crashes then you will have to manually start it up again and that's not very desirable for a headless server. You might want to look into setting it up as a service that automatically restarts. There's a guide on how to achieve that on Linux but that is possible on any platform.

Initial configuration
Initial configuration is made in the game by the first player connecting to a server and it largely boils down to giving the server a name and assigning an administration password. More settings are available through the in game server manager. The server does not start any game on it's own. An administrator will have to create a game through the in-game UI. Player password protection is not enabled by default but a player password can be set through the same UI.

Many more settings can be changed manually by editing ini files, which are located in the installation directory:

The server largely uses the same configuration options as the game. By default, the server uploads crash reports when running on Linux. If you want to disable this behavior, add the following lines to the "Engine.ini" configuration file:

Setting the server up as a service using SystemD
This section only applies to Linux, specifically distributions running  as an init system. The server could be configured to run as a service on Windows as well but that path hasn't been explored as of yet.

For the sake of simplicity, we're going to assume that we are setting up this server for a user called, with the usual default home directory found at. Start by creating a server startup script, place it at. It should contain the following lines:

Once the  has been created, you would need to set it to an executable by running:

You will need to have root access for the next steps. Create a file called

It should have the following contents:

Finally, enable the service:

This will start the server. If you haven't installed it before hand, the server will also be installed once the service starts. Every time the service is restarted, the server will be updated by steamcmd. To restart the server, one can simply run:

This can be done automatically every night at 04:00, for example, by adding the command to the root crontab:

Alternative SystemD configuration
There's really no need for an additional bash script (start_server.sh mentioned above), as the configuration done in this script can be done directly in satisfactory.service:

Note that this configuration will validate and update your dedicated server on every restart.

SteamAPI library error
You may see an error like:

You can resolve this by symlinking the expected path to where the library actually exists, for example:

Log output should change: