Unreal Tournament 3

Server files

LinuxGSM uses the most recent version of UT3 server available for Linux

v2.1 (3808) [Compiled: Apr 22 2009 04:27:51].

This update includes the TitanPack DLC.

Ports

  • Game Port 7777 UDP handled by Parms

  • Query port 6500 UDP handled by parms (does not work)

  • Web Admin 8080 TCP handled by UTWeb.ini

Running a dedicated server

The basic format of running server start command line is:-

UT3.exe Server <map>?<variable1>=<value1>?<variable2>=<value2>.... -login=<login> -password=<password> -unattended

Examples of this would be:-

UT3.exe Server DM-ShangriLa?game=UTGame.UTDuelGame -login=<login> -password=<password> -unattended
UT3.exe Server VCTF-Suspense -login=<login> -password=<password> -unattended

NOTE: To launch multiple servers on a machine you must use the ut3.exe binary, not the ut3.com binary. The result of using the .com was, among others, the inability to stop a single instance without killing all the running instances.[edit]

Game Types & Mutators

This is a list of the valid gametypes:

Name

GameType

Deathmatch

UTGame.UTDeathmatch

Capture the Flag

UTGameContent.UTCTFGame_Content

Warfare

UTGameContent.UTOnslaughtGame_Content

Vehicle Capture the Flag

UTGameContent.UTVehicleCTFGame_Content

Team Deathmatch

UTGame.UTTeamGame

Duel

UTGame.UTDuelGame

For mutators you need to set the variable of each mutator:-

  1. Mutator=<MutatorIdentifier>

Here is a list of Mutators shipped with the Retail Version:

Name

MutatorIdentifier

Instagib

UTGame.UTMutator_Instagib

BigHead

UTGame.UTMutator_BigHead

Low Gravity

UTGame.UTMutator_LowGrav

Super Berserk

UTGame.UTMutator_SuperBerserk

Friendly Fire

UTGame.UTMutator_FriendlyFire

No Translocator

UTGame.UTMutator_NoTranslocator

Speed Freak

UTGame.UTMutator_SpeedFreak

Handicap

UTGame.UTMutator_Handicap

No Powerups

UTGame.UTMutator_NoPowerups

Slomo

UTGame.UTMutator_Slomo

Weapon Replacement

UTGame.UTMutator_WeaponReplacement

Weapon Respawn

UTGame.UTMutator_WeaponsRespawn

if you want to run more than one mutator separate them with commas:

?mutator=UTGame.UTMutator_Instagib,UTGame.UTMutator_LowGrav

[edit]

Common Variables

  • MaxPlayers=<number> Maximum number of players on the server (overrides ini setting)

  • MinNetPlayers=<number> Minimum number of players before a match starts (real players not bots)

  • bShouldAdvertise=[True|False] Show the server in the server browser (default: true)

  • bIsLanMatch=[True|False] Is this a LAN only game? (default: false)

  • bIsDedicated=[True|False] Changes dedicated server flag (default: false, even if started as dedicated)

  • GamePassword=<password> Sets a game password

  • AdminPassword=<password> Sets an admin password

  • Port=<port> Sets the server game port (default: 7777; can also be changed via the INI file)

  • QueryPort=<port> Sets the server query port (default: 6500)

  • GoalScore=<number> Sets the max frags / max caps before the server will change maps.

  • bUsesStats=[True|False] Report stats or not?

  • TimeLimit=<number> Sets the timelimit in minutes for each map.

Most of these can be set in the server's INI file, so there's no need to clutter up the command line.[edit]

Running Behind a Router/Firewall

1. Setup port forwarding for three ports (all UDP only): 13000, 7777 and 6500 (or whatever port/queryport your server is running on; 7777/6500 are the defaults).

Server Logins

ATM all servers need a unique login, as in no two servers can use the same login. Doing so will mean that one of those servers will not show in the list. This login has to be created via the client "Create Profile". You can create multiple profiles under the same email address but you must use the same password for each if you do so.[edit]

Query Protocol

The server uses the GameSpy query Protocol ( v4 ) which can be queried with qstat e.g.

qstat -R -gs4 <ip>:<port>

Notes

  • If you want the map you must currently request server rules with -R as the server doesnt currently return the map in the basic query.

For more details about the query protocol (including the PHP code to do web-based querying and details on the query variables) check out the UT3_query_protocol page.

Multiple Servers on One Machine

