Advertisement

Generate a Factorio server-settings.json

Factorio's server-settings.json is strict JSON, and there is one particular rule in strict JSON that trips nearly everybody: no trailing commas.

Start from a preset

Visual Settings

json Format
Identity

Name shown in the public server browser.

Description in the browser.

Comma-separated tags used by the server browser filters.

Gameplay

Who may run console commands. Note that using commands disables achievements for the save.

World

Minutes between autosaves. Each one briefly stutters a large factory, so long intervals trade safety for smoothness.

How many autosaves to rotate through.

Players & Access

0 means unlimited, not closed. Setting it to 0 to block joins gives you an uncapped public server instead — use a password or the visibility settings for that.

Join password. Unquoted numbers are a JSON error here, so a numeric password still needs quotes.

Verifies players against their Factorio account.

Minutes before an idle player is kicked. 0 disables it.

Performance

Pauses the game when nobody is connected. Your factory stops producing while the server is empty.

Saves in a background process so the game does not stall. Uses roughly double the memory during a save.

Network

Publishes the server to the public list. This — not your router — is what decides whether the server appears in the browser or in an external status check.

Announces the server on the local network.

Factorio account username. Required for public visibility; without valid credentials the server stays invisible however it is configured.

Factorio account token that goes with the username. Treat it like a password.

server-settings.json

username — Public visibility needs valid Factorio account credentials. Without them the server runs but never appears in the browser or in a status check.
max_players — 0 means unlimited, not closed. Use a password or the visibility settings to restrict who can join.
{
  "name": "My Factory",
  "description": "The factory grows.",
  "tags": "",
  "max_players": 0,
  "game_password": "",
  "require_user_verification": true,
  "visibility_public": true,
  "visibility_lan": true,
  "username": "",
  "token": "",
  "autosave_interval": 10,
  "autosave_slots": 5,
  "afk_autokick_interval": 0,
  "allow_commands": "admins-only",
  "auto_pause": true,
  "non_blocking_saving": false
}

Advertisement

The server-settings.json format

Plain JSON, no extensions. No comments of any sort, no comma after the final item in an object, double quotes around strings, and no quotes around numbers or booleans. A quoted number is a genuine error here, not a harmless quirk — max_players given as "10" is text, and it will be refused where a number belongs.

Advertisement

The mistake that wastes an evening

Setting max_players to 0 does not close the server; it removes the limit. People enter 0 hoping to stop anyone joining and end up with a public server that has no cap at all. To close the server, use the visibility settings or a password, not the player limit.

Rather not run the server yourself?

These tools are free and funded by the two hosting services we run. If you want a server that is already set up, here they are.

Advertisement