SATISFACTORY · DEDICATED SERVER GUIDE · OCTOBER 2026

How to Set Up a Satisfactory Dedicated Server

The free Satisfactory dedicated server keeps your factory online when the host logs off. Here is the full setup on Windows or Linux: install, ports, first launch, claiming and locking it down, moving your save and inviting friends.

Fast core first

The server can use multiple cores, but one core still does the heaviest simulation work. For big factories, that matters more than chasing lots of slower vCPUs.

Open both ports

7777 carries game traffic and the HTTPS management API, while 8888 handles reliable messaging. Missing 8888 is the classic cause of players getting stuck on loading.

Claim and lock it

Claiming sets ownership, the admin password protects server control, and the player password protects entry. They solve different problems, so use all three parts.

Shut it down properly

Do not close the server window with the X. Use quit, Ctrl+C, or your service manager so saves and config files finish writing.

Before you start: requirements and where to run it

The dedicated server is a separate free tool. It does not need a GPU, and Steam or Epic makes no difference for joining: both can connect to the same server. Console players cannot use Satisfactory dedicated servers.

Requirement What you need Why it matters
CPU x86-64 CPU; Intel i5-3570 or AMD Ryzen 5 3600 or better; single-thread rating 2000 or higher The server can spread work across several threads, but the main game loop is fundamentally single-threaded. One fast core sets the pace for factory simulation, autosaves and busy moments.
RAM 8GB baseline; 16GB recommended for larger saves or more than 4 players Save size, player count and world state all live in memory. Low RAM pushes the machine towards swapping, which turns stutter into long hitches.
Storage Windows 12.4GB server files; Linux 8GB Server files only. You do not need the full game installed on the server machine.
OS Windows 10/11/Server 2016/2019/2022 or Debian/Ubuntu The official server tool supports these platforms. No 32-bit and no ARM.
Network Broadband; home hosting needs port forwarding or a VPN Every connected player is fed world state from the server. Weak upload shows up as slow joins, rubber-banding or timeouts.

Coffee Stain’s own explanation is useful here: the server can spawn up to 26 threads per work set, but one core always ends up doing more than the rest. That is why a fast desktop CPU usually feels better than a cheap many-core VM when a mature factory is loaded.

What the server machine needs
Figures from the official Satisfactory wiki
RAM
8GB
16GB
BaselineLarger saves or 5+ players
Disk space for server files
12.4GB
8GB
WindowsLinux
RAM grows with the save and the player count. CPU matters too: pick strong single-core speed over many slow cores.
  • Home PC: cheapest if it is already on, but your game, browser and background apps all compete with the same CPU and storage. Fine for a small private group if you can port-forward.
  • Spare PC: usually the best self-hosted option. It avoids interruptions from your own play session and can stay on without tying up your main machine.
  • VPS: tidy and always-on, but only if the CPU is decent. On virtualisation, kvm64 CPU type is a known problem for new-game creation.
  • Rented game server: easiest for friends and least hassle for updates, backups and power use. You trade control of the whole machine for convenience.

Use this simple path to decide the order of work: install, open ports, launch, claim, then either create a new session or move your current save across.

Setting up a Satisfactory server, start to finish
1. Install
SteamCMD, app 1690800
No game purchase needed
Same command updates it
2. Open ports
7777 TCP + UDP
8888 TCP
Firewall and router
3. Launch and check
FactoryServer.exe or .sh
https://IP:7777
Expect a certificate warning
4. Claim and lock
Server name
Admin + player password
In Server Manager
Then
  • Upload your save in Manage Saves
  • Set Auto-Load Session Name
  • Friends add the server in Server Manager
Never use Join Game for a dedicated server.
Do the steps in this order: each one depends on the one before it.

Install with SteamCMD on Windows and Linux

You can install the server through SteamCMD without owning Satisfactory on Steam. On Epic, the server tool also exists as a free dedicated server add-on, but SteamCMD is the straightforward route on both Windows and Linux.

On Linux, do this as a regular user such as steam, not as root. That keeps file ownership sensible and reduces the damage a bad command can do.

Base install

