Satisfactory Dedicated Server: Setup, Requirements, Ports and Fixes (1.2)

A Satisfactory dedicated server is a free, separate program that runs your factory around the clock, so pioneers can join and leave without the host being online. To set one up you need a 64-bit Windows or Linux machine with 8 GB of RAM or more, the Satisfactory Dedicated Server app (Steam app ID 1690800, also free on Epic), ports 7777 (UDP and TCP) and 8888 (TCP) open, and one player to claim it from the in-game Server Manager. The game is on update 1.2. Below: requirements, install with SteamCMD, Steam, Epic or Docker, ports, saves, settings, mods, more than four players, and the errors people actually hit.

Dedicated server or hosting from the game?

You can host Satisfactory multiplayer from inside the game, but the session only exists while the host plays. A dedicated server is a separate process with no player of its own. It keeps one session loaded for everyone, so your group can build on their own schedules. It only exists on PC: the PS5 and Xbox versions cannot use dedicated servers at all.

Hosted from the game Dedicated server
Host has to play Yes No, the factory runs on its own
How friends join Join Game menu, invite or session ID Server Manager, by address
Steam and Epic players together Yes, with a linked Epic account Yes
Console players Console-to-console only Not supported
Saves live on The host’s PC The server

The official wiki’s community-recommended minimum for a Satisfactory dedicated server is a recent x86-64 CPU (Intel i5-3570 or AMD Ryzen 5 3600 and up), 8 GB of RAM, and 8 GB of disk on Linux or 12.4 GB on Windows. It suggests 16 GB of RAM for big saves or more than four players. Single-core speed matters most: the server spreads some work over threads, but the game loop runs on one main thread.

Part Minimum What to know
CPU i5-3570 / Ryzen 5 3600 Aim for a single-thread benchmark score of 2000 or more. No 32-bit and no ARM build.
RAM 8 GB 16 GB for very large saves or more than 4 players. Factory size drives it, not player count.
Disk 12.4 GB (Windows), 8 GB (Linux) The full game isn’t needed, only the server files.
OS Windows 10/11, Server 2016–2022, Debian or Ubuntu Any common 64-bit Linux distro works.
Network Broadband Hosting from home needs port forwarding, so it won’t work behind CGNAT without a VPN.

Virtual machines: on Proxmox or any KVM host, the default kvm64 CPU type won’t work. The server may start and then crash when you create a game. Set the VM’s CPU type to host. Raspberry Pi and ARM: there’s no ARM build, so a Pi only runs it through an x86 emulator such as FEX or Box64, which the wiki mentions but doesn’t recommend for a big factory.

How to set up a Satisfactory dedicated server

Setting up a Satisfactory dedicated server takes four steps: install the server files, open the ports, start the server, then claim it from the game. You can install it with SteamCMD (the command-line Steam client, and the method the wiki prefers), from your Steam library as a tool, or as a free add-on on Epic Games. Players from either store can join, whichever store the server came from.

Install with SteamCMD on Linux (Ubuntu or Debian)

The Satisfactory server app ID is 1690800, the same ID SteamDB lists for “Satisfactory Dedicated Server”. You don’t need a Steam account: SteamCMD logs in anonymously. Run it as a normal user, not root.

  1. Install SteamCMD by following Valve’s instructions for your distro, then download the server:
    steamcmd +force_install_dir ~/SatisfactoryDedicatedServer +login anonymous +app_update 1690800 validate +quit
  2. Open the ports if your firewall is on (Ubuntu ships UFW turned off; Debian accepts everything by default):
    sudo ufw allow 7777/udp
    sudo ufw allow 7777/tcp
    sudo ufw allow 8888/tcp

    On Fedora, Rocky or Alma, use sudo firewall-cmd --permanent --add-port=7777/udp (and the same for 7777/tcp and 8888/tcp), then sudo firewall-cmd --reload.

  3. Start the server:
    cd ~/SatisfactoryDedicatedServer
    ./FactoryServer.sh
  4. Check it’s listening. This should return a route_handler_not_found error, which means it’s up:
    curl -k https://127.0.0.1:7777

Run it as a service with systemd

Started by hand, the server dies when you close the terminal and doesn’t come back after a crash. A systemd service fixes both, and the wiki’s version also checks for updates every time it starts. Save this as /etc/systemd/system/satisfactory.service, with your own user name and path:

