UT4WindowsServerSetup

## Guide Description for UT4 Windows Server

A former member, admin and epic ambassador of our unreal community named zunnie wrote this dedicated tutorial of setting up a UT4 server/hub. All of this guide content is owned and copyrighted by zunnie, unfortunately he passed away but his dedicated work lives on.

As a long time fan of Unreal Tournament games i have acquired a bit of knowledge of running servers through time for especially the more recent Unreal Tournament 4 on the Unreal Engine 4 for which a lot of thanks also goes out to Metalfist, MoxNix, Supsun and some others.
If you want to learn how to run a Dedicated Server and/or a Hub for Unreal Tournament 4 you have come to the right place!

It can be quite hard to find what you're looking for and/or meet the right people who have time and are willing to teach you things.
I hope you will find the information here useful and that it helps you properly enough to set up something for your Community for example and get it going.

I've compiled some information about running a server or a hub for Unreal Tournament 4 and will share it on this page here :)
If you find this information useful, it has helped you enough, and you have a few bucks to spare you are more than welcome to donate some money in any currency to me by visiting this link: paypal.me/Allnoobs
The money i receive will be used to pay for the website, redirect hosting, gameservers and licenses we have running which cost money on a monthly basis. Thanks a lot for considering a donation :)

If you need more help or can't figure something out then feel free to join our Discord area by clicking this discord link

## Prerequisites

This page lists all the prerequisites required for running the server or hub for Unreal Tournament 4. Make sure you install each one of them or your server/hub will not function.

 DirectX | DirectX End-User Runtime Web InstallerThe Microsoft DirectX End-User Runtime provides updates to 9.0c and previous versions of DirectX — the core Windows technology that drives high-speed multimedia and games on the PC.

Please make sure you UnBlock the download for the dedicated server **before** you extract it or your server or hub will not function correctly in many cases.
To unblock the .zip file, right click on it and choose "Properties":

There at the bottom right click the checkbox "Unblock" and "Apply" it. Now you can extract the .zip file anywhere you like!

If you need more help or can't figure something out then feel free to join our Discord area by clicking this discord link

## Run a Server

### Download the files

UT4 Win64 Server Files: https://s3.amazonaws.com/unrealtournament/ShippedBuilds/%2B%2BUT%2BRelease-Next-CL-3525360/UnrealTournament-Server-XAN-3525360-Win64.zip

UT4 Linux Server Files: https://s3.amazonaws.com/unrealtournament/ShippedBuilds/%2B%2BUT%2BRelease-Next-CL-3525360/UnrealTournament-Server-XAN-3525360-Linux.zip

### Install the zip files

Create a folder called UT4Server somewhere (in this example i use C:\UT4Server\).
Extract the contents of the WindowsServer folder inside the UT4 Server .zip file into your C:\UT4Server\ folder.
You should end up with something like this:

### Batchfile to Start

Create a file called "RunServer.bat" inside your UT4Server folder.
Put the text from below inside your RunServer.bat file with notepad. Make sure you replace the "-multihome=192.168.178.17" to match your own IP.

```
cd Engine\Binaries\Win64
start UE4Server-Win64-Shipping.exe UnrealTournament DM-Spacer?Game=DM?MaxPlayers=16 -multihome=192.168.178.17 -port=7777 -log

```

