Dedicated servers/Configuration files

From Satisfactory Wiki
Jump to navigation Jump to search

This page details configuration files used by dedicated servers.

Overview

The Unreal Engine, the software that Coffee Stain is using to create Satisfactory, stores many of its vital settings and configurations in various "ini" (short for "initialization") files. These files are located in a directory relative to the game's base installation folder, as noted below:

Config file location
Platform Path (relative to installation dir)
Linux FactoryGame/Saved/Config/LinuxServer/
Windows FactoryGame\Saved\Config\WindowsServer\

WARNING: Using the Server Manager -> Server Settings UI is the preferred method for modifying the ServerSettings.ini as the file uses very specific language and terms to modify game behaviour.

Example

When connected to a server as the administrator via the in-game Server Manager window, on the Server Config tab there are options to "Pause server when empty" and "Autosave when player disconnects." If a server admin leaves the "Pause server when empty" option unselected, but does select the "Autosave when player disconnects" option, those settings are then saved in the ServerSettings.ini file, located in the directory noted above. Opening the ServerSettings.ini file, the following will be listed:

[/Script/FactoryGame.FGServerSubsystem]
mAutoPause=False
mAutoSaveOnDisconnect=True

While some settings in the ini files can be edited via the in-game options such as this, there are many, many more settings that need to be changed manually by editing the appropriate ini file.

Configuration edits

Be aware that any changes to ini files may be overwritten when a new update or patch is released, possibly necessitating a re-edit. Also, do not set the ini files to be "read-only" after you modify them as this can cause issues with future patches.

Always make ini edit changes with the server shut down. The ini files are written to on graceful shutdown, and you may find your changes overwritten otherwise.

If you are unable to locate any of the listed ini files, you will need to start the server for the first time, then connect to it via the in-game Server Manager menu and set up initial configuration. Once you've completed that, access the Server Console tab in the Server Manager menu, and type quit then press the Enter key. That will force the server to save its current state to the ini files, creating any that are not already present, and then gracefully exiting. The ini files will then be available for editing.

Below are some of the configuration settings, and the appropriate ini file, that the community has discovered.

Server crash reporting

When running on Linux, the server uploads crash reports by default. The developers can then use these crash reports to help pinpoint issues for future patches. However, if you want to disable this behavior, add the following lines to the Engine.ini configuration file:

[CrashReportClient]
bImplicitSend=False

Client disconnected for Timeout

Client systems with older hardware, or slower connections, sometimes need longer than the 20-second connection timeout limit that the server uses by default. Edit the Engine.ini configuration file, and look for the [/Script/OnlineSubsystemUtils.IpNetDriver] section. That section will likely already have values defined for items like "MaxClientRate" so simply add the following lines:

InitialConnectTimeout=xx.0
ConnectionTimeout=xx.0

The xx is the number of seconds that you want the connection timeout counter to use, overriding the built-in default of 30 seconds. Note: this can be lower or higher than 30.

  • InitialConnectTimeout = Amount of time to wait for a new network connection to be established before destroying the connection.
  • ConnectionTimeout = Amount of time to wait before considering an established connection timed out. Typically shorter than the time to wait on a new connection because this connection should already have been setup and any interruption should be trapped quicker.

Autosave slots and Autosave interval

Currently, the server is defaulting to three Autosave files that are rotated (as the server creates a new autosave file, the oldest is deleted and the others are moved down the list. Currently these are:

  • SessionName_autosave_0.sav
  • SessionName_autosave_1.sav
  • SessionName_autosave_2.sav

To override this default, add the following to the Engine.ini file, replacing xx with the number of Autosave files you wish to have the server rotate through.

[/Script/FactoryGame.FGSaveSession]
mNumRotatingAutosaves=xx


Autosave interval

Currently the server defaults to saving the game every 300 seconds (5 minutes). Keep in mind that shorter times mean that while the server will save the game more often, it also means a potential drop in server performance. If you still wish to override the default, do the following:

  1. Start Satisfactory game client and navigate to the Server Manager
  2. Select the server you wish to modify and authenticate if required
  3. Navigate to the Console tab
  4. Enter in the command FG.AutosaveInterval xxx, replacing xxx with the number of seconds between saves.

Server tick rate

If you wish to change the server's tick rate, edit the Engine.ini configuration file. There are three modifications you need to make, replacing xx with the desired number of ticks per second (default: 30):

[/Script/OnlineSubsystemUtils.IpNetDriver]
NetServerMaxTickRate=xx
LanServerMaxTickRate=xx

[/Script/SocketSubsystemEpic.EpicNetDriver]
NetServerMaxTickRate=xx
LanServerMaxTickRate=xx

[/Script/Engine.Engine]
NetClientTicksPerSecond=xx

If the sections are not present in the file, add them; otherwise, append to them.

Note that this is an upper limit (up-to), and your server will only reach the specified value if hardware allows. Also note that should you observe undesirable side effects, lower your desired tick rate and retest before further debugging.

Note that the game's default tick rate is good for most scenarios. Increasing it will not help with lags - if your hardware can't manage the default 30, increasing it won't help.

Seasonal events

Seasonal events, such as FICSMAS, can be disabled (0) or enabled (1) in GameUserSettings.ini. Note that the line will disappear after the server is restarted, but will take effect regardless.

[/Script/FactoryGame.FGGameUserSettings]
FG.DisableSeasonalEvents 0

See also