October DealsAmazon USOctober deal check: compare before you payAmazon US: current deals, useful picks and tech finds.Check DealsClean PCRecommendedOne scan can reveal what keeps slowing WindowsLook for cleanup and repair opportunities.Run ScanOctober DealsAmazon USDeal season is back - check today's better picksAmazon US: current deals, useful picks and tech finds.See Picks×
Skip to content
VGSources
Blog

How to Install a Custom Map on a Factorio Server (Save ZIPs, Scenarios, and Map Strings)

Learn the correct Factorio-server workflow for save ZIPs, scenarios, map exchange strings, JSON map settings, headless startup, mod synchronization, and troubleshooting.
Length10 min Posted Quest giverVGSources Team
Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

For a progressed custom world, upload the Factorio save ZIP to the server and start it with --start-server. Scenarios, map exchange strings, and JSON settings follow different workflows: a scenario is installed in the user-data scenarios directory, while a map exchange string recreates generation settings for a new world and does not contain an explored save.

Choose the format before you upload anything

“Custom map” can mean several different Factorio formats. Identifying the format first prevents the most common mistake: trying to use a map-generation string as though it were an existing world.

As an Amazon Associate I earn from qualifying purchases.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.
Method What it preserves Best for Main dependency
Save ZIP Explored world, builds, and current progression Downloaded or ongoing custom worlds Matching Factorio version and mod set
Scenario Scenario map plus runtime scripting Missions, challenges, and server-side objectives Scenario folder and compatibility
Map exchange string Map-generation settings for a fresh world Recreating a seed and settings combination New map creation; it does not carry progression
JSON settings Explicit generation and simulation configuration Repeatable scripted map creation --create and correctly structured files

If another player has already built a factory, mined ore, or explored the map, you need the actual save ZIP. If the creator supplied only a map exchange string, you can reproduce the starting-generation rules but not the creator’s buildings, research, inventory, or explored area.

Prerequisites and server layout

A dedicated Factorio server cannot start an empty multiplayer session. It needs a save file, either one you upload or one you create with the command-line tools. A typical installation has the executable under bin/x64, a saves directory for ZIP files, and a data directory containing server configuration and user data.

#1 Best Overall
Sale
CyberPowerPC Gamer Xtreme VR Gaming PC, Intel Core i5-13400F 2.5GHz, GeForce RTX 5060 8GB, 16GB DDR5, 1TB PCIe 4.0 SSD, WiFi Ready & Windows 11 Home (GXiVR8060A40)
  • System: Intel Core i5-13400F 2.5GHz 10 Cores | Intel B760 Chipset | 16GB DDR5 | 1TB PCIe 4.0 NVMe SSD | Windows 11 Home
  • Graphics: NVIDIA GeForce RTX 5060 8GB Graphics | 1x HDMI | 2x DisplayPort
  • Connectivity: 1 x USB-C 3.2 | 2 x USB-A 3.2 | 6 x USB-A 2.0 | 1 x LAN | WiFi 6 | Bluetooth 5.3 | 7.1 Channel Audio
  • Tempered Side Case Panel | Custom RGB Lighting | Keyboard and Mouse
  • 1 Year Parts & Labor Warranty, Free Lifetime Tech Support
  • Install the same Factorio release expected by the save, scenario, or mod package.
  • Make sure the account running the server can read the executable, save, scenario files, and configuration files.
  • Use a dedicated non-root account for a Linux server rather than running the game process as root.
  • Stop the existing server cleanly before replacing a live save or changing deeply integrated mods.
  • Keep an untouched backup of the original save ZIP before migration, mod changes, or version changes.

Relative paths are resolved from the directory in which you run Factorio. When there is any doubt about the working directory, use an absolute path to the save or configuration file.

Path A: install an existing custom save ZIP

This is the correct path for a downloaded world or a server that is moving an already-progressed game. Factorio saves are normally ZIP files; do not unpack the archive unless the map’s instructions specifically require a different package.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

1. Obtain and inspect the save

Confirm that the file is a Factorio save, normally ending in .zip, and that the transfer completed without corruption. Preserve the original filename while troubleshooting so that logs and launch commands are easy to compare. If the map author supplied installation notes, record the required Factorio release and mods before starting the server.

2. Copy the ZIP to the server

Place the archive in the server’s saves directory, or put it at another path that the server process can read. A conventional layout is:

factorio/
├── bin/x64/factorio
├── saves/
│   └── my-save.zip
└── data/
    └── server-settings.json