[Unit]
Description=Satisfactory dedicated server
Wants=network-online.target
After=syslog.target network.target nss-lookup.target network-online.target

[Service]
ExecStartPre=/usr/games/steamcmd +force_install_dir "/home/your_user/SatisfactoryDedicatedServer" +login anonymous +app_update 1690800 validate +quit
ExecStart=/home/your_user/SatisfactoryDedicatedServer/FactoryServer.sh
User=your_user
Group=your_user
Restart=on-failure
RestartSec=60
KillSignal=SIGINT
WorkingDirectory=/home/your_user/SatisfactoryDedicatedServer

[Install]
WantedBy=multi-user.target

Then run sudo systemctl daemon-reload and sudo systemctl enable --now satisfactory. Keep KillSignal=SIGINT: the default SIGTERM kills the process without a clean exit. The server also doesn’t save on shutdown, so turn on Auto-Save on Player Disconnect or save before you stop it. If an old machine takes longer than 90 seconds to boot the server and systemd keeps restarting it, add TimeoutSec=300 under [Service].

Install on Windows (Steam, SteamCMD or Epic)

  • Steam: if your account owns Satisfactory, switch your library filter to show Tools and install Satisfactory Dedicated Server. Launch it like a game; a log window opens, and it going quiet after a few seconds just means it’s waiting for players.
  • Epic Games: add the free Satisfactory Dedicated Server add-on from the Satisfactory store page, search your library for it and install.
  • SteamCMD: the same command as Linux, with a Windows path:
    .\steamcmd.exe +force_install_dir "C:\GameServers\SatisfactoryServer" +login anonymous +app_update 1690800 validate +quit

    Then start it from that folder with .\FactoryServer.exe -log -unattended.

Open the ports in Windows Firewall from an admin PowerShell:

New-NetFirewallRule -DisplayName "Satisfactory UDP 7777" -Direction Inbound -Action Allow -Protocol UDP -LocalPort 7777
New-NetFirewallRule -DisplayName "Satisfactory TCP 7777" -Direction Inbound -Action Allow -Protocol TCP -LocalPort 7777
New-NetFirewallRule -DisplayName "Satisfactory TCP 8888" -Direction Inbound -Action Allow -Protocol TCP -LocalPort 8888

To keep it running after you log out and restart it after crashes, the wiki uses NSSM: nssm.exe install SatisfactoryServerService, point Path at FactoryServer.exe and set Arguments to -unattended.

Satisfactory server in Docker (Unraid, Synology, Proxmox)

The image the wiki points to is robtme/satisfactory-server (formerly wolveix). It downloads the game files into a mounted folder, updates the game on every container start, and keeps saves, blueprints and config in /config/saved. If your NAS or home server already runs containers, this is the least work.

docker run -d \
  --name=satisfactory-server \
  --restart unless-stopped \
  --volume ./satisfactory-server:/config \
  --env MAXPLAYERS=4 \
  --env PGID=1000 \
  --env PUID=1000 \
  --memory 8G \
  --publish 7777:7777/tcp \
  --publish 7777:7777/udp \
  --publish 8888:8888/tcp \
  robtme/satisfactory-server:latest
  • Set PUID and PGID to your own user ID (run id) if you see “permission denied”.
  • MAXPLAYERS, TIMEOUT (client timeout, default 30 seconds) and STEAMBETA=true (Experimental branch) are set as environment variables instead of ini edits.
  • SKIPUPDATE=true stops it from updating on restart, if you need to stay on a build while mods catch up.
  • A docker compose file takes the same variables. On Unraid, the community template from ich777 keeps saves under /mnt/user/appdata/satisfactory.

Panels such as Pterodactyl, LinuxGSM and AMP can also run the server; their own docs cover the setup.

Satisfactory server ports and port forwarding

Since update 1.1, a Satisfactory server uses two port numbers: 7777 over both UDP and TCP for game traffic and the server API, and 8888 over TCP for reliable messaging. Forward all three on your router to the server’s LAN IP and allow them through its firewall. The old 15000 and 15777 ports haven’t been used since 1.0, so close them.

