ServerSizer

Games Satisfactory

Satisfactory server requirements

Build 24656085, 2026-10-05. Native Linux server. Steam SteamDB

Requirements

Our benchmarkCoffee StainSatisfactory wikiXGamingServer
CPU2% of one core, idleMin 4-core i5-3570, rec 6 physical coresi5-3570 or Ryzen 5 3600+, single-thread rating 2000+High single-thread clock, rating 2000+
RAM2.6 GB idle, 3.4 GB peak8 GB min, 16 GB rec8 GB, 16 GB for big saves or 5+ players8 GB min, 16 GB rec, 12 GB middle
Disk2.8 GB install20 GB, SSD recommended12.4 GB files (Windows), 8 GB total (Linux)SSD strongly preferred
NetworkUDP 7777, TCP 7777 and 8888Internet for multiplayerBroadband, 7777 TCP+UDP, 8888 TCP7777 TCP+UDP, 8888 TCP
OSLinux, nativeWindows 10 min, Windows 11 rec, 64-bitWindows 10/11 or Server 2016-2022, Debian or Ubuntu

RAM by players

Satisfactory wiki
8 GB
XGamingServer
8 to 12 GB
  • Recommended
  • Satisfactory wiki: "8GB. 16GB RAM may be recommended for larger saves or to host more than 4 players."
  • XGamingServer: "Early/mid-game, 1-4 players: 8-12GB RAM. 4+ players or large late-game saves: 16GB RAM. Heavily modded or megafactory builds: 16GB+."

Memory over time

0 GB1 GB2 GB3 GB4 GB5 GBnew gamedaily restart3.4 GB0 h2 h4 h6 h8 h10 h0 GB1 GB2 GB3 GB4 GB5 GBnew gamedaily restart3.4 GB0 h4 h8 h
  • In use
  • Peak, with cache
Raw data (CSV)

Pending

  • 24 hours idle
  • One player for 30 minutes
  • Built-up late-game save
  • Three warm restarts

Ports

PortProtocolUseOur server
7777UDPGame traffic. Set with -Port.Open
7777TCPHTTPS admin API and game traffic. Same number as UDP.Open
8888TCPReliable messaging, since patch 1.1. Set with -ReliablePort.Open

Forward all three. Same numbers outside and inside.

Docker setup

4 steps
  1. Download

    Free anonymous download, Steam app 1690800, about 2.8 GB.

    docker run --rm -v /srv/games/satisfactory:/data steamcmd/steamcmd:latest \
      +@sSteamCmdForcePlatformType linux +force_install_dir /data \
      +login anonymous +app_info_update 1 +app_update 1690800 validate +quit
  2. Run

    Ubuntu 24.04 with ca-certificates and libcurl, tagged game_runtime (as on the Palworld page). Saves in ~/.config/Epic, on a volume the user can write.

    printf 'FROM ubuntu:24.04\nRUN apt-get update && apt-get install -y --no-install-recommends ca-certificates libcurl4t64 && rm -rf /var/lib/apt/lists/*\nUSER ubuntu\n' | docker build -t game_runtime -
    chown -R 1000:1000 /srv/games/satisfactory
    docker volume create satisfactory_save
    docker run --rm -v satisfactory_save:/x ubuntu:24.04 chown 1000:1000 /x
    docker run -d --name satisfactory --memory 12g \
      -v /srv/games/satisfactory:/satisfactory -w /satisfactory \
      -v satisfactory_save:/home/ubuntu/.config/Epic \
      game_runtime ./FactoryServer.sh -log -unattended
  3. Claim

    Admin API up 2.3 seconds after start. Unclaimed server: passwordless login, then claim with a name and admin password for an admin token.

    API=https://SERVER_IP:7777/api/v1
    TOKEN=$(curl -sk -H 'Content-Type: application/json' \
      -d '{"function":"PasswordlessLogin","data":{"MinimumPrivilegeLevel":"InitialAdmin"}}' $API \
      | jq -r .data.authenticationToken)
    ADMIN=$(curl -sk -H 'Content-Type: application/json' -H "Authorization: Bearer $TOKEN" \
      -d '{"function":"ClaimServer","data":{"ServerName":"My server","AdminPassword":"change-me"}}' $API \
      | jq -r .data.authenticationToken)
  4. New game

    Works on build 24656085. MapName, bSkipOnboarding and GameModeSettings required, though unmarked in the published API notes. World running 15 seconds later.

    curl -sk -H 'Content-Type: application/json' -H "Authorization: Bearer $ADMIN" -d '{
      "function": "CreateNewGame",
      "data": {"NewGameData": {
        "SessionName": "My game",
        "MapName": "/Game/FactoryGame/Map/GameLevel01/Persistent_Level",
        "StartingLocation": "Grass Fields",
        "bSkipOnboarding": true,
        "AdvancedGameSettings": {},
        "GameModeSettings": {},
        "CustomOptionsOnlyForModding": {}
      }}}' $API

