Factorio server-settings.json Explained (Every Key and Default)
Every Factorio server-settings.json key with its default: visibility, game_password, max_players, autosave_interval, afk_autokick_interval and auto_pause.
Updated Oct 1, 2026 · 7 min read
On this page
server-settings.json controls how a Factorio dedicated server behaves in multiplayer: its name and listing, the password, player limit, autosaves, AFK kicks and pausing. The official template ships as data/server-settings.example.json with these defaults: max_players: 0 (unlimited), visibility public and LAN both true, game_password empty, autosave_interval: 10 minutes, afk_autokick_interval: 0 (off), auto_pause: true and require_user_verification: true. Copy the example, change what you need, and start the server with --server-settings server-settings.json.
A sensible file for a friend server
{
"name": "The Night Shift",
"description": "Space Age, main bus, be nice to the trains.",
"tags": ["space-age", "friends"],
"max_players": 0,
"visibility": { "public": false, "lan": false },
"username": "",
"password": "",
"token": "",
"game_password": "pick-something",
"require_user_verification": true,
"max_upload_in_kilobytes_per_second": 0,
"max_upload_slots": 5,
"minimum_latency_in_ticks": 0,
"max_heartbeats_per_second": 60,
"ignore_player_limit_for_returning_players": false,
"allow_commands": "admins-only",
"autosave_interval": 10,
"autosave_slots": 5,
"afk_autokick_interval": 0,
"auto_pause": true,
"auto_pause_when_players_connect": false,
"only_admins_can_pause_the_game": true,
"autosave_only_on_server": true,
"non_blocking_saving": false
}
The official example also has "_comment_..." keys. They are notes for humans, the server ignores them, and you can delete them.
Listing and identity
| Key | Default | What it does |
|---|---|---|
name |
placeholder text | Server name in the browser |
description |
placeholder text | Description in the browser |
tags |
["game", "tags"] |
Search tags in the browser |
visibility.public |
true |
List on the official public server browser |
visibility.lan |
true |
Broadcast on your local network |
username |
empty | factorio.com username, needed for a public listing |
password |
empty | factorio.com password, the old way to log in |
token |
empty | factorio.com token, use instead of password |
visibility is the one people get wrong. With public: true the server tries to register with Wube's matchmaking server, and that needs a factorio.com account in username plus either token or password. Leave those empty with public: true and the listing fails, with an error in the server log.
What we would do: a private friend server does not need to be public at all. Set public: false and share the address. Players connect with Multiplayer, Connect to address. For a public community server, set public: true, put your username and token in, and never your real password. The token is on your profile at factorio.com, and it can be reset if it leaks.
Access: password, verification and players
| Key | Default | What it does |
|---|---|---|
game_password |
empty | Join password. Empty means anyone with the address can join. |
require_user_verification |
true |
Only players with a valid factorio.com account can join |
max_players |
0 |
Player limit. 0 is unlimited. Admins can join even a full server. |
ignore_player_limit_for_returning_players |
false |
Players who have played this map before can join when it is full |
allow_commands |
admins-only |
Who may use Lua console commands: true, false or admins-only |
game_password: set one unless you want strangers. Players type it when they connect.
require_user_verification: leave it true. It ties every player to a real factorio.com account, which is what makes bans and the whitelist stick.
max_players: 0 is fine for friends. On a public server, set a number your factory can handle, and turn on ignore_player_limit_for_returning_players so your regulars can always get in.
allow_commands: keep admins-only. Using Lua commands like /c turns off achievements for that save, and on true any player can do anything with them.
For a strict friends only server, use the whitelist instead of or as well as a password: /whitelist add Name in the console, with the server started with --use-server-whitelist true. Admins go in server-adminlist.json, which /promote Name fills for you.
Saving
| Key | Default | What it does |
|---|---|---|
autosave_interval |
10 |
Minutes between autosaves |
autosave_slots |
5 |
Number of rotating autosave files |
autosave_only_on_server |
true |
Only the server writes autosaves, not every player |
non_blocking_saving |
false |
Experimental: on Linux, the server forks to save in the background |
autosave_interval: 10 is good. Each save freezes the game briefly for everyone, and on a huge map that freeze grows. For megabases, 15 to 20 is reasonable. Never go above 30, or a crash costs a lot of work.
autosave_slots: 5 gives you 50 minutes of history at the default interval. Raise it to 10 if you want more to roll back to. Autosaves sit in saves as _autosave1.zip, _autosave2.zip and so on.
non_blocking_saving: Wube's own comment calls it highly experimental and warns about losing saves. Leave it off.
Pausing and AFK
| Key | Default | What it does |
|---|---|---|
auto_pause |
true |
Pause when no players are online |
auto_pause_when_players_connect |
false |
Pause while someone is joining |
only_admins_can_pause_the_game |
true |
Only admins can pause |
afk_autokick_interval |
0 |
Minutes of inactivity before a kick. 0 is never. |
auto_pause: keep it on. Without it, biters keep attacking and Gleba keeps spoiling while everyone is asleep. Turn it off only if you deliberately want the factory to run unattended.
auto_pause_when_players_connect: turn it on for big maps. Joining a large save takes time, and pausing while someone loads in stops them having to catch up afterwards, which avoids failed joins.
afk_autokick_interval: 0 for friends. On a public server, 15 to 30 minutes frees slots from idle players.
Network tuning
| Key | Default | What it does |
|---|---|---|
max_upload_in_kilobytes_per_second |
0 |
Upload cap for sending the map to joining players. 0 is unlimited. |
max_upload_slots |
5 |
How many players can download the map at once. 0 is unlimited. |
minimum_latency_in_ticks |
0 |
Minimum latency, one tick is about 16 ms |
max_heartbeats_per_second |
60 |
Network tick rate, 6 to 240 |
minimum_segment_size |
25 |
Segment size for long messages with many peers |
minimum_segment_size_peer_count |
20 |
Peer count for the minimum segment size |
maximum_segment_size |
100 |
Segment size with few peers |
maximum_segment_size_peer_count |
10 |
Peer count for the maximum segment size |
Leave all of these alone unless you self host on a slow home upload. In that case, a max_upload_in_kilobytes_per_second value below your real upload speed stops a joining player's map download from making everyone else lag.
Change settings without a restart
Most of these can be changed live by an admin with /config:
/config set password newpassword
/config set max-players 20
/config set afk-auto-kick 30
/config set autosave-interval 15
/config set visibility-public false
/config get password
The supported 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. Live changes are not written back to the file, so update server-settings.json too. More commands in our Factorio server commands list.
Common mistakes
- Invalid JSON. A missing comma, an extra comma after the last entry, or straight quotes swapped for curly ones from a word processor. The server fails to read the file and the log points at the problem. Edit in a plain text editor.
- Public with no token. Set
public: falseor addusernameandtoken. - Editing while running. The server reads the file at startup. Stop, edit, start.
- Wrong file. Editing
server-settings.example.jsondoes nothing unless the server is started with it.
server-settings.json on GamezServers
The panel covers the settings most groups touch: server name and description, Join password, Whitelist only, Public listing with your factorio.com username and token, Autosave minutes, Autosaves to keep and AFK kick minutes, with the player count set by your plan. The panel applies these when the server starts, so change them in Settings rather than in the file. Anything else, like auto_pause_when_players_connect, you can edit in the Files tab. See the Factorio hosting quick start to get a server running, and how to install mods on a Factorio server for the mods folder.
FAQ
Where is server-settings.json?
On a self hosted headless server, wherever you point --server-settings. Most people keep it in the main server folder or a config folder next to data, copied from data/server-settings.example.json.
Why is my Factorio server not in the public list?
Either visibility.public is false, or the factorio.com username and token are missing or wrong. Check the server log for a matchmaking error. If you only need friends to join, connecting by address works without a listing.
How do I make my Factorio server private?
Set visibility.public to false, set a game_password, and for a strict list use the whitelist with /whitelist add Name.
Does the server run when nobody is online?
With auto_pause: true (the default), the server stays online but the game is paused until someone joins. Set it to false to keep the factory running while everyone is away.
What is a good autosave interval for Factorio?
10 minutes, the default, suits most maps. On very big maps where each save freezes the game for a few seconds, 15 to 20 minutes is a fair trade.
Skip the setup. Your own Factorio server.
Then $4.99/mo. Just trying it? $1.25 for 3 days