Menu
 

How to Host a Factorio Headless Server (Linux + SteamCMD)

How to Host a Factorio Headless Server (Linux)

This guide walks through standing up a Factorio dedicated server on Linux. There are two install paths: the headless tarball from Wube Software (no graphics or sounds, smaller download) and SteamCMD (Steam app 427520, full game files but starts headless when given --start-server flags).

Two valid install methods: the headless package is more efficient for a server-only host. SteamCMD downloads the full game data but behaves identically as a server when launched with --start-server. Pick whichever fits your workflow.

Method A: Headless Tarball (Recommended for Server-Only Hosts)

Wube Software publishes a Linux headless package at factorio.com/download/headless. Download, extract, run.

mkdir -p /opt/factorio && cd /opt/factorio
wget https://factorio.com/get-download/stable/headless/linux64 -O factorio_headless.tar.xz
tar -xJvf factorio_headless.tar.xz

Method B: SteamCMD

If you prefer SteamCMD or want a single-tool flow:

steamcmd +force_install_dir /opt/factorio +login anonymous +app_update 427520 validate +quit

The downloaded build is the full game (with graphics/sounds), but it starts in headless mode when you pass --start-server at launch — same behavior as the dedicated headless package.

Step 2: Generate or Bring a Save

Factorio's dedicated server runs from a save file. Either:

  • Copy an existing single-player save into /opt/factorio/saves/
  • Or generate a new server-side save: ./bin/x64/factorio --create ./saves/my-save.zip

Step 3: Launch the Server

cd /opt/factorio
./bin/x64/factorio --start-server ./saves/my-save.zip

Run ./bin/x64/factorio --help for the full list of command-line arguments. Common useful ones:

FlagPurpose
--start-server SAVE.zipStart headless with the named save
--start-server-load-latestAuto-pick the most recent save in saves/
--server-settings server-settings.jsonJSON file with server name, password, visibility, autosave, etc.
--server-adminlist server-adminlist.jsonJSON file with admin usernames
--server-banlist server-banlist.jsonJSON file with banned usernames
--server-whitelist server-whitelist.jsonJSON file with whitelisted usernames
--port NUDP port (default 34197)
--rcon-port NRCON port (TCP)
--rcon-password PASSRCON password

Step 4: Edit server-settings.json

Factorio ships a data/server-settings.example.json template. Copy it and edit:

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

Key fields:

  • name — server display name in the public browser
  • description — short description shown to browsing players
  • tags — discoverability tags
  • game_password — connect password (empty for open)
  • visibility.public — whether to advertise on the Factorio public browser
  • visibility.lan — LAN announce
  • autosave_interval — autosave every N minutes
  • autosave_slots — how many rotating autosave slots to keep
  • afk_autokick_interval — kick idle players after N minutes
  • auto_pause — pause when no players online

Step 5: Open the Port

Default Factorio port is UDP 34197. Forward that port on your router/firewall. If you want public browser visibility, the server announces itself to the Factorio matchmaker — no inbound DNS work needed.

If you also enable RCON, open the configured RCON port (TCP).

Step 6: Mods

Mods are downloaded automatically when set in the save. Server-side mod installation:

  1. Subscribe to the mods on mods.factorio.com with the username/password your server uses (in server-settings.json's username + token fields).
  2. Server downloads selected mods on first start.
  3. For modded saves, players need the same mods installed client-side — Factorio's matchmaker compares mod lists at connect time.

First Boot Verification

  • Watch the log for Hosting game at IP ADDRESS(es) and port line — that's the green light.
  • The server should appear in the public browser within a couple of minutes if visibility is set to public.
  • Test connect from your client: paste IP:port directly, or browse the public list.

Common Boot Failures

SymptomFix
"Save file not found"Verify save path is correct (relative paths are relative to the factorio binary's cwd)
Server doesn't appear in public browserCheck visibility.public in server-settings.json; verify username + token
Mods don't downloadusername / token in server-settings missing or wrong; subscribe to mods on the website with that account first
"Different version" rejectionServer version doesn't match save's mod versions; update the server with SteamCMD or re-download headless

Hardware Notes

Factorio is single-thread heavy on the server side. Late-game megabases stress the simulation tick rate; large factories with many trains and complex circuit logic will cap your single-thread CPU before they cap your RAM. NVMe storage helps with autosave write times.

Related Reading

Quick Start with Supercraft

Supercraft hosts Factorio dedicated servers with the headless package pre-installed, server-settings.json exposed via panel form fields, autosave + autosave-slots tuned, mod auto-install wired to your factorio.com credentials. RCON is pre-configured.

Rent a Factorio Server

Tired of fighting this issue every patch?

Run a managed Factorio server with us — we handle the patches, mod-version pinning, save backups, and DDoS protection. Set up in 3 minutes, 5 datacenter regions, no contract.

See Factorio hosting plans →
Top