Port Protocol Used for Change it with
7777 UDP Game traffic, lightweight query API -Port=
7777 TCP Server traffic, HTTPS API (what the Server Manager talks to) -Port=
8888 TCP Reliable messaging -ReliablePort=, -ExternalReliablePort=
  • To change the port, start the server with -Port=7779. If the port is busy, the server will quietly pick the next free one, so check the log for the port it actually took.
  • Don’t remap the main port. Internal and external numbers have to match for 7777 (forwarding external 7778 to internal 7777 breaks it). Only the reliable port can be remapped, with -ExternalReliablePort.
  • Several servers on one IP: give each its own -Port. Since 1.1, the reliable port picks a free one in the range 8888 to 8888+512 automatically, set in Engine.ini under [/Script/ReliableMessaging.ReliableMessagingTCPFactory].
  • Set a static LAN IP on the server, or the router may hand it a new address and your port forward stops working.
  • Several network cards: -multihome=<IP> binds the server to one address.

Can’t forward ports at all, for example behind CGNAT? You’d need a VPN tunnel, or Satisfactory server hosting with a public address and the ports already open.

Claim the server and start a game

A fresh Satisfactory server has no name, no admin and no game until someone claims it. Open Satisfactory, go to Server Manager on the main menu, click Add Server and type the address (IP, plus :port if it isn’t 7777). The first person to connect sets the server name and the admin password, then creates a new game or loads a save.

  1. Use the server’s LAN IP if you’re on the same network, or the public IP from anywhere else.
  2. Accept the certificate prompt. The server makes its own self-signed certificate, so the first connection asks you to trust it.
  3. Set the server name and admin password. Keep the password somewhere safe: admins load saves, change options and use the console.
  4. Create a game (pick the starting area and session name) or upload a save (below).
  5. Optional: set a player password under Server Settings → Player Password Protection. It’s off by default, so anyone with the address can join until you set it.

How friends connect: give them your public IP (and the port if it isn’t 7777). They add it in their own Server Manager and join from there. Joining from Join Game instead gives the “Encryption token missing” error. The game tells them the reliable port on its own.

Satisfactory dedicated server settings and config files

Most Satisfactory server settings are changed in the game: log in as admin in the Server Manager and open Server Settings. The server stores them in ServerSettings.7777.sav (the number is your port). Anything the menu doesn’t cover lives in ini files under FactoryGame/Saved/Config/LinuxServer (WindowsServer on Windows) inside the install folder.

Setting Where What it does
Auto Pause Server Settings Pauses the game when nobody is connected
Auto-Save on Player Disconnect Server Settings Saves when a player leaves; recommended, since the server doesn’t save on shutdown
Auto-Load Session Name Server Settings Which session’s latest save loads on startup
Server Restart Interval Server Settings Not an interval: the time of day of the daily restart, for example 06:00
Autosave Interval Server Settings Minutes between autosaves
Network Quality Server Settings Higher can improve load times and network smoothness, at the cost of server frame rate
MaxPlayers Game.ini, [/Script/Engine.GameSession] Player cap, default 4
InitialConnectTimeout / ConnectionTimeout Engine.ini, [/Script/OnlineSubsystemUtils.IpNetDriver] Seconds before a joining or connected player times out; default 30
mNumRotatingAutosaves Engine.ini, [/Script/FactoryGame.FGSaveSession] How many autosaves rotate; default 3
NetServerMaxTickRate Engine.ini Server tick rate, default 30. Raising it won’t fix lag if the hardware can’t hold 30

The rule that trips everyone up: only edit the ini files while the server is stopped. Satisfactory writes them on a clean shutdown, so changes made while it runs get overwritten. If a file isn’t there yet, start and stop the server once. Patches can also reset them, so check your edits after an update, and don’t make the files read-only.

The game’s Advanced Game Settings belong to the session, not to these files: admins manage them along with the other options through the Server Manager.

More than 4 players on a Satisfactory server

A Satisfactory dedicated server allows four players by default, the number the game officially supports. To play with more, set MaxPlayers in Game.ini with the server stopped. The wiki calls up to 127 theoretically possible but not practical, and warns the server is tuned for four, so raise it in small steps and give it more RAM.

[/Script/Engine.GameSession]
MaxPlayers=8

Or skip the file and add it to the launch command: -ini:Game:[/Script/Engine.GameSession]:MaxPlayers=8. In Docker, set MAXPLAYERS=8.

Upload a save, find the save location and back it up

To move an existing world to a Satisfactory server, log in as admin in the Server Manager, open Manage Saves, upload the .sav from your PC and load it. Single-player and co-op saves both work. On your PC, Steam and Epic saves are in %LOCALAPPDATA%\FactoryGame\Saved\SaveGames\<your ID>; the Steam ID folder is usually the shorter number.

