Dedicated servers

Experimental This page shows basics and details on how to set up and operate a Satisfactory dedicated server.

Post-Update Note [2021-11-03]
A new Dedicated Server update was release today, 2021-11-03, which adds IPv6 support. However this update will cause a Linux server to reliably crash on startup. A workaround for this is to force the server to only bind to an IPv4 address with the  switch or to specify --multihome=:: which will bind to all interfaces on IPv4 and IPv6. You can find details on what this switch does and its syntax in Command Line Options.

Summary
At the moment, the dedicated server is available for the Windows and Linux operating systems. It can currently only be installed using the Steam service (where it is listed as a tool) or its command line sibling SteamCMD. The servers are experimental and for now only support the Experimental branch.

''The feedback about the experiences of community members is needed to make dedicated servers available on stable Early Access releases as soon as possible. Please use the Official Questions Answers site and add the tag Dedicated Server into your post.''

Requirements
The Dedicated Server is currently provided for Windows and Linux 64-bit architectures using the amd64 platform (i. e. any relatively modern AMD or Intel 64-bit CPU). There are currently no plans for an ARM CPU-compatible build, so the Dedicated Server cannot be deployed to, for instance, a Raspberry Pi or new Microsoft Surface Pro.

The current means of distribution is via Steam (through the normal client or the command-line SteamCMD client). In addition, Coffee Stain is currently working with Epic to get the server software up on the Epic Games Store.

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.

Coffee Stain is currently working with Valve to make the Dedicated Server visible in the normal Steam client to accounts which do not currently have access to the Satisfactory game client.

SteamCMD
If you are installing the server on a headless environment or do not want to use the GUI client for any other reason, you will most likely want to use SteamCMD, regardless of the platform that you are using. SteamCMD itself on both Windows and Linux is thoroughly documented on the SteamCMD wiki page.

Once SteamCMD has been installed, you can use one of the following commands to install (or update) the Dedicated Server in your server's command-line environment (i. e. a Linux terminal, or Windows Command Prompt or PowerShell):

Windows
On Windows, SteamCMD uses Steam client DLL files, so it you may get better performance by copying  into your Steam directory (typically  ) and then use a command such as this one instead: where the first path is the Steam directory and the second is the desired dedicated server install directory. Note: this is not a requirement. if SteamCMD is run with the command stated above (assuming the file path is where you put the executable) and Steam is not installed, SteamCMD will update itself first and download the .dll files that it requires. This is useful if you do not want to install the entire Steam client on your server.

Manual - Steam GUI
Simply launch the Dedicated Server from Steam just like any other program. You will be able to find it in the Tools category rather than games. It will open a terminal window in which you can review the logs in real time.

Manual - Command line
On Windows, in either the Command Prompt or PowerShell, navigate to the directory in which you had installed the Dedicated Server, and use the following command, with any other options from the below table that you need: On Linux, navigate to the directory in which you installed the Dedicated Server, and use the following command, with any other Options from the below table that you need: Be aware that starting the server in this manner will not automatically restart the server if it crashes or is terminated for other reasons. For automated restarting, see Running as a Service.

Command line options
The below table outlines the available options for use when starting the server, either from the command-line or through Steam (via editing the Properties of the Dedicated Server's entry in Tools) in both Windows and Linux:

Third-Party Automated Solutions
There are several automated solutions for deploying and managing the Dedicated Server out there, for the sake of brevity we suggest using the search engine of your choice to find a game server manager for the Satisfactory Dedicated Server. There are plenty of free and paid options that are "turnkey" implementations.

Please keep in mind that the Dedicated Server is currently not only experimental but known to be unstable and feature-incomplete. Adding a third-party service will make your installation more complex, and add more variables that can break the server or cause unexpected complications. Please understand these risks- people helping you with the Dedicated Server may not know the details about how to help with a third-party program.

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 its 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  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:

Port forwarding and Firewall Settings
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 overridable 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.

Here is an example configuration file to put into  for a UFW-controlled Linux firewall: You can use the following PowerShell command on a Windows host to open the default UDP ports used by the server:

Console Commands
Here are a list of known commands for dedicated servers, as of v5.0.4 the console tab in the server manager is the only way to execute commands

Loading a save file
1. Find the desired save file and Session name in the Load tab in the main menu. 2. Locate save file in SaveGames folder and copy the .sav 3. Paste/Transfer save file to the SaveGames\server folder 4. Insert the Session Name from step 1 into the server settings tab in Server Manager, press. The server should initiate a search for the save file with the matching Session Name.
 * Session Name is of critical importance, save files only display it if they haven't been renamed while being saved, the only way to see the Session Name otherwise is from the Load Menu or a save editor
 * Windows:
 * Linux:
 * Windows (local):
 * Windows (Running as service):
 * Linux:
 * To reiterate, Session Name & Save File Name are not the same, Session Name cannot be changed without a save editor, renaming a .sav file does not change the Session Name.

Other platforms/setups will have differing folder structures, the key point of this tutorial is finding Session Name.

This is a temporary/manual method while the Manage Saves feature is not implemented.

SDL Priority Manager
This issue can be resolved by downloading the dependency:

No Such File or Directory
This issue can be resolved by symlinking the expected path to where the library actually exists, for example:

Log output should change:

State is 0x606 after update job
This issue can be resolved by rebooting the machine. It is likely caused by SteamCMD being unable to overwrite files due to them being used by another process.

Trains not un/loading
This issue can be resolved by loading the save file into the game locally, rebuilding the Train Station, saving and loading the save file back onto the server.

How do I update the Dedicated Server?
If your server was installed using the Desktop Steam client, it should be automatically updated shortly after the update is released. You may need to shut your server instance down and tell Steam to verify the local files, or restart Steam, to force the update to go through.

If your server was installed using the SteamCMD command-line client, you can shut down the server instance and then use the same command you used to install the server to check for and install an update.

If your server was installed using the Epic Game Store, please share the secretes of your time-travel capabilities, because there could be endless good done if used properly.

History
Dedicated server patches are being released in par with every game patch. This section only lists changes directly related to the dedicated server itself.
 * Patch 0.5.0.4:
 * Changed "-GamePort" server parameter to "-Port"
 * Added a “Save Game” server command
 * Flipped around the Show/Hide Address Toggle Button text in the Add Server popup
 * Patch 0.5.0.0: Introduced