Server Setup & Configuration (WIP)
This page is outdated after the release of the v469 "Server Pack".
Go check out the new TO Server Guide/Download page.
Server Setup & Configuration (WIP)
This guide is useful in 2 ways, you can create your own TO3.4 or 3.5 server file set. Or learn how to add and configure things on an existing server or downloaded server package.
When you are looking for a quick and fast way to host a server, try out any of the 15+ Server Packs from the Anti Cheat & Server section.
New are also 2 seperate guides that go into detail which custom/monster gametypes you can run on a server: Monster Gametypes and Custom Gametypes
When installing custom files to your server, follow these basic rules:
u, int, dll, exe, so, ini -> System
unr -> Maps
utx -> Textures
uax -> Sounds
umx -> Music
This means when you are finished there should be no file extensions of a different type in the Maps, Music, Sounds or Textures folders. (Except "TO-SnowSkybox.unr" an official TO file in the Textures folder)
Also check that the System folder doesn't have any .utx, .uax or .umx files, if so move them to their proper place.
Any ".uz" files you might find in any of the downloads are meant to be placed on your HTTP File Redirect, what that is and how to use it is explained at the bottom of the guide.
1. Fresh TO Folder
First start by extracting a fresh TO340 or TO350 folder depending on which version you want to run the Server. The TO:AoT Fixed Pack has very clean TO folders with all unneeded setup, language and others files removed combined with clean ini files that have all unneeded parts removed.
Then rename it to something like TO340Server or TO350Server and avoid using spaces.
Choice 1: Run server on Engine v451
Download the "Legacy" Fixed Pack from here: Legacy Fixed Pack
It uses the original UT v436 engine and can be used in this guide to be updated to v451.
Choice 2: Run server on Engine v469
Download the v469 Fixed Pack from here: v469 Fixed Pack
When using v469 you can skip 5. UCC2 v2 (Only Windows) and 7. ServerCrashFix as they are no longer needed.
Attention: And skip 4. Updating Engine to v451 (And adding Linux files) of this guide and retreive the Linux files from the v469c github.
2. Remove Unwanted Files
Delete the "TacticalOps.exe" file from the “System” folder as don't want to run the game from the same files set as the server.
3. Fix Server Configuration
Fix the Master Servers, re-arrange the ServerPackages and ServerActors, fix the CacheSize and disable the Sound.
Open "TacticalOps.ini" with Notepad and replace the full "[Engine.GameEngine]" section with the following one:
[Engine.GameEngine]
CacheSizeMegs=512
UseSound=False
ServerPackages=Botpack
ServerPackages=ActorResetter
ServerPackages=TOModels
ServerPackages=TODecos
ServerPackages=TODatas
ServerPackages=TOSystem
ServerPackages=TOPModels
ServerPackages=s_SWAT
ServerActors=TOSystem.TO_UdpServerQuery;RemoveForTO350
ServerActors=IpDrv.UdpBeacon
ServerActors=IpServer.UdpServerQuery
ServerActors=IpServer.UdpServerUplink MasterServerAddress=master.333networks.com MasterServerPort=27900 DoUplink=True
ServerActors=IpServer.UdpServerUplink MasterServerAddress=gsm.qtracker.com MasterServerPort=27900 DoUplink=True
ServerActors=IpServer.UdpServerUplink MasterServerAddress=unreal.epicgames.com MasterServerPort=27900 DoUplink=True
ServerActors=UWeb.WebServer
Also important is a server start up map in the section [URL] at the top of the ini
Make sure LocalMap=Intro.unr is changed to the startup map of your liking.
Example: LocalMap=TO-Trooper.unr
4. Updating Engine to v451 (And adding Linux files)
This step is both important to update the internal engine version to v451 and to add all necessary files for when running the server on Linux. By default TO3.4 and TO3.5 both run on Unreal engine v436, the community has made an unofficial v451 patch with large number of modifications, fixes and upgrades to the engine. Currently a v469 patch is in development, maybe a choice for the future.
Download for Windows:
UTPatch451b-Windows.zip
Download for Linux:
UTPatch451-Linux.zip
Installation:
Install by copying the "System" and "Web" folders directly into your main server folder.
5. UCC2 v2 (Only Windows)
A modified UCC with various server crash fixes only available for Windows.
Download:
UCC2_v2.zip
Installation:
Install by copying the "UCC.exe" file to the "System" folder.
6. TOST
TOST: Tactical Ops Server Tools is as the name describes, a set of tools that will add many features to your server. Mapvote, kick/ban control, server sounds, menu to configure server settings, weapons and much more.
Download TO340:
TOST_v4.2.4.0_TOSTProtect_v1.9.9.4.zip
TOSTWeapons_v1.4.0.0.zip
TOSTTools_v1.3.4.0.zip
Download TO350:
TOST_v4.4.2.5.zip
TOSTWeapons_v2.1.1.1.zip
Installation:
Install "TOST" by copying all .u files into the server "System" folder. Install the "TOST Weapons" addon by copying all .u files into the "System" directory and the 2 .utx Textures into the Server "Textures" folder.
For TO3.4 there is also an updated TOSTTools in the downloads, this version stops the annoying message in the server that TOST is outdated. To install overwrite the TOSTTools from thee TOST v4.2.4.0 download.
Configuration TO340:
To enable them add the following lines after the last ServerPackage in "TacticalOps.ini", before the first "ServerActors=".
ServerPackages=TOST42
ServerPackages=TOSTGUICtrl
ServerPackages=TOSTClient
ServerPackages=TOSTHitparade
ServerPackages=TOSTProtect1994
ServerPackages=TOSTWeapons42
ServerPackages=TOSTWeaponsClient42
ServerPackages=C4Pack42
ServerPackages=FamasPack42
ServerPackages=SteyrAugPack42
ServerPackages=TearGasPack42
ServerActors=TOST42.TOSTServerActor
Configuration TO350:
To enable them add the following lines after the last ServerPackage in "TacticalOps.ini", before the first "ServerActors=".
ServerPackages=TOST44
ServerPackages=TOSTClient
ServerPackages=TOSTGUICtrl
ServerPackages=TOSTHitParade
ServerPackages=TOSTWeapons44
ServerPackages=TOSTWeaponsClient44
ServerPackages=C4Pack44
ServerPackages=FamasPack44
ServerPackages=SteyrAugPack44
ServerPackages=TearGasPack44
ServerPackages=CrossBowPack44
ServerActors=TOST44.TOSTServerQuery
ServerActors=TOST44.TOSTServerActor
Configuration Extra:
After first running server server many new lines will be generated in your "TacticalOps.ini" allowing you to configure all the settings. Alternatively you can login with the Admin Password you have set in your "TacticalOps.ini" and use the commands "showgametab, showadmintab and showweapontab" in the console.
7. ServerCrashFix
Server Crash Fix is a DoS Protection Mod, prevents servers crashes and has the ability to control the CPU Affinity of the server.
Download:
Server_Crash_Fix_v1.1.zip
Installation Windows:
Copy these files into server "System" folder.
Configuration:
To enable it add this line at the bottom as last ServerActor in in your "TacticalOps.ini".
ServerActors=ServerCrashFix_v11.SCFActor
Change the settings in the "ServerCrashFix.ini" file.
8. TechsNoDodge and Disabling TOST Protect
When running a TO340 server most admins disable the TOST Protect function as its known to cause kicks for players. When TOST Protect is disabled players are able to "UT99 Dodge Jump" if they modify their "User.ini", this prevents that.
Download:
TechsNoDodge.zip
Disable TOST Protect:
Remove this ServerPackage in “TacticalOps.ini”:
ServerPackages=TOSTProtect1994
After having run the server with TOST enabled search for “TostPiece” list and remove:
Pieces[#]=TOSTProtect1994.TOSTProtect
Installation:
Install by copying the .u file into the Server System Directory
Add the following line as ServerPackage
ServerPackages=TechsNoDodge
Add the following line as ServerActor above ServerCrashFix, so that ServerCrashFix remains the last one.
ServerActors=TechsNoDodge.NoDodge
9. ACE
ACE: Anti Cheat Engine, has the ability to make screenshots from players and more features. Beside that it also does some internal "Timing" related things either way even if you are not using it for the Anti Cheat functions it is still highly recommended to run on any server. It also impacts things player side since ACE also runs on the client. For more information read this Timings.txt from an older version.
Download:
ACE_v1.2e.zip
Installation:
Install by copying all files from the ACE download into the servers main TO340/ or TO350/ folder.
Afterwards add the following ServerPackages to the bottom of your ServerPackage list:
ServerPackages=NPLoader_v19b
ServerPackages=NPLoaderLLU_v18b
ServerPackages=NPLoaderLLD_v18b
ServerPackages=NPLoaderLLS_v18b
ServerPackages=NPLoaderLLDL_v18b
ServerPackages=ACEv12e_Cdll
ServerPackages=IACEv12
ServerPackages=ACEv12e_C
Add the following ServerActors above Server CrashFix:
ServerActors=NPLoader_v19b.NPLActor
ServerActors=ACEv12e_S.ACEActor
ServerActors=ACEv12e_EH.ACEEventActor
Configuration:
ACE will mostly configure itself, the only 2 important settings are discussed in upcoming "Basic Server Settings" and "Server Ports / Firewall Rules"
10. Nexgen
Nexgen is a mod for servers to facilitate server administration tasks. Rather than having the execute console commands or edit configuration files, Nexgen allows server administrators to change settings and perform actions in game via an user friendly interface.
Downloads for Nexgen v1.12:
Nexgen_v1.12.zip
Nexgen_PlayerLookup_v2.0.2.zip
Nexgen_ABM_v2.0.1.zip
Nexgen_ACEExt_v12.2.zip
Installation for Nexgen v1.12:
Add as bottom Server Packages:
ServerPackages=NexgenCC
ServerPackages=Nexgen112
ServerPackages=NexgenABM201
ServerPackages=NexgenACEExt12_2
ServerPackages=NexgenPlayerLookup202
Add these above ServerCrashFix and below the ACE ones if you are using that:
ServerActors=Nexgen112.NexgenActor
ServerActors=NexgenABM201.NexgenABMMain
ServerActors=NexgenACEExt12_2.NexgenACEExt
ServerActors=NexgenPlayerLookupDataBase.NexgenPlayerLookupDataBase
ServerActors=NexgenPlayerLookup202.NexgenPlayerLookup
11. Windows Starter File
Save the following as "StartServer.bat" with notepad, make sure to set Save as Type to: "All Files (*.*)" so you don't save it as "StartServer.bat.txt"
In this start up file example the -multihome parameter is already set, this is used when you host multiple servers from the same machine.
Make sure to not forget to change it to the Public IP Address of the machine you are hosting the server from, or an error will appear when starting the server.
@echo off
title Tactical Ops Server
set UTBINARY=ucc.exe
set UCCOPTIONS=server
set OPTIONS=-nohomedir -multihome=123.456.789.123 -port=7777
set SERVERINI=TacticalOps.ini
set USERINI=User.ini
:while
set CMDLINE=%UTBINARY% %UCCOPTIONS% -INI=%SERVERINI% -USERINI=%USERINI% %OPTIONS%
title Tactical Ops Server %CMDLINE%
%CMDLINE%
:: todo: sleep 10;
goto while
12. Linux Starter File
Save the following as "StartServer.sh".
In this start up file example the -multihome parameter is already set, this is used when you host multiple servers from the same machine.
Make sure to not forget to change it to the Public IP Address of the machine you are hosting the server from, or an error will appear when starting the server.
#!/bin/bash
UTBINARY="$PWD/ucc-bin"
UCCOPTIONS="server"
OPTIONS="-nohomedir -multihome=123.456.789.123 -port=7777"
SERVERINI="TacticalOps.ini"
USERINI="User.ini"
while true; do
CMDLINE="$UTBINARY $UCCOPTIONS -INI=$SERVERINI -USERINI=$USERINI $OPTIONS";
echo $CMDLINE;
nice $CMDLINE;
echo -e "\n\nYou have 10s to kill this script\n\n";
sleep 10;
done
13. Start The Server
This is a good moment to start your server for 15 seconds and shut it down afterwards. This way all the addons can write their config lines to "TacticalOps.ini" or their own ini files and you can continue configuring the server.
14. Important Server Settings
Tickrate:
You can set the Tickrate with the following values:
NetServerMaxTickRate=41
LanServerMaxTickRate=41
It is mostly recommended to stick to a TickRate of 40, however the set TickRate can be different then effective ingame TickRate. Test this by joining your server, press F6 and read the Packet/Sec value. This may vary on server load (empty / 30 players). Just experiment which TickRate gives the most stable 40 ingame. (40, 41, 42 etc.)
Tickrate in 2020:
Server admins have tested both 120 and 60 and it seems that 60 runs best on both v451 and v469a servers. (This can be 60, 61 etc. depending on your OS/Hardware etc.)
NetSpeed:
MaxClientRate=20000
The Server always defines the maximum allowed Netspeed, Setting it higher won’t do anything as players will need to manually set it higher and since the effective used Netspeed/Rate used by the player is affected by the maximum FPS which is most likely 100-200 they will never ever need or exceed higher then 20000. (You can observe the current effective Netspeed/Rate also in the F6 menu when joining your server).
Admin Password:
In “TacticalOps.ini” set:
AdminPassword=YourAdminPW
ACE Screenshot Password:
In “TacticalOps.ini” set:
AdminPass=YourAdminPW
Disable Nexgen HUD
Disable it or players will get kicked by ACE. In “Nexgen.ini” set:
useNexgenHUD=False
15. TOST Weapons Configuration
Enable TOST Weapons for TO3.4:
In the TOST Pieces section of TOST make sure it has the following piece configured:
[TOST42.TOSTServerMutator]
Pieces[#]=TOSTWeaponsServer42.TOSTWeaponsServer
Enable TOST Weapons for TO3.5:
In the TOST Pieces section of TOST make sure it has the following piece configured:
[TOST44.TOSTServerMutator]
Pieces[#]=TOSTWeaponsServer44.TOSTWeaponsServer
Configuration:
To create weapon profiles for TOST Weapons log in as admin in your server and open the "showweapontab" from the console.
From this menu you can select which weapons + equipment is allowed, free or limited to which team etc. Then on the final page you can Save them to a profile. Just click an empty box, give it a title and click Save.
The Load button is only meant if you want to load a Custom Profile on a map that has it not configured at the moment.
In the "TacticalOps.ini" is a "TOSTWeaponsServer" section, where there are rows like this:
RecordString[0]=Default Profile;1;1;1;1;1;1;1;1;1;1;1;1;1;0;1;0;1;1;1;1;0;1;1;1;1;1;1;0;1;0;0;0;1;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;1;1;1;0;1;0;1;1;0;1;0;0;0;1;-1;
RecordString[1]=War Weapons;3;1;3;3;3;2;3;3;2;1;2;1;1;1;1;0;3;2;2;1;0;2;2;0;3;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;1;0;0;0;0;0;1;0;0;0;0;0;0;0;0;0;0;1;0;0;1;0;1;0;0;0;0;-1;
RecordString[2]=Knife;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;1;1;1;1;1;0;1;1;0;1;0;0;0;0;-1;
and
DefaultMapMode[0]=
DefaultMapMode[1]=
DefaultMapMode[2]=TO-Knife-Battle;TO-KnifeArena;TO-KnifeWar;
and a setting:
CurrentDefSettings=0
So you first make the profiles ingame in the server, then in the Server Configuration you set the custom maps that automatically load a custom profile. The last setting "CurrentDefSettings=0" dictates what the default profile is for all maps that do not have a profile set. This is usually used for a Normal / Default Weapon Profile.
16. How To Use Ingame Admin
To login as admin in your server, open the console and type "adminlogin YourAdminPW". To logout use the command "adminlogout".
When logged in as admin you can use the ingame console commands "showadmintab, showgametab and showweapontab" in the console to open the TOST configuration windows.
When using Nexgen most of the basic server settings such as Maximum Players, Server Title, Admin Name, Admin Email, the Message Of The Day etc all can be configured from the “Nexgen.ini”. If not using Nexgen all those settings can be configured from “TacticalOps.ini”
You can open the Nexgen menu by typing !open or !o in the ingame server chat. Then login with the admin password you have configured in “TacticalOps.ini”.
17. Running Other Mutators / Addons
95% Of all mutators/addons will require you to add it as ServerPackage and some as ServerActor, so always read the included readme file of a download, usually it is explained which steps you must take to make it work.
Some might not work together, for example to run the CTF Gametype, or the TO2.2 Weapons Mutator the TOST Weapons addon must be disabled.
Custom Mutators
There are 2 ways to start a mutator on your server.
1. When using TOST there will be a section called "[TOST42.TOSTServerActor]" or "[TOST44.TOSTServerActor]" for TO3.5 in "TacticalOps.ini", for example:
[TOST42.TOSTServerActor]
Mutators[0]=BotUnBalancer.BotUnBalancer
Mutators[1]=sG_Bet.sG_Bet
[TOST44.TOSTServerActor]
Mutators[0]=BotUnBalancer.BotUnBalancer
Mutators[1]=sG_Bet.sG_Bet
2. An alternative method is is to add them as variable to the "LocalMap=" setting in "TacticalOps.ini".
LocalMap=TO-Trooper.unr?mutator=BotUnBalancer.BotUnBalancer,sG_Bet.sG_Bet
Custom Gametype
Same with mutators, gametype also have 2 ways of being started with the server.
1. When using TOST and the builtin TOST Mapvote you can configure it to load from it.
In the section "[TOSTTools.TOSTMapHandling]" you will find the following:
CurrentGameType=1
GameType[0]=Tactical Ops;s_SWAT.s_SWATGame;
GameType[1]=Capture The Flag;TOCTF.TFMod;
GameType[2]=
GameType[3]=
GameType[4]=
In this example i added the CTF gamemode as GameType[1], Wih the setting "CurrentGameType=" you set the default server gametype.
2. An alternative method is is to add them as variable to the "LocalMap=" setting in "TacticalOps.ini".
LocalMap=TO-Trooper.unr?game=TOCTF.TFMod
This can also be combined with starting mutators:
LocalMap=TO-Trooper.unr?game=TOCTF.TFMod?mutator=BotunBalancer.BotUnBalancer,sG_Bet.sG_Bet
18. Server Ports / Firewall Rules
If you are using ACE on your server, then you must configure the ACEPort in "TacticalOps.ini" in "ACEPort=". What i have observed is that sometimes it might take the Port you have set for ACE and take +1 or -1. So if Ace if you are getting kicked from your server because ACE can't make a connection, try forwarding also 1 port higher or 1 port lower.
If you are running multiple servers, or running a different port then 7777, the other 2 are simply +1 and +2. For example 8888,8889 and 8890 if using 8888.
7777 UDP (Game port)
7778 UDP (Query port)
27900 TCP/UDP (Master Server)
ACEPort TCP/UDP (The port you have configured for ACE)
7670 TCP (WebAdmin Graphical User Interface, only needed when wanting to use the Web Admin)
Depending on where or on what the server is hosted, make sure to Forward these in your Firewall (Windows) and when behind a router these ports must be forwarded to the Local IP Address of the machine you are running the server from. Since this is different for every setup / router, i advice to research this on Google and YouTube.
19. Redirect
A redirect is a http server / website that sends all the custom files required to the player when he connects to the server. If you don’t have a redirect the player will be limited to 20KB/s so downloading 10-20MB of files will take minutes so this is absolutely necessary if you plan to play custom maps on your server.
A plus side of a redirect is that the files can be stored in .uz format, sort of an Unreal Zip file format. This makes the file size smaller making the downloads even faster then without a redirect.
You must compress all custom files in use by your server yourself, a handy tool for this is UnrealDeps (Preview Video), a player will decompress the files automatically when joining the server.
Here an example when using the Tactical-Ops.eu 3.4 Public Redirect.
Configuration:
[IpDrv.HTTPDownLoad]
RedirectToURL=http://redirect.towars.net/uz/
ProxyServerHost=
ProxyServerPort=
UseCompression=True