12 September 2026

Factorio Server Configuration Guide

A detailed walkthrough of every Factorio server config file – server-settings.json, map-gen-settings.json, and map-settings.json – plus RCON setup, admin commands, and mod configuration.

Need a Factorio server?Rent now

Factorio keeps its server configuration split across three JSON files, each handling a different layer of the game. On LOW.MS, server-settings.json and map-gen-settings.json sit at the server root, not in data/ where the Factorio wiki's examples put them. Once you understand what goes where, it's actually a clean system. Let's go through all of it. If you have not set one up yet, you can rent a Factorio server from us and follow along.

You can edit server-settings.json through the Configuration Files section in your LOW.MS Control Panel at control.low.ms, and map-gen-settings.json through File Manager. Changes to server-settings.json take effect after a server restart. Changes to map-gen-settings.json only matter when creating a new save with the Generate Map option in Commandline Manager.

server-settings.json

This is your main file. It controls server identity, access, and operational behaviour. I'll go through the fields that actually matter, grouped by what they do.

The panel fills in name, max_players and game_password from Service Settings, so change those three there rather than in the JSON.

Server Identity

name – your server's display name in the browser. Keep it descriptive enough that your players can find it. Something like "Connor's Factory" works. The game doesn't enforce uniqueness.

description – shown in the server browser details. Optional, but helpful on public servers.

tags – array of strings that help with server browser filtering. Things like ["vanilla", "peaceful", "new players welcome"]. Mostly useful for public servers.

Access Control

max_players – 0 means unlimited. Set this to your plan's player slot count if you want to enforce it, though honestly Factorio's performance will be your real limit before the slot count matters.

game_password – empty string for no password. I'd always set one for private servers – even with visibility off, anyone who has your IP can connect without it.

require_user_verification – leave this true. It validates that connecting players actually own Factorio through their factorio.com account. Turning it off is basically asking for trouble.

visibility.public – whether your server appears in the in-game server browser. Set to true if you want strangers to find you.

visibility.lan – shows the server on local network discovery. Not relevant for a hosted server, but doesn't hurt to leave it.

allow_commands – this one's worth thinking about. Three options: "admins-only" (the sensible default), true (everyone can run console commands, including Lua – dangerous), or false (nobody can, not even admins). Lua console access means full control of the game state, so "admins-only" is almost always the right call.

Autosave and Persistence

autosave_interval – minutes between autosaves. Default is 10, which is a good balance. Lower means less potential data loss but more frequent save hitches, especially on large maps.

autosave_slots – number of rotating autosave files kept. Default is 5. I bump this to at least 10 on servers where people are doing experimental stuff. If someone accidentally nukes the power grid and you need to roll back, you'll want options.

non_blocking_saving – an experimental feature that forks the server process to save in the background. Factorio only supports this on Linux and macOS, not Windows, and our servers are Windows-based, so the setting is a no-op on LOW.MS. Noted here so you don't waste time tracking down why it didn't help.

Player Management

afk_autokick_interval – minutes before idle players are kicked. 0 disables it. On a public server, set this to something like 10-15. On a private server with friends, 0 is fine – let them go make a sandwich.

auto_pause – pauses the game when the server is empty. Almost always what you want for a private server. Public servers or "always-on" factories might disable this.

max_upload_slots – how many players can download the map simultaneously when joining. Default is 5. On a large save, multiple people joining at once can spike bandwidth. Lower this if you see issues.

Authentication

username and password (or token) – these are your factorio.com account credentials, needed for the server to authenticate with the master server. If visibility is set to public, these are required. On LOW.MS they start out blank, even though visibility.public is true by default, so the server won't show up in the public list until you fill in your username and either your password or your token. The token is on your factorio.com profile page. Leave them blank and direct connect by IP still works fine. Don't share these, they're account credentials, not game passwords.

map-gen-settings.json

This file controls world generation and only applies when creating a new save. Editing it after world creation does nothing to existing terrain. You'd need to generate a new map for changes to take effect.

Resource Settings

Each resource type (coal, iron-ore, copper-ore, stone, uranium-ore, crude-oil) can have its frequency, size, and richness adjusted. Values are multipliers where 1 is default:

"autoplace_controls": {
    "iron-ore": { "frequency": 1, "size": 1.5, "richness": 2 },
    "copper-ore": { "frequency": 1, "size": 1.5, "richness": 2 }
}

Bumping richness is the most common tweak for multiplayer. More players drain resources faster, and nobody wants to build a train network to the next iron patch 20 minutes into a session. I typically go 1.5x to 2x richness for groups of 4+.

Enemy Bases

enemy-base frequency and size control how many biter nests spawn and how large the clusters are. Set size to 0 (or use the "none" preset) for a peaceful world with no biters at all. This is a legitimate choice – not everyone wants combat in their logistics game.

Terrain

terrain_segmentation controls water frequency (higher = more, smaller lakes). water controls water size. The starting_area multiplier determines how much safe space you get around spawn before biters show up – useful to increase for new players.

seed – leave null for random, or set a specific seed to recreate a particular world. Handy if someone found a great seed and you want to use it.

width and height – 0 for infinite in both directions. You can limit map size here, but I've never found a good reason to on a hosted server.

Map Generation Presets