What Linux server Windows server
Saves ~/.config/Epic/FactoryGame/Saved/SaveGames/server %LocalAppData%\FactoryGame\Saved\SaveGames\server
Blueprints ~/.config/Epic/FactoryGame/Saved/SaveGames/blueprints/<session> %LocalAppData%\FactoryGame\Saved\SaveGames\blueprints\<session>
Server settings ~/.config/Epic/FactoryGame/Saved/SaveGames/ServerSettings.7777.sav %LocalAppData%\FactoryGame\Saved\SaveGames\ServerSettings.7777.sav
Logs FactoryGame/Saved/Logs/FactoryGame.log in the install folder (older logs are kept as backups)

If the server runs as a Windows service, those %LocalAppData% paths sit under the service account’s profile instead (for NSSM, %WINDIR%\System32\config\systemprofile\AppData\Local).

  • Backups: copy the server save folder somewhere else on a schedule. Three rotating autosaves are not a backup.
  • Download a save from the server: copy the file from the folder above, or use the server’s HTTPS API, which has a DownloadSaveGame function.
  • Blueprints on a dedicated server: drop .sbp files (and the optional .sbpcfg) into the session’s blueprint folder, then reload the save. Blueprints don’t show up until the save is reloaded.

Satisfactory server console commands

Satisfactory server commands run in the Console tab of the Server Manager, after you log in as admin. On current versions that tab is the only way to send commands to the dedicated server; there’s no RCON. The list is short, because most server management is buttons in the Server Manager.

Command What it does
server.SaveGame <name> Saves the session under that name (use quotes if it has spaces)
FG.AutosaveInterval <seconds> Sets the autosave interval (the wiki gives 300 seconds as the default)
quit / stop / exit Shuts the server down; a service manager may start it again
server.GenerateAPIToken Creates a token for tools that use the HTTPS API
server.InvalidateAPITokens Revokes all API tokens

The wiki lists no whitelist command: a player password is how you keep a server private.

Mods on a Satisfactory dedicated server

Satisfactory server mods come from ficsit.app and are installed with Satisfactory Mod Manager (version 3.0 or newer) or ficsit-cli. Both manage a server install the same way as a local one, connecting over SFTP, FTP or a network share. Not every mod supports servers: on the mod’s ficsit.app page, look for a tick in the Server column. Every player needs the same mods and versions.

  1. Stop the server. A running server locks the mod files.
  2. In Satisfactory Mod Manager, open Manage Servers and add the server: a local path, sftp://user:password@host:port/path/, or an FTP/SMB path to the folder that holds FactoryServer.sh or FactoryServer.exe. A local Steam or Epic server is usually detected for you.
  3. Use the “compatible” filter so only server-ready mods show, and install from the same profile you use on your PC.
  4. Export that profile and send it to your players, so their mods match exactly.
  5. Start the server and read FactoryGame.log if it doesn’t come up.

How to update a Satisfactory dedicated server

To update a Satisfactory dedicated server, stop it and run the same SteamCMD command you installed it with; SteamCMD downloads only what changed. The Steam client updates its copy automatically, and the systemd service and Docker image above update on every start. The server and every player must be on the same game version.

sudo systemctl stop satisfactory
steamcmd +force_install_dir ~/SatisfactoryDedicatedServer +login anonymous +app_update 1690800 validate +quit
sudo systemctl start satisfactory
  • Experimental branch: add -beta experimental to the app_update command. Players need Experimental too.
  • Back to stable: removing the flag isn’t always enough, because Steam remembers the branch. Use -beta public to force it.
  • Error 0x606: SteamCMD can’t overwrite files that are in use, nearly always because the server is still running. Stop it, or reboot if it’s already stopped.
  • Patch notes: Coffee Stain posts them on Satisfactory’s Steam news page. The current release is 1.2 (out June 2, 2026), with fix patch 1.2.4.1 on October 12, 2026.

Common Satisfactory server problems and fixes

Most Satisfactory server problems are networking, version or loading issues. Work out which one first: is the server process running, is it listening on the port you expect, can someone on your own network connect, and only then can someone outside connect. The server log, FactoryGame.log, usually names the cause.

