RadarHost

Hosting guide

How to set up a Factorio headless server

Factorio does not ship a separate server program. Any copy of the game can run as a server with one command-line switch, and Wube also publish a headless build with the graphics and sounds stripped out for machines that have neither. The trap for first-timers is that the server refuses to start without a save file, and you have to make that save yourself.

Updated 7 September 2026

Pick the right download

There are two Linux packages on the factorio.com downloads page. The ordinary Linux download is the full game. The headless package leaves out everything a pure server does not need, including graphics and sounds, and is not linked against libraries a bare server may not have, such as Xlib, libGL or libasound. If you are running on somebody else's hardware, the headless package is the one to take.

One requirement is easy to miss: the wiki notes that Factorio now needs glibc 2.31, which older enterprise distributions do not ship. Check that before you spend an evening on the rest.

Make the save first

A dedicated server requires a save file to be handed to it. Create one from the command line rather than from the menus:

  • ./bin/x64/factorio --create ./saves/my-save.zip
  • ./bin/x64/factorio --start-server ./saves/my-save.zip

If you want a custom world, the map settings have to be applied at creation time. The wiki is explicit that --map-gen-settings and --map-settings must be used with --create, so:

  • ./bin/x64/factorio --create saves/my-save.zip --map-gen-settings my-map-gen-settings.json --map-settings my-map-settings.json

Those two files control map generation, which is width, height, ore patch frequency and size, and world behaviour, which is pollution spread, biter expansion and evolution. Example files ship in the data subdirectory and are also published in Wube's factorio-data repository.

What headless mode changes

Started with --start-server, the game behaves differently in several documented ways. Graphics are never initialised, so it starts faster and works on a machine with no display at all. It loads the save it was given and begins immediately. The server has no character in the world. And the game pauses whenever no players are connected, unless you switch that off with the no-auto-pause option in server-settings.json.

That last one is a design choice, not a bug. A paused server does not burn processor time on an empty factory. Turn it off only if you want production to continue overnight.

server-settings.json

Starting the server requires you to name a settings file, which lives in the Factorio data folder by default. The recommended approach is to copy data/server-settings.example.json and edit the copy. A typical launch line loads the newest save:

  • ./bin/x64/factorio --start-server-load-latest --server-settings ./data/server-settings.json
SettingWhat it does
NameHow the server appears in the browser.
DescriptionUp to 5000 characters.
TagsA list of game tags.
Max PlayersSet max_players to 0 for no limit.
Visibilitypublic, lan or hidden.
CredentialsUsername with a password or an authentication token. Only needed for a public listing.
game_passwordThe join password.

On credentials, take the wiki's own advice: prefer the authentication token over the password, because the file is stored as plain text. Its warning that the token is itself sensitive still applies, so treat that file the way you would treat a key.

Set visibility to public and the server appears in the public list, which requires those credentials to be filled in. Set it to lan and it shows only on your local network. Set it to hidden and players must connect by address.

Ports, and the router setting that breaks them

Factorio uses port 34197, and it uses UDP only. The game builds its own reliable delivery layer on top of UDP, so there is no TCP port to open and no point looking for one. Forward 34197 on your router, and make sure no firewall or antivirus is dropping the packets.

There is one router behaviour that will defeat an otherwise correct setup, and it is the reason a lot of Factorio servers look unreachable for no visible cause. Some routers randomise the source port on packets leaving 34197, and Factorio does not survive that. If everything else checks out, look for a static port option in your router before you rebuild anything.

Since 1.1.67 the game also reads DNS SRV records, using the service name _factorio over _udp. That lets you hand friends a plain subdomain instead of a subdomain and a port number, which is genuinely useful if you run more than one server on one address.

Where the files live

Saves, mods, scenarios, settings and logs are all in the user data directory: %appdata%\Factorio on Windows, ~/.factorio on Linux, ~/Library/Application Support/factorio on macOS. Inside it, ./saves holds your worlds as zip files, ./mods holds mods, and config/config.ini holds local settings. Log files sit at the top of the same folder as factorio-current.log.

The wiki's own advice on updates is the right advice: back up that directory, saves and config included, before installing a new version. Nothing else in this guide will matter if the world is gone.

To give yourself admin rights, create server-adminlist.json in the same directory as factorio-current.log, containing a plain list of names, like [ "user1", "user2" ]. Promoting a player from the console creates the file for you.

The rule that causes most join failures

Every instance needs exactly the same game version and exactly the same mods. Factorio calculates mod checksums at startup and compares them when a player joins, specifically to catch local edits that would otherwise cause desyncs. A player who cannot join a working server is usually a player with one extra mod, one missing mod, or a locally modified copy of a shared one.

Self-hosting or renting

Factorio is one of the least demanding servers to self-host, and the pause-when-empty behaviour means an idle server costs almost nothing. If you have a machine that stays on, this is a good thing to run at home, and plenty of groups should.

The honest costs are the ordinary ones. The machine has to be awake when people want to play. Some home connections cannot accept incoming connections at all, and the source-port randomisation problem above is real and hard to spot. Every update means every player updates too, in step. And a factory that took months is one zip file you have not copied anywhere.

Renting moves those chores rather than removing them. The mod list, the map settings and the backups you actually keep are still yours to manage.

Where RadarHost fits

RadarHost rents Factorio servers hosted in Beauharnois, Quebec, Canada. There are three plans, Standard, Premium and Diamond, priced in Canadian dollars, with no setup fee and cancel any time. Renting changes who keeps the machine on, not how the game runs or how the settings above work. After payment, our team reviews the order and emails setup details or next steps within 24 hours. Current plans and prices are on the Factorio availability page.

Common questions

What port does a Factorio server use?

34197, and UDP only. Factorio builds its own reliable delivery layer on top of UDP, so there is no TCP port to open. Forward 34197 and check no firewall or antivirus is dropping the packets.

Why will my Factorio headless server not start?

Most often because it has no save. A dedicated server requires a save file to be handed to it, so create one first with --create ./saves/my-save.zip, then start it with --start-server pointed at that file.

Why does my Factorio server pause when nobody is playing?

By design. In headless mode the game pauses while no players are connected. Switch it off with the no-auto-pause option in server-settings.json if you want production to keep running overnight.

Why can my friend not join my Factorio server?

Usually a mod mismatch. Every instance needs exactly the same game version and mods, and Factorio compares mod checksums on join to catch locally modified copies. Also check your router is not randomising the source port.

Where does Factorio keep saves and mods?

In the user data directory: %appdata%\Factorio on Windows, ~/.factorio on Linux, ~/Library/Application Support/factorio on macOS. Saves are in ./saves, mods in ./mods, settings in config/config.ini.

Sources

What happens after you order. After payment, our team reviews the order and emails setup details or next steps within 24 hours. Prices are in Canadian dollars, there is no setup fee, and you can cancel any time.

Compare all worlds

Questions this guide did not answer go to the ticket desk. No payment starts from that link.