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

To host Factorio: Space Age for friends, install a Factorio 2.0 or newer headless server, enable the Space Age content, create or copy a save, configure server-settings.json, launch it with --start-server, and allow UDP port 34197 through your firewall and router. Every connecting player must use the same game version and identical mods.

You can run the server directly on Linux or Windows, or place it in Docker. Native installation gives you the simplest file-level control; Docker makes repeatable upgrades easier, provided that saves and configuration are stored in a persistent volume.

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

What a Space Age server requires

A dedicated server is a headless Factorio process with no graphics window and no playable character. It loads a save, accepts network connections, runs the simulation, and writes autosaves. The server can pause automatically when nobody is connected unless you disable that behavior.

  • Factorio 2.0 or newer: Space Age content is built for the 2.0 series. A server on an older release cannot load the expansion correctly.
  • Space Age content enabled: The official expansion uses the space-age mod together with the matching base-game content. Standard Space Age setups also enable quality and elevated-rails.
  • A save file: --start-server does not generate a world by itself. Create a save with --create or copy an existing .zip save into the server’s saves directory.
  • A settings file: Copy the supplied server-settings example and configure its name, visibility, player limit, password, and access controls.
  • Network reachability: Factorio uses UDP, not TCP, for its game traffic. The default port is UDP 34197.
  • Matching clients: Every player must run exactly the same Factorio version and mod set as the server.

The Factorio Wiki documents a hard limit of 65,535 players, but practical capacity is much lower and depends on simulation load, factory size, mods, and the hardware you provide. No general CPU or RAM benchmark is established for Space Age servers, so monitor performance and adjust from observed UPS rather than relying on a universal specification.

#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

Choose native headless or Docker

Native headless installation

Use the official headless package or a normal Factorio installation in headless mode when you want direct access to binaries, saves, logs, and configuration. The smaller Linux headless package omits graphics and sound files and avoids libraries such as Xlib, libGL, and libasound, making it suitable for a GUI-less machine. Run the process as a separate, non-root factorio user rather than as root.

Docker deployment

Docker packages the server and its startup behavior into a container. The factoriotools image runs as a non-root factorio user, publishes UDP 34197, and uses a mounted directory for saves, configuration, and mods. Docker does not remove the need for backups: deleting a container without preserving its mounted data can delete your world.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.
Consideration Native headless Docker
File and update control Direct control of the Factorio directory and command line. Image tags and environment variables define startup; files remain in the mounted volume.
Rollback Keep previous binaries and copy the save before changing versions. Pin or retain an earlier image and restore the persistent volume or backup.
Persistence Saves and settings live in the installation directory. Persistence depends on mounting a host directory such as /opt/factorio.
Networking You configure the host firewall and router directly. You configure Docker’s UDP publish plus the host firewall and router.
Mod synchronization You manage mod-list.json and mod files directly. The same files are stored in the mounted volume; optional startup variables can update mods.
Security maintenance You update the operating system and Factorio installation yourself. You update the image, host, and mounted application data.

Install Factorio 2.0 or newer

Linux headless package

  1. Download the Factorio 2.0-or-newer headless release appropriate for your architecture.
  2. Extract it into a directory owned by the dedicated factorio user, for example /opt/factorio or a directory in that user’s home.
  3. Verify that the executable exists at bin/x64/factorio.
  4. Keep the server files separate from personal game installations so that updates and backups are predictable.

Do not launch the service as root. A dedicated account limits the damage if the process or an installed mod is compromised and makes file ownership errors easier to diagnose.

Windows installation

  1. Install or extract the 2.0-or-newer Factorio files on the machine that will remain online.
  2. Use the executable at binx64factorio.exe.
  3. Ensure the Windows account running the server can read and write the saves, mods, and configuration directories.

Enable Space Age content

Space Age is not enabled merely because the server binary is new enough. The server’s mod-list.json must contain the same enabled content that the clients use. A typical Space Age list includes:

{
  "mods": [
    {"name": "base", "enabled": true},
    {"name": "space-age", "enabled": true},
    {"name": "quality", "enabled": true},
    {"name": "elevated-rails", "enabled": true}
  ]
}

Use the file format generated by your Factorio version; do not copy a list from an unrelated release without checking its mod names and dependencies. If you add any other mod, install the identical version on every client. A red mod-mismatch message means at least one game version or mod differs.

Create or copy the server save

Create a new world

From the Factorio installation directory, create a save with the headless binary:

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.
./bin/x64/factorio --create ./saves/my-save.zip

