Egg Repository

Pterodactyl Community Egg Repository

Factorio-ModUpdate

The vanilla Factorio server. With automatic Mod Updates after ReInstall. https://www.factorio.com/

Read Me

Factorio

The Factorio Server

The server supports mods. The factorio-modupdate egg uses the factorio-mod-updater to update your mods when ReInstalling the Server.

from the developers

Factorio is a game in which you build and maintain factories.

You will be mining resources, researching technologies, building infrastructure, automating production and fighting enemies. Use your imagination to design your factory, combine simple elements into ingenious structures, apply management skills to keep it working, and protect it from the creatures who don't really like you.

The game is very stable and optimized for building massive factories. You can create your own maps, write mods in Lua, or play with friends via Multiplayer.

Factorio has been in development since the spring of 2012. So far over 1,400,000 people have bought the game. You can get it from Steam, GOG, or directly from their shop.

New to the game? Make sure to checkout their starter page.

Server Ports

Factorio requires a single port

Port default
Game 34197

ARM64

There is a factorio egg for ARM64 machines that uses the box64 emulator. If you are on AMD64 Like most of you download the normal non ARM64 egg!

Yolks
NameTag
ghcr.io/ptero-eggs/yolks:debianghcr.io/ptero-eggs/yolks:debian
Variables
NameDescriptionEnvironment VariableDefault ValueUser ViewableUser Editable
Factorio VersionWhich version of Factorio to install and use.FACTORIO_VERSIONlatestYesYes
Maximum SlotsTotal number of slots to allow on the server.MAX_SLOTS20YesNo
Save NameThe save name for the server.SAVE_NAMEgamesaveYesYes
Server TokenYour factorio.com token, it is required for your server to be visible in the public server list.SERVER_TOKENundefinedYesYes
Server NameName of the game as it will appear in the game listingSERVER_NAMEFactorio ServerYesYes
Server DescriptionDescription of the game that will appear in the listing.SERVER_DESCDescriptionYesYes
Server UsernameUsername used for the serverSERVER_USERNAMEunnamedYesYes
Auto Save IntervalTime between auto saves specified in minutesSAVE_INTERVAL10YesYes
Auto Save SlotsThe number of auto saves to keep.SAVE_SLOTS5YesYes
AFK KickTime specified in minutes to kick AFK players. 0 is offAFK_KICK0YesYes
Install Script
#!/bin/bash
# Factorio Installation Script
#
# Server Files: /mnt/server
apt update 
apt install -y curl tar xz-utils python3 python3-requests jq

latest_ModUpdate=$(curl --silent "https://api.github.com/repos/pdemonaco/factorio-mod-updater/tags" | jq -r '.[0].name')

VERSION_JSON=$(curl -sSL https://factorio.com/api/latest-releases)

latest_stable=$(echo $VERSION_JSON | jq -r '.stable.headless')
latest_experimental=$(echo $VERSION_JSON | jq -r '.experimental.headless')

if [ -z "${FACTORIO_VERSION}" ] || [ "${FACTORIO_VERSION}" == "latest" ]; then
  DL_VERSION=$latest_stable
elif [ "${FACTORIO_VERSION}" == "experimental" ]; then
  DL_VERSION=$latest_experimental
else
  DL_VERSION=${FACTORIO_VERSION}
fi

mkdir -p /mnt/server
cd /mnt/server

echo -e "\n running 'curl -sL https://www.factorio.com/get-download/${DL_VERSION}/headless/linux64 -o factorio-${DL_VERSION}' \n"

curl -sL https://www.factorio.com/get-download/${DL_VERSION}/headless/linux64 -o factorio-${DL_VERSION}

tar -xf factorio-${DL_VERSION} --strip-components=1 -C /mnt/server

rm factorio-${DL_VERSION}

if [ -e data/map-gen-settings.json ]; then
    echo "map-gen exists"
else
    echo "copying map-gen default settings"
    mv data/map-gen-settings.example.json data/map-gen-settings.json
fi

if [ -e data/server-settings.json ]; then
    echo "server settings exists"
else
    echo "copying server default settings"
    mv data/server-settings.example.json data/server-settings.json
fi

if [ -e map-settings.json ]; then
    echo "map settings exists"
else
    echo "copying map default settings"
    mv data/map-settings.example.json data/map-settings.json
fi

if [ -e ${SAVE_NAME}.zip ]; then
    echo "save file exists"
else
    ./bin/x64/factorio --create ${SAVE_NAME}
    chmod o+w ${SAVE_NAME}.zip
fi

# Download Mod Updater
echo -e "\n running 'curl -sL https://github.com/pdemonaco/factorio-mod-updater/archive/${latest_ModUpdate}.tar.gz -o factorio-MU-${latest_ModUpdate}' \n"

curl -sL https://github.com/pdemonaco/factorio-mod-updater/archive/${latest_ModUpdate}.tar.gz -o factorio-MU-${latest_ModUpdate}

tar -xf factorio-MU-${latest_ModUpdate} -C /mnt/server

rm factorio-MU-${latest_ModUpdate}

# Run Mod Updater
./factorio-mod-updater-${latest_ModUpdate}/mod_updater.py -s /mnt/server/data/server-settings.json -m /mnt/server/mods --fact-path /mnt/server/bin/x64/factorio --update

## install end
echo "-----------------------------------------"
echo "Installation completed..."
echo "-----------------------------------------"