Hosting on your own hardware - Alderon-Games/pot-community-servers GitHub Wiki

BY HOSTING SERVERS YOU AGREE TO OUR SERVER HOSTING AGREEMENT HERE: https://alderongames.com/legal/server-hosting-agreement

Path of Titans Server Files can be downloaded and updated using a automated command line utility called Alderon Games Cmd. This is similar to SteamCMD.

Alderon Games Cmd (Download)

AlderonGamesCmd can be downloaded for Windows, Mac, Linux here:

Please Note that running this executable will not download the server software, you will need to use the below instructions to pass command line arguments to tell it what to download and where.

Alderon Games Cmd Release Notes

1.0.5

  • New: Introduced --arch command line argument. This allows for specifying an override arch to download. This is currently only used for Linux Server downloads. You can swap between Arm64 vs x86_64. Please note that Arm64 Linux Server support is experimental but as of this patch its now functional.
  • AlderonGamesCmd-Linux-arm64 now downloads the Arm64 version of Linux Server by default.
  • View full release notes

Important Note: Alderon Games Cmd does not currently update itself, it's recommended you might have to download it when building a container so to ensure it's up to date. We plan on adding this in the future, however it won’t get changed often and old versions should still work.

Server Authentication

Both AlderonGamesCmd and PathOfTitansServer will need user authentication to the Alderon Games Platform, this can be any account that has access to the game. If you want to hive the database of two servers together using -Database=Remote, they will need to the same account. These are specified via specify -AuthToken= for PathOfTitansServer and --auth-token tokenhere for AlderonGamesCmd by using the token generated via this page here after signing in.

Due to Windows having a 1024 character limit on command line argument and it being a Json Web Token which is fairly long, we have added the ability to specify it via Process Environment Variable instead. You can use the environment variable AG_AUTH_TOKEN instead.

▶ Generate AUTH Token Here ◀

Please note that after you click "Generate New Token", the page will not display your same token twice if you leave or refresh the page. This is done for security reasons. If you have lost or forgotten your token, you can generate another one via the page, just make sure you update your server with the new token. When you generate a new token any old tokens will be revoked, which can cause issues if they are still in use.

Beta Branch

Right now we recommend using production as the Beta Branch, in some rare cases, you might want to use the other branch demo-public-test Please note that if you want to setup a server on the public test branch you will need to get access to that branch via the public test instructions here: Public Test Branch Signup Instructions

Server GUIDs (Globally Unique Identifier)

Each Path of Titans Server will need a unique identifier. If you have trouble generating one, please go here: https://duckduckgo.com/?q=random+guid&atb=v296-1&ia=answer This GUID is linked to your Path of Titans server and Alderon Games Account it starts with. Please replace the GUID blank of 00000000-0000-0000-0000-000000000000 in the below command line with the one you generated. It is in the format of UUIDv4

Database

Server can use a Local or Remote Database. Specified using -Database=Local or -Database=Remote. We recommend using a Local Database unless you plan on connecting shared character data between servers.

Extra Command Line Arguments

-MULTIHOME=000.000.000 This command will be the address the server will bind to for the network adapter

-ServerListIP=000.000.000 This command will be the address the server will publicly broadcast to. Useful if you want players to connect via a different IP, Firewall, Relay or DDoS protection. If you get timeouts after trying to connect to your server via the server list, but the direct IP connect works, you will need to specify it.

Rcon Command Line Arguments

Please see this page for information about Rcon and setting up Rcon Command line arguments:

Windows Server Setup

Example Command Line: Windows eg Update.bat

SET BETA_BRANCH="production"
SET AG_AUTH_TOKEN="your auth token here"
SET INSTALL_DIR="C:\Server1\"
SET SERVER_GUID="00000000-0000-0000-0000-000000000000"
./AlderonGamesCmd-Win64.exe --game path-of-titans --server true --beta-branch %BETA_BRANCH% --auth-token %AG_AUTH_TOKEN% --install-dir %INSTALL_DIR%

Starting your server after updating: (Windows)