The command creates my-save.zip in the saves directory. For a Space Age campaign, generate a fresh world using the Space Age world format instead of assuming that an old vanilla world will provide the intended planetary progression.

Apply map and simulation settings

You can pass JSON files to --create for map generation and map settings. Those files control values such as resource placement, pollution, biter expansion, and evolution. Keep the JSON files with your server configuration so you can reproduce a world or document how it was generated.

Use an existing save

To continue a game, copy its .zip file into the server’s saves directory and use that path with --start-server. Shut down the original game cleanly before copying so the archive is not incomplete. Back up the archive before enabling Space Age or changing mods; a mod migration can alter the save and may not be reversible.

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

Configure server-settings.json

  1. Copy data/server-settings.example.json to a separate file such as data/server-settings.json.
  2. Edit the copy rather than the example, because updates can replace the example file.
  3. Set a recognizable server name and description so players can identify the correct world.
  4. Choose tags, the maximum player count, and a password if the server is not intended for unrestricted access.
  5. Choose a visibility mode: public, LAN, or hidden.
  6. Configure whitelist and administrator settings when you need a controlled community.
  7. Save the file as valid JSON and check commas, quotation marks, and braces before launching.
Setting area What to decide
Name and description How the server appears in browsers and what players should know before joining.
Tags Searchable labels such as cooperative, Space Age, or modded.
Player cap The maximum simultaneous connections you want to support; the documented 65,535 figure is a hard limit, not a practical target.
Visibility Public listing, LAN discovery, or hidden access by direct address.
Password A shared secret for private play. Distribute it through a trusted channel.
Authentication Public listing requires Factorio credentials or an authentication token. The settings file is plain text, so protect its permissions and never publish it.
Administration Whitelist, admin list, and optional RCON settings are available through the command-line options and server configuration.

Start the dedicated server

Start a named save

Use --start-server with the save archive and the settings file:

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

A dedicated server can be started with the --start-server command-line option. The process has no GUI or in-game character; it loads the archive and waits for players. It continues normal autosaves and saves on exit.

Always load the newest save

If you keep several rolling saves, use:

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

This selects the latest save according to Factorio’s save naming and timestamp behavior. Verify which archive was selected in the startup log after an upgrade or restore.

Windows batch file

Place the following in a .bat file in the Factorio directory:

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

The /wait option keeps the batch process attached until Factorio exits, which is useful for manually supervised restarts. For an unattended service, use your operating system’s service or task scheduler and make sure the service account owns the save and configuration files.

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

Useful command-line options

  • --server-settings FILE selects the JSON settings file.
  • --port N changes the listening port. If you change it, update the firewall, router forwarding, and the address players use.
  • --start-server SAVE loads a specific save archive.
  • --start-server-load-latest loads the newest available save.
  • Whitelist and admin-list options restrict or elevate players.
  • RCON options provide remote administration when configured securely.

Open UDP 34197 to players

Host firewall

Allow inbound UDP 34197 on the machine running Factorio. Do not open TCP as a substitute; Factorio’s game traffic uses UDP. If you selected a custom port with --port, allow that port instead.

Router port forwarding

  1. Give the server machine a stable local address, preferably through a DHCP reservation.
  2. Open the router’s port-forwarding page.
  3. Forward external UDP 34197 to the server’s local address and UDP 34197.
  4. Save the rule and confirm that the host firewall also allows it.
  5. Test from outside the local network; testing from the same LAN can produce misleading results on routers without NAT loopback.

The official multiplayer guidance warns that some routers randomize outbound source ports. Antivirus software and host firewalls can also block packets even when the router rule looks correct.

How players connect

Players can find a public server through the Factorio browser, use LAN discovery on the same network, connect through Steam services, or enter a direct IP address and port. A hidden server will not appear in public listings, so provide its address and UDP port to trusted players.

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.

Publish the server or keep it private

Public listing

Set visibility to public and provide valid Factorio authentication credentials or a token. The token is sensitive: it is stored in plain text in the settings file, so restrict file permissions, exclude it from backups shared with others, and rotate it if exposed. If the server starts but does not appear in the browser, check both the visibility value and whether the credential or token fields are non-empty and valid.

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.

LAN or hidden play

Choose LAN for a household or office network where players can discover the server locally. Choose hidden when you want direct-IP access without a public listing. A password, whitelist, and admin list add separate layers of access control; visibility alone is not authentication.

Independent reader supportYour contribution helps us test, update, and keep practical guides available for everyone.Support on Ko-Fi

Keep clients and mods identical

