---
title: "Factorio server-settings.json: Every Setting Explained"
description: "Every key in Factorio's server-settings.json, which ones the panel rewrites on boot, and which are yours to edit."
url: "https://www.gameserverkings.com/knowledge-base/factorio/factorio-server-settings-json/"
category: "Factorio"
category_url: "https://www.gameserverkings.com/knowledge-base/factorio/"
published: "2026-09-12T06:30:45.896Z"
updated: "2026-09-12T06:32:35.847Z"
source_format: "markdown"
site: "GameServerKings"
---

# Factorio server-settings.json: Every Setting Explained

`server-settings.json` is where a Factorio server's behaviour actually lives. Visibility, password, autosaves, who may run Lua, how much upload the server will use — all of it is in one file at `data/server-settings.json`, and the startup line points at it explicitly. This page documents every key Wube ships in the example file, and flags the nine the panel writes for you on every boot, which is the part that catches people out.

> [!WARNING] Nine keys are overwritten every time the server starts
> Your panel generates `name`, `description`, `max_players`, `username`, `token`, `autosave_interval`, `autosave_slots`, `afk_autokick_interval` and `game_password` from the **Startup** tab each boot. Hand-editing those nine in the file is wasted work — your change survives until the next restart and no longer. Every *other* key in the file is yours, and persists.

## Where the File Comes From

Wube ships an example, and the wiki describes the intended workflow: **"look at the example file located in `data/server-settings.example.json` in the Factorio Application directory. The recommended way is to make a copy of this example file and edit the copy."** Your installation does exactly that, so `data/server-settings.json` already exists.

The file is strict JSON. A trailing comma or a missing brace will stop the server booting, so edit it in the panel's file editor on your [Factorio server](/games/factorio-server-hosting/) and keep a copy of the original.

Keys beginning `_comment_` are Wube's own inline documentation. They are not settings and the game ignores them.

## Keys the Panel Owns

Change these on the **Startup** tab, not in the file.

| JSON key | Startup field | Notes |
|---|---|---|
| `name` | Server Name | Public browser listing |
| `description` | Server Description | Wube notes it **"May contain up to 5000 characters"** |
| `max_players` | Max Players | View-only — set for you, not editable |
| `username` | Factorio Username | factorio.com account |
| `token` | Server Token | factorio.com auth token |
| `autosave_interval` | Auto Save Interval | Minutes |
| `autosave_slots` | *(not exposed)* | Fixed at 5 |
| `afk_autokick_interval` | AFK Kick | Minutes, `0` for never |
| `game_password` | Server Password | Blank for none |

`autosave_slots` is the odd one — the panel sets it but does not show it, so the value is 5 and there is no supported way to change it.

## Keys You Edit in the File

Everything below persists across restarts.

### Visibility

```json
"visibility": {
  "public": true,
  "lan": true
}
```

Wube's comments define them: **"public: Game will be published on the official Factorio matching server"** and **"lan: Game will be broadcast on LAN"**. The wiki adds a third state — hidden — which you get by setting both to `false`: **"Clients will have to connect using the server's IP address."**

`lan` does nothing useful on a rented server; your players are not on the same network segment. `public` requires `username` and `token` to be filled in.

### Tags

```json
"tags": [ "game", "tags" ]
```

Free-text labels shown against your entry in the public browser. Purely cosmetic.

### Access Control

| Key | Default | What it does |
|---|---|---|
| `require_user_verification` | `true` | **"the server will only allow clients that have a valid Factorio.com account"** |
| `allow_commands` | `admins-only` | **"possible values are, true, false and admins-only"** |
| `ignore_player_limit_for_returning_players` | `false` | **"Players that played on this map already can join even when the max player limit was reached."** |

> [!CAUTION] `allow_commands: true` hands out your factory
> Set to `true`, any connected player can run arbitrary Lua — spawn items, delete your base, rewrite the map. Leave it on `admins-only`. There is more on what that costs you in [Factorio console commands](/knowledge-base/factorio/factorio-console-commands/).

### Pausing

| Key | Default | What it does |
|---|---|---|
| `auto_pause` | `true` | **"Whether should the server be paused when no players are present."** |
| `auto_pause_when_players_connect` | `false` | **"Whether should the server be paused when someone is connecting to the server."** |
| `only_admins_can_pause_the_game` | `true` | Stops any player pausing everyone else |