steamcmd.exe +force_install_dir "C:\GameServers\SatisfactoryServer" +login anonymous +app_update 1690800 validate +quit
steamcmd +force_install_dir ~/SatisfactoryDedicatedServer +login anonymous +app_update 1690800 validate +quit

The same command updates the server later. Stop the server first before you run it again; otherwise SteamCMD can report 0x606 because files are still in use.

Experimental branch

+app_update 1690800 -beta experimental validate
+app_update 1690800 -beta public validate

Add -beta experimental if your group wants that branch. To go back, use -beta public explicitly; simply removing the beta flag may not switch it back.

Ports and firewall: 7777 and 8888 do different jobs

Satisfactory now needs 7777 on both TCP and UDP, plus 8888 on TCP. These are not duplicates. 7777/TCP carries server traffic and the HTTPS API, 7777/UDP carries game traffic and the lightweight query API, and 8888/TCP handles reliable messaging that the join process depends on.

The practical result is simple: if 8888 is missing, players can appear to connect and then sit on loading forever. If 7777 is busy locally, the server can try the next port up, but you cannot remap the standard port on the router. External and internal port numbers must match the port the server is actually listening on.

Which port does what
Job7777 TCP7777 UDP8888 TCP
Server traffic and HTTPS APIYesNoNo
Game trafficNoYesNo
Lightweight query APINoYesNo
Reliable messagingNoNoYes
Can use a different external portNoNoYes
If 8888 TCP is not forwarded, players connect but stay stuck on loading. 7777 must use the same port number inside and outside.
All three need to be open in the server’s firewall and, for home hosting, forwarded on the router.

Windows firewall

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

Linux firewalld

firewall-cmd --permanent --add-port=7777/tcp
firewall-cmd --permanent --add-port=7777/udp
firewall-cmd --permanent --add-port=8888/tcp
firewall-cmd --reload

If you are hosting from home, you also need matching router forwards for the same ports. Think of the router as the gate to your network and the OS firewall as the gate on the machine itself; both have to allow the traffic.

First launch, check it is up, then claim and lock it down

Launch it

FactoryServer.exe -log -unattended
./FactoryServer.sh

On Linux, logging and unattended mode are already on by default. If you need a different listen port, use -Port=; if you need a different reliable port, use -ReliablePort=. Keep in mind that if the reliable port is already in use, the server can fail to start.

Check it is really listening

A quick browser check is the easiest first test because it confirms the HTTPS API on 7777/TCP is alive:

https://<LAN-IP>:7777/

Use https, not http. You should expect a certificate warning because the server uses a self-signed certificate. After that, confirm the process exists:

pgrep -f FactoryServer.sh
tasklist | find "FactoryServer.exe"

If the process is running but 7777 does not answer, check which port it actually bound to. That often means something else had already claimed 7777.

Claim the server and protect it

In game, open Server Manager, add the server by IP and port, then claim it. Claiming is what turns an unowned process into your managed server.

  • Server name: just the label people see in Server Manager.
  • Admin password: protects server administration, including loading saves, changing options and starting a new game.
  • Player password: protects entry. This is off by default, so turn on Player Password Protection for a private group.

Use both passwords because they guard different things. A player password keeps strangers out if your IP is shared around; the admin password stops regular players from taking over the server settings.

If you forget the admin password, delete ServerSettings.7777.sav from just above the save folder and reclaim the server. That also resets the server name, player password, auto-load session and certificate, so treat it as a full reset of server identity.

Move your existing world and keep proper backups

To bring over a local factory, open Manage Saves in Server Manager and upload the save from your PC. Then set Auto-Load Session Name to that save so the server comes back into the correct world after every restart instead of waiting for manual selection.

Server saves live here:

  • Linux: ~/.config/Epic/FactoryGame/Saved/SaveGames/server
  • Windows: %LocalAppData%\FactoryGame\Saved\SaveGames\server

Back up that folder before major updates, before changing several settings at once, and before experimenting with branches. Save files are the part that matters; reinstalling the server binaries is easy, rebuilding a factory is not.

If you want a named snapshot before maintenance, use server.SaveGame saveName from the server console. That gives you a manual restore point separate from the autosave rotation.

Settings that matter for stability

