---
title: "How to set up a Factorio multiplayer server"
description: "Settings live in server-settings.json, not in the environment. The empty-map trap, why you need no factorio.com account, and CPU over RAM."
url: https://tickserv.com/en/guides/factorio-multiplayer-server
site: "TickServ (https://tickserv.com)"
lang: en
published: 2026-07-20
updated: 2026-08-22
games: [factorio]
---
# How to set up a Factorio multiplayer server

A dedicated Factorio server keeps your factory running for the whole group: the host no longer needs to be online, and everyone picks the megabase back up whenever they like. Here's how it actually works — including the two traps that cost people an evening.

## The server isn't configured by environment variables, but by a file

This is the part most tutorials get wrong. The Factorio server reads its settings from **`config/server-settings.json`**, and nowhere else. Unlike a Minecraft server, there is no `MAX_PLAYERS` or `PASSWORD` environment variable: if that file isn't written, the server starts on its defaults, with no password at all.

Here are the keys that matter, with the values we set:

| Key                              | Value                          | What it does                                       |
| -------------------------------- | ------------------------------ | -------------------------------------------------- |
| `name`                           | your server's name             | shown to players                                   |
| `game_password`                  | generated per server           | the only barrier to entry                          |
| `max_players`                    | your slots (`0` = unlimited)   | cap on simultaneous connections                    |
| `visibility`                     | `{ public: false, lan: true }` | **not publicly listed**: you join by address       |
| `username` / `token`             | empty                          | not needed unless the server is public (see below) |
| `autosave_interval`              | `10` (minutes)                 | how often the game autosaves                       |
| `autosave_slots`                 | `5`                            | how many rotating autosaves are kept               |
| `auto_pause`                     | `true`                         | the game pauses when nobody is connected           |
| `only_admins_can_pause_the_game` | `true`                         | stops one player pausing the factory for everyone  |
| `non_blocking_saving`            | `true`                         | saving no longer freezes the game                  |
| `allow_commands`                 | `admins-only`                  | console commands: admins only, everyone, or nobody |

**You do not need a factorio.com account.** This is the most widespread misconception: the official wiki is explicit that `username` and `token` "are necessary if you wish to make the server public. Otherwise, they can be left empty." A private server people join by address needs no identification at all — just the password.

## The ports: the one the game uses isn't the one you probe

Factorio plays over **UDP on port 34197** ([official wiki](https://wiki.factorio.com/Multiplayer)). UDP can't be tested the way TCP can: nothing "answers" a plain probe. That's why server availability is checked on the **RCON port, TCP 27015** — when RCON answers, the server is genuinely up.

Remember it if you're self-hosting: opening 34197 as TCP achieves nothing, and "the port isn't responding" means nothing over UDP.

## Trap 1: the server reloads an empty map

This one costs whole evenings, and it comes from the most widely used Docker image.

Two settings coexist: `GENERATE_NEW_SAVE` (create a fresh map) and `LOAD_LATEST_SAVE` (load the **most recent** save). On the very first boot there is no save, so generating is the right thing. But if `GENERATE_NEW_SAVE` stays on when a save **already exists**, the sequence is merciless: the image generates a fresh map, that map becomes the most recent one, and `LOAD_LATEST_SAVE` loads… the empty one. Your factory is still there on disk, but nothing loads it.

So the rule is: **as soon as a save exists, `GENERATE_NEW_SAVE` must go back to `false`.** Here, the agent inspects the `saves/` directory before every start and flips the setting itself — which is why an imported world or a previous session always comes back.

## Trap 2: `SAVE_NAME` is mandatory when generating

A corollary of the above, and less well known: when `GENERATE_NEW_SAVE` is `true`, the image **requires** `SAVE_NAME`. Without it, it doesn't start at all and exits on `you must specify $SAVE_NAME`. The message is clear enough once you read it in the logs — you just have to go looking, since the container dies within seconds.

## Versions have to match exactly

The wiki leaves no room: "All game instances need the installation of _exactly the same_ game-versions and mods." Mod checksums are calculated at launch and compared when joining.

The direct consequence here: **the server pulls the latest stable version at every session.** You're always up to date without doing anything — but so must everyone else be. If a friend stays on an older version, they won't be able to join. It's a deliberate trade-off: better a server that's always current than one frozen on a version the group has moved past.

## RAM won't save your megabase — CPU will

Factorio is a game about **UPS** (updates per second), and UPS depend on a single fast core. A factory that struggles almost never struggles for want of memory: it struggles because the core simulating the belts can no longer keep up.

- **Small or medium factory, up to 8 players**: the **8 GB** tier is plenty.
- **Large factory, megabase, lots of bots**: add RAM if you like, but above all move to the **dedicated CPU** level — it's the only change that lifts UPS.

Player slots default to **8** and go up to 32.

## The map preset is chosen once, and only once

Eight presets are available: default, rich resources, rail world, island, ribbon world, marathon, death world, death world marathon. **They only act at map generation**: once the world exists, changing the preset changes nothing. Choose it at creation, or import an existing save.

The **Space Age** expansion is off by default — base game. You have to enable it explicitly, and do so _before_ loading a Space Age save, otherwise it won't load.

## Console, saves and imports

The **RCON console** is built into your TickServ console: server commands, player management, `/server-save` on demand, without leaving the game. It's also what counts the players online.

On the saving side, three nets overlap: the game's own autosaves every **10 minutes** (5 kept, rotating), a full archive **before every shutdown** with a `/server-save` immediately before it, and an automatic backup every 30 minutes during a session, of which the **last 5** are kept.

Finally, you can **import an existing game** by dropping its `.zip` file at creation — the very file Factorio writes into its `saves` directory.

> [Create your Factorio server](https://tickserv.com/en/games/factorio). Your first session is free.
