Satisfactory is the first-person factory-builder of conveyors, trains and ever-growing production lines on an alien planet. A dedicated server keeps your factory running and saved even when you're offline. This step-by-step guide shows you how to set up a Satisfactory server in minutes — no manual install, no command line.
Pick a plan sized for your Satisfactory community. We recommend about 8–12 GB of RAM; start smaller and upgrade in one click as you add players or mods. Satisfactory plans start at $24.99/mo.
Check out and your Satisfactory server provisions automatically in under 60 seconds, with console access right away — no manual install, no command line.
Once your Satisfactory server is online, share its address (IP and port) with your friends so they can join. Start, stop and restart it anytime from the control panel.
Your Satisfactory server supports Save management, Mods (SML), Config, FTP/SFTP. Install dedicated server with save management (SML mods) straight from the one-click installer, or upload your own from the control panel — then tweak settings in the visual config editor.
Enable scheduled automatic backups, set restart timers, and monitor CPU, RAM and player counts from the dashboard. Always-on DDoS protection and 24/7 support keep your Satisfactory server stable.
Ready to start? Deploy your Satisfactory server in under 60 seconds — 7-day money-back guarantee.
The dedicated server is a separate download from the game, published under Steam app ID 1690800. SteamCMD installs it with an anonymous login:
steamcmd +force_install_dir ~/SatisfactoryDedicatedServer +login anonymous +app_update 1690800 validate +quit
On Windows, the same command takes a native path:
.\steamcmd.exe +force_install_dir "C:\Game Servers\Satisfactory Server" +login anonymous +app_update 1690800 validate +quit
Updating uses the same command: shut the server down first, then run it again to check for and install an update. An installation made through the desktop Steam client should update itself automatically shortly after a release.
The documented operating systems are Windows 10 or 11; Windows Server 2016, 2019, or 2022; and a Linux distribution such as Debian or Ubuntu.
Start the server with ./FactoryServer.sh on Linux or .\FactoryServer.exe -log -unattended on Windows. -log forces the server to display logs in a window on Windows, or in the active terminal on Linux; -unattended stops the server from presenting dialogs that would otherwise interrupt it when nobody is there to answer them. Logs are written to FactoryGame/Saved/Logs in the install directory, the newest of them as FactoryGame.log.
As of Patch 1.1.0.0, a Satisfactory server needs two forwarded ports to work properly: a standard port, default 7777, and a Reliable Messaging port, default 8888.
| Port | Protocol | Usage |
|---|---|---|
| 7777 | TCP | Server traffic, HTTPS API |
| 7777 | UDP | Game traffic, Lightweight Query API |
| 8888 | TCP | Game traffic, Reliable Messaging |
Port numbers 15000 and 15777 are no longer used as of Patch 1.0, so older guides listing them are out of date.
The overrides are -Port=, -ReliablePort=, and -ExternalReliablePort=, the last of which remaps the Reliable Messaging port for external connections. Port redirection is not currently supported for the standard port, so the internal and external numbers must match in the forward rule. If the standard port you specify is already in use, the server increments the number and keeps trying until it finds one that is free.
Left alone, the Reliable Messaging port is not fixed. Engine.ini governs it:
[/Script/ReliableMessaging.ReliableMessagingTCPFactory]
PortRangeBegin=8888
PortRangeLength=512
ExternalPortRangeBegin=-1
The server binds somewhere inside PortRangeBegin plus PortRangeLength, so by default it starts at 8888 and tries up to 512 ports until one is available. Passing -ReliablePort= changes that: it attempts to bind only that port and fails to initialize if the port is unavailable. Pin it when your firewall rule opens 8888 alone.
A freshly started server has no name and no owner. You claim it from the game client: launch the game, open the Server Manager from the main menu, add the server, give it a name, and set the administrator password. After that you can create a new game or import an existing save from the same in-game Server Manager.
There are two separate passwords. The administrator password gates administrative privileges: Save Game loading, Server Options, and New Game creation. Player password protection is a different setting — a password that limits who can connect to the server and see information about the ongoing game session. Its Change Password button sits next to that option in the Server Settings tab.
Saves are written outside the install directory, in a server subfolder:
~/.config/Epic/FactoryGame/Saved/SaveGames/server%LocalAppData%\FactoryGame\Saved\SaveGames\server%WINDIR%\ServiceProfiles\NetworkService\AppData\Local\FactoryGame\Saved\SaveGames\serverSettings live in ServerSettings.PORT.sav, in the SaveGames folder one level above that save directory. One value worth setting is Auto-Load Session Name: the session whose most recent save the server loads automatically at startup, which is what brings a restarted server back to the right world.
INI files sit under the install directory, in a platform-specific folder:
<install>/FactoryGame/Saved/Config/LinuxServer/<install>\FactoryGame\Saved\Config\WindowsServer\The player cap lives in Game.ini, and the documentation attaches a performance caution to this key:
[/Script/Engine.GameSession]
MaxPlayers=8
In Engine.ini, InitialConnectTimeout is the number of seconds to wait for a new network connection to be established before destroying it, and ConnectionTimeout is the number of seconds to wait before treating an established connection as timed out. Both sit under [/Script/OnlineSubsystemUtils.IpNetDriver] with a documented default of 30 seconds, and they are the pair to raise for players who keep dropping.
The tick rate keys NetServerMaxTickRate and LanServerMaxTickRate appear both in that section and under [/Script/SocketSubsystemEpic.EpicNetDriver], while NetClientTicksPerSecond sits under [/Script/Engine.Engine]; the documented default tick rate is 30. mNumRotatingAutosaves, under [/Script/FactoryGame.FGSaveSession], sets how many autosaves rotate, three by default.
The launch parameter -ini:<INIFILE>:[<SECTION>]:<KEY>=<VALUE> sets an INI value from the command line instead.
Three documented cautions: always make INI edits with the game server shut down, because the files are written to on graceful shutdown and your changes may otherwise be overwritten; expect a new update or patch to overwrite edits, which may mean re-applying them; and do not set the files read-only afterwards, as that can cause issues with future patches.
Mods on a dedicated server are handled by Satisfactory Mod Manager (version 3.0.0 and up) or ficsit-cli. Either can manage a remote server installation given network filesystem or (S)FTP access.
SFTP typically uses TCP port 22, though your server may differ; the address format is sftp://username:password@ServerNameOrIP:Port/path/. FTP typically uses TCP port 21 and is described as outdated, so prefer SFTP. The authenticating user needs Read/Write/Delete or Read/Modify permissions.
Point the tool at the directory containing FactoryServer.exe or FactoryServer.sh; Satisfactory Mod Manager's file browser selects the correct subfolder itself if you give it the root directory.
In ficsit-cli, consider a separate profile for the server, and remember to apply your changes — they are discarded on exit otherwise. Applying is global: every installation the program knows about has its staged changes applied in parallel.
The server exposes an HTTPS API at /api/v1 on the game port, for example https://127.0.0.1:7777/api/v1. Traffic is always wrapped in a TLS tunnel, even if no certificate was provided: in that case the server generates its own self-signed certificate and uses it to encrypt everything flowing through the API.
There are two ways to authenticate. PasswordLogin takes a plaintext password and accepts either the Admin Password or the Client Protection Password. For long-running programs, the console command server.GenerateAPIToken issues an application token that does not expire; only Bearer tokens are supported in the Authorization header. server.InvalidateAPITokens invalidates all tokens.
Console commands are issued from the Console tab after you connect to the server in the in-game Server Manager:
quit, stop, or exit shuts down the server processserver.SaveGame <saveName> creates a save with that nameFG.DedicatedServer.AllowInsecureLocalAccess 1 allows unrestricted Server API access from localhost until the server is restartedShut down gracefully rather than closing the window: use the HTTPS API Shutdown function, the quit command, or on Linux either SIGINT to the process or systemctl stop satisfactory under systemd. In an interactive Windows console window, hold Ctrl and press C. Do not close that window with the X, which kills the process instantly instead of letting it clean up after itself.
It worked before 1.1; now clients hang. Patch 1.1.0.0 made the Reliable Messaging port a second required forward, so a firewall that opens only 7777 is missing 8888/TCP. Community reports describe players stuck on the loading screen until 8888/TCP is opened — a symptom the official docs do not state, although the port itself is in the official port table.
"Encryption token missing" when players join. The documented fix is procedural: have them add your server in the Server Manager and join from there instead of using the Join Game option.
The administrator password is lost. Delete the ServerSettings.PORT.sav file, where PORT is the server port number — for example ServerSettings.7777.sav. This also resets the server name, player password, Auto-Load Session Name, and certificate, so the server has to be claimed again.
Players keep timing out mid-session. The official FAQ points to the client disconnect timeout settings in the configuration files, which are the InitialConnectTimeout and ConnectionTimeout values above.
The server looks idle with nobody online. Auto Pause is a documented setting that controls whether the game pauses automatically when no players are connected, so an empty, paused server is that setting working as described. Uncheck it in the in-game Server Settings to keep production running while everyone is away.