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 |
Satisfactory server requirements and recommended specs
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.
- 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 - 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/tcpOn Fedora, Rocky or Alma, use
sudo firewall-cmd --permanent --add-port=7777/udp(and the same for7777/tcpand8888/tcp), thensudo firewall-cmd --reload. - Start the server:
cd ~/SatisfactoryDedicatedServer ./FactoryServer.sh - Check it’s listening. This should return a
route_handler_not_founderror, 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 +quitThen 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
PUIDandPGIDto your own user ID (runid) if you see “permission denied”. MAXPLAYERS,TIMEOUT(client timeout, default 30 seconds) andSTEAMBETA=true(Experimental branch) are set as environment variables instead of ini edits.SKIPUPDATE=truestops 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 inEngine.iniunder[/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.
- Use the server’s LAN IP if you’re on the same network, or the public IP from anywhere else.
- Accept the certificate prompt. The server makes its own self-signed certificate, so the first connection asks you to trust it.
- Set the server name and admin password. Keep the password somewhere safe: admins load saves, change options and use the console.
- Create a game (pick the starting area and session name) or upload a save (below).
- 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
serversave 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
DownloadSaveGamefunction. - Blueprints on a dedicated server: drop
.sbpfiles (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.
- Stop the server. A running server locks the mod files.
- 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 holdsFactoryServer.shorFactoryServer.exe. A local Steam or Epic server is usually detected for you. - Use the “compatible” filter so only server-ready mods show, and install from the same profile you use on your PC.
- Export that profile and send it to your players, so their mods match exactly.
- Start the server and read
FactoryGame.logif 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 experimentalto theapp_updatecommand. Players need Experimental too. - Back to stable: removing the flag isn’t always enough, because Steam remembers the branch. Use
-beta publicto 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.
