Satisfactory Dedicated Server Guide

Satisfactory Dedicated Server Settings: Setup, Config Files, Ports and Saves

Published 2026-10-05 12 min read Satisfactory 1.2 (game version 1.2.4.0)

A Satisfactory dedicated server is set up mostly from inside the game. You claim it, set its passwords and change most of its settings in the in-game Server Manager. A handful of settings that the menu doesn't offer live in Unreal Engine .ini files next to the server. This guide covers the first start, which setting lives where, the settings people search for most, the two ports, where the save game is, mods, and the mistakes that quietly undo your changes.

Which version this covers. We installed the dedicated server with SteamCMD (app 1690800, anonymous login) on Linux. It reported game version 1.2.4.0, build 502094. We started it, claimed it, created a game and changed settings through the server's HTTPS API, which the in-game Server Manager also uses, then read the files the server wrote. Where we write "in our test", we tried it on that server. Windows paths and setting descriptions come from the Satisfactory Wiki's dedicated-server pages and Coffee Stain's API documentation.

First Start: Claiming the Server

A new server isn't claimed: it has no name and no admin password, and it can't run a game yet. To claim it:

  1. Start the game and open the Server Manager from the main menu.
  2. Add the server by its address and port.
  3. Give the server a name and set the admin password.

Then create a new game, or upload a save you already have (see below). The admin password protects loading saves, changing server settings and creating a new game.

The first person to connect claims it
Until an admin password is set, the server lets anyone log in without a password at the level that is allowed to claim it. In our test, a request with no credentials received that login, and claiming the server worked. After we claimed it, the same request was refused with passwordless_login_not_possible. So claim a new server straight away, before you share its address.

The client (join) password

The second password keeps strangers out. It is off by default. Set it in the Server Manager's Server Settings tab with the Change Password button next to Player Password Protection; despite the name, that is the join password. In our test, a player could log in without a password before we set it and was refused afterwards.

Where Each Setting Lives

There are three places, and only one of them is meant to be edited by hand.

What Stored in How to change it
Server name, admin password, client password, auto-load session ServerSettings.<port>.sav Server Manager only. It is a binary save file, not an ini.
Server Settings tab: auto-pause, autosave interval, auto-save on disconnect, network quality, seasonal events, gameplay data GameUserSettings.ini Server Manager. The server writes the file itself as soon as you apply a change.
Number of rotating autosaves, network tick rate, timeouts, reliable-port range Engine.ini By hand, with the server stopped.
Player limit Game.ini By hand, or better as a launch option (see Max players below).

There is no ServerSettings.ini; the server's own settings are in the .sav file above, where <port> is the game port (ServerSettings.7777.sav on a default server). After its first start our server had written only Engine.ini and GameUserSettings.ini; Game.ini doesn't exist until you create it.

File Linux Windows
Engine.ini, Game.ini, GameUserSettings.ini <install folder>/FactoryGame/Saved/Config/LinuxServer/ <install folder>\FactoryGame\Saved\Config\WindowsServer\
ServerSettings.<port>.sav ~/.config/Epic/FactoryGame/Saved/SaveGames/ %LocalAppData%\FactoryGame\Saved\SaveGames\

The ~ and %LocalAppData% paths belong to the account the server runs as. A server running as a Windows service uses that service account's profile instead.

What GameUserSettings.ini looks like

On a fresh server both value lists are empty, because nothing differs from the defaults. After we turned off auto-pause and seasonal events, set network quality to 3 and the autosave interval to 600 seconds in the Server Settings, the server wrote:

[/Script/FactoryGame.FGGameUserSettings] mIntValues=(("FG.DSAutoPause", 0),("FG.EnableSeasonalEvents", 0),("FG.NetworkQuality", 3)) mFloatValues=(("FG.AutosaveInterval", 600.000000))

Changing these in the Server Manager is easier and safer than editing the lines, because the menu also applies them to the running server.

The Settings People Look For

