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.

Currently this guide has only been tested on Windows and the Linux side of this tutorial still needs to be tested to work properly. If you are having trouble starting the server on Linux read the Server Install Linux page on the Unreal Admin Wiki.

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 Public 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.

Download:
TO-AOT-340-350.zip

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=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

 

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:
TO 451b System Update.zip

Download for Linux:
TO 451 Linux Files.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.7z

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 1994.zip
TOSTWeapons v1.4.0.0.zip
TOSTTools v1.3.4.0.zip

Download TO350:
TOST v4.4.2.5.7z
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.rar

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[#]=TOSTWeaponsServer42.TOSTWeaponsServer

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:
ACEv11f.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_v18b
ServerPackages=NPLoaderLLU_v18b
ServerPackages=NPLoaderLLD_v18b
ServerPackages=NPLoaderLLS_v18b
ServerPackages=NPLoaderLLDL_v18b
ServerPackages=ACEv11f_Cdll
ServerPackages=IACEv11
ServerPackages=ACEv11f_C

Add the following ServerActors above Server CrashFix:

ServerActors=NPLoader_v18b.NPLActor
ServerActors=ACEv11f_S.ACEActor
ServerActors=ACEv11f_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.

NexGen has 2 versions you can choose v1.12 or v1.12N, the N version is not made the original developer and is a "modified version". The biggest difference comes down to which NexGen plugins are able run, both v1.12 and v1.12N also use a different version of the "Nexgen PlayerLookup Plugin"

I recommend NexGen v1.12 since it can run some plugins that allow both players and admins easier accessibility to ACE settings and functions.

Downloads for Nexgen v1.12:
Nexgen112.zip
NexgenPlayerLookup202.zip
NexgenABM201.zip
NexgenACEExt11_2.zip

Installation for Nexgen v1.12:
Add as bottom Server Packages:

ServerPackages=NexgenCC
ServerPackages=Nexgen112
ServerPackages=NexgenABM201
ServerPackages=NexgenACEExt11_2
ServerPackages=NexgenPlayerLookup202

Add these above ServerCrashFix and below the ACE ones if you are using that:

ServerActors=Nexgen112.NexgenActor
ServerActors=NexgenABM201.NexgenABMMain
ServerActors=NexgenACEExt11_2.NexgenACEExt
ServerActors=NexgenPlayerLookupDataBase.NexgenPlayerLookupDataBase
ServerActors=NexgenPlayerLookup202.NexgenPlayerLookup


Downloads for Nexgen v1.12N:

Nexgen112N-full.rar (You only need the Nexgen112N.zip from this inside file)
NexgenPlayerLookup202N.zip

Installation for Nexgen v1.12N:
Add to the bottom Server Packages:

ServerPackages=NexgenCC
ServerPackages=Nexgen112N
ServerPackages=NexgenPlayerLookup202N

Add these above ServerCrashFix and below the ACE ones if you are using that:

ServerActors=Nexgen112N.NexgenActor
ServerActors=NexgenPlayerLookupDataBase.NexgenPlayerLookupDataBase
ServerActors=NexgenPlayerLookup202N.NexgenPlayerLookup

Configuration:
Nexgen will automtically copy allot of settings from your main "TacticalOps.ini" and store them in "NexGen.ini".

Both players and admins can acces the Nexgen menu by typing !o or !open in the server chat. On the first entry screen there is a button where you can log in as admin and get access to more settings.

 

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 and press F6, just experiment which TickRate gives the most stable 40 ingame. (40, 41, 42 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"/ Add the mutators to there, 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://81.169.151.226/uz/
ProxyServerHost=
ProxyServerPort=
UseCompression=True

 

20. Other Useful Guides

Custom Server Logo
Custom Server Sounds
Redirect & UCC Compression