Each server process needs to run under a different gamespy account (can be created in the game). Important things to note are:

  • The -nohomedir command forces the servers to use the install directory instead of My Documents...

  • The -configsubdir=<serverfoldername> will create a folder under ..\UTGame\config\ so each server instance can have it's own ini files

  • -login=<login> and -password=<password> as these must be unique

  • The servers port is changed with -Port=<port> in the URL, or via the setting in UTEngine.ini

  • The servers query port is changed with -QueryPort=<port>

  • You must specify -unattended as without it you will get prompted to confirm the upgrade of the server's configuration files. This option needs to be last in the command line.

Note: -configsubdir= does not work unless -nohomedir is specified.

Server Names

Server names can be specified in the server's INI file, as of patch 1.1.

The ServerDescription field isn't in plain ascii or text as you and I know it. Instead its in UCS2 aka UTF-16 which is then serialized as numeric strings. It is possible to generate the server description code here: [Cruz's UT3 Server Description Generator][edit]

Enable Mapvote

Edit the ...\UTGame\Config\UTGame.ini. Under the [UTGame.UTGame] section, be sure to have this:

bAllowMapVoting=True
VoteDuration=45
GameSpecificMapCycles=(GameClassName="UTDeathmatch",Maps=("DM-Arsenal","DM-Biohazard","DM-CarbonFire","DM-Deck","DM-Defiance","DM-Deimos","DM-Diesel","DM-Fearless","DM-Gateway","DM-HeatRay","DM-RisingSun","DM-Sanctuary","DM-Sentinel","DM-ShangriLa"))
GameSpecificMapCycles=(GameClassName="UTTeamGame",Maps=("DM-Arsenal","DM-Biohazard","DM-CarbonFire","DM-Deck","DM-Defiance","DM-Deimos","DM-Diesel","DM-Fearless","DM-Gateway","DM-HeatRay","DM-RisingSun","DM-Sanctuary","DM-Sentinel","DM-ShangriLa"))
GameSpecificMapCycles=(GameClassName="UTCTFGame_Content",Maps=("CTF-Coret","CTF-Hydrosis","CTF-Reflection","CTF-Vertebrae","CTF-OmicronDawn","CTF-Strident"))
GameSpecificMapCycles=(GameClassName="UTVehicleCTFGame_Content",Maps=("VCTF-Containment","VCTF-Corruption","VCTF-Kargo","VCTF-Necropolis","VCTF-Sandstorm","VCTF-Suspense"))
GameSpecificMapCycles=(GameClassName="UTOnslaughtGame_Content",Maps=("WAR-Avalanche","WAR-Downtown","WAR-Dusk","WAR-FloodGate","WAR-Islander","WAR-Islander_Necris","WAR-MarketDistrict","WAR-OnyxCoast","WAR-Powersurge","WAR-Serenity","WAR-Serenity_Necris","WAR-SinkHole","WAR-TankCrossing","WAR-Torlan","WAR-Torlan_Leviathan","WAR-Torlan_Necris"))
GameSpecificMapCycles=(GameClassName="UTDuelGame",Maps=("DM-Arsenal","DM-Biohazard","DM-CarbonFire","DM-Deck","DM-Defiance","DM-Deimos","DM-Diesel","DM-Fearless","DM-Gateway","DM-HeatRay","DM-RisingSun","DM-Sanctuary","DM-Sentinel","DM-ShangriLa"))

Admin Commands

You ment to be able to admin the game using rcon but when we tried it although adminlogin worked none of the subsiquent commands did.

First off login with: AdminLogin <password>

The you can use the following command:

  • AdminLogin <password> - Logs you in as an admin

  • AdminLogout - Logs you out of admin mode

  • AdminRestartMap - Restarts the current map

  • AdminChangeMap <MapName> - Loads a different map (gametype will change too, depending on map)

  • Admin addbots <#> - Adds number of bots

  • Admin killbots - Removes all bots

  • AdminPlayerList - Shows PlayerID of players

  • Adminkick <playername> - Kicks player from current game

  • Adminkickban <playername> - Kicks player from current game and bans player from reconnecting (bans are stored in .ini file for later editing)

  • AdminForceVoiceMute <playername> - Blocks a player from sending voip to others

  • AdminForceVoiceUnMute <playername> - Allows a player to resume sending voip to others

  • AdminForceTextMute <playername> - Blocks a player from sending text to others

  • AdminForceTextUnMute <playername> - Allows a player to resume sending text to others

  • AdminPublishMapList - Overrides the server's map list for the current game type with the one on the client that used the command

When your done you can logout with: AdminLogout