The directory name is not mandatory. What matters is that the path in the launch command points to the real file and that the process has permission to read it.

3. Match the Factorio version and mods

Before loading the world, align the server’s Factorio release and mod list with the save. A save made with mods can fail to load or can open with missing content if those mods are absent or incompatible. Install the required mods or synchronize them before launching the save; mod handling is separate from copying the ZIP.

What’s actually slowing this PC down?

Pick the symptom - the matching free tool is one click away.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

4. Start the server with the save

From the Factorio installation directory, run:

./bin/x64/factorio --start-server ./saves/my-save.zip

This explicit form is the safest first launch because it names the exact world. If the command succeeds, the dedicated process loads that archive rather than creating a different map.

5. Optionally load the newest save automatically

For an installation that maintains several saves, Factorio can select the newest one:

./bin/x64/factorio --start-server-load-latest --server-settings ./data/server-settings.json

Use this only when “newest” is unambiguous. If the wrong world is selected, return to an explicit --start-server path instead of relying on file timestamps.

6. Replace a live world safely

  1. Stop the old server cleanly and wait for the process to exit.
  2. Copy the current save ZIP to a separate backup location.
  3. Upload the replacement ZIP to the intended saves directory.
  4. Verify the filename and permissions.
  5. Start with the explicit save path and watch the console for version or mod errors.

Do not overwrite a save while the server is writing it. A partial archive can be unreadable even when the upload itself appears to have completed.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

Path B: install and run a scenario

A scenario is not merely a renamed save. It is installed in the user-data scenarios directory and may include control.lua runtime scripting. Scenarios do not add prototypes and do not require every client to install a separate scenario package, while mods can change game data and remain a separate dependency.

Install the scenario files

Copy the scenario’s directory into the Factorio user-data scenarios directory. Keep the scenario’s internal structure intact, including its scripts and data files. The scenario name used at launch is the directory or package name expected by Factorio, not an arbitrary display title.

Use the graphical interface

  1. Open Factorio and choose Play.
  2. Select Scenarios.
  3. Choose the installed scenario.
  4. Create the multiplayer game from that scenario.
  5. Save the resulting world if you want a conventional save ZIP for later dedicated-server launches.

After a scenario is chosen and saved, Factorio creates a normal save containing the map and scenario scripting. That saved ZIP can then follow the save-upload workflow in Path A.

Rank #2
ZER-LON Prebuilt Gaming PC Desktop, Core I7 up to 3.9 GHz, RX 550 4GB GDDR5
  • 【PC Gaming System】This gaming PC is loaded with Intel Core I7 up to 3.9GHz and AMD Radeon RX 550 4G graphics card, allowing you to experience top-notch gaming performance. This system features 16GB of high-speed memory and 512GB SSD Solid State Drive for lightning-fast load times
  • 【Superior Gaminig Experience】This high-performance Gaming Computer Desktop is capable of running a wide range of popular PC games for pc gamer, including Fortnite, Call of Duty Warzone, Escape from Tarkov, GTA V, World of Warcraft, LOL, Valorant, Apex Legends, Roblox, Overwatch, CSGO, Battlefield V, Minecraft, Elden Ring, Rocket League, The Division 2, and Hogwarts Legacy with 60+ FPS
  • 【Multifunctional Use】This tower computers gaming pc desktop is designed to meet the needs of different people on the computer, powerful performance not only in the game to show quality graphics, the face of the office, design, audio and video can also be comfortable, multi-tasking, fast switching smooth operation
  • 【Tower Gaming PC Desktop】The gaming computer desktop is designed for versatile connectivity, featuring 2x USB 3.0 ports, 6x USB 2.0 ports, 1x RJ-45, 1x Serial, and built-in Wi-Fi. The AMD Radeon RX 550 4G GDDR5 Graphics Card supports multiple display options including 1x HDMI, 1x DisplayPort, and 1x DVI, ensuring compatibility with a wide range of monitors

Launch a scenario on a headless server

For a direct headless launch, use the documented scenario form:

Free tools Windows power users keep installed

One-click scans. No signup required.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.
./bin/x64/factorio --start-server-load-scenario scenario-name

If the scenario is provided by a mod, address it with the mod-qualified form:

./bin/x64/factorio --start-server-load-scenario MOD/NAME

Factorio resolves the name from the top-level scenarios directory or from the specified mod. The scenario files must be present where the server’s user-data configuration expects them before the command is run.

Path C: create a world from a map exchange string