Problem Most likely cause Fix
“Encryption token missing” Joined through Join Game Add the server in the Server Manager and join from there
“Failed to connect to the server API” TCP 7777 not reachable, the server still loading, or a raw IPv6 address Forward TCP 7777 as well as UDP; wait for the save to load; put IPv6 addresses in brackets
“This server appears to be offline” / can’t connect Server not running, wrong port, ports not forwarded, or CGNAT Check the process (pgrep -f FactoryServer.sh), the port in the log, then test from your LAN before the internet
Joins, then stuck on the loading screen TCP 8888 (reliable port) not forwarded Forward and allow 8888 TCP
Connection timed out while joining A big save or slow PC needs more than the default 30 seconds Raise InitialConnectTimeout and ConnectionTimeout in Engine.ini (server stopped)
Server looks offline for minutes after a restart A late-game save is still loading; the server API stays unavailable while it loads Wait, then check the log before restarting again
Version mismatch Server and players on different builds or branches Update both; use the same branch (stable or Experimental)
Missing mods or crash when joining a modded server Client mods don’t match the server’s Share the server’s SMM profile and install the same versions
Keeps crashing on startup in a VM kvm64 CPU type Set the VM CPU to host
Disconnects at the same time every day The daily restart from Server Restart Interval Move the restart time to when nobody plays
Lag, rubber banding or stuttering Slow single-core CPU, too little RAM, or a very large factory Faster CPU, more RAM, try a different Network Quality; a higher tick rate won’t help
Trains stop loading or unloading A known station bug on servers Load the save locally, rebuild the Train Station, save and upload it again
“Certificate is not yet valid” Wrong clock on the PC or server Fix the time; on the server, stop it, delete ServerSettings.PORT.sav and restart
Forgot the admin password   Stop the server and delete ServerSettings.PORT.sav. It resets the name, passwords and auto-load session too, then you claim it again
Two EOS warnings, then nothing Not a problem “NAT Detection Failed” and “EOS STA Analytics disabled” are harmless; the server is waiting for players

Linux library errors: “Failed to init SDL priority manager” goes away with sudo apt install libsdl2-2.0-0:i386. If Steam’s steamclient.so can’t be found, link it into ~/.steam/sdk64/.

Shutting down safely: stop the server with quit in the console, Ctrl+C in its window, or systemctl stop. Closing the window with the X kills it before it finishes writing files.

Skip the setup: rent a Satisfactory server

Self-hosting means a PC with 8 GB or more free for the server alone, three forwarded ports, ini files you can only edit while it’s off, and an update every time Coffee Stain patches. Satisfactory server hosting on GameTeam skips that part: deploy, add the address in your Server Manager, claim it and upload your save. You pay per GB of RAM, from $0.49/GB a week (8 GB is $3.92 a week) or $1.99/GB billed monthly, with no slot fees and no port forwarding. Stopping and starting the server installs the latest version. The built-in AI copilot handles the rest: tell it “let 8 of us play, and give my friend longer to join” and it stops the server, sets MaxPlayers=8 in Game.ini, raises the timeouts in Engine.ini and starts it again. Ask “is the server broken or still loading?” and it reads the log and tells you which.

FAQ

Is the Satisfactory dedicated server free?

Yes. The server software is free on Steam (SteamCMD needs no account) and Epic. You pay only for the machine it runs on, or for hosting. Every player still needs their own copy of the game.

How much RAM does a Satisfactory server need?

8 GB is the wiki’s recommended minimum, and 8–12 GB covers most groups. Plan for 16 GB for a huge late-game factory or more than four players.

Can Steam and Epic players play on the same dedicated server?

Yes. Clients from both stores can join, wherever the server files came from. Console players can’t: dedicated servers are PC only.

How do I make a private Satisfactory server?

Set a player password under Player Password Protection in the Server Settings. It’s off by default, so until you set one, anyone with your address can join.

How do I change when the server restarts?

Set Server Restart Interval in the Server Settings. Despite the name, it’s the time of day the server restarts, once a day.

Can I run a Satisfactory server on Linux?

Yes, and it’s the lighter option: about 8 GB of disk including the OS. Ubuntu and Debian both work, through SteamCMD or Docker.

Is “AI Expansion Server” a kind of server?

No. The AI Expansion Server is an in-game part: you need 256 of them for Phase 5 of the Space Elevator. It has nothing to do with hosting.

Does the server keep running when everyone logs off?

The process does, but with Auto Pause on the game pauses until someone connects. Turn Auto Pause off if you want the factory to keep producing while you’re away.

Total
0
Shares
Leave a Reply

Your email address will not be published. Required fields are marked *