Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
11 changes: 10 additions & 1 deletion .travis.yml
Original file line number Diff line number Diff line change
Expand Up @@ -132,6 +132,15 @@ script:
- bash StarBound/sbserver email-test
- bash StarBound/sbserver details

- bash Terraria/terrariaserver auto-install
- bash Terraria/terrariaserver start
- bash Terraria/terrariaserver stop
- bash Terraria/terrariaserver restart
- bash Terraria/terrariaserver validate
- bash Terraria/terrariaserver monitor
- bash Terraria/terrariaserver email-test
- bash Terraria/terrariaserver details

- bash UnrealTournament2004/ut2k4server start
- bash UnrealTournament2004/ut2k4server stop
- bash UnrealTournament2004/ut2k4server restart
Expand All @@ -152,4 +161,4 @@ script:
- bash TeamSpeak3/ts3server update
- bash TeamSpeak3/ts3server monitor
- bash TeamSpeak3/ts3server email-test
- bash TeamSpeak3/ts3server details
- bash TeamSpeak3/ts3server details
68 changes: 68 additions & 0 deletions Terraria/cfg/terraria-server.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,68 @@
#this is an example config file for TerrariaServer.exe
#use the command 'TerrariaServer.exe -config serverconfig.txt' to use this configuration or run start-server.bat
#please report crashes by emailing crashlog.txt to support@terraria.org

#the following is a list of available command line parameters:

#-config <config file> Specifies the configuration file to use.
#-port <port number> Specifies the port to listen on.
#-players <number> / -maxplayers <number> Sets the max number of players
#-pass <password> / -password <password> Sets the server password
#-world <world file> Load a world and automatically start the server.
#-autocreate <#> Creates a world if none is found in the path specified by -world. World size is specified by: 1(small), 2(medium), and 3(large).
#-banlist <path> Specifies the location of the banlist. Defaults to "banlist.txt" in the working directory.
#-worldname <world name> Sets the name of the world when using -autocreate.
#-secure Adds addition cheat protection to the server.
#-noupnp Disables automatic port forwarding
#-steam Enables Steam Support
#-lobby <friends> or <private> Allows friends to join the server or sets it to private if Steam is enabled
#-ip <ip address> Sets the IP address for the server to listen on
#-forcepriority <priority> Sets the process priority for this task. If this is used the "priority" setting below will be ignored.

#remove the # in front of commands to enable them.

#Load a world and automatically start the server.
#world=C:\Users\YOUR_USERNAME_HERE\My Documents\My Games\Terraria\Worlds\world1.wld

#Creates a new world if none is found. World size is specified by: 1(small), 2(medium), and 3(large).
#autocreate=1

#Sets the name of the world when using autocreate
#worldname=Terraria

#Sets the difficulty of the world when using autocreate 0(normal), 1(expert)
#difficulty=1

#Sets the max number of players allowed on a server. Value must be between 1 and 255
#maxplayers=8

#Set the port number
#port=7777

#Set the server password
#password=p@55w0rd

#Set the message of the day
#motd=Please don�t cut the purple trees!

#Sets the folder where world files will be stored
#worldpath=C:\Users\Defaults\My Documents\My Games\Terraria\Worlds\

#The location of the banlist. Defaults to "banlist.txt" in the working directory.
#banlist=banlist.txt

#Adds addition cheat protection.
#secure=1

#Sets the server language 1:English, 2:German, 3:Italian, 4:French, 5:Spanish
#lang=1

#Automatically forward ports with uPNP
#upnp=1

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

#Default system priority 0:Realtime, 1:High, 2:AboveNormal, 3:Normal, 4:BelowNormal, 5:Idle
priority=1

92 changes: 92 additions & 0 deletions Terraria/terrariaserver
Original file line number Diff line number Diff line change
@@ -0,0 +1,92 @@
#!/bin/bash
# Terraria
# Server Management Script
# Author: Daniel Gibbs
# Contributor: Bryce Van Dyk (SingingTree)
# Website: http://gameservermanagers.com
version="070915"

#### Variables ####

# Notification Email
# (on|off)
emailnotification="off"
email="email@example.com"

# Steam login
steamuser="username"
steampass="password"

# Start Variables
ip="0.0.0.0"
updateonstart="off"

fn_parms(){
parms="-config ${servercfgfullpath}"
}

#### Advanced Variables ####

# Steam
appid="105600"

# Server Details
servicename="terraria-server"
gamename="Terraria"
engine="terraria"

# Directories
rootdir="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
selfname="$(basename $0)"
lockselfname=".${servicename}.lock"
filesdir="${rootdir}/serverfiles"
systemdir="${filesdir}"
executabledir="${filesdir}"
executable="./TerrariaServer"
servercfg="${servicename}.txt"
servercfgdir="${filesdir}"
servercfgfullpath="${servercfgdir}/${servercfg}"
backupdir="${rootdir}/backups"

# Logging
logdays="7"
#gamelogdir="" # Terraria Doesn't Have a Server Log
scriptlogdir="${rootdir}/log/script"
consolelogdir="${rootdir}/log/console"