Most performance complaints on private servers come from a few settings being misunderstood. The rule is to change one thing at a time, then watch the symptom you were trying to fix: join time, save hitches, idle CPU use, or disconnects.

Setting What it does Private-group recommendation
Auto Pause Pauses the world when nobody is connected. Cuts idle CPU use because the simulation stops instead of ticking an empty world. Leave it on unless you specifically want the factory to keep running with nobody online. If you turn it off, expect more constant CPU use.
Auto-Save on Player Disconnect Writes a save when someone leaves. Costs a short save hitch and disk activity at that moment. Turn it on for a private group. It is a simple way to avoid “we logged off fine, then the machine crashed later” progress loss.
Autosave Interval Default is every 300 seconds, which is 5 minutes. Saving interrupts play briefly while the world is written to disk. Start with the default. Shorter intervals mean less progress lost after a crash, but more frequent hitches.
Rotating autosaves The server keeps 3 rotating autosaves by default, giving you several recent rollback points. Keep at least the default 3. Fewer copies reduce recovery options after corruption or a bad build session.
Daily restart time This is a daily time, not an every-X-hours interval. A clean restart resets the process and reloads the save. Set it for a quiet time if the server stays up all day. It can help long-running servers stay tidy, but it will disconnect anyone online.
Network Quality Higher values can improve client load times and network performance, but they cost server framerate. Only raise it if clients are loading slowly or catching up badly after join. If server stutter gets worse, put it back.
Player cap The default cap is 4, and the server is tuned for 4. More players mean more simulation load, memory use and bandwidth. Raise MaxPlayers only to the actual size of your group. If you plan for more than 4 or larger saves, 16GB is the safer memory target.
Connection timeouts Default connection timeout is 30 seconds. Slow PCs can run out of time while loading and validating the world. Only raise InitialConnectTimeout and ConnectionTimeout if older machines time out during loading. It helps slow clients, but dead connections take longer to clear.
Tick rate The default server tick is 30. Raising it asks the main thread to do more work, more often. Leave it at 30. If the hardware cannot sustain 30 already, increasing it will not fix lag and usually makes the CPU bottleneck worse.

To raise the cap without editing files, you can use a launch option such as:

FactoryServer.exe -log -unattended -ini:Game:[/Script/Engine.GameSession]:MaxPlayers=8

If you do edit config files directly, stop the server first. On Linux they sit in <install>/FactoryGame/Saved/Config/LinuxServer/; on Windows they sit in <install>\FactoryGame\Saved\Config\WindowsServer\. The server rewrites these files on graceful shutdown, and some of them only appear after the first clean stop, so do not set them read-only.

Invite friends the right way

Give friends your public IP and the server port. If you are not using the default, tell them the actual port the server is listening on. They should open Server Manager, add the server there, and join from that screen.

Do not use Join Game for a dedicated server. That route commonly throws Encryption token missing because it is the wrong join path for this setup.

If you are using IPv6, put the address in brackets when entering it. If a friend cannot get in from outside your network, follow the check order below before changing half the server at once.

Friends can’t join? Work down the list
A friend can’t get into the server
Is the server process running?
No
Start itCheck pgrep or tasklist, then the logs in FactoryGame/Saved/Logs.
Yes
Does https://LAN-IP:7777 answer on your network?
No
Wrong portThe server may have bound to another port. Check what it is listening on.
Yes
Are 7777 TCP, 7777 UDP and 8888 TCP open in the firewall?
No
FirewallAdd all three rules on the server machine.
Yes
Are all three forwarded on the router to this machine?
No
RouterForward them. 7777 must keep the same number outside.
Yes
Did they add the server in Server Manager?
No
Join pathJoin Game gives “Encryption token missing”.
Yes
Still stuck on loading: re-check 8888 TCP end to end
Each question tests one layer, from the process outwards to the router and the join path.

Keep it healthy and fix common problems

Graceful shutdown and updates

Always stop the server cleanly: use quit in the server console or Server Manager, send SIGINT, run systemctl stop satisfactory if it is a service, or press Ctrl+C in the Windows console. Never close the window with the X. A hard close can kill the process before it finishes writing saves, certificates and config changes.

