Skip to content

Terraria Vanilla

Dig, fight, explore, build! Nothing is impossible in this action-packed adventure game.

Report an issue
updated
variables
9
images
1
author
iamkubi@gmail.com
sha256
977a25b86d76

Readme

Terraria

Vanilla Terraria egg with support for Journey's End. Currently up to 1.4.0.2 is supported, however future patches will require updates to the install script.

Minimum RAM warning

You may want to assign a minimum of 768 mb of RAM to a server as it will use around 650 mb to generate the world on the first start.

Required Server Ports

Terraria only requires a single port to run. The default is 7777

Port default
Game 7777

Plugins may require ports to be added to the server

Startup command

./TerrariaServer.bin.x86_64 -config serverconfig.txt

Docker image

  • Debian ghcr.io/ptero-eggs/yolks:debian

1 contributor

Variables

9 settings

  • Terraria version

    the version of Terraria that is to be used. You can use the full version number or the file number. (ex. 1.3.5.3 or 1353) Get version numbers here - https://terraria.wiki.gg/wiki/Server#Downloads

    env
    TERRARIA_VERSION
    default
    latest
    rules
    required|string|max:20
    • viewable
    • editable
  • World Name

    The name for the world file.

    env
    WORLD_NAME
    default
    world
    rules
    required|string|max:20
    • viewable
    • editable
  • Max Players

    The maximum number of players a server will hold.

    env
    MAX_PLAYERS
    default
    8
    rules
    required|numeric|max:255
    • viewable
    • editable
  • World Size

    Defines the worlds size. 3 sizes 1 (small), 2 (medium), 3 (large).

    env
    WORLD_SIZE
    default
    1
    rules
    required|numeric|in:1,2,3
    • viewable
    • editable
  • Difficulty

    World Difficulty Options: 0(normal), 1(expert), 2(master), 3(journey)

    env
    WORLD_DIFFICULTY
    default
    3
    rules
    required|numeric|in:0,1,2,3
    • viewable
    • editable
  • MOTD

    Server MOTD

    env
    SERVER_MOTD
    default
    Welcome!
    rules
    required|string|max:128
    • viewable
    • editable
  • World Seed

    The Seed to use when creating the World

    env
    WORLD_SEED
    default
    none
    rules
    nullable|string|max:20
    • viewable
    • editable
  • Password

    The password which should be used.

    env
    PASSWORD
    default
    none
    rules
    nullable|string
    • viewable
    • editable
  • NPCStream

    Reduces enemy skipping but increases bandwidth usage. The lower the number the less skipping will happen, but more data is sent. 0 is off.

    env
    NPCSTREAM
    default
    0
    rules
    required|int|between:0,60
    • viewable
    • editable
Installation script 64 lines container ghcr.io/ptero-eggs/installers:debian entrypoint bash show
#!/bin/bash
# Vanilla Installation Script
#
# Server Files: /mnt/server
## install packages to get version and download links
apt update
apt install -y curl wget file unzip jq

DOWNLOAD_LINK=invalid

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

if [ "${TERRARIA_VERSION}" == "latest" ] || [ "${TERRARIA_VERSION}" == "" ] ; then
    V=$(curl -sSL https://terraria.org/api/get/dedicated-servers-names | jq -r .[] | head -1)
    DOWNLOAD_LINK="https://terraria.org/api/download/pc-dedicated-server/${V}"
else
    CLEAN_VERSION=$(echo ${TERRARIA_VERSION} | sed 's/\.//g')
    echo -e "Downloading terraria server files"
    DOWNLOAD_LINK=$(curl -sSL https://terraria.wiki.gg/wiki/Server#Downloads | grep '>Terraria Server ' | grep -Eoi '<a [^>]+>' | grep -Eo 'href=\"[^\\\"]+\"' | grep -Eo '(http|https):\/\/[^\"]+' | grep "${CLEAN_VERSION}" | cut -d'?' -f1)
fi 

## this is a simple script to validate a download url actaully exists
echo ${DOWNLOAD_LINK}

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

CLEAN_VERSION=$(echo ${DOWNLOAD_LINK##*/} | cut -d'-' -f3 | cut -d'.' -f1)


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

echo -e "Unpacking server files"
unzip ${DOWNLOAD_LINK##*/}

echo -e ""
cp -R ${CLEAN_VERSION}/Linux/* ./
chmod +x TerrariaServer.bin.x86_64

echo -e "Cleaning up extra files."
rm -rf ${CLEAN_VERSION}

echo -e "Generating config file"
cat <<EOF > serverconfig.txt
worldpath=/home/container/saves/Worlds
worldname=default
world=/home/container/saves/Worlds/default.wld
difficulty=3
autocreate=1
port=7777
maxplayers=8
EOF

mkdir -p /mnt/server/saves/Worlds

echo -e "Install complete"