Setting Default What it does
Autosave interval
FG.AutosaveInterval
300 (5 min) How often the server saves. The file and the API store seconds; the in-game menu shows minutes. Saving briefly costs server performance, so a very short interval has a price.
Rotating autosaves
mNumRotatingAutosaves
3 How many autosave files are kept before the oldest is overwritten: <Session>_autosave_0.sav, _1, _2. Engine.ini only, see below.
Auto Pause
FG.DSAutoPause
on Pauses the game while no players are connected. Our server's log says it waits until start-up and loading are finished before it may pause.
Auto-Save on Player Disconnect
FG.DSAutoSaveOnDisconnect
on Saves the game whenever a player leaves.
Seasonal events
FG.EnableSeasonalEvents
on Events such as FICSMAS. Turning it off waits for the next restart: in our test the change stayed "pending" until we restarted, and then the log said Seasonal events is disabled by option. The launch option -DisableSeasonalEvents does the same.
Network Quality
FG.NetworkQuality
1 A higher setting can improve load times and network performance at the cost of server frame rate. Also applied on the next restart. In our test it set the per-client bandwidth in Engine.ini: MaxClientRate=120000 at 1 and 300000 at 3.
Max players
MaxPlayers
4 The player limit. It isn't in the menu; see the next section.
Server restart time - Despite being labelled an interval in the menu, it is the time of day at which the server restarts each day.

Number of autosaves (Engine.ini)

With the server stopped, add this section to Engine.ini:

[/Script/FactoryGame.FGSaveSession] mNumRotatingAutosaves=7

In our test the server then kept seven files, _autosave_0 to _autosave_6, and the section survived several restarts.

Max players (Game.ini or a launch option)

The server ships with a limit of 4 and, according to the wiki, is tuned for it, so more players can cost stability and performance. The documented setting is in Game.ini:

[/Script/Engine.GameSession] MaxPlayers=8

In our test this worked for one run: the server reported a limit of 8. But when we stopped the server cleanly, it deleted Game.ini, and the next start was back to 4. We repeated it with the file's metadata header and got the same result. The launch option worked every time and doesn't depend on the file:

-ini:Game:[/Script/Engine.GameSession]:MaxPlayers=8

Network tick rate (Engine.ini)

The server's network rate is capped at 30 updates per second by default; our idle test server reported an average tick rate just under 30. The wiki lists three sections to change together:

[/Script/OnlineSubsystemUtils.IpNetDriver] NetServerMaxTickRate=30 LanServerMaxTickRate=30 [/Script/SocketSubsystemEpic.EpicNetDriver] NetServerMaxTickRate=30 LanServerMaxTickRate=30 [/Script/Engine.Engine] NetClientTicksPerSecond=30

It is an upper limit, not a target. If the hardware can't reach 30, raising the number won't help with lag. If players with slow connections get dropped, the same IpNetDriver section also takes ConnectionTimeout and InitialConnectTimeout in seconds (default 30).

Server name, session name and visibility

The server name is set when you claim the server and is what players see in their Server Manager. The session name is chosen when you create a game and becomes the prefix of its save files. The server also remembers it as the auto-load session: in our test, after creating a game the server set it automatically, and on every later start it loaded the newest save of that session.

A dedicated server has no public or friends-only visibility setting: a new game takes a session name, a starting location and advanced game settings, nothing more. Players add the server in their Server Manager by address and join from there. Using "Join Game" instead gives the error "Encryption token missing".

Ports: 7777 and 8888

Port Protocol Used for Launch option
7777 UDP Game traffic and the lightweight query API -Port=
7777 TCP The server's HTTPS API, which the Server Manager uses -Port=
8888 TCP Reliable messaging, since update 1.1 -ReliablePort=, -ExternalReliablePort=

In our test, started with -Port=17777 -ReliablePort=18888, the server listened on UDP 17777, TCP 17777 and TCP 18888. The ports 15000 and 15777 that older guides mention have not been used since 1.0.

