How to Upload, Back Up and Transfer Factorio Saves
Move a Factorio world between your PC and a server, keep backups that survive a bad change, and restore the right save without losing the progress you wanted to keep.
Your map lives in a single .zip save. That makes copying easy, but the save does not bring server settings, admin lists, or the actual mod files with it.
Headless Factorio does not browse your worlds like a client menu. It loads a specific file, the latest modified save, or whatever filename your panel expects.
Autosave slots cycle. With the default settings, they are a short rollback net, not a long archive you can trust after a busy evening.
If the only copies live on the same machine, a bad edit, failed mod change or disk problem can wipe your live save and your backup together.
Where Factorio saves live, and what actually transfers
Factorio saves are stored in the user data directory inside ./saves. On a local PC, the common save paths are:
- Windows:
%appdata%\Factorio\savesorC:\Users\<name>\AppData\Roaming\Factorio\saves - macOS:
~/Library/Application Support/factorio/saves - Linux:
~/.factorio/saves - Flatpak Steam on Linux: paths start from
~/.var/app/com.valvesoftware.Steam/
On a server, the important place is still the saves folder. If you are using a panel, it may expose that folder directly, or it may present a “world” selector that still points to the same idea underneath: one save file the server should start.
A Factorio world is one .zip file. Inside that save is the map state and the information the game needs to understand it, including which mods and mod settings the save expects. That is why a transfer can fail even though the save file itself copied over cleanly: the server can see the save, but it cannot interpret it without the same mod set and a suitable game version.
What does not travel with the save matters just as much:
server-settings.jsondoes not come with the world. That file controls server behaviour such as autosaves.server-adminlist.jsondoes not come with the world. Admin permissions stay on the server side.- The mods themselves do not come with the save. Their
.zipfiles belong in./mods. - Map creation settings only matter when you create a new map with
--create. An existing save carries its own map state already.
Also, Steam Cloud is not a backup for your worlds. Factorio’s Steam cloud folder stores things such as config.ini, achievements, player-data.json and blueprint storage, but not save files. If your only copy of a factory sits on one machine, that machine is still your only copy.
How a Factorio server decides which save to load
The headless server only runs one save at a time, and that choice is mechanical rather than clever. Before you upload anything, know which start mode your server uses, because a perfectly good save can be ignored if it is not the file the server is looking for.
| Start mode | Picks a fresh upload by itself | Can pick an autosave | Fix when it loads the wrong world |
|---|---|---|---|
| --start-server <file> | No | No | Point it at the file you want |
| --start-server-load-latest | Yes | Yes | Touch the save you want or move newer ones out |
| Panel with a fixed name (e.g. default.zip) | No | No | Rename your upload to that name |
| Panel world selector | No | Partly | Select the save, then restart |
--start-server ./saves/my-save.zip --start-server-load-latest --server-settings ./data/server-settings.json
| Start mode | Which save loads | Gotcha |
|---|---|---|
--start-server ./saves/my-save.zip | The exact file you name | If you upload a new save under a different name, the server will keep starting the old one. |
--start-server-load-latest | The most recently modified save in the saves folder | Autosaves count. A newer autosave can beat the manual save you meant to use. |
| Panel with fixed filename | Whatever file the panel expects, often something like default.zip | A fresh upload sits unused until you rename it to the expected name or change the panel setting. |
| Panel with dropdown or world selector | The file chosen in the panel | Uploading alone is not enough; the selected world may still point at the old save. |
Why this catches people out: upload and load are separate steps. File transfer only affects storage. Startup mode decides what actually enters memory when the process launches. The easiest way to confirm what happened is to read the server startup log or panel console and look for the save filename it announces on load.
If your server uses --start-server-load-latest, file timestamps matter. A manual save from earlier in the day may lose to a later autosave. If it uses a fixed filename, timestamps do not matter at all; only the expected name matters.
Upload a local save to a server without it being ignored
This is the safe path for moving a single-player factory, or a locally hosted multiplayer map, onto a dedicated or rented server.
- Save and quit on the local machine. This ensures the
.zipis fully written. Copying a save while the game is still writing it risks a partial file. - Find the save in your local
savesfolder. Use the actual.zipfile. Do not recreate the map on the server and try to copy settings over later; the existing save already contains the world you want. - Stop the server first. This avoids two common problems: the server saving over a live file while you upload, and the panel restarting into the old world before you finish setting the right filename or selection.
- Back up the server’s current saves before changing anything. If the upload fails, or the imported world has the wrong mod set, you want a quick way back.
- Upload the save as a zip. Do not extract it. Factorio expects a save file, not an unpacked folder tree.
- Name it how your server expects. If the server starts a specific file, use that exact name. If the panel expects a default filename, use that. If you choose the name yourself, keep it plain and use underscores instead of spaces so panels and selectors handle it cleanly.
- Check the uploaded file size matches the original. This is a simple corruption check. If the size differs, the transfer is not finished or the upload tool altered the file.
- Match the game version. A save should load on the version that created it or newer, but a mismatch is still one of the first things to check if the server crashes or rejects players.
- Bring the mods too. Copy the required mod
.zipfiles into the server’smodsfolder. For Space Age saves, make sure the built-in expansion mods are enabled on the server as well. - Start the server and join. You are looking for the same factory state, research, inventories and character progress as the original world.
The most common reason a fresh upload seems to do nothing is simple: the server loaded another save. Either the startup rule still points at the old filename, or load-latest chose a different file by modification time. If that happens, do not re-upload first; check what save the server actually started.
Mods, Space Age and version matching when a save moves
A transferred save can fail even when the file is fine, because the save remembers the mod environment it was built with. Missing mods, changed mod settings, or the wrong game version can stop load entirely or leave clients unable to join.
How mod sync works
In the client, Sync mods with save on the Load Game screen tries to bring your local mods in line with the save. By default it uses the latest mod versions; if you Ctrl+click, it uses the exact versions recorded in the save. Exact versions are safer for preserving behaviour because mods can change prototypes, recipes and migrations between releases. The trade-off is that you may stay on an older mod build longer than you planned.
When a player joins a modded server, Factorio offers to sync mods and downloads the exact same versions as the server. That is why a server-side mod mismatch becomes a join problem for everyone, not just a load problem for the admin.
Headless servers and --sync-mods
The headless server can use --sync-mods to sync mods with the save, but it needs service-username and service-token in player-data.json to download them. Without those credentials, the option does not solve anything on its own. For many rented setups, it is often simpler to upload the mod .zip files directly into ./mods.
Space Age saves
Space Age is a paid expansion delivered as built-in mods: space-age, quality, elevated-rails and recycler. They are not fetched from the mod portal. If a save was created with Space Age content active, the server must have the expansion installed and those mods enabled, or the save will not load correctly.
Version matching
Run the server on the version that created the save or newer. The current stable release is 2.1.24 (November 2026). Players must also be on the same version as the server. This matters because save data, prototypes and migrations are interpreted by the game build itself; if the server and clients disagree, joins fail or the world refuses to load.
Download a server save to play locally or move to a new host
Going the other direction is just as common: you want a local copy for single-player, or you want to leave one machine or provider and keep the factory intact.
- Create a clean save point. Use
/server-savein multiplayer as an admin, or/save <name>in the server console. If you are shutting down, use/quitso the server exits cleanly and saves on the way out. - Stop the server before downloading if possible. This avoids grabbing a file while it is being written. A half-written save is usually obvious later because it fails to load or has the wrong size.
- Download the newest real save, not just the newest file. On
load-latestsetups, the newest file might be an autosave rather than the named save you wanted. Check timestamps and filenames. - For local play, place the
.zipinto your localsavesfolder. Then launch Factorio and load it normally. - For a host move, also copy supporting server files if you want the same admin and server behaviour. That usually means the save, the
modsfolder,server-settings.json, andserver-adminlist.json.
Clients can also save a local copy of a multiplayer game. That is useful as an emergency capture before a server upgrade or migration, especially if you do not fully trust the panel workflow yet.
If you are deciding between moving the world to a rented service or hosting a server on your own PC, think about uptime, upload speed, backup discipline and how often you want to maintain the machine yourself. The transfer method for the save is the same; the difference is where the admin work lands afterwards.
Autosaves: what they protect, and what they do not
Factorio’s defaults are sensible as a safety net, but they are not long-term history. By default, autosave_interval is 10 minutes and autosave_slots is 5, with slots reused in a cycle.
{
"autosave_interval": 10,
"autosave_slots": 5,
"autosave_only_on_server": true
} With those defaults, the oldest autosave is about 50 minutes old. After that, the cycle overwrites it. That is why autosaves are good for “we broke the base a few minutes ago” and poor for “we need yesterday’s stable state”.
autosave_only_on_server defaults to true, which means clients do not autosave during multiplayer. That reduces client disk activity and keeps the authoritative history on the server side, but it also means players should not assume their local machine has a recent automatic backup of the session.
non_blocking_saving is marked highly experimental and should be treated cautiously. On UNIX, the server forks itself to write the autosave in the background, so play doesn’t pause while it saves. The official settings file also warns you are enabling it “at your own risk of losing your saves”. If your priority is preserving the world rather than squeezing out marginal smoothness, a conventional save path is the safer choice.
What to change on a busy server:
- More autosave slots: costs more disk space, gives you more short-term rollback points.
- Shorter autosave interval: reduces potential progress loss between saves, but makes save work happen more often. The cost lands on CPU time for the save operation and disk write activity, and players may notice brief interruptions more frequently.
- Leave experimental saving alone unless you have a very specific reason: the trade-off is reliability versus convenience, and reliability should win.
How to tell your changes helped: look at the save timestamps over a normal session, check whether the interval matches what you intended, confirm disk use remains reasonable, and ask whether players notice save pauses more often than before.
A backup routine that actually survives bad changes
Autosaves are not backups in the administrative sense. They live on the same machine, cycle quickly, and can be overwritten by normal play. A proper routine adds named saves before risky changes and copies them somewhere off the server.
Make a manual save before anything likely to break compatibility or factory logic: game upgrades, mod changes, major blueprint deployments, rail overhauls, or any administrative experiment you might want to reverse cleanly.
| What to keep | How often | Where | Why |
|---|---|---|---|
| Current live save copied off-server | Daily | A different machine or storage location | Protects against server failure, bad uploads and accidental deletion. |
| Named manual save before big changes | Before each risky change | On the server first, then copied off-server | Gives you a clear restore point with a meaningful name instead of guessing between autosaves. |
| Rolling archive of recent saves | Daily | Off-server | Covers mistakes discovered later, after autosave slots have already cycled. |
| Longer-term archive | Weekly | Off-server | Useful for host moves, version changes and “we want the map from before that project”. |
mods folder snapshot | Whenever mod list or versions change | Off-server with the matching save | A save may depend on exact mod files and versions to load cleanly. |
server-settings.json and server-adminlist.json | Whenever you change them | Off-server | Lets you recreate the same server behaviour and admin access after a move. |
Use /server-save in multiplayer when you are in-game as an admin. From the server console, use /save <name> to write a clearly named restore point. The name matters because it turns restore into a deliberate choice instead of a timestamp puzzle.
Test at least one restore path. A backup you have never tried to load is only a theory, especially on modded servers.
Restore the right save without losing newer progress by mistake
The main danger during restore is not loading an old save. It is loading the wrong old save, then discovering you discarded newer progress that could have been kept.
- Copy the current state first. Before restoring anything, duplicate the current live save and move a copy off-server. That makes the rollback reversible.
- Identify the newest good save by timestamp and context. “Newest” is not always “best”. A newer autosave may already contain the bad mod migration or base edit you are trying to undo.
- Check how your server selects saves. On
load-latest, the newest modified file wins. On fixed-name panels, only the expected filename wins. On exact-file startup, only the configured filename wins. - Make the chosen save the one the server will actually load. You can start a specific file, rename the chosen save to the panel’s expected name, or update the chosen file’s date so
load-latestpicks it. If needed, remove newer saves from the folder after backing them up elsewhere. - Start the server and verify the world immediately. Check recent construction, research progress, inventories and mod state before letting everyone pile hours into the restored branch.
Why load-latest trips people up: it does not know which save is “good”. It only knows which file is newest by modification time. That can easily be an autosave you never meant to make live.
How to tell you restored the right point: the startup log shows the filename you expected, the in-game world state matches the moment you meant to return to, and there is no newer progress missing beyond the rollback you intentionally accepted.
Troubleshooting save uploads, wrong worlds and lost progress
Use this as a quick triage. Start with filename, start mode, version and mods before assuming the save itself is broken.
| Symptom | Likely cause | First fix |
|---|---|---|
| Server loads the wrong or old world | The startup mode points at a different file, or load-latest picked another save by modification time | Check the startup log for the loaded filename, then rename/select the intended save or start that exact file. |
| Uploaded save is ignored | The file is in the wrong folder, has the wrong name for the panel, or was uploaded but not selected | Stop the server, place the .zip in the correct saves location, use the expected filename or panel selection, then start again. |
| Server crashes on load after upload | Version mismatch, corrupt upload, or missing required mods | Check the uploaded file size against the original, match the game version, and install the mod set the save expects. |
| Missing mods error | The save references mods not present on the server, or Space Age mods are not enabled | Copy the needed mod .zip files into ./mods and enable the built-in Space Age mods if that save uses them. |
| Players cannot join after transfer | Server and clients are on different versions, or the server mod set changed | Match everyone to the server version, let clients sync the exact server mods, and if self-hosting confirm UDP 34197 is still reachable. |
| Progress is lost after restart | The server saved and then loaded a different world on boot, or a recent clean save never happened before shutdown | Check timestamps, make a manual save with a clear name, verify the server loads that file on restart, and use /quit for clean stops. |
| Upload is very slow or the file arrives corrupt | Transfer method failed part-way, or the panel/browser upload did not complete properly | Re-upload the same .zip without extracting it and confirm the uploaded file size matches the original before starting the server. |
If you self-host and are planning a move because the map is getting heavier, check the general game server hardware requirements first. Save transfers are simple, but late-game simulation load and modded startups still need enough CPU headroom and storage discipline around them.
Which move method fits your situation
Different situations call for different workflows. The table below keeps the method matched to the risk.
| Situation | Best method |
|---|---|
| Single-player save to a rented server | Save and quit locally, upload the .zip as-is, copy the matching mods, then make the panel load that exact save. |
| Local hosted multiplayer to a dedicated machine | Create a clean manual save, stop the old host, copy save plus mods, then set the new server’s start mode before opening it to players. |
| Server to new host | Stop or /server-save, download the chosen save, copy mods and server config files, upload to the new host, then verify version and startup selection. |
| Server save back to single-player | Take a clean save from the server, place the .zip into your local saves folder, and sync the same mods locally before loading. |
| Rolling back a mistake | Copy the current live save first, choose the newest good named save or autosave, then force the server to load that exact file rather than trusting load-latest. |
| Upgrading the game version | Back up the live save and mods first, then upgrade the server and test load before letting regular players back in. Keep the pre-upgrade restore point off-server. |
| Moving a Space Age world | Treat it like any other transfer, but confirm the expansion is present and its built-in mods are enabled on the destination server before starting. |
If you are still deciding where that world should live next, read our guide to choosing a game server host before you move. The right panel, backup access and save handling matter more for Factorio than flashy extras.
Look for clear file access, simple world selection, and an easy way to download off-server backups. Those matter far more for long-running factories than cosmetic panel features.
Compare the best Factorio server hostsFactorio server FAQ
Where are Factorio save files stored?
Locally, Factorio saves live in the user data directory under saves: %appdata%\Factorio\saves on Windows, ~/Library/Application Support/factorio/saves on macOS, and ~/.factorio/saves on Linux. On a server, the important location is likewise the saves folder exposed either directly or through a host panel.
How do I upload my single-player Factorio save to a server?
Save and quit locally, find the .zip save, stop the server, back up the server’s current saves, and upload the file without extracting it. Then make sure the server is configured to load that exact save, copy any required mods into ./mods, and match the game version before starting.
How often does a Factorio server autosave?
By default, autosave_interval is 10 minutes and autosave_slots is 5. Because the slots cycle, that gives you only about 50 minutes of rolling autosave history, so treat autosaves as short-term protection rather than a real archive.
Does Steam Cloud back up my Factorio saves?
No. For Factorio, Steam Cloud stores items such as configuration, achievements, player data and blueprint storage, but not your world save files. If you want reliable recovery, keep separate copies of your saves off the server and off your local machine.
Why did my Factorio server load an old save?
The usual reason is that the server did exactly what its start mode told it to do. It may be starting a specific filename, loading the most recently modified save including autosaves, or following a panel default name rather than the file you just uploaded.
More Factorio and server save guides
Our Factorio host comparison, plus backup and world transfer guides for other games.
Written for Factorio 2.1.24 and Space Age (November 2026). Paths, command-line options and settings come from the official Factorio wiki, the server-settings.example.json that ships with the game and host upload guides.