Dedicated servers

From Satisfactory Wiki
Jump to navigation Jump to search

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

Summary

At the moment, the dedicated server is available for the Windows and Linux operating systems. It can currently be installed using the Steam service (where it is listed in the user's library as a "tool"), or its command line sibling SteamCMD, or Epic Games . Game clients from both the Epic and Steam game stores can connect and play on dedicated servers regardless of where the Dedicated Server was downloaded.

The feedback about the experiences of community members is needed to make dedicated servers available on Early Access releases as soon as possible and to improve the player experience. Please use the Official Q&A 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.

System requirements
Processor Recent (comparable to the i5-3570 [Intel] or Ryzen 5 3600 [AMD] or better) x86/64 (AMD/Intel) processor. No 32 bit or ARM support. The server favours higher single-core performance over multiple cores.
Memory 12GB minimum, 16GB RAM is recommended for larger saves or to host more than 4 players.
Storage 25GB for the game server itself
Operating System Any currently supported version of Windows or major Linux distribution. Out-of-support OSs such as Windows 7 are explicitly not supported.
Internet Connection Broadband internet connection. Hosting from home will require the ability to configure port forwarding.

Installation

Distribution

The dedicated server software is currently available via the SteamCMD command-line client, through the graphical Steam client as a tool, or as a free add-on in the Epic Games Store (available to all accounts).

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

Linux

A user without root privileges needs to be used for the installation. Using root might cause issues with permissions and missing libraries.

steamcmd +force_install_dir ~/SatisfactoryDedicatedServer +login anonymous +app_update 1690800 -beta public validate +quit
Windows
.\steamcmd.exe +force_install_dir C:\GameServers\SatisfactoryServer  +login anonymous +app_update 1690800 -beta public validate +quit

On Windows, SteamCMD uses Steam client DLL files, so it you may get better performance by copying steamcmd.exe into your Steam directory (typically C:\Program Files (x86)\Steam) and then use a command such as this one instead:

"C:\Program Files (x86)\Steam\steamcmd.exe" +force_install_dir "C:\GameServers\SatisfactoryServer" +login anonymous +app_update 1690800 validate +quit

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.

Experimental branch selection

To download the Experimental branch of the Dedicated Server, add -beta experimental to the end of your SteamCMD invocation. See the following example commands for Linux and Windows respectively:

For Linux
steamcmd +force_install_dir ~/SatisfactoryDedicatedServer +login anonymous +app_update 1690800 -beta experimental validate +quit
For Windows
steamcmd.exe +force_install_dir C:\GameServers\SatisfactoryServer +login anonymous +app_update 1690800 -beta experimental validate +quit

Steam GUI

You can install the server from your Steam library if the active Steam account owns the game. You will have to change your steam library filters to show tools.

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. However, you can still use SteamCMD to download and install the files without needing a Steam account.

If you want to use the Experimental branch of the Dedicated Server rather than the mainline Early Access release, go to the Properties of the entry in your Library, go to the Betas tab, and ensure that the Experimental beta branch is selected. To revert to the mainline release, reverse this process.

Epic Games

You can install Dedicated Server Tool add-on by visiting the Satisfactory Store Page and adding Dedicated Server Tool to your library. Search your library for "Satisfactory Dedicated Server" and select install.

Docker

The server can be ran in a Docker container. There are many such containers available on Docker's public repository. Please direct any questions about using these containers to their respective maintainers.

Starting the 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. Do not be alarmed if the window stops showing information after a while. This usually means the server is up, running, and waiting for connections.

Manual - Command line

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:

.\FactoryServer.exe -log -unattended

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:

./FactoryServer.sh


NOTE! Starting the server in this manner will not automatically restart the server if it crashes or is terminated for other reasons. The server will also very likely stop running when you close your terminal. It is highly recommended that you set up the server to run as a service. For more information, 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:

Option Description Example
-multihome=<ip address> Bind the server process to a specific IP address rather than all available interfaces -⁠multihome=192.168.1.4
-ServerQueryPort=<portnum> Override the Query Port the server uses. This is the port specified in the Server Manager in the client UI to establish a server connection. This can be set freely. The default port is UDP/15777. -⁠ServerQueryPort=15000
-BeaconPort=<portnum> Override the Beacon Port the server uses. As of Update 6, this port can be set freely. The default port is UDP/15000. If this port is already in use, the server will step up to the next port until an available one is found. -⁠BeaconPort=15001
-Port=<portnum> Override the Game Port the server uses. This is the primary port used to communicate game telemetry with the client. The default port is UDP/7777. If it is already in use, the server will step up to the next port until an available one is found. -Port=15002
-log Forces the server to display logs in a window (on Windows) or in the active terminal (on Linux). This option is implicit by default when launching on Linux. -log
-unattended Makes it such that the Dedicated Server will not present any dialogs which might otherwise interrupt the server from running if not attended to. This option is implicit by default when launching on Linux. -unattended
-DisablePacketRouting Startup argument for disabling the packet router (Automatically disabled with multihome). -DisablePacketRouting
-DisableSeasonalEvents Disables all seasonal events, such as FICSMAS. -DisableSeasonalEvents

NOTE: you can also set some of these options via INI files, as follows:

Equivalent CLI parameter INI file Heading and setting
-Port=<portnum> Engine.ini [URL]

Port=<portnum>

-BeaconPort=<portnum> Engine.ini [/Script/OnlineSubsystemUtils.OnlineBeaconHost]

ListenPort=<portnum>

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.

For more information, see Configuration files.

NOTE: Server ini files are located in the steam install directory for the server by default: .\steamapps\common\SatisfactoryDedicatedServer\FactoryGame\Saved\Config and may not be generated until the server is closed gracefully using the console "quit" command for the first time.

With Update 8 the ability to adjust the Auto Save Interval via FG.AutoSaveInterval was removed from the dedicated server console tab. We now need to use the 'mFloatValues' in GameUserSettings.ini to apply the same configuration. Edit the GameUserSettings.ini and find the block with 'mFloatValues', this will allow you to adjust the interval. There is also an 'mIntValues' that is used for configuring other aspects like FG.NetworkQuality and FG.DisableSeasonalEvents. Review the following samples below and determine the best configuration for your use case:

Set Auto Save Interval to 1 Hour
mFloatValues=(("FG.AutosaveInterval", 3600.000000))

Set AutoSave Interval to 30 Minutes AND Enable Seasonal Events
mIntValues=(("FG.DisableSeasonalEvents", 0))
mFloatValues=(("FG.AutosaveInterval", 1800.000000))

Set AutoSave Interval to 15 Minutes, Disable Seasonal Events and Set Network Quality to 3
mIntValues=(("FG.NetworkQuality", 3), ("FG.DisableSeasonalEvents", 1))
mFloatValues=(("FG.AutosaveInterval", 900.000000))

Logs and crash dumps

The server keeps a running log of all of the messages it prints to the console. The logs are rotated on server start, with the latest (current) log being named FactoryGame.log, the next being FactoryGame_2.log, and the rest following a datetime filename pattern (FactoryGame-backup-DATE-TIME.log). These logs are saved in the server's install directory (in the FactoryGame/Saved/Logs subdirectory). Note that depending on build and branch, not all of these may be present.

The server - if so configured (and it is configured this way by default) - also keeps crash dumps of any crashes it manages to save. Those are kept in the server's install directory (in the FactoryGame/Saved/Crashes subdirectory), and each crash report receives its own folder with a randomly-generated UUID.

The game client follows a similar pattern, but the logs and crash dumps are kept in the user's AppData directory alongside save files.

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.

Default port
(UDP only)
Port Usage Description
15777 Query Port This is the port that you need to enter in the game when you first connect to a dedicated server. This port can be redirected freely.
15000 Beacon Port This port is automatically incremented if multiple instances of the server are launched and the default is in use already. As of Update 6, this port can be redirected freely.
7777 Game Port This port can be redirected freely using the -Port paramater upon server startup, e. g. "-Port=10000" to change the game port to UDP port 10000. At present, if the default port is in use, the next higher one will be checked until a free port is found, and it will be used.

Here is an example configuration file to put into applications.d for a UFW-controlled Linux firewall:

[Satisfactory]
title=Satisfactory
description=An extremely satisfying experience
ports=15777/udp|15000/udp|7777/udp

You can use the following PowerShell command on a Windows host to open the default UDP ports used by the server:

New-NetFirewallRule -DisplayName "Allow Satisfactory default inbound ports" -Direction Inbound -Action Allow -EdgeTraversalPolicy Allow -Protocol UDP -LocalPort 15000,15777,7777

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

Command Info
quit
stop
exit
Shuts down the FactoryServer.exe service.

(If the server is setup as a service on Linux, it will restart)

server.SaveGame saveName
Creates a save of the current session named saveName.

For a saveName with one or more spaces, use quotation marks around the name.

Loading a save file

  1. Find the desired save file and Session name in the Load tab in the main menu.
    • 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
  2. Locate save file in SaveGames folder and copy the .sav
    • Linux:
      ~/.config/Epic/FactoryGame/Saved/SaveGames
    • Windows:
      %LOCALAPPDATA%\FactoryGame\Saved\SaveGames
  3. Paste/Transfer save file to the SaveGames\server folder
    • Linux:
      ~/.config/Epic/FactoryGame/Saved/SaveGames/server
    • Windows (local):
      %LOCALAPPDATA%\FactoryGame\Saved\SaveGames\server
    • Windows (Using NSSM):
      %WINDIR%\System32\config\systemprofile\AppData\Local\FactoryGame\Saved\SaveGames\server
    • Windows Server (Running as service):
      %WINDIR%\ServiceProfiles\NetworkService\AppData\Local\FactoryGame\Saved\SaveGames\server
      • Note: The first time accessing the Windows Service paths (NSSM or Windows Server Service), you will need to manually navigate through the folder structure using File Explorer and grant access to the folders as you go (admin rights required). If you do not do this, you will not be able to navigate directly to the save folder.
  4. Insert the Session Name from step 1 into the server settings tab in Server Manager, press ↵ Enter.
    • The server should initiate a search for the save file with the matching Session Name.
  • 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.

Common errors or problems

Configuration issues

If you believe the server is running but are unable to connect to it, the most common cause is a networking issue. The vast majority of common problems with successfully connecting to the Dedicated Server can be resolved by working through these diagnostic questions:

Is the server actually running?

The simplest reason for not being able to connect to the server is that it is not running. Either it was not started, or it has crashed and not been subsequently restarted. A simple way on Linux to check whether the server is running is with the command pgrep -f FactoryServer.sh. If you run that command, you will either get no response (indicating the Dedicated Server is not running) or one or more numbers (indicating that you have one instance of the Dedicated Server running per number you see). Each number given as a response to the command is the PID (Process ID) of that instance of the shell script which started the Dedicated Server.

Is the server listening on the correct ports?

If you have inadvertently started the server more than once at any one time, you may not have the server running on the network ports you are expecting it to be. Since you are sure now that the server is indeed running, the next step is to check to see which UDP ports the server is bound to (or "listening" on).

Checking Listening UDP Ports on Windows

On Windows, you can get a list of bound UDP ports with the Get-NetUDPEndpoint command. Adding some extra filters to it will restrict the output of that command to only show a list of IP addresses and ports to which an Unreal game server process (such as the Satisfactory Dedicated Server) is listening. Review that output for the expected ports of 7777, 15000, and 15777. The command and its typical output are shown below:

Get-NetUDPEndPoint | Select-Object LocalAddress, LocalPort, @{Name="Process";Expression={(Get-Process -Id $_.OwningProcess).ProcessName}} | Sort-Object -Property LocalPort,Process | Where-Object{$_.Process -like "UE4Server-Win64-Shipping"}

LocalAddress LocalPort Process
------------ --------- -------
::                7777 UE4Server-Win64-Shipping
::               15000 UE4Server-Win64-Shipping
::               15777 UE4Server-Win64-Shipping
0.0.0.0          15777 UE4Server-Win64-Shipping
Checking Listening UDP Ports on Linux

On Linux, you can get a list of bound UDP ports with the ss command. Filtering the output of that command will restrict the outputof that command to only show a list of IP addresses and ports to which an Unreal game server process (such as the Satisfactory Dedicated Server) is listening. Review that output for the expected ports of 7777, 15000, and 15777. The command and its typical output are shown below:

$ ss -plnu | grep UE
UNCONN    0     0    *:15000      *:*    users:(("UE4Server-Linux",pid=2353772,fd=21))
UNCONN    0     0    *:15777      *:*    users:(("UE4Server-Linux",pid=2353772,fd=18))
UNCONN    0     0    *:7777       *:*    users:(("UE4Server-Linux",pid=2353772,fd=20))

Is the server bound to the correct interface?

While checking on the UDP port bindings in the previous step, take a look at the IP address associated with the port in the output from ss or Get-NetUDPEndpoint. If you did not use the -multihome switch when starting the Dedicated Server, the associated address will probably appear as one of *, 0.0.0.0, or ::. Any of these are fine, indicating the server is listening on all interfaces. If you see a specific address, such as 192.168.1.203, this is also fine, but you will have to be aware that only that internal (or LAN) IP address will work for connecting to or forwarding connections to the server.

Is the server firewall allowing ingress on the correct ports?

In short, did you follow the steps in the Port Forwarding and Firewall Settings section above? Verify your host's firewall settings are configured to allow inbound connections on the UDP ports the Dedicated Server is using.

Are the port forwarding settings at the NAT pointing to the correct address and all three correct ports?

On your router or other network ingress point, double-check that the Port Forwarding settings are correctly configured to direct traffic on all three of the UDP Ports that the Dedicated Server uses to the LAN IP address of the host running the Dedicated Server. Be sure you are forwarding UDP ports, not TCP ports (If you are forwarding both TCP and UDP ports, that is fine, the important thing is that the UDP ports must be forwarded).

Are you or anyone else able to connect to the server from a client on the LAN?

From the same host or another host on the same LAN (i. e. generally in the same building), attempt to connect to the Dedicated Server from the Server Manager in the game client If this works, the the server is clearly running and the firewall on the server is clearly allowing inbound connections.

Are you or anyone else able to connect to the server via the internet?

From a host which is not on the same LAN, attempt to connect to the public IP address of the host running the Dedicated Server from the Server Manager in the game client. If this works, then not only is the server clearly running and the server firewall allowing inbound connections, but the port forwarding settings are now confirmed to work as well-- you server is online and accessible! Have fun, and stay effective!

SDL Priority Manager

Loading Steam API...Failed to init SDL priority manager: SDL not found

Failed to set thread priority: per-thread setup failed

Failed to set thread priority: per-thread setup failed

This issue can be resolved by downloading the dependency. For example, on a Debian-derived Linux distribution:

sudo apt install libsdl2-2.0-0:i386

SteamAPI_Init(): Sys_LoadModule failed to load: /path/to/.steam/sdk64/steamclient.so

steamclient.so: cannot open shared object file: No such file or directory
/home/your_user/.steam/sdk64/steamclient.so
/home/your_user/.steam/sdk64/steamclient.so: cannot open shared object file: No such file or directory
[S_API] SteamAPI_Init(): Sys_LoadModule failed to load: /home/your_user/.steam/sdk64/steamclient.so

This issue can be resolved by creating a symbolic or hard link from the expected path to the location where the library actually exists, for example:

ln -s /usr/games/steamcmd/linux64/steamclient.so /home/your_user/.steam/sdk64/

Log output should change:

steamclient.so: cannot open shared object file: No such file or directory
[S_API] SteamAPI_Init(): Loaded '/home/your_user/.steam/sdk64/steamclient.so' OK.  (First tried local 'steamclient.so')

SteamCMD error: "state is 0x606 after update job" when installing/updating

Error! App '1690800' state is 0x606 after update job.

SteamCMD error 0x606 is thrown when SteamCMD attempts to update a file and the operating system says that it cannot write to the file because it is in use by another process. The most common cause for this is attempting to update while the server is already running. If you have already stopped the server and are still getting this error, the issue can be resolved by rebooting the host.

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.

FAQ

How do I gracefully shut down the Dedicated Server?

Regardless of which operating system the server is running, it can be gracefully shut down by connecting to the server in the Server Manager in the game client, and on the Console tab, issuing the quit command. The means to shut the Dedicated Server down without access via a game client depend on the operating system you are running.

On Linux, the server process can be gracefully shut down by sending SIGTERM to the server process or, if you have the server controlled by systemd, with the command systemctl stop satisfactory, where "satisfactory" is the name of your unit file. Note that the service file can specify the KillSignal= attribute in the Service block, but SIGTERM is the default if not set.

On Windows, if you have the server running 'interactively' (which is to say, there is a window showing the server logs in real time), focus on that Window and press Ctrl+C. Do not just close the window; this will kill the server process instantly and not give it the proper time to clean up after itself and write the state files to disk. If you have it running as a service, you can use the Services snap-in to the Management Console, find the service, right-click it and Stop the service there.

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.

How do I reset the Administrator password?

In the location where you can find the server's saved-game files, look for a file called ServerSettings.port, where port is the server port number (e. g. ServerSettings.15777) and delete it. This will delete all server settings relating to passwords, server name, and session name, and you will be asked for a new Administrator password when connecting as when the server was first set up.

How can I have more than four players in my server?

First and foremost, before implementing the answer provided here, note that the server is being tuned to be performant with the expected player cap of four. Increasing this limit may have ramifications with respect to server stability, performance, and resource usage.

That said, if you will wish to proceed with increasing the player limit, find the Game.ini file in your server's configuration directory (see above), and add this stanza to the top of the file (replacing the default of 4 with the desired player cap for your server):

[/Script/Engine.GameSession]
MaxPlayers=4

I thought the Dedicated Server was multi-threaded- why am I only seeing one core being used?

While the software is in point of fact multi-threaded, the fact remains that the game's design is still predominantly reliant upon a single primary thread. As one of the developers recently put it:

We never intended to say the server will evenly use all your cores. We meant more that the server spawns up to 26 threads (per work set). The game loop is still fundamentally single threaded though and all multi threaded work is happening on ticks. So one core will always work harder than others as a result.

I was running an Experimental server, but I want to move it to Early Access, and it's not converting. What do I do?

Sometimes, Steam can helpfully remember which branch you have selected. If you were using -beta experimental to stay pinned on the Experimental branch, removing it from your update command may not roll you into Early Access. To force this to happen, use -beta public to force the switch.

How can I get my friends to join my server?

In order for your friends to join your server, you will need to give them your Public IP Address (WAN IP) and the port if it differs from 15777. You can obtain this by searching for "what is my ip" in most search engines.

Please note however that this will require you setup port forwarding correctly and have the correct firewall entries in place to allow connections into the network where the server is hosted.

I was running a Dedicated Server on Early Access; now that Update 8 is on Experimental, how do I switch?

While U7 was on the Early Access branch, that was the only version of the Dedicated Server that was available. With the release of U8 onto the Experimental branch, you will need to modify your configuration as described above.

The Dedicated Server stops after throwing two warnings; what do I do?

There are two common warnings that you will see once the server has finished its startup process. These are warnings, not errors, and in this case they can be ignored. If you see the two messages below there is nothing wrong, and the server is now just waiting for a client connection. Both messages related to the Epic Online Store (EOS), which the server has no interactions with, and so these warnings are completely innocuous.

LogOnline: Warning: OSS: EOSSDL-LogEOSP2P: NAT Detection Failed, unable to resolve host
LogOnline: Warning: OSS: EOSSDK-LogEOSAnalytics: EOS STA Analytics disabled for route

Trivia

  • The console of the server (as of Patch 0.5.0.12) serializes boolean values with typos: "IsAwake newState = flase", "IsAwake newState = ture". This is considered a common typo.
  • When Patch 0.5.0.0 was released, Dedicated Servers were initially only available to those using Steam. On December 7, 2021, it was announced on Twitch Stream by Community Manager Snutt Treptow that Dedicated Servers were available on Epic Games.

See also

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, changes to multiplayer in general are tracked here.

  • Patch 0.8.2.8
    • Potential fix for foliage not being removed when playing as Client in both regular Multiplayer and Dedicated Server
  • Patch 0.8.2.7: Potential fix to some major log spam on Dedicated Server on Linux
  • Patch 0.8.2.6: Potential fix to leftover connectivity issues
  • Patch 0.8.2.5: Fixed a crash for Multiplayer / Dedicated Server Clients that sometimes occurred when trying to snap a Power Pole to a Power Line
  • Patch 0.8.2.4: Fixed Railway Block/Path Signal Visualization crashing for Multiplayer / Dedicated Servers Clients
  • Patch 0.8.2.0
    • Potential fix for bug where item stacks can not be split in the inventory for Clients
    • Fixed Dedicated Servers Clients not continuing to have Flight Mode enabled after logging in and out of a session
  • Patch 0.8.1.2: Fixed crash when joining a Dedicated Server related to signs
  • Patch 0.8.1.1: Fixed Dedicated Server not working on Linux
  • Patch 0.8.0.4:
    • Fixed a crash on startup for Dedicated Server when the server query port was set to a value that exceeded the maximum value of an int16
    • Temporary fix for audio log spam on Dedicated Servers when using vehicles which would lead into clients being kicked out of the Server
  • Patch 0.7.1.1: Fixed Multiplayer and Dedicated Server Clients not being able to place Power Poles off a Power Cable in the Blueprint Designer
  • Patch 0.7.0.5:
    • Fixed deletion of Blueprints not properly propagating from Host to Clients
    • Fixed holograms temporarily staying stuck in the Blueprint designer after being built by Clients
    • Fixed a crash for Clients when using the Jetpack
  • Patch 0.7.0.4: Fixed invisible buildings built from Blueprints when reconnecting to Dedicated Servers
  • Patch 0.7.0.3: Fixed Crash when joining Multiplayer or Dedicated Servers
  • Patch 0.7.0.1
    • Fixed a crash for Multiplayer Clients or Dedicated Server Clients when placing a Blueprint that has the AWESOME Sink
    • Fixed a crash for Multiplayer Clients or Dedicated Server Clients when loading a blueprint before data is properly synced with host
    • Fixed Multiplayer Clients or Dedicated Server Clients Blueprints showing up in Blueprint selection when those Blueprints don’t exist on Server
  • Patch 0.7.0.0: Overhauled Pioneer name tags for Multiplayer Clients or Dedicated Server Clients
  • Patch 0.6.1.2
    • Fixed heavy stuttering for Multiplayer Clients and Dedicated Server Clients when getting hit by a projectile
    • Fixed a crash for Multiplayer Clients and Dedicated Server Clients when trying to remove highlights from a Map Marker
    • Fixed a Crash by making it error normally instead of crash
  • Patch 0.6.1.1
    • Fixed Nobelisk Gas clouds not disappearing on Dedicated Server
    • Server should now error out instead of crash when the server is unable to bind to a query port
    • Fixed a server crash when uploading a save file
  • Patch 0.6.0.15
    • Fixed Equipment icon in HUD flickering when equipping an item for Multiplayer Clients and Dedicated Server Clients.
    • Fixed Markers and Stamps placed on the map disappearing when reconnecting to a Dedicated Server
    • Fixed Markers and Stamps not saving properly on Dedicated Server
  • Patch 0.6.0.14:
    • Fixed pings being invisible for other Multiplayer players or Dedicated Server players
    • Fixed “Press RMB To Respawn” still being displayed after a player is revived
  • Patch 0.6.0.13: Potential fix for Crab Hatchers displaying incorrectly when joining for Multiplayer Clients and Dedicated servers Clients
  • Patch 0.6.0.12
    • Fixed crash related to Hatchers on Dedicated Server
    • Updated visuals for Multiplayer and Dedicated servers offline player name tags
  • Patch 0.6.0.10
    • Other Player characters in the world should now show last used user name when they go offline (Not retroactive)
    • Potential fix for Foliage not being interactable sometimes on Dedicated Servers
  • Patch 0.6.0.5
    • Fixed Multiplayer Clients and Dedicated servers Clients not being able to place Extractors on Resource Well Satellite Nodes
    • Fixed Resources not being shown for Multiplayer Clients and Dedicated servers Clients when the Map or Radar Tower was opened
  • Patch 0.6.0.4
    • Fixed Resource Deposits being Invisible/Non-interactable for Multiplayer Clients or Dedicated Server Clients
    • Potential fix for a crash that starts from players experiencing audio crackling and performance degradation on dedicated server in Northern Forest
    • Fixed issue where the Equipment HUD Slot for Consumables wouldn’t update properly on Multiplayer Clients or Dedicated Server Clients
    • Fixed crash reporter not working on Windows
  • Patch 0.6.0.3
    • Equipment HUD is now correctly updated for Multiplayer Clients or Dedicated Server Clients
    • Weapon crosshairs are now correctly updated for Multiplayer Clients or Dedicated Server Clients
  • Patch 0.6.0.2
    • Hatcher should now show their status properly for for Multiplayer Clients and Dedicated Servers Clients
    • Fixed Resources not being shown to Multiplayer Clients or Dedicated Server Clients when opening Map or Radar Tower
    • Dedicated server should not crash anymore when it fails to bind to a port
    • Fixed a crash that may happen if the server settings file is corrupted. In this case, the server will use default settings instead
  • Patch 0.6.0.1
  • Fixed a crash when Multiplayer Clients and Dedicated Servers Clients would place a second Truck Station
  • Fixed the Truck Stations UI not showing up properly for Multiplayer Clients and Dedicated Servers Clients
  • Fixed a debug icon showing up on the Truck Station inventory when accessed for a second time by Multiplayer Clients and Dedicated Servers Clients
  • Patch 0.5.2.1: Current Train Station stop should now properly display for clients in Multiplayer Clients or Dedicated Servers Clients
  • Patch 0.5.1.13: Fixed Dedicated Server crash reporter not working properly
  • Patch 0.5.1.12: Fixed a crash for Multiplayer Clients and Dedicated Server Clients related to vehicle paths
  • Patch 0.5.1.9
    • Fixed a crash related to Vehicle Automation for Multiplayer Clients and Dedicated Server Clients
    • Fixed a bug in the Load Vehicle Path UI where the “Used by this vehicle” checkmark was missing for Multiplayer Clients and Dedicated Server Clients
  • Patch 0.5.1.8: Undid all the Networking Optimisation changes from the previous build, which accidentally introduced a bunch of issues for Clients on Multiplayer and Dedicated Servers
  • Patch 0.5.1.7
    • Fixed Multiplayer and Dedicated servers Clients not being able to cancel the docking sequence
    • Network Optimizations that should result in some performance gain CPU side for Clients on Multiplayer and Dedicated servers
    • Network Optimizations that should result in some performance gain on for Clients on Multiplayer and Dedicated servers hosting games with many Smart Splitters built
  • Patch 0.5.1.6:
    • Improved stability of the packet router
    • Improved CPU usage of the packet router
    • Added a startup argument for disabling the packet router: -DisablePacketRouting
  • Patch 0.5.1.4: Fixed holograms having the proper position for Multiplayer and Dedicated servers Client but the wrong one for Host/Server in some situations
  • Patch 0.5.1.2:
    • Implemented a mechanism that routes all server packets through the query beacon, in effect reducing the number of ports that need to be open/forwarded to 1, simplifying setup.
  • Patch 0.5.1.1:
    • Fixed a bug that made Clients spam poll the server, now we should poll much less
    • Fixed some more issues with the Crash reporter integration
  • Patch 0.5.0.14:
    • Found an issue where threading was forced to be disabled for dedicated servers in some scenarios. Fixed it so now we should actually make use of multiple CPU cores
    • Added tick rate information on the Server Status UI Menu
    • Production Lights for all buildings should now be working again
  • Patch 0.5.0.13
    • Added Crash Reporter integration for Dedicated Server for both Windows and Linux.
      • This is enabled by default, we plan on including a toggle for this in GUI but for the moment, if you want to disable automatically sending crash logs you can do this:
      • Go to SatisfactoryDedicatedServer\FactoryGame\Saved\Config\WindowsServer\
      • Open “Engine.ini”
      • Add the following:
[CrashReportClient]
bImplicitSend=False
      • Save changes
  • Patch 0.5.0.12: Enabled background and hi-prio task sets for servers to match what they are for the game, This should further improve multicore CPU usage
  • Patch 0.5.0.11: Servers should now use all available cores (Up to 26 worker threads) on both Windows and Linux
  • Patch 0.5.0.9:
    • Potential fix for a Multiplayer / Dedicated servers crash related to tireconfig deletion
    • Fixed Nobelisks being invisible when first equipping for Clients
    • Fixed a rare crash when accessing the Train Station UI as Client
    • Fixed ammo count issues for Clients
    • Implemented a first revision of the Save Manager in the “Manage Saves” tab under Server Manager
    • Increased the beacon connection timeout to 30 seconds (Previous value was 5 seconds)
    • Actually fixed invisible Conveyor Belts, Conveyor Lifts and Pipelines sometimes being invisible for Multiplayer/Dedicated Servers Clients (Triple for real!!!)
  • Patch 0.5.0.8:
    • Hopefully fixed remaining Nobelisk issues for Multiplayer / Dedicated Servers Clients (Firing, Explosions, UI Feedback, Responsiveness)
    • Fixed a bug where complex clearance would not be spawned on the server, blocking Clients from building despite holograms being ok with it on server
    • Fixed Self Driving Trains being slow when a Client was travelling in them
    • Potential fix for invisible Conveyor Belts, Conveyor Lifts and Pipelines sometimes being invisible for Clients
    • Fixed player has joined messages not showing up for Clients
    • Fixed spelling mistake in the server is offline message
    • Server state is now polled a lot less by the clients (at most 3 times per second) and clients back off gradually if a server does not respond to pings which makes the client behaviour less consistent with DDOS attacks
    • Clients do not store DNS lookup results in the server manager file and instead the DNS lookups are made every time the client starts up which makes the clients work better for servers with Dynamic DNS
  • Patch 0.5.0.7:
    • Fixed a crash on startup on Dual Stack Linux, IPv6 should now work on more recent kernels
    • Fixed a shutdown crash caused by OnlineSubsystemEOS
  • Patch 0.5.0.6:
    • Potentially fixed a crash related to using the Rebar Gun on Dedicated Server
    • Fixed Hologram snapping always using automatic clearance snapping if a Multiplayer / Dedicated Server Client was building, it now updates settings between Client and Host/Server
    • Fixed Nobelisk/Snowballs on Dedicated servers
    • Added IPv6 Support
    • Made FGAbstractServerWidget public for modders
    • UI should now properly display when new connections are established
    • Potentially fixed a crash related to using the Rebar Gun on Dedicated Server
  • Patch 0.5.0.4
    • Fixed Client for crash related to not-yet-replicated member
    • Fixed Dedicated Servers crash related to Vehicles end play
    • Fixed a crash when using Parachutes as Client
    • Changed "-GamePort" server parameter to "-Port"
    • Added a “Save Game” server command (server.SaveGame <saveName>)
    • Flipped around the Show/Hide Address Toggle Button text in the Add Server popup
  • Patch 0.5.0.2 (Released again in Patch 0.5.0.3): Fixed Multiplayer / Dedicated Servers Clients not being able to save or remove colour presets in the Customizer
  • Patch 0.5.0.0: Introduced

Upcoming


In Version 1.0 Dedicated Servers will be getting changes and improvements.[1][2] The noted changes are:

  • Easier to install due to decrease in software size.
  • Will only use one Port, that being UDP/TCP 7777.
  • Support for both IPv4 and IPv6 Internet Protocols.
  • Will be both a Windows Application and a in-game Console Application.
  • Support for Transport Layer Security (TLS) end-to-end encryption for both server and game data / traffic.
  • Improved Console Screen.
  • Easier to create new game Sessions.
  • Support for use of Advanced Game Settings.
  • Easier to set up Server Configuration Settings.
  • Server Admins will now be able to download the Save File directly from within the Server Manager.
  • Autosave and Server Status Notifications will be sent to all Clients.
  • Support for HTTP API Methods between the Server and the Client.
    • Future Mod Support will allow use of the HTTP API to perform functions from within Game Mods.

References