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

iTechGuides is reader-supported. When you buy through links on our site, we may earn an affiliate commission. As an Amazon Associate I earn from qualifying purchases. Learn more

The safest Factorio server update replaces only the game executable or container image. Stop the server cleanly, back up the save and user data, install the target version beside the old one, start it with the same settings, and test a client before reopening the server. Your players must use exactly the same Factorio version and mods as the server.

The safe update sequence

A Factorio update is low-risk when the replaceable installation layer is kept separate from the persistent user data. The installation contains the executable and bundled assets; user data contains the worlds and server state you need to preserve. Treat the update as a controlled replacement, not as an in-place overwrite.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.
  1. Announce maintenance and stop accepting new connections.
  2. Stop the Factorio process or container cleanly so the latest autosave is flushed.
  3. Copy the save archives and the complete user-data directory to a separate backup location.
  4. Record the current game version, enabled mods, startup command, server-settings file, map-settings files, and relevant environment variables.
  5. Choose the target Factorio branch or version and make sure every player can install that same build.
  6. Install the new native package or pull the replacement container image while preserving the recorded user data.
  7. Start the server with the existing save and settings, inspect the startup output and logs, and test with one client.
  8. Keep the previous executable or image and the pre-update backup until the test session succeeds.

This sequence applies whether the server runs on Linux, Windows, Docker, or a managed host. The commands and persistence details differ by deployment type.

What must be preserved

Factorio keeps important state outside the replaceable program files. The user-data area includes the saves directory, mods, configuration, logs, and crash dumps. Preserve that area when replacing the installation; do not assume that copying only the executable also copies your world.

#1 Best Overall
LIUWEI New Retro Gaming Console & Game Stick Pro - 20,000+ Classic Video Games, 23 Emulators, Dual Wireless Controllers, 4K HDMI Output, Plug & Play, Compatible with TV, PC, Projector, 64GB
  • 🎮 20,000+ Classic Games: This retro gaming console comes preloaded with over 40,000 classic games from your favorite retro consoles. Play instantly—no downloads, no internet needed!
  • 📡 Dual Wireless Controllers: Enjoy smooth, lag-free gaming with two 2.4GHz wireless controllers. Play comfortably from anywhere without tangled wires, making multiplayer fun hassle-free.
  • 🖥 4K HDMI Output: Connect the game stick to your TV, PC, or projector via HDMI and experience stunning 4K visuals for an immersive and crystal-clear gaming experience.
  • 🔌 Plug & Play: Setup is super easy! Simply plug in the console, connect to your TV, and start playing immediately—no complicated installation required.
  • 🎁 Perfect for All Ages: Whether you're introducing the next generation to classic entertainment or reliving nostalgic moments, this system makes an ideal gift for any occasion. Perfect for family gatherings, holidays, or just downtime fun.
Item Why it matters during an update What to record or copy
Save archives Contain the maps, progress, and player data. Copy every relevant .zip save to storage outside the server installation.
Mods The save may depend on specific mods and their versions. Preserve the mods directory and make an inventory of enabled mods.
Configuration Defines server behavior and map settings. Copy server-settings and map-settings files and record their paths.
Logs and crash dumps Provide evidence if the new build fails to load or migrate a save. Retain the pre-update user-data copy and inspect new logs after startup.
Startup and environment settings Determine which save, ports, credentials, and options are used. Record the complete launch command and any container environment variables.

Do not delete the old installation immediately. A separate versioned directory gives you a simple executable rollback, while the backup gives you a recovery point for user data.

Before you change the server

Schedule a clean stop

Tell players when connections will close and stop new joins before maintenance begins. Shut down the Factorio process through the normal control method for your operating system or host. A clean stop lets Factorio finish writing its current state; terminating a process abruptly can leave the newest session state unavailable.

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.

Make a restorable backup

Copy the save archives and the entire user-data directory to a different disk, host, or storage location. A backup on the same filesystem as the server does not protect you from an accidental deletion of that filesystem. Check that the copied archive can be opened or at least that the expected filename and size are present before proceeding.

Capture the current configuration

