Factorio Updated April 27, 2026

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.

Factoriomap generationmap-gen-settingsmap-settingsseed

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 to 0 for a random seed.
  • terrain_segmentation — Controls how broken up the terrain is. Range 0.5 (large landmasses) to 2.0 (fragmented islands).
  • water_level — Amount of water. Range -10 (very little) to 10 (very much).
  • starting_area_size — Size of the resource-rich, enemy-free starting zone. Range 1.0 to 5.0. Higher values give players more time before enemies arrive.
  • peaceful_mode — When true, enemies are passive and will not attack unprovoked.
  • autoplace_controls — Per-resource overrides. Valid values for frequency, size, and richness: "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 to false to 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.0 or higher
  • enemy_evolution.enabled: false or heavily reduced factors
  • peaceful_mode: true for a fully combat-free experience