A map exchange string is a compact representation of map-generation settings. It is useful for reproducing terrain, resources, enemy settings, and related generator choices when everyone should start a fresh world. It is not a compressed save and cannot restore an explored or built-up factory.

Copy the string from the Factorio interface

  1. Open the Load Game screen.
  2. Select the map whose generation settings you want to share.
  3. Choose the map exchange-string button.
  4. Copy the complete value, including its delimiters.
  5. When creating a new game, paste it into the map-exchange field.

If the recipient needs the existing factory, transfer the save ZIP instead. A string can recreate the generation recipe while producing a new, unprogressed map.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

Convert the string for scripted creation

Factorio’s in-game console can parse the exchange string and write JSON:

/c helpers.write_file('map.txt', helpers.table_to_json(helpers.parse_map_exchange_string("PASTE_THE_COMPLETE_MAP_EXCHANGE_STRING_HERE")))

Use the resulting data to obtain the map_settings and map_gen_settings objects. Save those objects as JSON files, then pass the files to --create as shown in the next section. Keep the exchange string intact while copying; missing delimiters or characters produce different settings or an invalid parse.

Path D: create a custom map with JSON settings

JSON files are the most explicit option when you want a repeatable, scripted world rather than an uploaded save. Map-generation settings control the generated terrain and resources, including values such as terrain, resource frequency, and map dimensions. Map settings control simulation behavior, including pollution and enemy evolution.

Prepare the two settings files

Create one valid JSON file for generation settings and another for simulation settings. The property names and nesting must match Factorio’s expected structure; malformed JSON or values unsupported by the installed release will stop creation before a save is produced.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

Keep these files with the server configuration or in a deployment directory that the account running Factorio can read. Versioning the files alongside the server makes it possible to recreate the same configuration later, but the files themselves still create a new world rather than restoring progression.

Create the save archive

./bin/x64/factorio --create saves/custom-map.zip --map-gen-settings map-gen-settings.json --map-settings map-settings.json

The command writes a new save archive at saves/custom-map.zip. Once creation finishes, start that archive as you would any other save:

./bin/x64/factorio --start-server ./saves/custom-map.zip

If you need a public listing or other multiplayer behavior, add a server-settings file to the startup command rather than embedding those options in the map-generation JSON.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

Configure a headless server

The Linux headless package omits graphics and other desktop libraries. Install it under a dedicated non-root user, extract it, and test the executable before uploading the map. An error stating that the save cannot be found generally means the binary is running and the next task is to provide the correct save path.

Rank #3
Sale
Mumba Mouse Grip for Nintendo Switch 2 Joy-Con, [2 Pack] Ergonomic Gamer Grip Holder with Super Smooth PTFE Glide Pads Portable Gaming Controller Stand for Switch 2 Joy Con Accessories (2025), Black
  • Compatibility: Designed specifically for the Nintendo Switch 2 Joy-Con controllers, with dedicated left and right grips. It provides a more comfortable and precise control experience for smoother gameplay.
  • Ergonomic Design: This comfortable Switch 2 controller grip is designed to fit the shape of your hand, with finger grooves for a stable and secure grip, helping you stay relaxed during long gaming sessions.
  • Zero Resistance: The precision-crafted ABS shell and unique Teflon feet provide an ultra-smooth movement experience, making your control more precise. Whether it's shooting, strategy, or simulation games, you can enjoy an intuitive and seamless connection with the game.
  • Quick & Easy Setup: Align the "+" and "-" buttons on your Switch 2 Joy-Con with the corresponding markings on the mouse grip, then snap it into place for immediate use, so you’re ready to game in seconds with enhanced precision.
  • Lightweight and Portable: Weighing only 34.2g, it’s easy to carry and lets you enjoy a professional-grade gaming experience anytime, anywhere.

Use server-settings.json for multiplayer policy

The multiplayer server settings file controls listing and access details such as the server name, description, tags, player limit, visibility, and credentials. A typical launch combines it with a known save:

./bin/x64/factorio --start-server ./saves/custom-map.zip --server-settings ./data/server-settings.json

Validate the JSON before starting. A typo in the settings file can prevent startup even when the save itself is healthy. Keep credentials out of shell history and restrict the permissions on files that contain them.

Use an explicit path when diagnosing startup

Automatic latest-save loading is convenient for routine restarts, but it hides which archive Factorio selected. During installation and migration, use an explicit path. Switch to --start-server-load-latest only after the save set and backup policy are clear.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.
Independent reader supportYour contribution helps us test, update, and keep practical guides available for everyone.Support on Ko-Fi