Write down the output of the current version check, the exact startup command, the save filename, the server-settings and map-settings paths, enabled mods, and any environment variables. This inventory prevents an update from silently switching to a different world or default settings.

Pick a compatible target

Decide whether you are moving to a specific release or following a branch used by your players. Every client must be able to install that exact game version. If the server uses mods, plan the mod versions at the same time rather than updating the game first and diagnosing mod changes afterward.

Updating a native Linux or Windows headless server

The native procedure is the same in principle on Linux and Windows: install the selected full or headless package, leave user data intact, and launch the new binary with the existing save and settings. Use a new, versioned installation directory instead of overwriting the working directory immediately.

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

1. Download and unpack the target package

Obtain the target full or headless package through the official Factorio distribution channel. Extract it into a new directory named for the target version. Keeping the old directory untouched allows you to switch back without reconstructing the previous installation.

2. Point the new installation at existing user data

Use the same user-data location that held the saves, mods, and configuration before the update, or copy that directory into the location expected by the new package. Do not create an empty data directory and assume the old world will be discovered automatically. Verify that the account running the server can read the saves and write logs and updated configuration.

3. Start the intended save

To open a named save, use the documented headless form:

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

On Windows, use the equivalent path to the new executable and the same arguments. If the server should load the newest available save, use:

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

Keep the server-settings path aligned with the preserved configuration. If you use map-settings or additional startup switches, carry those over from the recorded command rather than relying on package defaults.

4. Watch the first startup

Read the console output and log from beginning to end. Look for the new version line, the selected save, migration errors, missing or disabled mods, and permission failures. Do not open the server to players merely because the process stayed running; confirm that the expected map and settings loaded.

5. Verify the binary

Run the version switch against the binary you intend to use:

./bin/x64/factorio --version

The result must identify the target build you selected. If a service manager or script starts a different path, correct that launch configuration before testing.

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

6. Test before removing the old package

Connect with one client using the target game version and the same mod set. Check a known area of the map, confirm player data is present, and watch the log while joining. Leave the old installation in place until this test completes successfully.

Updating a Factorio server in Docker

With Docker, the container and image are disposable, but the save is not. The host directory or named volume mounted into the container must hold the persistent data. If the save exists only inside the container, removing that container can remove the save with it.

1. Confirm the data mount

Inspect the existing docker run command or Compose file and identify the -v volume mapping used for server data. Confirm that saves, mods, settings, and logs are written to the mounted location. Back up that host-side data before stopping the container.

2. Record the complete container configuration

Save the image name and tag, published ports, volume mapping, environment variables, server settings, and any Compose overrides. The replacement container must receive the same values; otherwise it may start with a new empty data directory or different behavior.

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

3. Stop and remove the old container

For a container named factorio, the documented operational sequence is:

docker stop factorio
docker rm factorio

Removing the container is safe only after the data has been backed up and verified on the mounted volume. It is not safe when the world is stored solely in the container’s writable layer.

4. Pull the refreshed image

docker pull factoriotools/factorio

Then recreate the container using the same docker run command or Compose configuration, including the original volume, ports, environment variables, and settings. Do not improvise a new volume path during the update.

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.

5. Handle automatic mod updates deliberately

The Docker project documents UPDATE_MODS_ON_START=true for updating mods when the container starts and UPDATE_IGNORE=mod1,mod2 for holding selected mods back. Automatic mod updates require valid Factorio credentials. Holding a mod back can itself create a compatibility problem if the save or other players use a different version, so treat these variables as part of the version plan rather than enabling them blindly.

6. Inspect the recreated container

Follow the container logs during startup. Confirm that the mounted save is discovered, the expected settings are applied, the target game version is running, and no mod or permission error prevents the world from loading. Join with a test client before announcing that the server is available.

Using a third-party or managed host

A managed host normally supplies its own update control in a panel or documented maintenance procedure. Use that mechanism instead of replacing files manually, but retain the same safeguards:

  • Take an independent copy of the save and user data before pressing the update control.
  • Confirm the exact target Factorio version offered by the host.
  • Check how the host persists saves, mods, and settings and whether those locations are included in its backups.
  • Verify that the host supports the same mod set and mod versions used by your players.
  • Keep the previous backup until a client has joined and the map has been checked.