(Some networked PC's don't need the multihome directive, simply remove it if your server isn't working and try again, or make absolutely sure you are binding it to the correct (internal) IP.)

### First Testrun

Now startup the server by double clicking on the RunServer.bat file.
Note that the server will close itself after the first initial run, this is because during the first run it creates configuration files.
You will end up with a screen simular to this:

### Edit Server Title and MOTD

Now goto your "C:\UT4Server\UnrealTournament\Saved\Config\WindowsServer" and open the Game.ini that is there, now you can adjust your Server Title and MOTD by editing the following lines:

```
[/Script/UnrealTournament.UTGameState]
ServerName=AllNoobs.com NL
ServerMOTD=Community Server
ServerDescription=Where Frags Happen A Lot...

```

### Run your Server

Now you can run your server and it will show the title, motd, discussed in here and people should be able to join your server.
If not: You likely need to configure your firewall or router to allow access, see your manual or google.
Make sure you forward or unblock the ports **7777 UDP, 7787 UDP and 14000 UDP**.

If you need more help or can't figure something out then feel free to join our Discord area by clicking this discord link

## Run a Hub

### Install the zip files

Create a folder called UT4Hub somewhere (in this example i use D:\Unreal\UT4NLHub\).
Extract the contents of the WindowsServer folder inside the UT4 Server .zip file for example into your D:\Unreal\UT4NLHub\ folder.
You should end up with something like this (paths may differ if you choose another destination):

### Firedaemon Service

With Firedaemon you can install services to run and restart automatically when they go down/crash.
This is useful for the UT4 Hubs as well because a Hub (believe it or not) normally quits after 3 hours of inactivity.
Installing a service with Firedaemon to monitor the Hub will ensure it boots back up when this happens.
Firedaemon is a free program and you can download it off our website @ FireDaemon-Lite-1\_5\_1

### Creating a new Service with Firedaemon

Note: You may need to run Firedaemon with Administrator privileges if it fails to install the service.

Goto Service->New...

Now we need to enter a few things on the Program tab, just follow the image, (it uses the example folder at D:\Unreal\UT4NLHub\)

**Service Identification**
Short Name: *UT4HUB*
Display Name: *UT4HUB*
Description: *UT4HUB*
Application to Run as a Service
Console application -> *Ticked*
Working Directory: *D:\Unreal\UT4NLHub\Engine\Binaries\Win64*
Executable: *D:\Unreal\UT4NLHub\Engine\Binaries\Win64\UE4Server-Win64-Shipping.exe*
Parameters: *UnrealTournament UT-Entry?Game=Lobby -log*
Start-up time (msec): *3000*

Next tab we configure the Settings:
**General**

Interact with Desktop -> *UnTicked*

**Service Lifecycle**

Start-Up Mode: *Manual*

The rest default settings are fine.

Now press "**Install**" and you should get this confirmation: The service was successfully installed.

### First HUB Testrun

Run the HUB and let it fully load by selecting the service in the window and clicking on the black > play button

You mostlikely cannot see the HUB running on your taskbar. It IS running however, go check your taskmanager for **UE4Game**.

### Configuration of the HUB

The HUB created several files in your "D:\Unreal\UT4NLHub\UnrealTournament\Saved\Config\WindowsServer" folder:

You should now be able to run your Hub, join it and create games and play standard games.
If you want to run custom content and settings see the Game.ini and Rulesets.json examples below.

```
[/Script/UnrealTournament.UTBaseGameMode]
RedirectReferences=(PackageName="Mutator_AbsoluteHitSounds-WindowsNoEditor", PackageURLProtocol="https", PackageURL="redirect.allnoobs.com/ut4/users/BigDealdf4c/Mutator_AbsoluteHitSounds-WindowsNoEditor.pak", PackageChecksum="9d380557fa363ae211d71e898c38acd6")

[/Script/UnrealTournament.UTGameState]
ServerName=AllNoobs.com NL/Europe
ServerMOTD=WELCOME TO ALLNOOBS [NL]\n\nCheck our custom maps selection! \n\nReplays activated!\n\nIf you have any questions or want a map added then contact us on our Discord @ dc.allnoobs.com
ServerDescription=All Noobs Community

[/Script/UnrealTournament.UTLobbyGameMode]
LobbyPassword=
AutoLaunchGameMode=
AutoLaunchGameOptions=
AutoLaunchMap=
MinPlayersToStart=1
MaxPlayersInLobby=300
StartingInstancePort=25000
InstancePortStep=1
MaxInstances=10

[/Script/UnrealTournament.UTGameMode]
bRecordReplays=true
bHandleDedicatedServerReplays=true
MapVoteTime=60

```

**Rulesets JSON files**

There is a special command to get the rulesets available for the hub:

```
ExportGameRulesets rulesets.json

```

To export the list open your game, and type that in the console, you can find the JSON file in your "Documents\UnrealTournament\Saved" folder then. You can then modify this json file and place it in your "Saved/Config/Rulesets" folder for your Hub.
At the time of writing, 05/17/2017, the full JSON file will look like this:

```
{
    "rules": [
        {
            "uniqueTag": "FlagRun",
            "categories": [
                "Featured"
            ],
            "title": "Blitz",
            "toolTip": "Attackers must deliver their flag to the enemy base.",
            "description": "Blitz.\n<UT.Hub.RulesText_Small>Maximum players : %maxplayers%</>",
            "mapPrefixes": [],
            "maxMapsInList": 16,
            "epicMaps": "/Game/RestrictedAssets/Maps/WIP/FR-Fort,/Game/RestrictedAssets/Maps/WIP/FR-MeltDown,/Game/RestrictedAssets/Maps/WIP/FR-Loh",
            "defaultMap": "",
            "quickPlayMaps": [
                "/Game/RestrictedAssets/Maps/WIP/FR-Fort",
                "/Game/RestrictedAssets/Maps/WIP/FR-Meltdown",
                "/Game/RestrictedAssets/Maps/WIP/FR-Loh"
            ],
            "customMapList": [],
            "maxPlayers": 10,
            "displayTexture": "Texture2D'/Game/RestrictedAssets/UI/GameModeBadges/GB_CTF.GB_CTF'",
            "gameMode": "/Script/UnrealTournament.UTFlagRunGame",
            "gameOptions": "",
            "requiredPackages": [],
            "bTeamGame": true,
            "bCompetitiveMatch": false,
            "optionFlags": 65535,
            "bHideFromUI": false,
            "epicForceUIVisibility": 0
        },
        {
            "uniqueTag": "FlagRunVSAI",
            "categories": [
                "Featured"
            ],
            "title": "Blitz vs AI",
            "toolTip": "Co-op vs AI.  Attackers must deliver their flag to the enemy base.",
            "description": "Blitz Coop vs AI.\n<UT.Hub.RulesText_Small>Maximum players : %maxplayers%</>",
            "mapPrefixes": [],
            "maxMapsInList": 16,
            "epicMaps": "/Game/RestrictedAssets/Maps/WIP/FR-Fort,/Game/RestrictedAssets/Maps/WIP/FR-MeltDown,/Game/RestrictedAssets/Maps/WIP/FR-Loh",
            "defaultMap": "",
            "quickPlayMaps": [
                "/Game/RestrictedAssets/Maps/WIP/FR-Fort",
                "/Game/RestrictedAssets/Maps/WIP/FR-Meltdown",
                "/Game/RestrictedAssets/Maps/WIP/FR-Loh"
            ],
            "customMapList": [],
            "maxPlayers": 5,
            "displayTexture": "Texture2D'/Game/RestrictedAssets/UI/GameModeBadges/GB_CTF.GB_CTF'",
            "gameMode": "/Script/UnrealTournament.UTFlagRunGame",
            "gameOptions": "?VSAI=1",
            "requiredPackages": [],
            "bTeamGame": true,
            "bCompetitiveMatch": false,
            "optionFlags": 4,
            "bHideFromUI": false,
            "epicForceUIVisibility": 0
        },
        {
            "uniqueTag": "DEATHMATCH",
            "categories": [
                "Featured"
            ],
            "title": "Deathmatch",
            "toolTip": "Standard free-for-all Deathmatch.",
            "description": "Standard free-for-all deathmatch.\n\n<UT.Hub.RulesText_Small>TimeLimit : %TimeLimit% minutes</>\n<UT.Hub.RulesText_Small>Maximum players : %MaxPlayers%</>",
            "mapPrefixes": [],
            "maxMapsInList": 16,
            "epicMaps": "/Game/RestrictedAssets/Maps/DM-Outpost23,/Game/RestrictedAssets/Maps/DM-Chill,/Game/RestrictedAssets/Maps/DM-Underland,/Game/EpicInternal/Lea/DM-Lea,/Game/EpicInternal/Unsaved/DM-Unsaved,/Game/EpicInternal/Backspace/DM-Backspace,/Game/EpicInternal/Salt/DM-Salt,/Game/EpicInternal/Batrankus/DM-Batrankus,/Game/RestrictedAssets/Maps/WIP/DM-Sand,/Game/RestrictedAssets/Maps/DM-BioTower,/Game/RestrictedAssets/Maps/WIP/DM-Spacer,/Game/RestrictedAssets/Maps/WIP/DM-Cannon,/Game/RestrictedAssets/Maps/WIP/DM-Deadfall,/Game/RestrictedAssets/Maps/WIP/DM-Focus,/Game/RestrictedAssets/Maps/WIP/DM-NickTest1,/Game/RestrictedAssets/Maps/WIP/DM-Solo,/Game/RestrictedAssets/Maps/WIP/DM-Decktest,/Game/RestrictedAssets/Maps/WIP/DM-ASDF",
            "defaultMap": "/Game/RestrictedAssets/Maps/DM-Chill",
            "quickPlayMaps": [
                "/Game/RestrictedAssets/Maps/DM-Chill",
                "/Game/RestrictedAssets/Maps/DM-Outpost23",
                "/Game/RestrictedAssets/Maps/DM-Underland"
            ],
            "customMapList": [],
            "maxPlayers": 6,
            "displayTexture": "Texture2D'/Game/RestrictedAssets/UI/GameModeBadges/GB_DM.GB_DM'",
            "gameMode": "/Script/UnrealTournament.UTDMGameMode",
            "gameOptions": "?TimeLimit=3?GoalScore=0",
            "requiredPackages": [],
            "bTeamGame": false,
            "bCompetitiveMatch": false,
            "optionFlags": 65535,
            "bHideFromUI": false,
            "epicForceUIVisibility": 0
        },
        {
            "uniqueTag": "Siege",
            "categories": [
                "Featured"
            ],
            "title": "Siege",
            "toolTip": "Prototype PVE mode.  Defend your base against hordes of incoming enemies trying to deliver their flag.",
            "description": "PROTOTYPE PVE mode.  Defend your base against hordes of incoming enemies trying to deliver their flag..\n<UT.Hub.RulesText_Small>Maximum players : %maxplayers%</>",
            "mapPrefixes": [],
            "maxMapsInList": 16,
            "epicMaps": "/Game/RestrictedAssets/Maps/WIP/FR-Fort,/Game/RestrictedAssets/Maps/WIP/FR-MeltDown,/Game/RestrictedAssets/Maps/WIP/FR-Loh",
            "defaultMap": "",
            "quickPlayMaps": [
                "/Game/RestrictedAssets/Maps/WIP/FR-Fort",
                "/Game/RestrictedAssets/Maps/WIP/FR-Meltdown",
                "/Game/RestrictedAssets/Maps/WIP/FR-Loh"
            ],
            "customMapList": [],
            "maxPlayers": 5,
            "displayTexture": "Texture2D'/Game/RestrictedAssets/UI/GameModeBadges/GB_CTF.GB_CTF'",
            "gameMode": "/Script/UnrealTournament.UTFlagRunPvEGame",
            "gameOptions": "",
            "requiredPackages": [],
            "bTeamGame": true,
            "bCompetitiveMatch": false,
            "optionFlags": 5,
            "bHideFromUI": false,
            "epicForceUIVisibility": 0
        },
        {
            "uniqueTag": "CTF",
            "categories": [
                "Classic"
            ],
            "title": "Capture the Flag",
            "toolTip": "Capture the Flag.",
            "description": "Capture the Flag, with guns.\n\n<UT.Hub.RulesText_Small>TimeLimit : %timelimit% minutes with halftime</>\n<UT.Hub.RulesText_Small>Mercy Rule : On</>\n<UT.Hub.RulesText_Small>Maximum players : %maxplayers%</>",
            "mapPrefixes": [],
            "maxMapsInList": 16,
            "epicMaps": "/Game/RestrictedAssets/Maps/CTF-TitanPass,/Game/RestrictedAssets/Maps/CTF-Face,/Game/EpicInternal/Pistola/CTF-Pistola,/Game/EpicInternal/Polaris/CTF-Polaris,/Game/RestrictedAssets/Maps/WIP/CTF-Blank,/Game/RestrictedAssets/Maps/WIP/CTF-Quick,/Game/RestrictedAssets/Maps/WIP/CTF-Plaza,/Game/RestrictedAssets/Maps/WIP/CTF-BigRock,/Game/RestrictedAssets/Maps/WIP/CTF-Volcano",
            "defaultMap": "/Game/RestrictedAssets/Maps/CTF-TitanPass",
            "quickPlayMaps": [
                "/Game/RestrictedAssets/Maps/CTF-TitanPass",
                "/Game/RestrictedAssets/Maps/CTF-Face"
            ],
            "customMapList": [],
            "maxPlayers": 10,
            "displayTexture": "Texture2D'/Game/RestrictedAssets/UI/GameModeBadges/GB_CTF.GB_CTF'",
            "gameMode": "/Script/UnrealTournament.UTCTFGameMode",
            "gameOptions": "?TimeLimit=20?GoalScore=0",
            "requiredPackages": [],
            "bTeamGame": true,
            "bCompetitiveMatch": false,
            "optionFlags": 65535,
            "bHideFromUI": false,
            "epicForceUIVisibility": 0
        },
        {
            "uniqueTag": "TDM",
            "categories": [
                "Classic"
            ],
            "title": "Team Deathmatch",
            "toolTip": "Red versus blue team deathmatch.",
            "description": "Red versus blue team deathmatch.\n\n<UT.Hub.RulesText_Small>TimeLimit : %timelimit% minutes</>\n<UT.Hub.RulesText_Small>Maximum players: %maxplayers%</>",
            "mapPrefixes": [],
            "maxMapsInList": 16,
            "epicMaps": "/Game/RestrictedAssets/Maps/DM-Outpost23,/Game/RestrictedAssets/Maps/DM-Underland,/Game/RestrictedAssets/Maps/DM-Chill,/Game/EpicInternal/Unsaved/DM-Unsaved,/Game/EpicInternal/Backspace/DM-Backspace,/Game/EpicInternal/Salt/DM-Salt,/Game/EpicInternal/Batrankus/DM-Batrankus,/Game/EpicInternal/Lea/DM-Lea,/Game/RestrictedAssets/Maps/WIP/DM-Sand,/Game/RestrictedAssets/Maps/WIP/DM-Spacer,/Game/RestrictedAssets/Maps/WIP/DM-Cannon,/Game/RestrictedAssets/Maps/WIP/DM-Deadfall,/Game/RestrictedAssets/Maps/WIP/DM-Temple,/Game/RestrictedAssets/Maps/WIP/DM-Focus,/Game/RestrictedAssets/Maps/WIP/DM-NickTest1,/Game/RestrictedAssets/Maps/WIP/DM-Solo,/Game/RestrictedAssets/Maps/WIP/DM-Decktest,/Game/RestrictedAssets/Maps/WIP/DM-ASDF",
            "defaultMap": "/Game/RestrictedAssets/Maps/DM-Chill",
            "quickPlayMaps": [],
            "customMapList": [],
            "maxPlayers": 10,
            "displayTexture": "Texture2D'/Game/RestrictedAssets/UI/GameModeBadges/GB_TDM.GB_TDM'",
            "gameMode": "/Script/UnrealTournament.UTTeamDMGameMode",
            "gameOptions": "?TimeLimit=20?GoalScore=0",
            "requiredPackages": [],
            "bTeamGame": true,
            "bCompetitiveMatch": false,
            "optionFlags": 65535,
            "bHideFromUI": false,
            "epicForceUIVisibility": 0
        },
        {
            "uniqueTag": "BIGCTF",
            "categories": [
                "Classic"
            ],
            "title": "Big CTF",
            "toolTip": "Capture the Flag with large teams.",
            "description": "Capture the Flag with large teams.\n\n<UT.Hub.RulesText_Small>TimeLimit : %timelimit% minutes with halftime</>\n<UT.Hub.RulesText_Small>Mercy Rule : On</>\n<UT.Hub.RulesText_Small>Maximum players : %maxplayers%</>",
            "mapPrefixes": [],
            "maxMapsInList": 16,
            "epicMaps": ",/Game/RestrictedAssets/Maps/CTF-Face,/Game/RestrictedAssets/Maps/CTF-TitanPass,/Game/RestrictedAssets/Maps/WIP/CTF-Volcano,/Game/RestrictedAssets/Maps/WIP/CTF-BigRock,/Game/RestrictedAssets/Maps/WIP/CTF-Dam",
            "defaultMap": "/Game/RestrictedAssets/Maps/CTF-Face",
            "quickPlayMaps": [],
            "customMapList": [],
            "maxPlayers": 20,
            "displayTexture": "Texture2D'/Game/RestrictedAssets/UI/GameModeBadges/GB_LargeCTF.GB_LargeCTF'",
            "gameMode": "/Script/UnrealTournament.UTCTFGameMode",
            "gameOptions": "?TimeLimit=20?GoalScore=0",
            "requiredPackages": [],
            "bTeamGame": true,
            "bCompetitiveMatch": false,
            "optionFlags": 65535,
            "bHideFromUI": false,
            "epicForceUIVisibility": 0
        },
        {
            "uniqueTag": "CompCTF",
            "categories": [
                "Competitive"
            ],
            "title": "Competitive CTF",
            "toolTip": "Capture the Flag with competition rules.",
            "description": "Capture the Flag, with guns.\n\n<UT.Hub.RulesText_Small>TimeLimit : %timelimit% minutes with halftime</>\n<UT.Hub.RulesText_Small>Mercy Rule : Off</>\n<UT.Hub.RulesText_Small>Maximum players : %maxplayers%</>",
            "mapPrefixes": [],
            "maxMapsInList": 16,
            "epicMaps": "/Game/RestrictedAssets/Maps/CTF-TitanPass,/Game/RestrictedAssets/Maps/CTF-Face,/Game/EpicInternal/Pistola/CTF-Pistola,/Game/EpicInternal/Polaris/CTF-Polaris,/Game/RestrictedAssets/Maps/WIP/CTF-Blank,/Game/RestrictedAssets/Maps/WIP/CTF-Quick,/Game/RestrictedAssets/Maps/WIP/CTF-Plaza,/Game/RestrictedAssets/Maps/WIP/CTF-BigRock,/Game/RestrictedAssets/Maps/WIP/CTF-Volcano",
            "defaultMap": "/Game/RestrictedAssets/Maps/CTF-TitanPass",
            "quickPlayMaps": [
                "/Game/RestrictedAssets/Maps/CTF-TitanPass"
            ],
            "customMapList": [],
            "maxPlayers": 10,
            "displayTexture": "Texture2D'/Game/RestrictedAssets/UI/GameModeBadges/GB_CTF.GB_CTF'",
            "gameMode": "/Script/UnrealTournament.UTCTFGameMode",
            "gameOptions": "?TimeLimit=20?GoalScore=0?MercyScore=0",
            "requiredPackages": [],
            "bTeamGame": true,
            "bCompetitiveMatch": true,
            "optionFlags": 65535,
            "bHideFromUI": false,
            "epicForceUIVisibility": 0
        },
        {
            "uniqueTag": "SHOWDOWN",
            "categories": [
                "Competitive"
            ],
            "title": "1v1 Showdown",
            "toolTip": "New School one vs one test of deathmatch skill.",
            "description": "New School one vs one test of deathmatch skill.\n\n<UT.Hub.RulesText_Small>TimeLimit : %timelimit% minute rounds</>\n<UT.Hub.RulesText_Small>Maximum players : %maxplayers%</>",
            "mapPrefixes": [],
            "maxMapsInList": 16,
            "epicMaps": "/Game/RestrictedAssets/Maps/WIP/DM-ASDF,/Game/RestrictedAssets/Maps/DM-Chill,/Game/RestrictedAssets/Maps/DM-Underland,/Game/EpicInternal/Lea/DM-Lea,/Game/EpicInternal/Unsaved/DM-Unsaved,/Game/EpicInternal/Backspace/DM-Backspace,/Game/EpicInternal/Salt/DM-Salt,/Game/EpicInternal/Batrankus/DM-Batrankus,/Game/RestrictedAssets/Maps/WIP/DM-Solo",
            "defaultMap": "/Game/RestrictedAssets/Maps/WIP/DM-ASDF",
            "quickPlayMaps": [],
            "customMapList": [],
            "maxPlayers": 2,
            "displayTexture": "Texture2D'/Game/RestrictedAssets/UI/GameModeBadges/GB_Duel.GB_Duel'",
            "gameMode": "/Script/UnrealTournament.UTShowdownGame",
            "gameOptions": "?Timelimit=2?GoalScore=5",
            "requiredPackages": [],
            "bTeamGame": true,
            "bCompetitiveMatch": true,
            "optionFlags": 65535,
            "bHideFromUI": false,
            "epicForceUIVisibility": 0
        },
        {
            "uniqueTag": "TEAMSHOWDOWN",
            "categories": [
                "Competitive"
            ],
            "title": "Showdown",
            "toolTip": "Red versus blue team showdown.",
            "description": "Red versus blue team showdown.\n\n<UT.Hub.RulesText_Small>TimeLimit : %timelimit% minute rounds</>\n<UT.Hub.RulesText_Small>Scoring : First to %goalscore% wins</>\n<UT.Hub.RulesText_Small>Maximum players: %maxplayers%</>",
            "mapPrefixes": [],
            "maxMapsInList": 16,
            "epicMaps": "/Game/RestrictedAssets/Maps/DM-Chill,/Game/RestrictedAssets/Maps/DM-Underland,/Game/EpicInternal/Unsaved/DM-Unsaved,/Game/EpicInternal/Backspace/DM-Backspace,/Game/EpicInternal/Salt/DM-Salt,/Game/EpicInternal/Batrankus/DM-Batrankus,/Game/EpicInternal/Lea/DM-Lea,/Game/RestrictedAssets/Maps/WIP/DM-Sand,/Game/RestrictedAssets/Maps/WIP/DM-Spacer,/Game/RestrictedAssets/Maps/WIP/DM-Cannon,/Game/RestrictedAssets/Maps/WIP/DM-Temple,/Game/RestrictedAssets/Maps/WIP/DM-Focus,/Game/RestrictedAssets/Maps/WIP/DM-Decktest,/Game/RestrictedAssets/Maps/WIP/DM-ASDF,/Game/RestrictedAssets/Maps/WIP/DM-Solo",
            "defaultMap": "/Game/RestrictedAssets/Maps/DM-Chill",
            "quickPlayMaps": [],
            "customMapList": [],
            "maxPlayers": 6,
            "displayTexture": "Texture2D'/Game/RestrictedAssets/UI/GameModeBadges/GB_TDM.GB_TDM'",
            "gameMode": "/Script/UnrealTournament.UTTeamShowdownGame",
            "gameOptions": "?TimeLimit=2?GoalScore=5",
            "requiredPackages": [],
            "bTeamGame": true,
            "bCompetitiveMatch": false,
            "optionFlags": 65535,
            "bHideFromUI": false,
            "epicForceUIVisibility": 0
        },
        {
            "uniqueTag": "",
            "categories": [],
            "title": "",
            "toolTip": "",
            "description": "",
            "mapPrefixes": [],
            "maxMapsInList": 16,
            "epicMaps": "",
            "defaultMap": "",
            "quickPlayMaps": [],
            "customMapList": [],
            "maxPlayers": 0,
            "displayTexture": "",
            "gameMode": "",
            "gameOptions": "",
            "requiredPackages": [],
            "bTeamGame": false,
            "bCompetitiveMatch": false,
            "optionFlags": 65535,
            "bHideFromUI": false,
            "epicForceUIVisibility": 0
        },
        {
            "uniqueTag": "DUEL",
            "categories": [
                "Competitive"
            ],
            "title": "Duel",
            "toolTip": "One vs one test of deathmatch skill.",
            "description": "One vs one test of deathmatch skill.\n\n<UT.Hub.RulesText_Small>TimeLimit : %timelimit% minutes</>\n<UT.Hub.RulesText_Small>Maximum players: %maxplayers%</>",
            "mapPrefixes": [],
            "maxMapsInList": 16,
            "epicMaps": "/Game/RestrictedAssets/Maps/WIP/DM-ASDF,/Game/RestrictedAssets/Maps/DM-Underland,/Game/EpicInternal/Lea/DM-Lea,/Game/EpicInternal/Unsaved/DM-Unsaved,/Game/EpicInternal/Backspace/DM-Backspace,/Game/EpicInternal/Salt/DM-Salt,/Game/EpicInternal/Batrankus/DM-Batrankus,/Game/RestrictedAssets/Maps/WIP/DM-Solo,/Game/RestrictedAssets/Maps/WIP/DM-Decktest",
            "defaultMap": "/Game/RestrictedAssets/Maps/WIP/DM-ASDF",
            "quickPlayMaps": [],
            "customMapList": [],
            "maxPlayers": 2,
            "displayTexture": "Texture2D'/Game/RestrictedAssets/UI/GameModeBadges/GB_Duel.GB_Duel'",
            "gameMode": "/Script/UnrealTournament.UTDuelGame",
            "gameOptions": "?TimeLimit=10?GoalScore=0",
            "requiredPackages": [],
            "bTeamGame": true,
            "bCompetitiveMatch": true,
            "optionFlags": 65535,
            "bHideFromUI": false,
            "epicForceUIVisibility": 0
        },
        {
            "uniqueTag": "iDM",
            "categories": [
                "Instagib"
            ],
            "title": "Instagib DM",
            "toolTip": "One hit one kill Deathmatch.",
            "description": "One hit one kill Deathmatch.\n\n<UT.Hub.RulesText_Small>Mutators : Instagib</>\n<UT.Hub.RulesText_Small>TimeLimit : %timelimit% minutes</>\n<UT.Hub.RulesText_Small>Maximum players : %maxplayers%</>",
            "mapPrefixes": [],
            "maxMapsInList": 16,
            "epicMaps": "/Game/RestrictedAssets/Maps/DM-Outpost23,/Game/RestrictedAssets/Maps/DM-Chill,/Game/RestrictedAssets/Maps/DM-Underland,/Game/EpicInternal/Unsaved/DM-Unsaved,/Game/EpicInternal/Backspace/DM-Backspace,/Game/EpicInternal/Salt/DM-Salt,/Game/EpicInternal/Batrankus/DM-Batrankus,/Game/RestrictedAssets/Maps/WIP/DM-Sand,/Game/RestrictedAssets/Maps/WIP/DM-Spacer,/Game/RestrictedAssets/Maps/WIP/DM-Cannon,/Game/RestrictedAssets/Maps/WIP/DM-Deadfall,/Game/RestrictedAssets/Maps/WIP/DM-Temple,/Game/RestrictedAssets/Maps/WIP/DM-Focus,/Game/RestrictedAssets/Maps/WIP/DM-NickTest1,/Game/RestrictedAssets/Maps/WIP/DM-Solo,/Game/RestrictedAssets/Maps/WIP/DM-Decktest,/Game/RestrictedAssets/Maps/WIP/DM-ASDF",
            "defaultMap": "/Game/RestrictedAssets/Maps/DM-Chill",
            "quickPlayMaps": [],
            "customMapList": [],
            "maxPlayers": 10,
            "displayTexture": "Texture2D'/Game/RestrictedAssets/UI/GameModeBadges/GB_InstagibDM.GB_InstagibDM'",
            "gameMode": "/Script/UnrealTournament.UTDMGameMode",
            "gameOptions": "?TimeLimit=10?GoalScore=0?Mutator=Instagib",
            "requiredPackages": [],
            "bTeamGame": false,
            "bCompetitiveMatch": false,
            "optionFlags": 65535,
            "bHideFromUI": false,
            "epicForceUIVisibility": 0
        },
        {
            "uniqueTag": "iTDM",
            "categories": [
                "Instagib"
            ],
            "title": "Instagib TDM",
            "toolTip": "One hit one kill Team Deathmatch.",
            "description": "One hit one kill Team Deathmatch.\n\n<UT.Hub.RulesText_Small>Mutators : Instagib</>\n<UT.Hub.RulesText_Small>TimeLimit : %timelimit% minutes</>\n<UT.Hub.RulesText_Small>Maximum players : %maxplayers%</>",
            "mapPrefixes": [],
            "maxMapsInList": 16,
            "epicMaps": "/Game/RestrictedAssets/Maps/DM-Outpost23,/Game/RestrictedAssets/Maps/DM-Chill,/Game/RestrictedAssets/Maps/DM-Underland,/Game/EpicInternal/Unsaved/DM-Unsaved,/Game/EpicInternal/Backspace/DM-Backspace,/Game/EpicInternal/Salt/DM-Salt,/Game/EpicInternal/Batrankus/DM-Batrankus,/Game/RestrictedAssets/Maps/WIP/DM-Sand,/Game/RestrictedAssets/Maps/WIP/DM-Spacer,/Game/RestrictedAssets/Maps/WIP/DM-Cannon,/Game/RestrictedAssets/Maps/WIP/DM-Deadfall,/Game/RestrictedAssets/Maps/WIP/DM-Temple,/Game/RestrictedAssets/Maps/WIP/DM-Focus,/Game/RestrictedAssets/Maps/WIP/DM-NickTest1,/Game/RestrictedAssets/Maps/WIP/DM-Solo,/Game/RestrictedAssets/Maps/WIP/DM-Decktest,/Game/RestrictedAssets/Maps/WIP/DM-ASDF",
            "defaultMap": "/Game/RestrictedAssets/Maps/DM-Chill",
            "quickPlayMaps": [],
            "customMapList": [],
            "maxPlayers": 20,
            "displayTexture": "Texture2D'/Game/RestrictedAssets/UI/GameModeBadges/GB_InstagibDuel.GB_InstagibDuel'",
            "gameMode": "/Script/UnrealTournament.UTTeamDMGameMode",
            "gameOptions": "?TimeLimit=20?GoalScore=0?Mutator=Instagib",
            "requiredPackages": [],
            "bTeamGame": true,
            "bCompetitiveMatch": false,
            "optionFlags": 65535,
            "bHideFromUI": false,
            "epicForceUIVisibility": 0
        },
        {
            "uniqueTag": "iCTF",
            "categories": [
                "Instagib"
            ],
            "title": "Instagib CTF",
            "toolTip": "Instagib CTF",
            "description": "Capture the Flag with Instagib rifles.\n\n<UT.Hub.RulesText_Small>Mutators : Instagib</>\n<UT.Hub.RulesText_Small>TimeLimit : %timelimit% minutes with halftime</>\n<UT.Hub.RulesText_Small>Mercy Rule : On</>\n<UT.Hub.RulesText_Small>Maximum players : %maxplayers%</>",
            "mapPrefixes": [],
            "maxMapsInList": 16,
            "epicMaps": "/Game/RestrictedAssets/Maps/CTF-TitanPass,/Game/RestrictedAssets/Maps/CTF-Face,/Game/EpicInternal/Pistola/CTF-Pistola,/Game/EpicInternal/Polaris/CTF-Polaris,/Game/RestrictedAssets/Maps/WIP/CTF-Blank,/Game/RestrictedAssets/Maps/WIP/CTF-BigRock,/Game/RestrictedAssets/Maps/WIP/CTF-Volcano,/Game/RestrictedAssets/Maps/WIP/CTF-Quick,/Game/RestrictedAssets/Maps/WIP/CTF-Plaza",
            "defaultMap": "/Game/RestrictedAssets/Maps/CTF-TitanPass",
            "quickPlayMaps": [],
            "customMapList": [],
            "maxPlayers": 20,
            "displayTexture": "Texture2D'/Game/RestrictedAssets/UI/GameModeBadges/GB_InstagibCTF.GB_InstagibCTF'",
            "gameMode": "/Script/UnrealTournament.UTCTFGameMode",
            "gameOptions": "?TimeLimit=20?GoalScore=0?Mutator=Instagib",
            "requiredPackages": [],
            "bTeamGame": true,
            "bCompetitiveMatch": false,
            "optionFlags": 65535,
            "bHideFromUI": false,
            "epicForceUIVisibility": 0
        },
        {
            "uniqueTag": "iCTF+T",
            "categories": [
                "Instagib"
            ],
            "title": "Translocator iCTF",
            "toolTip": "Translocator iCTF",
            "description": "Capture the Flag with Instagib rifles and Translocators.\n\n<UT.Hub.RulesText_Small>Mutators : Instagib</>\n<UT.Hub.RulesText_Small>TimeLimit : %timelimit% with halftime</>\n<UT.Hub.RulesText_Small>Mercy Rule : On</>\n<UT.Hub.RulesText_Small>Maximum players : %maxplayers%</>",
            "mapPrefixes": [],
            "maxMapsInList": 16,
            "epicMaps": "/Game/RestrictedAssets/Maps/CTF-TitanPass,/Game/RestrictedAssets/Maps/CTF-Face,/Game/EpicInternal/Pistola/CTF-Pistola,/Game/EpicInternal/Polaris/CTF-Polaris,/Game/RestrictedAssets/Maps/WIP/CTF-Blank,/Game/RestrictedAssets/Maps/WIP/CTF-BigRock,/Game/RestrictedAssets/Maps/WIP/CTF-Volcano,/Game/RestrictedAssets/Maps/WIP/CTF-Quick,/Game/RestrictedAssets/Maps/WIP/CTF-Plaza",
            "defaultMap": "/Game/RestrictedAssets/Maps/CTF-TitanPass",
            "quickPlayMaps": [],
            "customMapList": [],
            "maxPlayers": 20,
            "displayTexture": "Texture2D'/Game/RestrictedAssets/UI/GameModeBadges/GB_InstagibCTF.GB_InstagibCTF'",
            "gameMode": "/Script/UnrealTournament.UTCTFGameMode",
            "gameOptions": "?TimeLimit=20?GoalScore=0?Mutator=Instagib,AddTrans",
            "requiredPackages": [],
            "bTeamGame": true,
            "bCompetitiveMatch": false,
            "optionFlags": 65535,
            "bHideFromUI": false,
            "epicForceUIVisibility": 0
        }
    ]
}

```

You can download ruleset made by community members or devs on the UTCC ruleset page for specific maps, gamemodes and mutators.

If you need more help or can't figure something out then feel free to join our Discord area by clicking this discord link

## Config options

To use your console commands on a server/hub, you need to login as admin.

### Set the RCON Password

Open the file: C:\UT4Server\UnrealTournament\Saved\Config\WindowsServer\Engine.ini
And edit the following section:

```
[/Script/UnrealTournament.UTGameEngine]
bFirstRun=False
RconPassword=PASSWORDHERE

```

Replace PASSWORDHERE with a password you want for RCON.

### RCON Commands

Here some RCON commands you can use:

AllAmmo
AddBots [# of bots]
ChangeTeam
Ghost
HudSettings
KillBots
Loaded
Open [Map Name]
RestartLevel
RconAuth [Password]
RconExec [Command] (Commands such as: allammo, killbots, ghost, etc.)
RconMap [Map name]
RconNextMap [Map name]
RconKick (note: if you pass true it will ban the player)
Stat FPS
SwitchTeam
Suicide
UnlimitedAmmo
ViewPlayer [Name]
ViewSelf
Walk

### Set Maximum player wait time in Warmup Mode

Set the option called ?MaxPlayerWait=x in your commandline in the batchfile to set a manual wait time for warmup mode where x is in seconds.

Useful if you don't want a wait time or a very short one so people can start playing faster.

### Set Maximum ready wait time

Use ?MaxReadyWait=xx for the instance to wait xx seconds for players to get ready before it's automatically set.

### Force No Bots

With ?ForceNoBots=1 you force the server to not have bots at all, period.

### Turn off Idle/AFK kick

Use ?IgnoreIdle=1 to turn off the automatic Idle/AFK kicker. Players will then no longer be kicked for being Idle/AFK too long.

### Add bots to your server

To add bots to your server you enter a number for the parameter ?botfill=x
Where x is the number bots you want in the server.

### Set a timelimit

===To set a custom timelimit on your server you enter a number for the parameter ?TimeLimit=xx
Where xx is the number of minutes you want to play each map.===

### Password your server

To add a password to your server you enter password after the option called ?ServerPassword=xxx
Where xxx is the password you want in the server. Players will be asked to enter it before they can join.

### Setting a custom tickrate

The server tickrate controls how often per second a client is updated with new data, though this increases accuracy it can also adversely affect server performance and cause lag on slower systems and netspeeds.

Goto your "C:\UT4Server\UnrealTournament\Saved\Config\WindowsServer" and open the config file called "Engine.ini" and add the following to it:

```
[/Script/OnlineSubsystemUtils.IpNetDriver]
NetServerMaxTickRate=90

```

The maximum tickrate is 120, the default is 60.

### **Running Multiple Servers**

If you wish to run multiple servers you need to copy the whole folder and then change an option in the server's Engine.ini else you get a port conflict.
Each server must run on its own so called "beacon port".
If you do not configure this then you get an error simular to the one below:

[2016.05.28-08.28.58:786][ 0]UT:Warning: Could not bind to expected beacon port. Restarting server!!! [7788 vs 7787]
Simply open the file Engine.ini in your "UnrealTournament\Saved\Config\WindowsServer" folder and add the following section:

```
[/Script/OnlineSubsystemUtils.OnlineBeaconHost]
ListenPort=7797

```

Configure ListenPort for each server to run on a different port and you're good to go.

### **Extend Vote Time & Replays**

Simply add the following section into your Game.ini to adjust values for Voting time and Replay handling:

```
[/Script/UnrealTournament.UTGameMode]
bRecordReplays=true
bHandleDedicatedServerReplays=true
MapVoteTime=60

```

If you need more help or can't figure something out then feel free to join our Discord area by clicking this discord link

## Custom Maps & Redirection

I am going to use the map DM-Antalus for UT4 by Moxnix as example here, and can be downloaded (at the time of writing) from our redirect space at the following link: https://utcc.unrealpugs.com/map/171-DM-Antalus?tab=view

### **Place the map**

First of all we need to place the downloaded file in the correct place on on our server.
In this example the server is located at "D:\Unreal\UT4NLServer\"
We need to place the file in the "Paks" folder, go into your server's "UnrealTournament\Content\Paks" folder and paste the file there

### **MD5 Checksum Program**

Each file has a unique identifier called a MD5 Checksum, this is how UT4 checks if people have the same (unmodified) file and there are no inconsistencies.
There is an easy utility available for free which is called "WinMD5", you can point this program to a file and calculate its MD5 Checksum quickly.
Download this program here: http://www.winmd5.com/

### **Calculate the MD5 Checksum**

Simply run the WinMD5 program and Browse for the file to compute the MD5 for, in this case the file we copied to our Paks folder in Step 1

The endresult should look simular to this:

### **Get Map Name & Path from a .pak file**

Some maps contain a custom "*URL*" or "*Path*" in a .pak file which makes it a little difficult to load a map and add it to the Map Rotation of your server.
I personally recommend Notepad++ and it is the program i am using in this example to get the map "Path" from the .pak file.
You can download Notepad++ here: https://notepad-plus-plus.org/download/ and install it.
Goto your servers "Paks" folder and right click on the file and choose "*Edit with Notepad++*":

Once you opened it with Notepad++ you will see a lot of gibberish characters, the important stuff is normal text however.

Press "Ctrl+F" or goto the menu option "Search->Find..." to search for text in the file.
What we need to look for is this phrase without quotes: ".umap"

See the line with "Content/Maps/DM-Antalus-A6.umap"?
This line we need for our Game.ini, it tells us the map name to use in the Game.ini, for this particular map example it will be translated to:

```
MapRotation=/Game/Maps/DM-Antalus

```

### **Setup the Redirect Reference**

A redirect reference tells the game where to get it from when players join the server.
For our current map example (DM-Antalus-A6) we need its MD5 Checksum from Step 3.
We also need the mapname aka "DM-Antalus-A6"
Now let's assemble the redirect reference itself for Game.ini, for this map we use the following:

```
RedirectReferences=(PackageName="DM-Antalus-WindowsNoEditor",PackageURLProtocol="http",PackageURL="utcc.unrealpugs.com/redirect/171/53055a76dbf0055c6d6d201720d87192/DM-Antalus-WindowsNoEditor.pak",PackageChecksum="53055a76dbf0055c6d6d201720d87192")

```

Make sure that is under the section called [**/Script/UnrealTournament.UTBaseGameMode**] in Game.ini
Highlighted in green is the example we added for the redirect reference and map path from the pak file

Maps are loaded into the Vote Menu automatically now. If you run a Deathmatch or Team Deathmatch server, ALL maps prefixed with "DM" are loaded from your "Content\Paks" folder and placed into the Vote Menu.

### **UTCC Redirect**

If you do not have a redirect, you can use the service of UTCC for free. Just click on the newest map file > Copy RedirectReference

## Popular Mutators

Almost every match has unique or very common mutators beeing used. This is an example for Elimination gamemode and Hitsounds Mutator.

This is probably the most popular mutator out there for Hubs. It adds a gamemode where teams score a point at the end of a round when there is still a player alive. Gamemode download: https://utcc.unrealpugs.com/gamemode/193-Absolute%20Elimination?tab=view

This mutator adds extra sound effects for the hit-sound when you are firing your weapon to enemies. Hitsounds download: https://utcc.unrealpugs.com/mutator/69-Absolute%20HitSounds?tab=view

To enable Elimination you have to add the following section into your rulesets.json file:

```
{
  "uniqueTag": "ELIMINATION",
  "title": "Elimination",
  "categories": [ "Featured", "Elimination" ],
  "tooltip": "The team with players left alive at the end of a round scores a point.",
  "description": "Survive, and kill the other team!\n\nFirst team to 10 points wins.\nHitsounds ON.",
  "displayTexture": "Texture2D'/Game/RestrictedAssets/UI/GameModeBadges/GB_TDM.GB_TDM'",
  "gameMode": "/Game/ALTS/Elimination_113.Elimination_113_C",
  "bHideFromUI": false,
  "bCompetitiveMatch": false,
  "bTeamGame": true,
  "maxPlayers": 10,
  "minPlayersToStart": 1,
  "gameOptions": "?BotFill=0?ForceNoBots=1?MaxPlayerWait=45?SaveDebugRoundData=1?GoalScore=10?TimeLimit=0?SecondsPerRound=90?MaxSpectators=10?BalanceTeams=True?mutator=AbsoluteHitSounds",
  "optionFlags": 65535,
  "maxMapsInList": 0,
  "mapPrefixes": [ ],
  "defaultMap": [ ],
  "requiredPackages": [ ],
  "customMapList": ["/Game/RestrictedAssets/Maps/WIP/DM-ASDF","/Game/RestrictedAssets/Maps/WIP/DM-Cannon","/Game/RestrictedAssets/Maps/WIP/DM-Deadfall","/Game/RestrictedAssets/Maps/WIP/DM-DeckTest","/Game/RestrictedAssets/Maps/WIP/DM-Focus","/Game/EpicInternal/Lea/DM-Lea","/Game/RestrictedAssets/Maps/WIP/DM-NickTest1","/Game/RestrictedAssets/Maps/WIP/DM-RGB","/Game/RestrictedAssets/Maps/WIP/DM-Sand","/Game/RestrictedAssets/Maps/WIP/DM-SidCastle","/Game/RestrictedAssets/Maps/WIP/DM-Solo","/Game/RestrictedAssets/Maps/WIP/DM-Spacer","/Game/RestrictedAssets/Maps/WIP/DM-Temple","/Game/RestrictedAssets/Maps/DM-Underland","/Game/RestrictedAssets/Maps/WIP/DM-Vortex",]
}

```

You can modify this json file and place it in your "Saved/Config/Rulesets" folder for your Hub to enable Elimination with your own settings.

To add the mutator, you have to use gameOptions to enable it. Some mutators allow short term to add it like

```
"gameOptions": "?mutator=AbsoluteHitSounds",

```

Some mutator require you to get the full path and compile it at matchstart

```
"gameOptions": "?mutator=/Game/AbsoluteHitSounds/Mutator_AbsoluteHitSounds.Mutator_AbsoluteHitSounds_C",

```

You can find popluar mutators, gamemodes and maps in a collection here: https://utcc.unrealpugs.com/collections

## Windows Firewall Configuration & Ports Usage

### **Can't Join or Connect?**

A common mistake on Windows platforms is that the executable isn't allowed to accept incoming or outgoing connections.
You have to manually add it to the Windows firewall sometimes, which i'll explain how to do here.
In this example i am using Windows 10 Professional x64, the procedure is the same on most Windows platforms but may be a tad different for other versions.

Right click on your Startmenu icon and choose "Control Panel"

Once the Control Panel is opened, enable the "View by" to show Small icons by clicking on that menu at the top right.

Now click on the Windows Firewall and go to Advanced settings.

On the window that popped up left click on the "Inbound Rules" at the left.
Next left click on the "New Rule..."

Choose "Program" and click Next.

Click "Browse..." button to find the executable to add, it is the "UE4Server-Win64-Shipping.exe" found in the "Engine\Binaries\Win64\" folder where at the location where you choose to unzip the server files.

"Allow the connection" should be selected and click Next

On the next screen the default settings are fine, just click Next

Name it for example UT4 Hub Incoming and click Finish

Now we need to *repeat the above process* but for "**Outbound Rules**". Make sure you "**Allow the connection**" for it and name it like "**UT4 Hub Outgoing**"

This should enable your Hub or Server to handle both incoming and outgoing connections.

### **Forward your Ports**

Still cannot Join or Create Games in your server or Hub?

Make sure you open/forward these ports in your router to your internal LAN IP for the PC running your Hub or Server.

If you need more help or can't figure something out then feel free to join our Discord area by clicking this discord link

## Linux .sh

To start a server by script you can use a .sh script with the command

```
   #!/bin/sh

   if pgrep -f "UE4Server-Linux-Shipping"
   then
     echo "The Server is already running"
   else
     echo "Restarting Unreal Tournament Server"
    cd LinuxServer/Engine/Binaries/Linux/
          ./UE4Server-Linux-Shipping UnrealTournament UT-Entry?Game=Lobby -log
   fi

```