Settings

12 settings

Launch options on the start command; server options in the Server Manager or the API.

SettingWhat it does
-Port=7777Launch option. Game port, UDP and TCP.
-ReliablePort=8888Launch option. Reliable messaging port (TCP), since patch 1.1.
-ExternalReliablePort=Launch option. For a reliable port remapped on the way in.
-multihome=Launch option. Bind one IP on a machine with several.
-log -unattendedLaunch options. Log to the console; never wait for input.
FG.DSAutoPause=TrueServer option. Pauses the world with nobody connected. On by default.
FG.DSAutoSaveOnDisconnect=TrueServer option. Save on player disconnect.
FG.AutosaveInterval=300.0Server option. Seconds between autosaves.
FG.ServerRestartTimeSlot=1440.0Server option. Daily session reboot, in minutes after midnight server time; 1440 is midnight. Bench: 00:00 UTC.
FG.SendGameplayData=TrueServer option. Gameplay data to Coffee Stain. On by default.
FG.EnableSeasonalEvents=TrueServer option. Seasonal events such as FICSMAS.
FG.NetworkQuality=1Server option. Network quality preset.

Troubleshooting

6 problems
CreateNewGame: 'Missing JSON value named MapName' (or bSkipOnboarding, or GameModeSettings)
Build 24656085 requires all three; the field is bSkipOnboarding, not SkipOnboarding. One missing field named per attempt; working body in Docker setup step 4.
Nobody can join a new server
No game yet. Claim it, then create or upload a game via the Server Manager or the admin API.
World saves and reloads once a day
Scheduled session restart: FG.ServerRestartTimeSlot, default midnight server time. Bench log at 00:00 UTC: 'Session Restart Timer elapsed, rebooting the session to maintain clock stability/game performance'; memory peaked at 3.4 GB, above the first load. Set the slot to an hour nobody plays.
Near 0% CPU, world not moving
Expected with nobody connected: FG.DSAutoPause, on by default, pauses the world (isGamePaused=true). Resumes when someone joins.
No connections after patch 1.1
Patch 1.1 added TCP 8888 for reliable messaging. Forward it with UDP and TCP 7777.
Remapped port 7777 fails
Port redirection unsupported for the standard port (official wiki); external and internal numbers must match. Change -Port instead.

Method

build 24656085
ServerSatisfactory dedicated server, Steam build 24656085, downloaded 2026-10-05.
ImageMinimal ubuntu:24.04 image with ca-certificates and libcurl4t64, run as a regular user (uid 1000), saves on a Docker volume.
MachineAMD Ryzen 9 5950X, Proxmox VE 9, each game server in Docker inside a dedicated LXC container. 12 GB memory limit, no swap.
Command./FactoryServer.sh -log -unattended

Changes from defaults

  • Claimed and new game created via the HTTPS API, not the client's Server Manager. Same claimed server and session.
  • New game: Grass Fields start, onboarding skipped, other game and server settings default.
  • Default ports.

Full method

Sources