If the panel offers multiple branches, select the one your clients can install. If the host cannot provide the required game or mod version, changing the client alone will not solve the mismatch.

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

Validate the update before reopening the server

Use this order so a failure is isolated before players make new changes to the world.

  1. Confirm the build. Run factorio --version or read the version shown in the server startup line. It must be the intended target, not the old binary left in a service definition.
  2. Confirm the save. Check the map name, map progress, force or team data, and at least one known player inventory or location.
  3. Confirm settings. Verify that server settings, map settings, ports, and authentication behavior match the recorded configuration.
  4. Confirm mods. Compare the enabled mod list and versions on the server with the list each player will use. Multiplayer requires the same game version and mods on every instance.
  5. Review logs. Search for migration failures, missing or disabled mods, unreadable files, and permission errors before inviting anyone else.
  6. Perform a test join. Use one client on the target build, connect, move around the map, and perform a small noncritical action. Confirm that the client can leave and reconnect.
  7. Retain recovery materials. Keep the previous executable or image and the pre-update backup until the test session has succeeded.

Why friends cannot join after an update

Game-version mismatch

The most common cause is that the server and a client are on different Factorio builds or branches. Check the server startup version and have each player check the version selected in their Factorio installation. Align them exactly before troubleshooting networking.

Mod-set or mod-version mismatch

A client can be rejected when a mod is missing, disabled, or at a different version. Compare the server’s enabled list with every client’s list. Docker’s automatic mod-update setting can change this list at startup, and an ignore list can leave one mod behind, so inspect those variables when the mismatch appears after a container refresh.

The server loaded a different world

If the process starts but the familiar map is absent, inspect the save argument, the --start-server-load-latest behavior, and the mounted or configured user-data path. A new empty container volume or a wrong native data directory can make a valid save appear to be missing.

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

The save or a mod failed during migration

Stop accepting joins and read the startup log for the first migration, missing-mod, or load error. Do not overwrite the backup while experimenting. Restore the previous executable or image and the pre-update user data if the new build cannot load the world, then investigate compatibility in a separate copy.

File permissions prevent loading

When the log reports an unreadable save, unwritable log, or inaccessible configuration file, check ownership and permissions for the account running the native process or the user inside the container. The new package or host mount may use a different account than the old deployment.

Rollback when the update fails

Rollback is a controlled return to the last known-good executable or image and the matching user data.

  1. Stop the failed server cleanly and prevent clients from reconnecting.
  2. Preserve the failed version’s logs so the cause can be diagnosed later.
  3. Restore the previous native installation directory or pin the previous container image.
  4. Restore the pre-update save and user-data backup if the newer process changed or migrated files.
  5. Reapply the recorded startup command, settings paths, environment variables, volume mappings, and mod versions.
  6. Start the old build and verify the map and player data with one test client.
  7. Keep the failed package and logs separate while deciding whether the target release or a mod needs further compatibility work.

There is no single rollback command that works for every operating system and hosting panel. The reliable common elements are a clean stop, a retained prior executable or image, a restorable user-data copy, and the configuration record made before the update.

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

Choosing a deployment method for future updates

Deployment Persistent data model Version control Mod synchronization Rollback effort Operating-system maintenance
Native package User data stays separate from the replaceable installation directory. Keep versioned directories and select the desired binary in the startup command or service. Maintain the preserved mods directory and compare it with clients. Usually direct: point the service back to the old directory and restore data if needed. You maintain the host operating system, files, permissions, and service.
Docker A host-mounted volume or named volume must contain saves and configuration. Pull and run a chosen image; retain the previous image or tag for recovery. Environment variables can update or hold mods, subject to credentials and compatibility. Recreate the container with the previous image and the same volume. You maintain the host and Docker; the image supplies the application layer.
Managed host Persistence depends on the provider’s panel and storage policy. Use the provider’s supported version selector or update workflow. Confirm the provider supports the exact required mod set. Depends on the host’s restore and version options, so keep an independent backup. The provider performs most operating-system maintenance.

The best method is the one that makes the save location explicit, lets you pin a known version, and gives you a tested recovery path. Convenience does not replace an independent backup.

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.