Egg Repository

Pterodactyl Community Egg Repository

FiveM

A new FiveM egg for the latest builds due to recent changes in FiveM

Read Me

FiveM

Supported architecture

FiveM ONLY supports amd64. arm64 is NOT supported (like Oracle free cloud)

Note on FiveM support from Pteroadactyl

Pterodactyl will not be providing support for FiveM. You are free to run a FiveM server but no support will be provided in the Pterodactyl Discord, check the discord annoucement below for details.

Worth a read if you plan on running a FiveM server Pterodactyl Discord Announcement

From the FiveM Site

FiveM is a modification for Grand Theft Auto V enabling you to play multiplayer on customized dedicated servers.

Notice

Currently the script can get versions from the builds site.

The FIVEM_VERSION variable.

  • Defaults to latest which is the latest recommended
  • Can be set to a specific version Ex. 2431-350dd7bd5c0176216c38625ad5b1108ead44674d.

The DOWNLOAD_URL only needs to be used if they turn on ddos protection. The variable needs to point to a fx.tar.xz file as I am too lazy to update the entire script.

txAdmin

txAdmin is now supported and disabled by default. You set TXADMIN_ENABLED to 1 to enable it.

The last update to the egg changes the server to use txadmin to run. On first startup it will print a key to use to sign into the txadmin panel.

Your server will not go online until it's started from txadmin

Server Ports

Ports required to run the server in a table format.

Portdefault
Game30110
Game+130120
txAdmin40120
Yolks
NameTag
ghcr.io/ptero-eggs/yolks:debianghcr.io/ptero-eggs/yolks:debian
Variables and Startup

Startup Command

$(pwd)/alpine/opt/cfx-server/ld-musl-x86_64.so.1 --library-path "$(pwd)/alpine/usr/lib/v8/:$(pwd)/alpine/lib/:$(pwd)/alpine/usr/lib/" -- $(pwd)/alpine/opt/cfx-server/FXServer +set citizen_dir $(pwd)/alpine/opt/cfx-server/citizen/ +set sv_licenseKey {{FIVEM_LICENSE}} +set steam_webApiKey {{STEAM_WEBAPIKEY}} +set sv_maxplayers {{MAX_PLAYERS}} +set serverProfile default +set txAdminPort {{TXADMIN_PORT}} $( [ "$TXADMIN_ENABLE" == "1" ] || printf %s '+exec server.cfg' )

Variables

fivem license

Required to start the service. Get your keys at https://keymaster.fivem.net/

Environment Variable: FIVEM_LICENSE
Default Value:
User Viewable:
User Editable:
Max Players

Set the fivem max play count

Environment Variable: MAX_PLAYERS
Default Value: 48
User Viewable:
User Editable:
Server Hostname

The name that shows up in the server browser

Environment Variable: SERVER_HOSTNAME
Default Value: My new FXServer!
User Viewable:
User Editable:
fivem version

The fivem version that is to be installed. Invalid versions will default to recommended. An example is `6013-d8ae399d15680da569022f57ab7f2474d307c821` You can get the latest version from here - https://runtime.fivem.net/artifacts/fivem/build_proot_linux/master/

Environment Variable: FIVEM_VERSION
Default Value: recommended
User Viewable:
User Editable:
Download Link

This is the link to download fivem from. This is only used in the install script. The file you link to needs to be an fx.tar.zx file. Example: https://runtime.fivem.net/artifacts/fivem/build_proot_linux/master/6013-d8ae399d15680da569022f57ab7f2474d307c821/fx.tar.xz

Environment Variable: DOWNLOAD_URL
Default Value:
User Viewable:
User Editable:
Steam Web Api Key

Use your Steam WebApiKey or set to 'none'. Get your key at https://steamcommunity.com/dev/apikey/

Environment Variable: STEAM_WEBAPIKEY
Default Value: none
User Viewable:
User Editable:
txAdmin Port