Factorio requires every game instance to use exactly the same game version and mods. For Space Age, compare at least base, space-age, quality, and elevated-rails, then compare every additional mod and its version.

  • Update the server and all clients to the same Factorio 2.0 release.
  • Copy the server’s mod files and mod-list.json to clients only when you trust the source and understand the changes.
  • Remove disabled or obsolete mods from one side instead of trying to join with a partial list.
  • Restart after changing the mod list and verify the startup log before inviting players.

Run Space Age in Docker

The factoriotools project documents this minimal deployment. It maps host directory /opt/factorio into the container, publishes UDP 34197, and runs the container as a non-root user:

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.
sudo mkdir -p /opt/factorio
sudo chown 845:845 /opt/factorio
sudo docker run -d 
  -p 34197:34197/udp 
  -v /opt/factorio:/factorio 
  --name factorio 
  --restart=unless-stopped 
  factoriotools/factorio

The mounted directory stores configuration, mods, and saves. Before replacing or deleting a container, copy the save archives and settings from /opt/factorio to separate backup storage.

Documented container variables

Variable Purpose
PORT Selects the Factorio listening port.
SAVE_NAME Chooses the save archive to load.
LOAD_LATEST_SAVE Loads the newest save rather than a fixed name.
GENERATE_NEW_SAVE Requests creation of a new world when configured by the image.
TOKEN Supplies the authentication token for public listing; treat it as a secret.
UPDATE_MODS_ON_START Updates mods during container startup when enabled.
DLC_SPACE_AGE Enables the Space Age mods in the documented 2.0.8-and-newer image configuration.

Environment-variable names and behavior are image-specific. After changing one, inspect the container log and verify the resulting mod-list.json, save selection, and listening port.

Backups, upgrades, and routine administration

Back up before every risky change

  • Stop the server cleanly before copying a save.
  • Keep at least one backup outside the Factorio directory or Docker volume.
  • Back up server-settings.json, mod-list.json, and mod archives along with saves.
  • Label backups with the Factorio version and date so you know which binary can open them.

Upgrade in a controlled order

  1. Announce maintenance and stop new connections.
  2. Copy the current save and configuration.
  3. Update the native files or pull the replacement container image.
  4. Start the server and inspect logs for version, mod, and save-loading errors.
  5. Join with an administrator account before inviting everyone else.

Secure administration

Use a non-root operating-system account, restrict access to the settings file, and avoid exposing RCON to the public internet unless you have a specific secure management design. Remove obsolete authentication tokens and rotate credentials after a suspected disclosure.

Troubleshoot common failures

Symptom Checks and corrective action
Server does not start Confirm the save path exists, the archive is readable, and the JSON settings file is valid. The --start-server option requires a save.
Space Age fails to load Confirm the server is Factorio 2.0 or newer and that Space Age content is enabled in mod-list.json.
Nobody can connect Check that the server is listening on the expected port, UDP 34197 is forwarded to the correct local address, and both host firewall and antivirus rules permit it.
Server is absent from the public list Verify public visibility and valid, non-empty Factorio credentials or token. A hidden or LAN server will not be listed publicly.
Red mod-mismatch message Compare exact Factorio versions and the complete enabled mod list, including Space Age’s space-age, quality, and elevated-rails entries.
Container restarts with no progress Confirm that /opt/factorio is mounted, has the expected ownership, and contains the saves and settings. Restore the latest backup before replacing more containers.
Players connect locally but not remotely Test from outside the LAN, recheck the router’s destination address, and account for routers that rewrite source ports or lack NAT loopback.

Capacity and performance planning

There is no authoritative, general CPU-and-RAM sizing table for Space Age. Start with the number of concurrent players, the scale of the factory, and the number and complexity of mods. Observe UPS and server logs during peak activity, then move the process to faster hardware or reduce simulation load if UPS falls below the experience your group expects.

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

Because the server pauses when empty by default, a private group can leave it running without simulating the factory continuously. If you disable auto-pause, account for the additional time the world will spend processing while nobody is connected.

Pre-launch checklist

  • Factorio server version is 2.0 or newer.
  • base, space-age, quality, and elevated-rails are enabled as intended.
  • A fresh Space Age save was created, or an existing save was copied and backed up.
  • server-settings.json is valid JSON and has the intended name, visibility, password, and player cap.
  • Public servers have valid credentials or a token stored securely.
  • UDP 34197 is allowed by the host firewall and forwarded by the router.
  • Every client has the same game version and complete mod set.
  • Native files or the Docker volume are backed up before upgrades.

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.