Installing a Factorio Dedicated Server
How to install a Factorio dedicated server on a Pterodactyl/WISP panel using SteamCMD.
Overview
Factorio dedicated servers run as headless Linux processes with no display output. The server binary is free — you do not need to own Factorio on Steam to host a server, but players connecting must own the game. Two install methods exist: SteamCMD (recommended for panel environments) and the direct headless binary download. This article covers the SteamCMD path.
SteamCMD Installation
Factorio's SteamCMD AppID is 427520. The install command is:
steamcmd +login anonymous +app_update 427520 validate +quit
On a WISP/Pterodactyl panel, this command is typically wired into the egg's install script. If you are using the official Factorio egg, the panel runs this automatically when you create the server. Check your egg configuration under Startup to confirm the install command is present.
After install, the directory structure will look like:
factorio/
bin/x64/factorio
config/
server-settings.json
server-whitelist.json
server-adminlist.json
mod-list.json
mod-settings.dat
map-gen-settings.json
map-settings.json
saves/
mods/
The server binary is at factorio/bin/x64/factorio.
Creating a Save Before First Launch
The server cannot start without a save file. You must generate one before running --start-server. Generate a default save using:
./factorio/bin/x64/factorio --create factorio/saves/save.zip
To use custom map generation settings instead, see Creating Maps with Custom Generation Settings.
First Launch
Once a save exists, start the server with:
./factorio/bin/x64/factorio --start-server factorio/saves/save.zip --server-settings factorio/config/server-settings.json
On WISP/Pterodactyl, the egg startup command handles this. The panel substitutes variables for port, RCON port, and RCON password from the Startup tab. Confirm the startup command in the panel matches your actual binary and save paths.
Verifying the Server Is Running
A running Factorio server outputs lines like:
Info ServerMultiplayerManager.cpp:... Starting server...
Info ServerMultiplayerManager.cpp:... Hosting game at IP ADDR:...
The default game port is 34197 UDP. Use the panel's console to watch startup output. If the server exits immediately after starting, the most common causes are a missing save file, a port conflict, or a corrupted server-settings.json.
Updating After Install
To update an existing install, re-run the SteamCMD command. SteamCMD will download only changed files. Stop the server before updating — running a live update risks save corruption. For detailed update procedures, see Updating the Factorio Server and Managing Compatibility.