Creating Maps with Custom Generation Settings
How to generate a new Factorio map with custom terrain, resource, and difficulty settings using map-gen-settings.json and map-settings.json.
Overview
Factorio separates map generation into two config files: map-gen-settings.json controls world shape, terrain, and resource placement at generation time; map-settings.json controls ongoing gameplay parameters like pollution and enemy evolution. Both are in factorio/config/.
These settings are baked into the save at creation. Changing them after map generation has no effect — you must create a new save.
map-gen-settings.json
Key fields:
{
"seed": 12345,
"terrain_segmentation": 1.0,
"water_level": 1,
"starting_area_size": 2.0,
"peaceful_mode": false,
"autoplace_controls": {
"coal": { "frequency": "normal", "size": "normal", "richness": "normal" },
"stone": { "frequency": "normal", "size": "normal", "richness": "normal" },
"copper-ore": { "frequency": "normal", "size": "normal", "richness": "normal" },
"iron-ore": { "frequency": "normal", "size": "normal", "richness": "normal" },
"uranium-ore": { "frequency": "normal", "size": "normal", "richness": "normal" },
"crude-oil": { "frequency": "normal", "size": "normal", "richness": "normal" },
"enemy-base": { "frequency": "normal", "size": "normal", "richness": "normal" }
}
}
Field reference:
seed— Integer seed for deterministic world generation. Omit or set to0for a random seed.terrain_segmentation— Controls how broken up the terrain is. Range0.5(large landmasses) to2.0(fragmented islands).water_level— Amount of water. Range-10(very little) to10(very much).starting_area_size— Size of the resource-rich, enemy-free starting zone. Range1.0to5.0. Higher values give players more time before enemies arrive.peaceful_mode— Whentrue, enemies are passive and will not attack unprovoked.autoplace_controls— Per-resource overrides. Valid values forfrequency,size, andrichness:"very-low","low","normal","high","very-high".
map-settings.json
Controls runtime gameplay settings. Key sections:
{
"difficulty_settings": {
"recipe_difficulty": 0,
"technology_difficulty": 0
},
"pollution": {
"enabled": true
},
"enemy_evolution": {
"enabled": true,
"time_factor": 0.000004,
"destroy_factor": 0.002,
"pollution_factor": 0.0000009
}
}
difficulty_settings.recipe_difficulty—0= normal,1= expensive.pollution.enabled— Set tofalseto disable pollution spread entirely. Disables enemy aggression tied to pollution.enemy_evolution— Controls how biters evolve over time. Disable or reduce factors for a less hostile server.
Generating the Map
Create the save with both settings files:
./factorio/bin/x64/factorio \
--create factorio/saves/save.zip \
--map-gen-settings factorio/config/map-gen-settings.json \
--map-settings factorio/config/map-settings.json
This is a one-time operation. The resulting save.zip contains the baked settings. Run --start-server after creation.
Default Settings
If you omit --map-gen-settings or --map-settings, Factorio uses built-in defaults (normal everything, evolution enabled). For a relaxed public server, consider:
starting_area_size:3.0or higherenemy_evolution.enabled:falseor heavily reduced factorspeaceful_mode:truefor a fully combat-free experience