`auto_pause` is the one worth thinking about. Left on, your factory is frozen while nobody is online — no production, no biter evolution, no pollution spread. Turn it off and the world runs continuously, which is what you want for a long-running community map and not what you want for a group of three friends who play on Sundays.

`auto_pause_when_players_connect` is useful on very large saves, where a joining player downloading the map can otherwise cause a visible stutter for everyone already in.

### Saving

| Key | Default | What it does |
|---|---|---|
| `autosave_only_on_server` | `true` | **"Whether autosaves should be saved only on server or also on all connected clients."** |
| `non_blocking_saving` | `false` | Forks the process to save without stalling the game |

`non_blocking_saving` carries Wube's own health warning, quoted in full because it is unusually blunt: **"Highly experimental feature, enable only at your own risk of losing your saves. On UNIX systems, server will fork itself to create an autosave. Autosaving on connected Windows clients will be disabled regardless of autosave_only_on_server option."**

On a big factory it genuinely removes the save-time freeze. It is also the only setting in this file that Wube describes as risking your saves. Treat that as the trade it is.

### Bandwidth and Network Tick Rate

| Key | Default | Wube's comment |
|---|---|---|
| `max_upload_in_kilobytes_per_second` | `0` | **"optional, default value is 0. 0 means unlimited."** |
| `max_upload_slots` | `5` | **"optional, default value is 5. 0 means unlimited."** |
| `minimum_latency_in_ticks` | `0` | **"one tick is 16ms in default speed, default value is 0. 0 means no minimum."** |
| `max_heartbeats_per_second` | `60` | **"Network tick rate... Minimum value is 6, maximum value is 240."** |

`max_upload_slots` limits how many players can be downloading the map at once — relevant when a big group all joins after a restart.

`minimum_latency_in_ticks` deliberately *adds* delay. Factorio's multiplayer is lock-step, so a forced floor can smooth out a group with wildly different pings at the cost of making everyone's input feel slightly heavier. Leave it at 0 unless you are diagnosing something.

### Segment Sizes

```json
"minimum_segment_size": 25,
"minimum_segment_size_peer_count": 20,
"maximum_segment_size": 100,
"maximum_segment_size_peer_count": 10
```

Wube's comment explains the mechanism: **"Long network messages are split into segments that are sent over multiple ticks. Their size depends on the number of peers currently connected. Increasing the segment size will increase upload bandwidth requirement for the server and download bandwidth requirement for clients. This setting only affects server outbound messages."** It ends with a warning: **"Changing these settings can have a negative impact on connection stability for some clients."**

Leave them alone. This is the last thing to reach for, not the first.

## Changing Settings Without a Restart

Many of these have a live equivalent through `/config set`, run from the panel **Console**. The accepted options are `afk-auto-kick`, `allow-commands`, `allow-debug-settings`, `autosave-interval`, `autosave-only-on-server`, `ignore-player-limit-for-returning-players`, `max-players`, `max-upload-speed`, `only-admins-can-pause`, `password`, `require-user-verification`, `visibility-lan` and `visibility-public`.

The catch: those changes are written into the **save**, not into `server-settings.json`. They apply immediately and survive restarts of that world, but a fresh world or a reinstall reverts to the file. For anything permanent, change the file as well.

## Common Questions

### My server won't start after I edited the file

Almost always malformed JSON. Check for a trailing comma before a closing brace. Restore your backup and redo the change one key at a time.

### Why did my edit to the server name disappear?

Because `name` is one of the nine keys the panel rewrites at boot. Change it on the **Startup** tab instead.

### How do I hide my server from the public list?

Set both `visibility.public` and `visibility.lan` to `false`. Players then connect by address.

### Is the token safe in this file?

It is stored in plain text, which is why the wiki calls a token **"a sensitive piece of information"**. Anyone with file access to your server has it. Rotate it on factorio.com if you ever share access.

### Does `max_players: 0` mean unlimited?

In Wube's file, yes — **"0 means unlimited"** — but `max_players` is one of the panel-managed keys, so the value is set for you and the field is not editable.

## What to Read Next

- [How to Set Up a Factorio Dedicated Server](/knowledge-base/factorio/factorio-dedicated-server-setup/) — first boot, the file tree, and getting listed publicly
- [Factorio Console Commands: Complete List & Cheats](/knowledge-base/factorio/factorio-console-commands/) — `/config`, moderation, and what Lua costs you
- [Factorio Server Saves and Autosaves](/knowledge-base/factorio/factorio-server-saves-and-autosaves/) — autosave behaviour and backups

---

Made with 💜 by GameServerKings
