Gaming

How to Set Up a Headless Factorio Server on a VPS

Run a Factorio headless server the right way: direct download (no SteamCMD needed), port 34197, mod syncing, and why this is the game where RAM barely matters.

NXNxeonNxeon editorialAugust 4, 2026 4 min read
Quick answer

Run a Factorio headless server the right way: direct download (no SteamCMD needed), port 34197, mod syncing, and why this is the game where RAM barely matters.

Topic
Gaming
Read time
4 min read
Covers
factorio, headless server, dedicated server
Last updated
August 5, 2026

Factorio's multiplayer shines on a dedicated headless server — no graphics, minimal overhead, and rock-solid uptime. It's also refreshingly different from other survival servers: you don't need SteamCMD, RAM barely matters, and the real bottleneck is single-thread CPU. This guide sets one up cleanly.

What you need

  • A Linux VPS: Ubuntu 22.04/24.04. Factorio is light on RAM — 4 GB is plenty for most games. What matters is a fast CPU core (see below).
  • Open port: UDP 34197 (Factorio's default).

Step 1: Create a user and download the headless server

Factorio's headless server is distributed directly by the developers — no SteamCMD required:

sudo adduser --disabled-password --gecos "" factorio
sudo su - factorio
cd ~
curl -sL "https://factorio.com/get-download/stable/headless/linux64" -o factorio.tar.xz
tar -xf factorio.tar.xz

This extracts a factorio/ directory with the bin/x64/factorio binary. To update later, just download the new archive and extract it over the top.

Deploying a new server with the Nxeon one-click deploy wizard
Deploying a new server with the Nxeon one-click deploy wizard

Step 2: Create a map (save file)

The headless server runs from a save file, which you generate once:

cd ~/factorio
./bin/x64/factorio --create ./saves/myworld.zip

Step 3: Set up server settings

Copy the example settings and edit them:

cp data/server-settings.example.json data/server-settings.json
nano data/server-settings.json

Set name, description, max_players, visibility (public/LAN), and a game_password if you want it private. If you want the server to appear in the public browser, add your Factorio.com username and token.

Step 4: Open the firewall

sudo ufw allow 34197/udp
sudo ufw reload

Open UDP 34197 on any provider firewall too.

Step 5: Run it as a systemd service

Create /home/factorio/start.sh:

#!/bin/bash
cd /home/factorio/factorio
./bin/x64/factorio --start-server ./saves/myworld.zip \
  --server-settings ./data/server-settings.json
chmod +x /home/factorio/start.sh
# /etc/systemd/system/factorio.service
[Unit]
Description=Factorio Headless Server
After=network-online.target

[Service]
Type=simple
User=factorio
ExecStart=/home/factorio/start.sh
Restart=on-failure
RestartSec=10

[Install]
WantedBy=multi-user.target
sudo systemctl daemon-reload
sudo systemctl enable --now factorio
sudo journalctl -u factorio -f

Step 6: Mods (everyone must match)

Factorio mods live in the mods/ folder as .zip files, listed in mod-list.json. Drop the mod zips in, enable them in mod-list.json, and restart. The unbreakable rule: every player must run the exact same mods and versions as the server, or they can't join. Factorio helpfully offers to sync mods to clients on connect.

Why RAM barely matters (and CPU is everything)

Factorio is the classic example of a UPS/CPU-bound game. UPS (updates per second) is the server's simulation rate, and it drops when a "megabase" has too much going on for a single CPU core to keep up — because Factorio's core simulation is largely single-threaded. A 4 GB box runs enormous factories fine on memory; what limits you is per-core clock speed. If your UPS drops below 60, you need a faster CPU, not more RAM. This makes Factorio the opposite of ARK or Palworld — a useful contrast covered in how much RAM and CPU a game server needs.

Admin (RCON) and backups

Factorio supports RCON for remote administration — add --rcon-port 27015 --rcon-password yourpassword to the start command, then connect any RCON client to run console commands or Lua. In-game, admins listed in server-adminlist.json can promote others, ban players, and adjust settings.

The server autosaves periodically to the saves/ folder, but keep your own rotation too — a megabase is irreplaceable:

# nightly backup, keep two weeks
0 4 * * * tar -czf /home/factorio/backups/fac-$(date +\%F).tar.gz /home/factorio/factorio/saves && find /home/factorio/backups -name 'fac-*' -mtime +14 -delete

See how to back up your game server automatically for a fuller routine that works across every game you host.

FAQ

What port does a Factorio server use?

UDP 34197 by default. Open it on the OS and provider firewalls.

Do I need SteamCMD for a Factorio server?

No. Factorio's headless server is downloaded directly from factorio.com — no SteamCMD involved. Updating means downloading the new archive.

How much RAM does a Factorio server need?

Very little — 4 GB handles most games comfortably. Factorio is CPU-bound, not RAM-bound, so invest in a fast CPU core rather than more memory.

Why does my Factorio server's UPS drop on a big base?

Because the simulation is largely single-threaded and a huge factory overwhelms one CPU core. The fix is a higher-clock CPU; adding RAM won't help UPS.

Factorio rewards fast cores over big memory — compare high-clock plans on our pricing page or launch on game server hosting.

Game server hosting

Deploy in seconds, not weekends

Explore Game server hosting ★★★★★ Instant deploy · full root · 24/7 support
#factorio#headless server#dedicated server#mods#game servers#seobatch
NX

Nxeon · Nxeon editorial

★★★★★ Straight-talking guides from the team that runs the servers.

Game server hosting

Deploy in seconds, not weekends

Spin up a ready-to-play game server in minutes — one-click installs, DDoS protection and instant scaling.

Explore Game server hosting ★★★★★ Instant deploy · full root · 24/7 support