For updates, stop first and then run the same SteamCMD command you used to install. If you see 0x606, something still has the files open; the server is usually still running, and if it is not, a reboot normally clears the file lock.

Logs and crash reports

Logs live in FactoryGame/Saved/Logs. Crash dumps live in FactoryGame/Saved/Crashes. On Linux, crash reports upload by default; if you want to opt out, add this while the server is stopped:

[CrashReportClient]
bImplicitSend=False
Symptom Likely cause First fix
Stuck on loading 8888/TCP is not forwarded or blocked Open and forward 8888/TCP, then retry. This is the usual cause when people can reach the server but never finish joining.
Encryption token missing Joined through Join Game instead of Server Manager Add the server in Server Manager and join from there.
Can’t see server Server not listening on the expected port, firewall block, or router forwards missing Check https://<LAN-IP>:7777/ first, then confirm firewall rules and router forwards for 7777/TCP, 7777/UDP and 8888/TCP.
Crash on new game on VPS VM CPU type is kvm64 Change the VM CPU type to host.
0x606 in SteamCMD Files are still in use Stop the server fully before updating. If it is already stopped, reboot and try again.
Certificate is not yet valid Wrong clock or timezone on client or server Fix time and timezone on both ends. If the server clock was wrong when the certificate was created, delete the server settings file and reclaim.
Timeouts on older PCs Clients need longer than the default 30 seconds to load and connect Raise InitialConnectTimeout and ConnectionTimeout in Engine.ini.
Forgot admin password No recovery inside the normal UI Delete ServerSettings.7777.sav, then reclaim the server. Remember that this also resets name, player password, auto-load session and certificate.

Self-host or rent: make the boring call first

If you are still weighing self-hosting a game server against running a game server on a VPS, judge it on these practical points rather than convenience alone.

Question Self-hosted usually makes sense if… Renting is usually simpler if…
PC on 24/7 You already have a machine or spare PC that can stay on reliably. You do not want your electricity use, Windows restarts or local crashes deciding uptime.
Upload quality Your home broadband upload is steady and your router is under your control. Your upload is weak, shared, or you cannot do clean port forwards.
Single-core speed You have a decent desktop CPU and are not also hammering it with other tasks. Your available machine is old, power-limited or stuck on slow virtual cores.
Backups and restarts You are happy to copy save folders, schedule clean restarts and read logs when something breaks. You want panel tools to handle the routine admin work with less fuss.

If the table points towards renting, our Satisfactory server hosting comparison is the quickest way to compare small private-group plans.

The cheapest Satisfactory plan in our comparison is £3.03/month ($4.03), though a starter plan suits a fresh factory better than a months-old one.

Conversion used: £1 = $1.33

Want to skip port forwards and keep the world online?

Compare plans on uptime, control panel quality, backups and how easy they make updates and save handling.

Compare the best Satisfactory server hosts

Satisfactory server FAQ

Is the Satisfactory dedicated server free?

Yes. The dedicated server tool is free, and on Steam you can install it through SteamCMD without owning the game there. On Epic, it is also available as a free dedicated server tool add-on.

What ports does a Satisfactory server need?

You need 7777/TCP, 7777/UDP and 8888/TCP. 7777 covers game traffic and the HTTPS API, while 8888 handles reliable messaging used during joining.

Why are my friends stuck on loading when joining my Satisfactory server?

The usual cause is 8888/TCP not being forwarded or being blocked by a firewall. Players can sometimes reach the server well enough to start joining, but the reliable channel never completes, so loading never finishes.

How many players can join a Satisfactory dedicated server?

The default cap is 4, and the server is tuned for 4. You can raise MaxPlayers, and the wiki puts the theoretical ceiling at 127, but each extra player adds more simulation, memory and network load, so practical stability matters more than the headline limit.

Can Epic and Steam players join the same Satisfactory server?

Yes. The dedicated server does not split players by store platform, so Steam and Epic users can join the same world. The important part is that they join through Server Manager with the correct IP, port and password if you set one.

More Satisfactory server help

The host comparison, plus our guides on running a server yourself.

Game updates, port handling and host panels do change. If a host’s current panel differs from the steps here, follow the panel’s present wording, but keep the same underlying rules on ports, passwords, saves and graceful shutdowns.