Handle mods and compatibility separately

Copying a save or scenario does not install its mods. A scenario can provide runtime scripting without requiring clients to install the scenario itself, whereas mods may alter prototypes and game data and must be available in compatible versions.

Synchronize mods when appropriate

The command-line option --sync-mods can synchronize the server’s mod set. For a headless server, downloading mods requires the service credentials stored in player-data.json. Configure those credentials before requesting synchronization; otherwise the server may be unable to obtain the required packages.

Check compatibility before loading

  • Compare the save’s Factorio release with the server binary.
  • Install the scenario version expected by the map package.
  • Match every required mod and its version before removing or replacing anything.
  • Back up the save before changing mods that are deeply integrated with the world.
  • Do not delete scenario files that an existing save still references.

When content is missing after a successful load, the first distinction to make is whether the missing content belongs to the scenario or to a mod. They are installed and synchronized through different mechanisms.

Troubleshoot the most common failures

“The server cannot open the save”

  • Check the exact filename and extension.
  • Confirm that the path is relative to the directory where Factorio is running, or replace it with an absolute path.
  • Check read permissions for the server user and every parent directory.
  • Verify that the ZIP transfer completed and that the archive is not truncated.
  • Stop any old instance that may still be locking or rewriting the intended save.

Retry with an explicit command such as --start-server ./saves/my-save.zip so the launch target is unambiguous.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

The map opens, but buildings or scripted content are missing

Compare the Factorio version and required mods with the original environment. A scenario and a mod do not follow the same installation rule: the scenario belongs in the user-data scenarios directory, while mods must be installed or synchronized as a separate set. Restore the backup before experimenting with removal or replacement.

The newly created map does not match the creator’s map

First determine whether you received a save or only a map exchange string. If it is a string, copy the complete value, including delimiters, and use it in the map-exchange field or parse it into the two JSON settings objects. Even a correctly reproduced string creates a fresh map; it does not reproduce the creator’s explored state or factory.

--start-server-load-latest loads the wrong world

Use an explicit save path. The latest-save option selects by recency, so an unrelated archive with a newer timestamp can win. Rename or move unrelated saves only after creating backups.

The server must appear in the public list

Configure the relevant name, description, tags, player limit, visibility, and credentials in server-settings.json. Then include that file in the startup command. Public visibility is a server configuration concern; it does not change how the custom map itself is installed.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

A repeatable installation checklist

  1. Identify the package as a save ZIP, scenario, map exchange string, or JSON settings.
  2. Install the matching Factorio release on the server.
  3. Stop any existing instance and back up its current save.
  4. Copy a save into saves, install a scenario into user-data scenarios, or prepare the required JSON files.
  5. Install or synchronize the required mods, including credentials in player-data.json when headless synchronization needs them.
  6. Create a save with --create when using JSON settings, or launch the supplied archive with --start-server.
  7. Use server-settings.json if listing, visibility, player limits, or credentials must be configured.
  8. Read the startup output and resolve path, permissions, version, or mod errors before inviting players.
  9. Once the world loads correctly, establish a regular backup of the save ZIP before future updates.

What to send when another player asks for your custom map

Send the save ZIP when the recipient needs your actual world and progression. Send the scenario package when the recipient should run the scenario logic and create a new game from it. Send the complete map exchange string when the goal is only to reproduce map-generation settings. For automated deployment, include the compatible mod set and the JSON files used with --create. Naming the format explicitly avoids a transfer that looks complete but cannot reproduce the intended game.

Product prices and availability are accurate as of the date/time indicated and are subject to change. Any price and availability information displayed on Amazon at the time of purchase will apply.

Leave a Reply

Your email address will not be published. Required fields are marked *

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

More quests from Patch Notes

  1. How to Set Up a RedM (RDR2) Server in 2026: License Key, txAdmin and server.cfg, Step by StepBlog11min
  2. Best RedM (RDR2) Server Hosting in 2026: Comparing Four Hosts on Slots, Memory and PriceBlog10min
  3. How to Host a Mindustry Server in 2026: server-release.jar, Port 6567 and the Commands That MatterBlog7min
Recommended PC Tool
Recommended PC Tool
Windows Errors? Fix Them Before They SpreadFree repair scan
Outdated Drivers Are Slowing You DownFree scan - exact matches

Two free Windows tools

One Free Minute Could Fix That PC

Before you go - each of these free tools takes about a minute and tackles what quietly slows a Windows PC down.

Special offer. View Outbyte info, uninstall instructions, EULA, and Privacy Policy.