Back to Blog

How to Make a Factorio Server, Step by Step

How to make a Factorio server: headless server setup on Linux, creating a world, server-settings.json, port 34197, admins, mods and backups.

Nodesty Team5 min readGame servers
The word Factorio with Headless, 34197 and Mods on a dark Nodesty background

Making a Factorio server takes just a few steps: you download the free headless server version from factorio.com, create a world, write the server's name and password in the server-settings.json file and open port 34197 UDP. With your own server, the factory stays open to your friends even while your computer is turned off.

This guide covers setting up a Factorio server on Linux from scratch, the settings, admins, mods, updates and backups.

Requirements

  • Operating system: The headless server is only released for 64-bit Linux. In this guide we use Ubuntu and Debian.
  • RAM: At the start of the game, 1–2 GB is enough; large factories with mods may need 4–8 GB.
  • CPU: Factorio's simulation runs largely on a single core. As the factory grows, high single-core speed is what keeps the number of updates per second (UPS) up.
  • Players: They need to have the same version of the game.

All you need to know is how to connect to a server with SSH; we give the rest of the commands step by step.

Downloading the headless server

For security, run the server as a separate user instead of root:

sudo apt update
sudo apt install xz-utils wget tmux
sudo useradd -m -s /bin/bash factorio
sudo su - factorio

Download and extract the headless package of the stable release:

wget -O factorio_headless.tar.xz https://factorio.com/get-download/stable/headless/linux64
tar -xJf factorio_headless.tar.xz
cd ~/factorio

The package extracts into a folder named factorio. The server's executable is bin/x64/factorio.

Creating a world

Create your first world:

./bin/x64/factorio --create ./saves/myworld.zip

If you want to change the map settings, copy and edit the data/map-gen-settings.example.json file and pass it with the --map-gen-settings parameter. If you're going to use one of your single-player saves, skip this step and copy the save to the saves folder.

Settings with server-settings.json

Copy and edit the example settings file:

cp data/server-settings.example.json data/server-settings.json
nano data/server-settings.json

The most important settings:

SettingWhat it does
name, descriptionThe name and description shown in the server list
visibility.publicIf true, the server appears in the public list
username, tokenYour Factorio account details for public listing
game_passwordThe password players need to join
require_user_verificationRequires players to be verified with a Factorio account; keep it on
max_playersThe maximum number of players (0 for unlimited)
autosave_intervalThe autosave interval (minutes)
autosave_slotsThe number of autosaves to keep
auto_pausePausing the game while nobody is connected

If you're playing with friends, just leave visibility.public set to false and set a password.

Starting the server

Start the server in a tmux session so that it doesn't shut down when you close your SSH connection:

tmux new -s factorio ./bin/x64/factorio --start-server ./saves/myworld.zip --server-settings ./data/server-settings.json

To load the latest save automatically, you can also use --start-server-load-latest instead of --start-server ./saves/myworld.zip. Press Ctrl + B and then D to leave the session, and return with tmux attach -t factorio.

Port and firewall

By default, the Factorio server uses port 34197 UDP. If you use ufw on Ubuntu:

sudo ufw allow 34197/udp

Factorio only uses UDP; opening a TCP port won't fix connection problems. We explain how ports work in our What is a port? article.

Connecting to the server

In the game, go to Multiplayer → Connect to address and enter the server's IP address, such as 203.0.113.10 (if the default port is used, you don't need to add the port). If you set a password, you'll be asked for it when you connect. If the server is public, you can also search for it by name in the Browse public games list.

Admins and console commands

The easiest way to set admins is to create a server-adminlist.json file in the factorio folder:

["playername1", "playername2"]

Or, while the server is running, type /promote playername in the server console (the tmux session). Commonly used commands:

CommandWhat it does
/playersLists the players
/kick playernameKicks a player from the server
/ban playernameBans a player
/server-saveSaves the world right away
/adminsLists the admins

Make a habit of saving with /server-save before shutting down the server.

Mods

Put mods in the mods folder on the server as .zip files; the list of enabled mods is kept in the mod-list.json file in the same folder. You can download mods from the mod portal on factorio.com, or copy the mods folder you use on your own computer to the server. When players connect to the server, the game offers to download and enable the mismatched mods automatically.

Only players who own the expansion can join a world that uses the Space Age expansion.

Updates and backups

When the game updates, shut down the server, download the headless package again and extract it into the same folder. Your saves and mods folders and your data/server-settings.json file are kept; even so, take a copy of the saves before updating:

tar -czf ~/factorio-backup-$(date +%F).tar.gz -C ~/factorio saves mods data/server-settings.json

Factorio's autosaves are also kept in the saves folder and let you go back to the latest autosave if something goes wrong. We cover taking regular backups that are independent of the server in our Server backups guide.

Nodesty for your Factorio server

In Factorio, how smoothly large factories run depends on single-core speed. Nodesty AMD Ryzen 9 9950X VPS plans deliver high UPS even in large bases with single-core speeds up to 5.7 GHz, and run in Frankfurt and New York with NVMe storage, L3–L7 nShield DDoS protection and free daily backups kept for 7 days. For other games, take a look at our Satisfactory, Terraria and Valheim guides, and for a ready-made server, check out our game server plans.

Factorio is a trademark of Wube Software. Nodesty is not affiliated with or endorsed by Wube Software.

Frequently Asked Questions

Does it cost anything to make a Factorio server?