Rather than tweaking individual values, you can use preset to load a predefined configuration. Options include default, rich-resources, marathon, death-world, death-world-marathon, and others. Set individual values to override specific parts of a preset.

map-settings.json

This one catches people out. Factorio only reads map-settings.json when a map is created, and only if the startup command points at it with --map-settings. None of the LOW.MS command lines do, Generate Map included, so on our servers editing this file changes nothing. Once a world exists, these settings live inside the save.

To change them on an existing world, run Lua console commands in-game as an admin. The settings below are the ones you'd adjust that way.

Gotcha: Any /c command disables achievements for that save, permanently.

Pollution

/c game.map_settings.pollution.enabled = false
/c game.map_settings.pollution.diffusion_ratio = 0.02

Pollution drives biter evolution and attacks. Disabling it makes the game dramatically easier – biters won't seek out your base unless they physically bump into it. diffusion_ratio controls how fast pollution spreads across chunks. Lower values keep pollution more localised around your factory.

Evolution

Evolution is what makes biters get stronger over time. Three factors drive it, all under game.map_settings.enemy_evolution:

time_factor – evolution per tick just from time passing. Default is very small but adds up.

destroy_factor – evolution gained when you kill biter spawners. Clearing nests makes the remaining ones tougher. It's a deliberate design tension.

pollution_factor – evolution from pollution reaching biter nests. This is usually the biggest contributor.

Set all factors to 0 if you want biters present but permanently weak. Or disable evolution entirely by setting game.map_settings.enemy_evolution.enabled to false.

Enemy Expansion

enemy_expansion controls whether biters create new bases. When enabled, they'll periodically send out groups to establish nests closer to your pollution cloud. max_expansion_distance and min_expansion_cooldown tune how aggressive this is.

Disabling expansion (game.map_settings.enemy_expansion.enabled = false) means you only have to deal with the nests that already exist. Much more manageable for casual groups.

Difficulty

technology_price_multiplier scales research costs – higher values mean each technology takes more science packs. A multiplier of 4 or higher makes for a proper marathon game. Note that the old "expensive mode" (recipe_difficulty / technology_difficulty) was removed in Factorio 2.0, so if you see references to it in older guides, ignore them.

RCON Setup

Factorio supports Source RCON protocol for remote console access, and on LOW.MS it's already switched on. Every startup option in Commandline Manager passes --rcon-port and --rcon-password for you, so there's nothing to add, and the command line isn't something you can edit anyway.

Your RCON port is your game port plus 5, on TCP. So if your game runs on UDP 34197, RCON is TCP 34202. The password is the RCON password in your Service Settings, which is also where you can double-check the port.

RCON lets you run any console command remotely, including Lua with /c. Treat the RCON password like a root password – anyone with it has full control over your server.

Admin Commands Reference

These are available in-game for players in the admin list (server-adminlist.json):

Player management: /kick, /ban, /unban, /bans, /mute, /unmute, /promote, /demote, /whitelist add/remove

Server operations: /server-save, /admins, /players, /version, /time, /seed

Game info: /evolution (shows current evolution factor)

Lua console: /c followed by Lua code – powerful but dangerous. Can modify any game state. One typo can wreck a save.

The /toggle-heavy-mode command is useful for debugging – it enables extra validation that can help track down desync issues at the cost of performance.

Mod Configuration

I covered the basics in the getting started guide, but here's the full workflow for managing mods on your server.

Installing Mods

Download the .zip for each mod from mods.factorio.com, taking the release that matches your server's Factorio version, and upload it to the mods/ directory through File Manager. Don't extract mod zips, Factorio reads them as-is. Skip the Mod Manager in the panel for Factorio: its catalogue was put together in 2017 and nothing in it loads on a 2.0 server. The mod installation guide walks through the whole routine.

mod-list.json

This file lives in the mods/ directory and controls which installed mods are active:

{
    "mods": [
        { "name": "base", "enabled": true },
        { "name": "quality", "enabled": true },
        { "name": "space-age", "enabled": true },
        { "name": "some-qol-mod", "enabled": true }
    ]
}

The base mod is always required. If you have the Space Age DLC, quality, elevated-rails, and space-age mods are the DLC components. After uploading, check each new mod is listed here with "enabled": true, then restart. It's also the first file to look at when troubleshooting.

mod-settings.dat

This is the tricky one. It's a binary file – you can't edit it in a text editor. The workflow is:

  1. Launch Factorio on your local PC with the same mods installed
  2. Configure mod settings through the in-game mod settings menu
  3. Find mod-settings.dat in your local Factorio data directory
  4. Upload it to your server's mods/ directory via File Manager

Every player's mod list and versions must match the server exactly. Factorio checks checksums on connect, so there's no fudging it. If someone gets a "mod mismatch" error, they need to update. The easiest way to keep everyone in sync is to have one person maintain the mod list and share it – or just use the "sync mods with server" button in Factorio's multiplayer join dialog, which downloads matching versions automatically.

A Note on Updates

When Factorio or mods update, the server and all clients need to be on the same version. Use the Steam Update option in your control panel to update the server. Coordinate with your players – nothing's more annoying than half your group updating while the other half can't connect.

Join our Discord to chat with our staff and community!

Join Discord