A start-to-finish guide for hosting your own Satisfactory dedicated server — install via SteamCMD (App ID 1690800), forward the right ports, run it as a service, then claim it in-game. Current for Satisfactory 1.1, including the new TCP 8888 port and the connection errors everyone hits.
A dedicated server runs the world independently of any player, so it needs a machine that stays on. You can use a spare PC or rent a host. Here's the realistic floor:
Be clear on one thing before you start: in Satisfactory the meaningful gameplay knobs (rates, unlocks, "cheats") live in the save and the in-game Server Manager, not in a config file you can template. That's why the rest of this page is a setup walkthrough rather than a settings table.
Nine steps from nothing to a claimed, running server. Steps 1–5 stand up the server software; 6–9 are done from the game client.
SteamCMD is Valve's command-line Steam client — it's how you download and update dedicated server files. Grab it from Valve, unpack it to a folder, and run it once so it self-updates. You do not need to log in with a personal Steam account for Satisfactory; the server downloads anonymously.
This is the step people get wrong. The Satisfactory Dedicated Server is App ID 1690800 — a completely different app from the game client (526870). Installing the client by mistake gives you a game, not a server. Point SteamCMD at the dedicated-server app:
steamcmd +force_install_dir <path> +login anonymous +app_update 1690800 validate +quitSwap <path> for where you want the files. The validate flag verifies the download — keep it; it's also how you repair a broken install later.
On a home connection you'll need to forward ports on your router for anyone outside your network to connect. Satisfactory 1.1 uses UDP 7777 + TCP 7777 (game) and TCP 8888 (reliable messaging). Forward all three, and open the same ports in your host's firewall. Full detail — including the 1.0-to-1.1 gotcha — is in the ports section below.
Launch the server executable for your OS:
# Windows
FactoryServer.exe -log -unattended
# Linux (binary: FactoryServer-Linux-Shipping)
./FactoryServer.sh-log opens a console window so you can watch it boot. -unattended skips interactive prompts — it's the default on Linux, so you only really need to add it on Windows.
Don't rely on a console window staying open. Wrap the server so it restarts on failure and comes back after a reboot.
Linux — systemd. Create /etc/systemd/system/satisfactory.service (adjust the user and paths), then systemctl enable --now satisfactory:
[Unit]
Description=Satisfactory Dedicated Server
After=network-online.target
Wants=network-online.target
[Service]
User=satisfactory
WorkingDirectory=/home/satisfactory/server
ExecStart=/home/satisfactory/server/FactoryServer.sh
Restart=on-failure
RestartSec=15
KillSignal=SIGINT
[Install]
WantedBy=multi-user.targetWindows. Use NSSM to register FactoryServer.exe as a Windows service (set it to restart on exit), or create a Task Scheduler task that runs at startup and restarts on failure. Either keeps the server up without you babysitting a window.
Open Satisfactory, go to Server Manager → Add Server, and enter the server's IP:port (for example 203.0.113.10:7777; use your machine's LAN IP if you're on the same network).
On first connection the server is unclaimed. Claim it by setting a Server Name and an Administrator Password. That admin password gates every setting and grants full control — including deleting saves — so make it long and strong and don't hand it out casually.
Optionally set a separate join (client) password if you want a private server that's still administered by only a few people. The admin password and the join password are two different things.
From Server Manager you can either create a new game — picking your starting location and applying any Advanced Game Settings at creation — or upload an existing single-player save to carry on your solo factory with friends.
Server Manager also handles the housekeeping: which save auto-loads on boot, auto-pause when the server is empty (saves CPU), and autosave frequency. Set these once and back up your saves folder on a schedule — see the troubleshooting notes on backups.
Ports are the #1 reason a server "doesn't work." Satisfactory's port setup changed across versions, so a lot of older guides are flat wrong. Here's what 1.1 actually needs.
| Port | Protocol | Purpose | Forward? |
|---|---|---|---|
| 7777 | UDP | Main game traffic. Keep internal = external (no port redirection). | Yes |
| 7777 | TCP | Also game traffic — same number, both protocols. You need both 7777 entries. | Yes |
| 8888 | TCP | Reliable messaging, added in Patch 1.1. Without it, clients hang on loading. | Yes |
The reliable port scans a range from 8888 up to 9399 looking for a free slot. If you run a single server, pin it to one port with the launch argument -ReliablePort=8888 so you know exactly which port to forward. (Running several servers on one box? Give each its own reliable port in that range.)
15000 (beacon) and 15777 (query). Those have been dead since 1.0 — if a guide still tells you to open 15000/15777, it's outdated. Today it's just 7777 (UDP+TCP) and 8888 (TCP).Most settings are managed in-game, but a handful of useful values live in INI files. Edit these only while the server is stopped — the server rewrites these files on shutdown, and game updates can overwrite them, so a change made while it's running gets wiped.
| File & key | What it does | Default | Note |
|---|---|---|---|
| Game.ini → [/Script/Engine.GameSession] MaxPlayers | Maximum simultaneous players. | 4 | Raise to 8 for friends. Theoretical max 127; 4–8 is practical. |
| Engine.ini → NetServerMaxTickRate | Server simulation/network tick rate. Set it in both the IpNetDriver and EpicNetDriver blocks. | 30 | Higher is smoother but heavier. |
| Engine.ini → mNumRotatingAutosaves | How many rotating autosave slots to keep. | 3 | More slots = more rollback points. |
| Engine.ini → connection timeouts | How long before an idle/slow client is dropped. | 30.0 | Seconds. Raise for high-latency players. |
| Engine.ini → PortRangeBegin / PortRangeLength | Reliable-messaging port range (the 8888→9399 scan). | 8888 / 512 | Or just pin it with -ReliablePort=. |
| GameUserSettings.ini → FG.AutosaveInterval | Seconds between autosaves. | 300 | 300s = every 5 minutes. |
| GameUserSettings.ini → FG.DisableSeasonalEvents | Turns seasonal (FICSMAS, etc.) events off. | 0 | Set to 1 to disable. |
ServerSettings.<port>.sav — not in these INI files. So if a setting isn't in the table above, you change it in-game, not on disk.The gameplay-altering toggles — No Build Cost, No Power, Flight, God Mode, Keep Inventory, Unlock All Tiers, Set Starting Tier / Game Phase, Disable Arachnids, and so on — are Advanced Game Settings (AGS). You enable them in-game at world creation, and after that they're toggled from the Esc menu. There is no config file for these; they live in the save.
Almost every "my Satisfactory server won't work" post is one of these. Find the symptom, apply the fix.
| Symptom | Cause & fix |
|---|---|
| Shows "Offline" in Server Manager even though it's running | Known 1.0+ behaviour where the server's API "sleeps." Don't run the game client on the same machine as the server. If your public IP changed, remove and re-add the server entry. Give it a moment to wake after a fresh boot. |
| "Encryption token" error when joining | You tried to join via the friends list / "Join Game." A dedicated server must be added through Server Manager → Add Server by IP:port. |
| Stuck on "loading" forever after connecting | TCP 8888 isn't open. The 1.1 reliable port is being blocked — forward TCP 8888 and add the firewall rule. This is the classic 1.0→1.1 upgrade trap. |
| Can't see or connect to the server at all | Forward both UDP 7777 and TCP 7777 (same number, both protocols) and open them in the firewall. Double-check you're using the right public vs. LAN IP. |
| More than 4 players can't join | You're on the default cap. Raise MaxPlayers in Game.ini (while the server is stopped) to 8 or higher. |
| Crashes or poor performance | Usually RAM — 8 GB minimum, 16 GB recommended for big factories. Also re-run the install with validate to repair corrupted files. |
| Version mismatch / client and server won't agree | Re-run +app_update 1690800 to update the server, and make sure both are on the same branch (e.g. both stable, or both experimental). |
| Worried about losing progress | Autosave defaults to every 300s with 3 rotating slots. For safety, back up the saves folder on a schedule — autosaves rotate and won't protect you from a bad week. |
+login anonymous (App ID 1690800) — you don't need a second copy of the game to host it. The only cost is optional: renting a machine to run it on.MaxPlayers in Game.ini under [/Script/Engine.GameSession] — 8 is common for a group of friends. The theoretical max is 127, but 4–8 is the practical range before performance drops.15000 and 15777 are dead — ignore guides that still list them. See the ports section.IP:port.MaxPlayers, tick rate, autosave), and they must be edited while the server is stopped because the server rewrites them on shutdown. See config files.Hosting another game too? Our config generators turn server settings into sliders and toggles and hand you a ready-to-paste file — no hand-editing.