First Commit

This commit is contained in:
Carl Manzi 2021-01-02 23:30:39 -05:00
commit 8ffa4dacbd
16 changed files with 1383 additions and 0 deletions

View file

@ -0,0 +1,10 @@
[Unit]
Description=t2bouncer (restarts t2server at configured time)
Wants=t2bouncer.timer
[Service]
Type=oneshot
ExecStart=/usr/local/bin/t2bouncer
[Install]
WantedBy=multi-user.target

View file

@ -0,0 +1,10 @@
[Unit]
Description=t2bouncer timer
BindsTo=t2server.service
[Timer]
Unit=t2bouncer.service
OnCalendar=*:00:00
[Install]
WantedBy=timers.target

View file

@ -0,0 +1,36 @@
[Unit]
Description=Tribes 2 Dedicated Server
Requires=network.target
After=network.target
Wants=t2bouncer.timer
Before=t2bouncer.timer
[Service]
Type=simple
Environment=TERM=xterm-256color
Environment=PYTHONUNBUFFERED=1
User=t2server
CPUAffinity=0
ExecStart=/usr/local/bin/t2server
ExecStop=/usr/bin/wineserver -k
Restart=on-failure
RestartSec=15s
TimeoutStopSec=60s
WorkingDirectory=/opt/t2server/GameData
LogsDirectory=t2server
# Below settings help lock down the service for security
ProtectSystem=full
ProtectHome=true
SystemCallFilter=@system-service
NoNewPrivileges=true
ProtectKernelTunables=true
ProtectKernelModules=true
ProtectKernelLogs=true
ProtectControlGroups=true
ProtectClock=true
ProtectHostname=true
PrivateTmp=true
[Install]
WantedBy=multi-user.target

44
etc/t2server/config.yaml Normal file
View file

@ -0,0 +1,44 @@
---
## ServerPrefs indicates the server config file in /etc/t2server/serverprefs
## to use. This is case-sensitive and must match the filename exactly.
ServerPrefs: Classic_CTF.cs
## Tribes 2 servers tend to get unstable after a couple weeks of being online.
## Here you can specify a day and hour to automatically bounce the server.
## Set RestartTime to the hour of the day, 0-23, to cycle the server
## (eg. 4=4:00am, 16=4:00pm) or False to disable. Set RestartDay to the
## three-letter abbreviation of the day on which the server should be restarted
## (Sun, Mon, Tue, Wed, Thu, Fri, or Sat). This will be ignored if
## RestartTime = False.
RestartTime: False
RestartDay: Mon
## Set Mod to the directory name of the mod to be loaded, or 'base' for
## vanilla (but why?). This is case-sensitive and must match the subdirectory
## name exactly.
Mod: Classic
## Set Public to False to host a LAN-only game, or to True to host a public
## game which will be registered with the TribesNext master.
Public: False
## Tribes 2 servers try to detect descrepencies between their own IP and the IP
## that the client believes it's connecting to as possible man-in-the-middle
## attacks, however this often interfers with connections when the server is
## NATed or multi-homed. Enable OverrideMITM to effectively disable this
## detection. This setting has no effect if Public = False.
OverrideMITM: True
## Configure a custom map rotation list. The standard Mission Types are
## "Bounty", "CnH" (Capture and Hold), "CTF" (Capture the Flag), "DM"
## (Deathmatch), "DnD" (Defend and Destroy), "Hunters", "Rabbit", "Siege",
## "TeamHunters", and "TeamRabbit". Your server will always launch with the
## MissionType and Map specified in your serverprefs file ($Host::MissionType
## and $Host::Map), so make sure MissionType matches $Host::MissionType and
## the first map in MapList matches $Host::Map. If you're running a mod that
## handles map rotation, set these to 'False'.
## Example:
## MissionType: CTF
## MapList: ["Katabatic", "Minotaur", "Tombstone"]
MissionType: False
MapList: False

View file

@ -0,0 +1,52 @@
$Host::AdminPassword = "changethis";
$Host::allowAdminPlayerVotes = "0";
$Host::AllowMapScript = 1;
$Host::BanTime = 1800;
$Host::BotCount = 7;
$Host::BotsEnabled = "0";
$Host::ClassicSuperAdminPassword = "changethis";
$Host::CRCTextures = 0;
$Host::FloodProtectionEnabled = 1;
$Host::GameName = "Tribes 2 Classic CTF Server";
$Host::HiVisibility = "1";
$Host::holoName1 = "Storm";
$Host::holoName2 = "Inferno";
$Host::holoName3 = "Starwolf";
$Host::holoName4 = "DSword";
$Host::holoName5 = "BloodEagle";
$Host::holoName6 = "Harbinger";
$Host::Info = "This is a Tribes 2 Classic Server.";
$Host::KickBanTime = 300;
$Host::Map = "Minotaur";
$Host::MarkDnDObjectives = 1;
$Host::MaxMessageLen = 120;
$Host::MaxPlayers = "64";
$Host::MissionType = "CTF";
$Host::NoSmurfs = 0;
$Host::PlayerRespawnTimeout = "60";
$Host::Port = "28000";
$Host::PureServer = 0;
$Host::TeamDamageOn = "1";
$Host::TeamName0 = "Unassigned";
$Host::TeamName1 = "Storm";
$Host::TeamName2 = "Inferno";
$Host::TeamName3 = "Starwolf";
$Host::TeamName4 = "Diamond Sword";
$Host::TeamName5 = "Blood Eagle";
$Host::TeamName6 = "Phoenix";
$Host::TeamSkin0 = "blank";
$Host::TeamSkin1 = "base";
$Host::TeamSkin2 = "baseb";
$Host::TeamSkin3 = "swolf";
$Host::TeamSkin4 = "dsword";
$Host::TeamSkin5 = "beagle";
$Host::TeamSkin6 = "cotp";
$Host::TimeLimit = "200";
$Host::TN::beat = 3;
$Host::TN::echo = 1;
$Host::TournamentMode = "0";
$Host::UseHighPerformanceCounter = 0;
$Host::VotePassPercent = "60";
$Host::VoteSpread = 20;
$Host::VoteTime = "30";
$Host::warmupTime = "20";