Recommended Free Tools
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.
Playing with friends? Godlike.Host runs hosted Factorio servers from 10 data-center locations, with free DDoS protection.
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.
| 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
- 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.
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.
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
- Stop the old server cleanly and wait for the process to exit.
- Copy the current save ZIP to a separate backup location.
- Upload the replacement ZIP to the intended
savesdirectory. - Verify the filename and permissions.
- 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.
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 minutePath 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
- Open Factorio and choose Play.
- Select Scenarios.
- Choose the installed scenario.
- Create the multiplayer game from that scenario.
- 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
- 【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.
./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
- Open the Load Game screen.
- Select the map whose generation settings you want to share.
- Choose the map exchange-string button.
- Copy the complete value, including its delimiters.
- 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.
Quick wins for a faster PC:
Scan for outdated or missing drivers - takes under a minuteDriver Scan →Repair Windows errors before they cause bigger problemsFix Now →Fix the driver behind crashes, sound loss and screen glitchesFind Drivers →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.
Do these 3 things before closing this tab:
1Fix the driver behind crashes, sound loss and screen glitches2Clear out junk files and repair common Windows errors3Scan for outdated or missing drivers - takes under a minuteKeep 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.
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
- 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.
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.
The Tool Desk
Outbyte Driver Updater FREEFix the driver behind crashes, sound loss and screen glitchesFind Drivers →Outbyte PC Repair FREERepair Windows errors before they cause bigger problemsFix Now →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.
A repeatable installation checklist
- Identify the package as a save ZIP, scenario, map exchange string, or JSON settings.
- Install the matching Factorio release on the server.
- Stop any existing instance and back up its current save.
- Copy a save into
saves, install a scenario into user-datascenarios, or prepare the required JSON files. - Install or synchronize the required mods, including credentials in
player-data.jsonwhen headless synchronization needs them. - Create a save with
--createwhen using JSON settings, or launch the supplied archive with--start-server. - Use
server-settings.jsonif listing, visibility, player limits, or credentials must be configured. - Read the startup output and resolve path, permissions, version, or mod errors before inviting players.
- 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.
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.