./PathOfTitans/Binaries/Win64/PathOfTitansServer-Win64-Shipping.exe -Port=7777 -BranchKey=production -log -AuthToken=%AG_AUTH_TOKEN% -ServerGUID=%SERVER_GUID% -Database=Local

Full Example Script with Auto Restart on Crash eg UpdateAndRun.bat

SET BETA_BRANCH="production"
SET AG_AUTH_TOKEN="yourauthtokenhere"
SET INSTALL_DIR=C:\Server1
SET SERVER_GUID="00000000-0000-0000-0000-000000000000"
SET DATABASE="Local"
SET PORT=7777

:Run
echo (%time%) Updating Server Files
%INSTALL_DIR%\AlderonGamesCmd-Win64.exe --game path-of-titans --server true --beta-branch %BETA_BRANCH% --auth-token %AG_AUTH_TOKEN% --install-dir %INSTALL_DIR%

echo (%time%) Starting Server
"%INSTALL_DIR%\PathOfTitans\Binaries\Win64\PathOfTitansServer-Win64-Shipping.exe" -log -Port=%PORT% -BranchKey=%BETA_BRANCH% -AuthToken=%AG_AUTH_TOKEN% -ServerGUID=%SERVER_GUID% -Database=%DATABASE%

echo (%time%) WARNING: Server Closed or Crashed, Restarting in 60 seconds.

timeout /t 60
goto Run

Linux Server Setup

This guide is tested using Ubuntu 22.04. Steps may be different if you are using a different version or Linux Distrbution. Please Ensure you do not run the server as the root user, you will need to run it under a non-root user.

Install Required Dependencies: These are used by Path of Titans to setup and run the server.

sudo apt-get update
sudo apt-get upgrade -y
sudo apt-get install -y --no-install-recommends apt-utils apt-transport-https ca-certificates libunwind8 icu-devtools openssl libkrb5-3 zlib1g libuuid1 dos2unix gnupg gnupg2 debian-archive-keyring gcc g++ lib32gcc-s1 lib32z1 lib32stdc++6 iproute2 gdb libsdl1.2debian libfontconfig libcurl4
sudo apt-get autoremove --purge

Install Debugging Dependencies: (Optional) These are used for helping to debug your server with things like performance

sudo apt-get install -y --no-install-recommends p7zip-full unzip tar curl wget nmap net-tools netcat openssh-server sudo htop vim lm-sensors stress
sudo apt-get autoremove --purge

Download AlderonGamesCmd for Linux (for x86_64 Hardware):

curl -o AlderonGamesCmd-Linux https://launcher-cdn.alderongames.com/AlderonGamesCmd-Linux-x64
chmod +x AlderonGamesCmd-Linux

Download AlderonGamesCmd for Linux (for Arm64 Hardware - work in progress):

curl -o AlderonGamesCmd-Linux https://launcher-cdn.alderongames.com/AlderonGamesCmd-Linux-arm64
chmod +x AlderonGamesCmd-Linux

Example Update Script (Update.sh)

#!/bin/sh
export BETA_BRANCH="production"
export INSTALL_DIR="./"
export AG_AUTH_TOKEN="yourauthtokenhere"
./AlderonGamesCmd-Linux --game path-of-titans --server true --beta-branch $BETA_BRANCH --auth-token $AG_AUTH_TOKEN --install-dir ./server/

Example Startup Script (UpdateAndStart.sh)

export AG_AUTH_TOKEN="yourauthtokenhere"
export SERVER_MAP="Island"
export SERVER_MAX_PLAYERS="100"
export SERVER_NAME="MyCommunityServerTest1"
export SERVER_GUID="server-guid-here"
export SERVER_DB="Remote"
export BETA_BRANCH="production"

./AlderonGamesCmd-Linux --game path-of-titans --server true --beta-branch $BETA_BRANCH --auth-token $AG_AUTH_TOKEN --install-dir ./server/

./server/PathOfTitansServer.sh ${SERVER_MAP}?listen?MaxPlayers=${SERVER_MAX_PLAYERS} -nullRHI -ServerName=${SERVER_NAME} -ServerGUID=${SERVER_GUID} -BranchKey=${BETA_BRANCH} -Database=${SERVER_DB} -log