scriptlog="${scriptlogdir}/${servicename}-script.log"
consolelog="${consolelogdir}/${servicename}-console.log"
emaillog="${scriptlogdir}/${servicename}-email.log"

scriptlogdate="${scriptlogdir}/${servicename}-script-$(date '+%d-%m-%Y-%H-%M-%S').log"
consolelogdate="${consolelogdir}/${servicename}-console-$(date '+%d-%m-%Y-%H-%M-%S').log"

##### Script #####
# Do not edit

fn_runfunction(){
# Functions are downloaded and run with this function
if [ ! -f "${rootdir}/functions/${functionfile}" ]; then
cd "${rootdir}"
if [ ! -d "functions" ]; then
mkdir functions
fi
cd functions
echo -e " loading ${functionfile}...\c"
wget -N /dev/null https://raw.githubusercontent.com/dgibbs64/linuxgsm/master/functions/${functionfile} 2>&1 | grep -F HTTP | cut -c45-
chmod +x "${functionfile}"
cd "${rootdir}"
fi
source "${rootdir}/functions/${functionfile}"
}

fn_functions(){
# Functions are defined in fn_functions.
functionfile="${FUNCNAME}"
fn_runfunction
}

fn_functions

getopt=$1
fn_getopt
44 changes: 39 additions & 5 deletions functions/fn_details
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@
# LGSM fn_details function
# Author: Daniel Gibbs
# Website: http://gameservermanagers.com
# Version: 280715
# Version: 070915

# Description: Displays server infomation.

Expand All @@ -19,7 +19,7 @@ printf '%*s\n' "${COLUMNS:-$(tput cols)}" '' | tr ' ' =
echo -e "\e[34mKernel:\t\e[0m${kernel}"
echo -e "\e[34mHostname:\t\e[0m$HOSTNAME"
echo -e "\e[34mtmux:\t\e[0m${tmuxv}"
echo -e "\e[34mGLIBC:\t\e[0m${glibcv}"
echo -e "\e[34mGLIBC:\t\e[0m${glibcv}"
} >> .fn_details_distro
column -s $'\t' -t .fn_details_distro
rm -f .fn_details_distro
Expand All @@ -31,15 +31,15 @@ echo -e "\e[93mPerformance\e[0m"
printf '%*s\n' "${COLUMNS:-$(tput cols)}" '' | tr ' ' =
{
echo -e "\e[34mUptime:\t\e[0m${days}d, ${hours}h, ${minutes}m"
echo -e "\e[34mAvg Load:\t\e[0m${load}"
echo -e "\e[34mAvg Load:\t\e[0m${load}"
} >> .fn_details_performance
column -s $'\t' -t .fn_details_performance
rm -f .fn_details_performance
echo -e ""
{
echo -e "\e[34mMem:\t\e[34mtotal\t used\t free\e[0m"
echo -e "\e[34mPhysical:\t\e[0m${physmemtotal}\t${physmemused}\t${physmemfree}\e[0m"
echo -e "\e[34mSwap:\t\e[0m${swaptotal}\t${swapused}\t${swapfree}\e[0m"
echo -e "\e[34mSwap:\t\e[0m${swaptotal}\t${swapused}\t${swapfree}\e[0m"
} >> .fn_details_performance
column -s $'\t' -t .fn_details_performance
rm -f .fn_details_performance
Expand Down Expand Up @@ -497,6 +497,38 @@ fn_details_statusbottom

}

fn_details_terraria(){
fn_check_ip
fn_parms
fn_details_config
fn_details_distro
fn_details_os
fn_details_performance
fn_details_disk
fn_details_gameserver
fn_details_backup
fn_details_commandlineparms
echo -e ""
echo -e "\e[92mPorts\e[0m"
printf '%*s\n' "${COLUMNS:-$(tput cols)}" '' | tr ' ' =
echo -e "Change ports by editing the command-line"
echo -e "parameters in ${selfname}."
echo -e ""
echo -e "Useful port diagnostic command:"
echo -e "netstat -atunp | grep terraia"
echo -e ""
{
echo -e "DESCRIPTION\tDIRECTION\tPORT\tPROTOCOL"
echo -e "> Game\tINBOUND\t${port}\ttcp"
echo -e "> Query\tINBOUND\t${queryport}\ttcp"
echo -e "> Rcon\tINBOUND\t${rconport}\ttcp"
} >> .fn_details_ports
column -s $'\t' -t .fn_details_ports
rm -f .fn_details_ports
fn_details_statusbottom

}

fn_details_teamspeak3(){
fn_details_config
fn_details_distro
Expand Down Expand Up @@ -703,6 +735,8 @@ elif [ "${engine}" == "spark" ]; then
fn_details_spark
elif [ "${engine}" == "starbound" ]; then
fn_details_starbound
elif [ "${engine}" == "terraria" ]; then
fn_details_terraria
elif [ "${engine}" == "unity3d" ]; then
fn_details_unity3d
elif [ "${engine}" == "unreal" ] || [ "${engine}" == "unreal2" ]; then
Expand All @@ -713,4 +747,4 @@ elif [ "${gamename}" == "Teamspeak 3" ]; then
fn_details_teamspeak3
else
fn_printerrornl "Unable to detect server engine."
fi
fi