Skip to content

Tachyon

A multiplayer version of FTL.

egg-tachyon.json

updated

Ports

Add an allocation on the node for each port.

  • Game 30303

Install

Installer image
ghcr.io/ptero-eggs/installers:debian
Install script
69 lines

Image

  • Java_11 ghcr.io/pterodactyl/yolks:java_11

Startup

The Panel runs this command to start the server. It replaces each variable in the command with the value of that variable.

1 variable

Startup command

java -Xms128M -XX:MaxRAMPercentage=95.0 -Dterminal.jline=false -Dterminal.ansi=true -jar TachyonsCEServer.jar
  • VERSIONUsers can edit

    required|string|max:32

Wings

Stop command
/exit
Running when the console shows
[Server] SERVER STARTED.

Files Wings edits

Wings sets these values in these files before each start.

config.cfg file

SERVER_PORT=
SERVER_PORT={{server.build.default.port}}

Readme

Tachyon

Tachyon is a multiplayer FTL server and client.

Server Ports

The Tachyon server requires a single port for access.

Port default
Game 30303

Server Specific

Latest client and standalone server can be found at https://github.com/Dav-Edward/TachyonsCE/releases

Changes

  1. Add standalone games

    · Daniel Barton · 74c706a

All changes on GitHub

Problem with this egg?

Open an issue on GitHub. Include your Panel and Wings versions.

Install script 69 lines bash in ghcr.io/ptero-eggs/installers:debian Show
#!/bin/bash

apt update
apt install -y curl jq file unzip

if [ ! -d /mnt/server/ ]; then
    mkdir -p /mnt/server/
fi

cd /mnt/server/

## get release info and download links
LATEST_JSON=$(curl --silent "https://api.github.com/repos/Dav-Edward/TachyonsCE/releases/latest")
RELEASES=$(curl --silent "https://api.github.com/repos/Dav-Edward/TachyonsCE/releases")
MATCH=TachyonsCE

if [ "$(echo ${LATEST_JSON} | jq -r '.message')" != "Not Found" ] && [[ -z "${VERSION}" || "${VERSION}" == "latest" ]]; then
    echo -e "grabbing latest version"
    DOWNLOAD_URL=$(echo ${LATEST_JSON} | jq .assets | jq -r .[].browser_download_url | grep -i ${MATCH})
elif [ "$(echo ${LATEST_JSON} | jq -r '.message')" == "Not Found" ]; then
    ## emergency fallback if latest isn't found
    ## grabs the latest release even it it's a pre-release
    echo -e "grabbing latest pre-release"
    DOWNLOAD_URL=$(echo ${RELEASES} | jq -r '.[0].assets[].browser_download_url' | grep -i ${MATCH})
else
    echo -e "grabbing version $VERSION"
    VERSION_CHECK=$(echo ${RELEASES} | jq -r --arg VERSION "${VERSION}" '.[] | select(.tag_name==$VERSION) | .tag_name')
    if [ "${VERSION}" == "${VERSION_CHECK}" ]; then
        DOWNLOAD_URL=$(echo ${RELEASES} | jq -r --arg VERSION "${VERSION}" '.[] | select(.tag_name==$VERSION) | .assets[].browser_download_url' | grep -i ${MATCH})
    else
        echo -e "defaulting to latest release"
        DOWNLOAD_URL=$(echo ${LATEST_JSON} | jq .assets | jq -r .[].browser_download_url)
    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

curl --progress-bar -sSL -o ${DOWNLOAD_URL##*/} ${DOWNLOAD_URL}

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

#move all server files out
mv ./server/* ./

#remove zip and unneeded client-side and dev files
rm -rf server/ JRE/ client/ *.zip

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