No. Factorio's headless server version downloads for free from factorio.com, and no game license is needed on the server side. You only pay for the machine that keeps the server online 24/7. Players just need to own the game.

How much RAM does a Factorio server need?

At the start of the game, 1–2 GB is enough. Memory use grows as the factory gets bigger; large bases with many mods may need 4–8 GB. In Factorio, what really matters is single-core speed; in large factories, the number of updates per second (UPS) depends on the CPU.

Can I use the Space Age expansion on the server?

Yes. The headless server can also run Space Age content. Only players who own Space Age can join a world with the expansion enabled. If you don't want to use the expansion, create the world with the base game only.

Do players have to install mods by hand?

No. When a player connects to the server, the game notices the mods that don't match the server's mod list and offers to download and enable the same mods. Players just need to accept this offer.

Why doesn't my server show up in the in-game list?

To appear in the public list, the public value of the visibility setting in server-settings.json must be true, and the username and token of a Factorio account must be entered. Also make sure that UDP port 34197 is open. Even if the server isn't listed, players can connect directly with the IP address.

Can I move my single-player save to the server?

Yes. The save on your computer is a single .zip file. Just copy this file to the saves folder on the server and start the server with that save. On Windows, saves are in the %APPDATA%\Factorio\saves folder.

Nodesty

About the author

Nodesty Team · Infrastructure & Support

The Nodesty team runs our servers, network and DDoS protection day to day and answers customer support requests around the clock. These guides come from that work.

Related articles

Launch your server now.

Build, scale, and conquer without limits on Nodesty's premium infrastructure.

                                                                                                                                                                                                                            
                                                                                                                                                                                                                            
                                                                                                                                                                                                                            
                                                                                                                             ············································                                                   
                                                ··································································································..........···························                                     
                                       ················..........................................................................................................................··············                             
                                  ·············.................::::::::::::::::::::::::::::::::::::::::::::::....................:::::::::::::::::::::::::::::::::::::::................···········                        
                             ············................:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::............·········                     
                         ············.................:::::::::::::::::::::::::::::::::::::::::::::::::::------------::::::::::::::::::::::::::::::----------------:::::::::::::::::::::..........········                  
                    ············......................::::::::::::::::::::::::::::::::::::------------------------------------------------------------------------------------:::::::::::::.........········                
                ··········.............................................::::::::::::::::::-------------==========================================-----------------------------------:::::::::::........·······               
             ········..................:.....................................::::::::::--------=======+++++++++++++++++++++++++++++++++++++=========================------------------::::::::::.......·······              
           ······.........::::::::::::::::::::................................:::::::-----=====++++xxxxxx**************************xxxxxxxxx++++++++++++++===================------------::::::::.......·······             
          ·····.......:::::::::::::::::::::::::::.............................:::::----===+++xxx****%%%%&&&&&&#############&&&&&&&%%%%%*******xxxxxxxx++++++++++++++==============----------:::::::......······             
         ····......::::::::-------------:::::::::::..........................::::---===+++xx***%%%&&&####@@@@@@@@@@@@@@@@@@@@@@@@####&&&&&%%%%*******xxxxxxxxx+++++++++++++===========--------::::::......·····             
        ····.....:::::::--------------------:::::::::.......................::::---===++xxx**%%&&&###@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@###&&&&%%%%%********xxxxxxxxxxx++++++++++++========------::::::.....······            
        ····.....:::::--------------------------::::::::....................::::---===++xx***%%&&&####@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@###&&&&&%%%%%**********xxxxxxxxxxxxx+++++++++=======------:::::.....·····            
        ····....::::::-------=============---------:::::::::................:::::---===+++xx***%%%&&&#####@@@@@@@@@@@@@@@@@@@@@@@@@#####&&&&&%%%%%%*************xxxxxxxxxxxxxx+++++++++======-----:::::....·····            
         ····....:::::-------================---------:::::::::...............:::::----===++++xxx***%%%%&&&&&&#################&&&&&&%%%%%%%*******************xxxxxxxxxxxxxxxxx++++++++======----:::::....·····            
         ·····....:::::--------=================---------::::::::::..............:::::::-----====+++++xxxxxx**************************xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx++++++++=====-----::::....·····            
          ·····.....:::::--------=================----------:::::::::::.................:::::::::-------=============++++++++++++++++++++++++++++++++++++xxxxxxxxxxxxxxxxxxxxxxx++++++++======-----::::....·····            
            ·····.....:::::::----------===========-------------::::::::::::.........................::::::::::::::::::------------------=============+++++++++++++++++++++++++++++++++=======-----::::.....·····            
              ······......:::::::---------------------------------:::::::::::::........................................:::::::::::::::-----------============+++++++++++++++++++++========------:::::.....·····             
                 ······........:::::::::---------------------------:::::::::::::::::...........................................:::::::::::::------------=============================--------::::::.....······              
                    ·········.........:::::::::::::::-------------::::::::::::::::::::::::.......................................::::::::::::::::--------------------------------------::::::::......·······                
                          ··········............::::::::::::::::::::::::::::::::::::::::::::::::::................................::::::::::::::::::::::::::-------------:::::::::::::::.........········                   
                                  ············..................:::::::::::::::::::::::::::::::::::::::::::.........................:::::::::::::::::::::::::::::::::::::................···········                        
                                             ················.............................................................................................................·················                                 
                                                           ······················................................................................···························                                                
                                                                               ·········································································