The port for the txAdmin panel

Environment Variable: TXADMIN_PORT
Default Value: 40120
User Viewable:
User Editable:
Enable txadmin

Enables txadmin. set to 1 to enable. (default is 0 for false)

Environment Variable: TXADMIN_ENABLE
Default Value: 0
User Viewable:
User Editable:
Install Script
#!/bin/bash
# FiveM Installation Script
#
# Server Files: /mnt/server
apt update -y
apt install -y tar xz-utils file jq

mkdir -p /mnt/server/resources

cd /mnt/server

echo "updating citizenfx resource files"
git clone https://github.com/citizenfx/cfx-server-data.git /tmp
cp -Rf /tmp/resources/* resources/

RELEASE_PAGE=$(curl -sSL https://runtime.fivem.net/artifacts/fivem/build_proot_linux/master/)
CHANGELOGS_PAGE=$(curl -sSL https://changelogs-live.fivem.net/api/changelog/versions/linux/server)

if [[ "${FIVEM_VERSION}" == "recommended" ]] || [[ -z ${FIVEM_VERSION} ]]; then
  DOWNLOAD_LINK=$(echo $CHANGELOGS_PAGE | jq -r '.recommended_download')
elif [[ "${FIVEM_VERSION}" == "latest" ]]; then
  DOWNLOAD_LINK=$(echo $CHANGELOGS_PAGE | jq -r '.latest_download')
else
  VERSION_LINK=$(echo -e "${RELEASE_PAGE}" | grep -Eo '".*/*.tar.xz"' | grep -Eo '".*/*.tar.xz"' | sed 's/\"//g'  | sed 's/\.\///1' | grep -i "${FIVEM_VERSION}" | grep -o =.* |  tr -d '=')
  if [[ "${VERSION_LINK}" == "" ]]; then
    echo -e "defaulting to recommedned as the version requested was invalid."
    DOWNLOAD_LINK=$(echo $CHANGELOGS_PAGE | jq -r '.recommended_download')
  else
    DOWNLOAD_LINK=$(echo https://runtime.fivem.net/artifacts/fivem/build_proot_linux/master/${VERSION_LINK})
  fi
fi

if [ ! -z "${DOWNLOAD_URL}" ]; then
  if curl --output /dev/null --silent --head --fail ${DOWNLOAD_URL}; then
    echo -e "link is valid. setting download link to ${DOWNLOAD_URL}"
    DOWNLOAD_LINK=${DOWNLOAD_URL}
  else
    echo -e "link is invalid closing out"
    exit 2
  fi
fi

echo -e "Running curl -sSL ${DOWNLOAD_LINK} -o ${DOWNLOAD_LINK##*/}"

curl -sSL ${DOWNLOAD_LINK} -o ${DOWNLOAD_LINK##*/}

echo "Extracting fivem files"

FILETYPE=$(file -F ',' ${DOWNLOAD_LINK##*/} | cut -d',' -f2 | cut -d' ' -f2)
if [ "$FILETYPE" == "gzip" ]; then
  tar xzvf ${DOWNLOAD_LINK##*/}
elif [ "$FILETYPE" == "Zip" ]; then
  unzip ${DOWNLOAD_LINK##*/}
elif [ "$FILETYPE" == "XZ" ]; then
  tar xvf ${DOWNLOAD_LINK##*/}
else
  echo -e "unknown filetype. Exiting"
  exit 2
fi

rm -rf ${DOWNLOAD_LINK##*/} run.sh

if [ -e server.cfg ]; then
  echo "Skipping downloading default server config file as one already exists"
else
  echo "Downloading default fivem config"
  curl https://raw.githubusercontent.com/ptero-eggs/game-eggs/main/gta/fivem/server.cfg >>server.cfg
fi

mkdir -p logs/

echo "install complete"
Installation Imageghcr.io/ptero-eggs/installers:debianInstallation Entrypointbash