Satisfactory Field guide

Install Satisfactory Dedicated Server on Linux Ubuntu: SteamCMD and systemd Service

Complete installation guide for Satisfactory Dedicated Server on Linux Ubuntu: SteamCMD setup, systemd daemon with LimitNOFILE=65536, UDP 7777 firewall, and server claim.

Install Satisfactory Dedicated Server on Linux Ubuntu: SteamCMD and systemd Service

Running an autonomous dedicated Satisfactory server allows player groups to construct sprawling, interconnected megafactories without binding gameplay to a host player's PC. Hosting on Linux delivers superior resource efficiency and system reliability. However, achieving enterprise-grade uptime requires dedicated service accounts, carefully configured systemd daemons with elevated file descriptor limits, and proper UDP firewall routing.

This step-by-step tutorial covers deploying a dedicated Satisfactory server on Ubuntu Linux via SteamCMD, provisioning an automated systemd unit, and completing server claiming via the game client.

System Prerequisites and Ubuntu Environment Setup#

Satisfactory executes on Unreal Engine, demanding capable server hardware:

  • CPU: Minimum 4 dedicated cores featuring high single-thread clock speeds (3.5 GHz+).
  • RAM: Minimum 12 GB RAM for new factories; 16 to 24 GB RAM for late-game industrial complexes with dense conveyor networks.
  • Storage: 30 GB+ available NVMe storage.
  • Operating System: Ubuntu 22.04 or 24.04 LTS (x86_64).

Update system packages and install SteamCMD alongside required 32-bit compatibility libraries:

bash
sudo apt update && sudo apt install -y steamcmd lib32gcc-s1 curl

Provision a non-root system account dedicated to running Satisfactory:

bash
sudo useradd -m -s /bin/bash satisfactory
sudo mkdir -p /opt/satisfactory
sudo chown -R satisfactory:satisfactory /opt/satisfactory

Installing the Dedicated Server via SteamCMD#

Switch to the satisfactory user and download the dedicated server binaries (SteamCMD App ID 1690800):

bash
/usr/games/steamcmd +force_install_dir /opt/satisfactory \
  +login anonymous \
  +app_update 1690800 validate \
  +quit

SteamCMD validates installation manifests and streams current game binaries into /opt/satisfactory. Upon completion, the console reports: Success! App '1690800' fully installed.

Creating and Configuring the systemd Daemon Unit#

Running headless game servers directly inside interactive tmux or screen sessions provides no automatic crash recovery or reboot resilience. Create an official systemd service unit:

bash
sudo tee /etc/systemd/system/satisfactory.service << 'EOF'
[Unit]
Description=Satisfactory Dedicated Server
After=network.target

[Service]
Type=simple
User=satisfactory
Group=satisfactory
WorkingDirectory=/opt/satisfactory
ExecStart=/opt/satisfactory/Engine/Binaries/Linux/UnrealServer-Linux-Shipping FactoryGame -unattended
Restart=always
RestartSec=10
LimitNOFILE=65536

[Install]
WantedBy=multi-user.target
EOF

The LimitNOFILE=65536 directive is critical: Unreal Engine handles thousands of simultaneous file descriptors for factory assets and network sockets. The default limit of 1024 causes premature crashes with Too many open files errors.

Through a managed server management panel, process supervision, memory safety boundaries, and auto-restart policies are provisioned automatically without writing systemd definitions manually.

Configuring Firewall Rules and Network Ports#

Beginning with release 1.0, Satisfactory consolidated all network traffic (game data, state polling, and beacons) onto a single unified port: UDP 7777.

Permit UDP 7777 through the host firewall:

bash
sudo ufw allow 7777/udp comment "Satisfactory Game and Query"
sudo ufw status verbose

Enable and launch the systemd service:

bash
sudo systemctl daemon-reload
sudo systemctl enable --now satisfactory

Verify service status and UDP socket binding:

bash
sudo systemctl status satisfactory --no-pager
sudo ss -ulnp | grep 7777

Claiming the Server in the Satisfactory Client#

Once the daemon binds UDP port 7777:

  1. Launch the Satisfactory client on your PC.
  2. In the main menu, navigate to the Server Manager.
  3. Click Add Server.
  4. Enter the public IP address of your Linux instance and port 7777.
  5. Upon initial handshake, the client will prompt you to set a server name and establish an administrative password to complete the server claim.
  6. Under the Create Game tab, pick your starting biome and begin factory construction.

Your Satisfactory dedicated server is fully provisioned, protected by systemd auto-recovery, and ready for cooperative engineering.

Sources#