The correct installation method depends on what you received. A progressed Factorio world is a save ZIP: copy it to the server and launch it with --start-server. A scenario is installed in the user-data scenarios directory and can be started with --start-server-load-scenario. A map exchange string contains map-generation settings for a new world; it does not contain an explored factory or its current progress.
Playing with friends? Godlike.Host runs hosted Factorio servers from 10 data-center locations, with free DDoS protection.
Choose the right custom-map format
Before uploading anything, identify whether the creator gave you a save, a scenario, or a map exchange string. These formats preserve different parts of a game and require different server commands.
As an Amazon Associate I earn from qualifying purchases.
The Tool Desk
Outbyte Driver Updater FREEScan for outdated or missing drivers - takes under a minuteDriver Scan →Outbyte PC Repair FREERepair Windows errors before they cause bigger problemsFix Now →| Method | What it preserves | Best for | Main dependency |
|---|---|---|---|
| Save ZIP | The explored world, buildings, inventories, research, and current progression | A downloaded world or an existing cooperative factory | A matching Factorio version and mod set |
| Scenario | A scenario map and its runtime scripting | Missions, challenges, tutorials, and server-side objectives | The scenario folder and compatible content |
| Map exchange string | Map-generation settings for a fresh map | Recreating terrain, resources, enemy settings, or a seed-like configuration | Creating a new map; it carries no previous exploration |
| JSON settings | Explicit map-generation and simulation configuration | Repeatable, scripted map creation | --create and correctly structured JSON files |
If the package contains a .zip save, use the save workflow even if the creator calls it a “custom map.” If it contains a directory with files such as control.lua, it is likely a scenario. If it is one long encoded string, it is a map exchange string.
Prepare the dedicated server
Install the correct Factorio release
Use the same Factorio release that created the world whenever possible. A save may fail to load, or may open with missing content, when the server is on a different release or when required mods are absent. Check the server binary before migrating the world and record the version used by the map creator.
#1 Best Overall
- 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
On Linux, use the headless package when the machine does not need graphics. The official multiplayer guidance recommends a dedicated non-root user, extracting the package into that account’s directory, and testing the executable. A message that the save cannot be found generally means the binary is running and the next task is to upload the save at the path you supplied. This package is also suitable for a third-party hosted server, provided you can place files and run the Factorio process under the host’s service account.
Locate the server’s data directories
The commands below assume the binary is ./bin/x64/factorio, the working directory is the extracted server directory, and saves are kept in ./saves. You can instead provide an absolute path. The path must be readable by the account running the server.
saves: normal save ZIP files used by--start-server.data: bundled data and the standard location forserver-settings.jsonin the documented examples.- User data
scenarios: scenario directories available to the standalone game and headless server. player-data.json: credentials and player-related data used when headless mod synchronization needs authenticated service access.
Stop any existing instance first
Do not replace a ZIP while a server is writing to it. Stop the old instance cleanly, wait for the process to exit, and then copy the new save. Keep the original file as a backup before changing mods, removing scenario files, or opening the world with a newer game release.
Check ownership and paths
Uploads made by an administrator can end up owned by a different account from the one that runs Factorio. Make the save, scenario directory, and settings files readable by the service account, and use the same working directory in startup scripts that you use when testing manually. An explicit absolute path is useful when a panel or system service starts Factorio from an unexpected directory.
Install a downloaded or existing save ZIP
This is the usual method for a progressed custom world. The ZIP itself contains the map state; do not unzip it into a new scenario directory.
Step 1: obtain and verify the save
- Obtain the Factorio save in its original
.zipform. - Check that the archive is complete and can be opened by a local Factorio installation if possible. Do not rename the extension to another archive format.
- Confirm the creator’s Factorio version and mod list. If the world was made with mods, obtain those exact mods or an equivalent synchronized set before launching.
Step 2: copy the ZIP to the server
Place the file in the server’s saves directory, or use any readable relative or absolute path. For example, a file named my-save.zip in ./saves is referenced as ./saves/my-save.zip. Preserve a second copy outside the live directory as your rollback backup.
Quick wins for a faster PC:
Repair Windows errors before they cause bigger problemsFix Now →Scan for outdated or missing drivers - takes under a minuteDriver Scan →Clear out junk files and repair common Windows errorsFree Scan →Step 3: start the named save
From the Factorio server directory, run:
./bin/x64/factorio --start-server ./saves/my-save.zip
The server now loads that exact world. An explicit filename is safer than relying on whichever ZIP happens to be newest, particularly when several test worlds are present.
Step 4: optionally load the newest save
For an automated setup that intentionally uses the newest save, use:
./bin/x64/factorio --start-server-load-latest --server-settings ./data/server-settings.json
This option is convenient for a single-world server with a predictable save directory. If it selects an unexpected world, return to an explicit --start-server path so there is no ambiguity.
What a save migration preserves
A save ZIP preserves the explored terrain and the state built on it, rather than merely repeating the original generation recipe. That includes the current factory layout, research and other progression recorded in the save. A map exchange string cannot reproduce those changes.
First launch checks
Watch the server log through the first load. Confirm that the expected save name appears, that no required-mod warning is reported, and that the process reaches its normal listening state. Join with a client using the same release and enabled mods, then make a small test save or controlled change before announcing the server. This confirms that the uploaded ZIP is writable and that the account can create the normal autosave files.
Create a fresh map from JSON settings
Use JSON when you want a new world generated from deliberate, repeatable settings rather than an existing explored save. The map-generation file controls world-generation choices such as terrain, resource frequency, and dimensions. The map-settings file controls simulation behavior such as pollution and enemy evolution.
Prepare the two files
Create valid JSON files named, for example, map-gen-settings.json and map-settings.json. Keep the files with the server configuration so the same world recipe can be recreated later. A malformed or incomplete object can cause creation to fail or produce settings different from those intended.
Create the save
Run:
./bin/x64/factorio --create saves/custom-map.zip --map-gen-settings map-gen-settings.json --map-settings map-settings.json
This creates a new save at ./saves/custom-map.zip. Start that file with the normal save command:
Free tools Windows power users keep installed
One-click scans. No signup required.
Rank #2
- 【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
./bin/x64/factorio --start-server ./saves/custom-map.zip
JSON creation is useful for provisioning multiple servers consistently, but it does not import someone else’s explored factory. For that, transfer the original save ZIP instead.
When JSON is preferable
Choose JSON when an administrator wants configuration under version control, repeatable test worlds, or a scripted deployment that creates a clean save before starting the service. Keep the generation and simulation files alongside the startup script and record which Factorio release produced them. If a creator supplied only settings and no save, JSON is the faithful way to reproduce the requested setup.
Install and launch a scenario
A scenario is a separate format from a save. Scenarios are placed in the user-data scenarios directory and may include a control.lua script for runtime objectives and behavior. They do not add prototypes by themselves and do not require every client to install the scenario separately.
Install the scenario directory
- Stop the server.
- Copy the complete scenario directory into the user-data
scenariosdirectory. Keep the directory name and internal files intact. - If the scenario is supplied by a mod, install that mod and use the mod-qualified scenario name instead of copying files into an unrelated directory.
- Check the scenario’s supported Factorio release and any separate mod requirements.
A common upload mistake is creating scenarios/ScenarioName/ScenarioName/control.lua by extracting one directory too deep. The directory immediately below scenarios should be the scenario name, with its files directly inside it.
Launch from the graphical interface
In the Factorio client, choose Play then Scenarios, select the scenario, and create the multiplayer game. When you choose the scenario and save it, Factorio creates a normal save containing the map and scenario scripting. That resulting ZIP can then be moved to a headless server and launched with --start-server.
Launch directly on a headless server
The documented headless form is:
./bin/x64/factorio --start-server-load-scenario [MOD/]NAME
Replace NAME with the scenario name. The server resolves it from the top-level scenarios directory or, when applicable, from the specified mod using the MOD/NAME form. This starts the scenario directly rather than loading an already-created save.
Scenario versus mod
Do not treat a scenario folder and a mod as interchangeable. A scenario provides a map and runtime scripting; a mod can change game data and prototypes and is a separate dependency. If the scenario’s scripting expects a particular mod, install or synchronize that mod before starting.
Use a map exchange string
A map exchange string is a compact representation of map-generation settings. It is appropriate when you want a fresh map with the same generation choices as another player’s map. It does not include the explored state, buildings, inventories, research, or other progression from an existing save.
Do these 3 things before closing this tab:
1Clear out junk files and repair common Windows errors2Fix the driver behind crashes, sound loss and screen glitches3Repair Windows errors before they cause bigger problemsCopy a string from the Factorio interface
- Open the Load Game screen.
- Select the map whose generation settings you want to share.
- Choose the map exchange-string button and copy the complete value.
- When creating a new game, paste the value into the map-exchange field and generate the map.
Keep the entire string, including its delimiters. Missing characters can produce a different map or make the value invalid. If the original world is already developed, ask for its save ZIP instead.
Convert the string for scripted creation
For a scripted workflow, the command-line reference documents this in-game console command:
/c helpers.write_file('map.txt', helpers.table_to_json(helpers.parse_map_exchange_string("<your exchange string here>")))
Open the resulting map.txt, copy its map_settings and map_gen_settings objects into separate JSON files, and pass those files to --create:
PC Slower Than It Used to Be?
A free scan shows the junk files, broken settings and background clutter dragging Windows down - then fixes them in one click.Free scan · Windows 10 & 11Crashes, No Sound, or Screen Glitches?
Random freezes, missing sound and display glitches usually trace back to one bad driver. Find and replace yours safely.Free scan · under a minute./bin/x64/factorio --create saves/custom-map.zip --map-gen-settings map-gen-settings.json --map-settings map-settings.json
The generated save is new. The conversion reproduces settings, not the state of the source world.
Install and synchronize required mods
Mods are an independent dependency for all three workflows. A save or scenario can reference mods that are not bundled in the ZIP or scenario directory. Align the server’s Factorio release, scenario version, and enabled mod list with the package before loading it.
- Install the exact required mod versions when the map depends on them.
- Do not remove a scenario or deeply integrated mod from a live world without a backup; the save may no longer load or may lose expected behavior.
- When a headless server must download mods, use the documented
--sync-modsoption and provide the required service credentials inplayer-data.json. - After synchronization, verify that the server and connecting clients have compatible enabled mods and versions.
A scenario that contains only runtime scripting does not automatically install unrelated mods. Conversely, installing a mod does not turn a map exchange string into a progressed world. Synchronize before the first launch rather than troubleshooting missing prototypes after the save has already been opened and rewritten.
Rank #3
- 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.
Configure the server after the map is installed
Use server-settings.json for the server’s multiplayer behavior rather than embedding those choices in the map itself. The documented settings include the server name, description, tags, player limit, visibility, and credentials. Supply the file when starting the server, for example:
Recommended Free Tools
./bin/x64/factorio --start-server ./saves/custom-map.zip --server-settings ./data/server-settings.json
Keep the settings file readable by the service account and validate its JSON syntax before launching. A custom map can load correctly while still being private or absent from public listings if visibility and listing fields are not configured. If you move the server between machines, copy this file separately; it is not stored in the save ZIP.
Troubleshoot common installation failures
“Cannot open save” or “save cannot be found”
- Check the spelling, capitalization, and extension of the filename.
- Use an explicit absolute path to rule out a different working directory.
- Confirm the server account can read the directory and ZIP.
- Verify that the archive is intact and was not truncated during upload.
- Make sure the old server process is stopped before replacing a live save.
The map loads but content is missing
Compare the server’s Factorio release and enabled mod versions with those used to create the save. A scenario and a mod have different installation rules: check the scenario directory separately, then check the mod set and, if needed, run headless synchronization with valid credentials.
The generated map does not match the creator’s map
Use the complete map exchange string, including its delimiters, or transfer the actual save ZIP. The string only reproduces generation settings; it cannot restore explored areas or factory construction.
The latest-save option starts the wrong world
Replace --start-server-load-latest with --start-server and the exact intended ZIP path. The latest-save mode is directory-based and is unsuitable when several worlds are present.
What’s actually slowing this PC down?
Pick the symptom - the matching free tool is one click away.
The scenario is not listed
Confirm that the scenario directory is in the user-data scenarios location, that its internal files were not nested one directory too deep, and that the scenario supports the installed Factorio release. For a mod-provided scenario, use the qualified MOD/NAME launch form and install the parent mod.
Players cannot find the server publicly
Review server-settings.json, especially the name, description, tags, player limit, visibility, and credentials fields. A correct save path does not automatically make a server publicly listed.
The server starts but players cannot join
Check that clients use the same Factorio release and required mod versions as the server. For a scenario launched directly, verify that the scenario’s parent mod, if any, is enabled. If the server is intentionally private, confirm its visibility setting before treating the absence from the public list as an installation failure.
Safe migration checklist
- Identify the package as a save ZIP, scenario, map exchange string, or JSON settings.
- Record the Factorio release and required mod versions.
- Stop the current instance cleanly.
- Back up the original save before migration or mod changes.
- Copy saves to
saves; copy scenarios to the user-datascenariosdirectory. - Use
--start-serverfor an existing save,--start-server-load-scenariofor a scenario, or--createfor new JSON-generated maps. - Use an explicit save path when more than one world exists.
- Configure
server-settings.jsonfor listing and multiplayer limits. - Test the server with the required mods enabled before inviting players.
- Retain the original ZIP and the generation/settings files until players have confirmed the migration works.
Frequently Asked Questions
Can I use a map exchange string on a dedicated server?
Yes, but it creates a fresh map from generation settings. Paste it when creating a new game, or convert it to map-gen-settings.json and map-settings.json and run --create. It cannot transfer an explored factory.
How do I upload a Factorio save to a headless server?
Stop the running instance, copy the original .zip into the server’s saves directory, confirm the Factorio release and mods, then run ./bin/x64/factorio --start-server ./saves/your-save.zip. Keep a backup outside the live directory.
Do players need to install a scenario?
A scenario itself does not require every client to install it separately. Install the complete scenario in the server user-data scenarios directory. Any separate mod required by its script remains a dependency for the server and connecting clients.
What is the difference between a scenario and a save?
A scenario is a reusable map package that can include control.lua runtime scripting. Choosing it and saving creates a normal save ZIP containing the current scenario world. A save ZIP is the persisted world you launch directly with --start-server.
Why does the server say it cannot find my save?
Check the filename, extension, working directory, permissions, and ZIP integrity. Use an absolute path after --start-server, and make sure another Factorio process is not still using or replacing the file.
How do I make the custom map visible to other players?
Pass a valid server-settings.json when starting the save and configure its name, description, tags, player limit, visibility, and credentials. Loading the map alone does not publish the server.
The Bottom Line
Use the format you were given: launch a progressed .zip with --start-server, install a scenario in user-data scenarios and launch it with --start-server-load-scenario, or use a map exchange string and JSON files to generate a new world. Match the Factorio release and mods, stop the old instance before replacing files, keep backups, and configure server-settings.json separately for multiplayer visibility and limits.
Quick Recap
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.




