Factorio server-settings.json generator

Factorio's server-settings.json is strict JSON, which is unforgiving in one specific way that catches almost everyone: 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

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

How server-settings.json syntax works

Standard JSON rules apply with no extensions. No comments of any kind, no trailing comma after the last item in an object, strings double-quoted, numbers and booleans unquoted. Quoting a number is a real error here rather than a harmless one — max_players written as "10" is a string and will not be accepted where a number is expected.

The mistake that costs people hours

max_players set to 0 means unlimited, not closed. People set it to 0 intending to block joins and get an uncapped public server instead. If you want the server closed, use the visibility settings or a password rather than the player limit.

Support & Help