The two ports behave differently. If the game port is taken, the server quietly tries the next one up. If the reliable port is taken, the server fails to start. The game port can't be remapped on the router (external and internal numbers must match), while the reliable port can, with -ExternalReliablePort=. Players only ever enter the game port; the server tells them the reliable port when they connect.

Stuck on the loading screen?
That is what happens when players reach port 7777 but not the reliable port. Forward or open TCP 8888 too.

The Save Game

The server keeps its saves under the home folder of the account it runs as, not in its install folder:

Files are named after the session, for example MyFactory_autosave_0.sav. Your single-player saves are on your own PC in %LocalAppData%\FactoryGame\Saved\SaveGames\<your ID>\.

Moving a single-player save to the server

You don't need to copy files. In the Server Manager, open the server's Manage Saves tab and upload the save from your PC, then load it. This needs the admin password, and the server checks the file when it arrives. It works wherever the server keeps its files, so it is the safest route.

Mods: SML and ficsit.app

Satisfactory mods come from the community Satisfactory Mod Repository at ficsit.app and run on SML, the Satisfactory Mod Loader. Players install them with Satisfactory Mod Manager, which also handles dedicated servers. Coffee Stain doesn't officially support modding. Major updates, and any update that changes the Unreal Engine version, have usually made mods incompatible until their authors update them, so back up your save before you add mods to a world you care about.

A server mod needs a build for the server's operating system: on ficsit.app that is the LinuxServer or WindowsServer file, not the Windows file your players use. Mods live in FactoryGame/Mods/ in the server's install folder, and players need the same mods to join.

Mistakes That Cost an Evening

1. Sharing the address before claiming the server

Until an admin password is set, whoever connects first can claim the server and set their own. Claim it yourself first, then share the address.

2. Losing the admin password

Stop the server and delete ServerSettings.<port>.sav (for example ServerSettings.7777.sav). In our test the server was unclaimed again on the next start and the save files were untouched. You also lose the server name, the client password and the auto-load session, so after claiming it again, load your save from Manage Saves.

3. Server and players on different branches

Players need the same branch (the normal release or Experimental) and the same version number as the server. A server gets Experimental with -beta experimental added to the SteamCMD update command. To go back, use -beta public: just removing the option may leave it on Experimental.

4. Editing an ini while the server runs

The server writes its ini files when it shuts down cleanly. In our test we added the autosave section to Engine.ini while the server ran; after a clean stop the section was gone. The same edit made while the server was stopped was kept. Stop, edit, start.

5. Trusting Game.ini to keep your player limit

In our test the server deleted Game.ini on a clean stop, so MaxPlayers applied once and then fell back to 4. Use the -ini:Game:... launch option instead.

6. Opening only port 7777

Since 1.1 the server also needs TCP 8888 (or whatever -ReliablePort says). Without it, players connect and then wait on the loading screen.

7. Joining with "Join Game"

Dedicated servers are joined through the Server Manager. "Join Game" ends with "Encryption token missing".

Skip the Port Forwarding

NodeMesh runs your Satisfactory server on your own PC or server. It installs the dedicated server with SteamCMD, with no Steam login stored on your machine. Its relay forwards the game port (UDP and TCP) and the reliable-messaging port, and each server on a host gets its own reliable port, so players only enter the game address. Claiming the server and setting its passwords still happen in the game's Server Manager, as described above.

The Config tab edits the ini settings, including the number of rotating autosaves and the network tick rates, and tells you to stop the server first, because the server rewrites those files when it shuts down. The Files tab opens the ini files if you want to edit them yourself.

The Mods tab searches ficsit.app and only lists mods with a build for your host's dedicated server, Linux or Windows. The first install sets up SML after one confirm, picks the mod version made for your server's game build and installs the mods it depends on. You can also upload a .smod from ficsit.app; a build the server can't load is refused, with the name of the file to download instead.

Run your Satisfactory server on your own PC

NodeMesh installs the dedicated server, relays ports 7777 and 8888 for you, and its Mods tab sets up SML and ficsit.app mods.

Start hosting with NodeMesh