# Running Unreal Tournament Servers

Audience: UT Server Administrators
Last Updated: 08/31/00

### Introduction

This document outlines the steps needed to configure an Unreal Tournament server from inside the game, and from the command line. It also explains how to use the WWW-based remote administration features built into UT.

### Configuring and Launching a Dedicated Server from Inside the Game

#### Enabling Web-based Remote Administration

> The UT server has an internal webserver which is used to remotely administer the game, but it is disabled by default. This is accessible under Options Menu, in Advanced Options. Expand the tree to find Networking | WebServer | bEnabled. Set bEnabled to True. You may also like to change the ListenPort value to something other than 80, if your server machine is already running another webserver such as IIS on port 80

> Also in Advanced Options, under Networking | Web-based Remote Administration, you can find the username and password required to access the remote administration through your web browser.

> WARNING: Web-based remote administration of UT servers running on Windows 2000 may experience problems (periods of extremely high pings) due to a problem with the Win2000 TCP/IP stack. See the section on Remote Administration below.

#### Launching the Server

> In the UT menus, choose Multiplayer | Start New Internet Game. Choose the gametype and map you want to run. Press the Map List button to configure the maps which will be cycled on your server. Use drag-and-drop to add or remove a map from the map list cycle. Press the Mutators button to enable any mutators you want to run on your server. Make sure Auto Change Levels is checked, or the server will run the same map over and over again. Go to the Rules and Settings tabs to ensure the game rules and settings are configured the way you want them.

> If you want Bots on your server, go to the Bots tab and set the Minimum Total Players to a number greater than 0. If you choose 6, bots will come into the server when there are less than 6 human players connected. When a human connects, a bot will leave. In team games, be sure to check the Balance Teams checkbox so that the bots change teams to keep the number of players on each team balanced.

> Under the Server tab, be sure to give your server a Server Name, and to check the Advertise Server checkbox. This advertises your server to the master server, so players can find your server even if they're not on your local LAN. Check the ngWorldStats Logging checkbox to have your server participate in ngWorldStats for UT. The Optimize for LAN checkbox should only be set if your server is intended for a LAN play only. DO NOT check this checkbox if you intend to have people on the Internet connect to you, or they might find internet play isn't as good as it could be.

> Finally, press the Dedicated button to launch the dedicated server. Once your server is configured, you can later launch it from the command line - it will retain all the settings you've configured for it.

### Launching a Dedicated Server from the Command Line

#### Enabling Web-based Remote Administration

> Before you launch a dedicated server from the command line for the first time, you first need to edit your C:\UnrealTournament\System\UnrealTournament.ini file to enable WWW-based remote administration. The UT server has an internal webserver which is used to remotely administer the game, but it is disabled by default.

> Open C:\UnrealTournament\System\UnrealTournament.ini with NotePad and find the following section:

> > [UWeb.WebServer]
> > Applications[0]=UTServerAdmin.UTServerAdmin
> > ApplicationPaths[0]=/ServerAdmin
> > bEnabled=False

> Change the "bEnabled=False" line to read "bEnabled=True".

> Should you need to change the port number the internal UT webserver runs on (eg if your server is already running another webserver such as IIS on port 80), add a new entry under [UWeb.WebServer] which says "ListenPort=8888", to run the UT webserver on the custom port number. Note that if you run multiple servers on the same machine (and bound to the same IP address), each webserver needs to be running on its own port number. More on this shortly.

> Just below the [UWeb.WebServer] section is the [UTServerAdmin.UTServerAdmin] section. You need to change the username and password required to remotely admnister your UT server. If you leave your username and password set at the default values of admin and admin respectively, someone is sure to take control of your server and do evil things to your players.

#### Launching the Server from the Command Line

> The syntax for running a server from a command line is as follows:

> > C:\UnrealTournament\System> ucc.exe server mapname.unr?game=GameType [port=portnum] [multihome=ipaddress] [ini=inifilename] [log=logfilename]

> > port - the optional base port number the server uses.
> > ini - the name of the ini file the server uses. This defaults to unrealtournament.ini
> > log - the name of the logfile the server generates. The default is ucc.log
> > multihome - the IP address the server should bind to, where the server has multiple local IP addresses.
> > GameType - one of Botpack.DeathMatchPlus, Botpack.Domination, Botpack.CTFGame.

> Some examples:

> > ucc server dm-Turbine?game=Botpack.DeathMatchPlus ini=server1.ini log=server1.log
> > ucc server ctf-coret?game=Botpack.CTFGame multihome=204.12.54.28 ini=server2.ini log=server2.log
> > ucc server dom-Sesmar?game=Botpack.Domination multihome=204.12.54.29 ini=server3.ini log=server3.log

> It's a good idea to make a small batch file which restarts the server should it crash:

> > :top
> > c:
> > cd \unrealtournament\system
> > ucc server dm-Turbine?game=Botpack.DeathMatchPlus ini=server1.ini log=server1.log
> > copy server1.log server1crash.log
> > goto top

> Should you get a server crash, please mail the logfile to mailto:utbugs@epicgames.com.

#### Multiple Servers Per Machine

> Each copy of the UT dedicated server can serve one and only one level at a time.

> However, you can run multiple level servers on one machine. Each copy of the server should have its own unique copy of the unrealtournament.ini file, with its own configuration. This is specified with the ini command line option. If you want to enable remote administration on multiple servers on the same machine, and you're not using multihome to specify a unique IP address to bind to, you'll need to give each webserver a unique ListenPort number.

> You should give each server a unique base UDP port number. UT's default port number is 7777. To specify a port, use the port command-line option as shown above. Be sure to space the port numbers 10 apart as each server requires a number of UDP ports. eg:

> > ucc server ctf-coret?game=Botpack.CTFGame ini=server1.ini log=server1.log port=7770
> > ucc server dom-Sesmar?game=Botpack.Domination ini=server2.ini log=server2.log port=7780

> Some Windows NT servers have more than one IP address defined (under Advanced in the TCP/IP control panel). If this is the case, you can run multiple servers on the same machine without configuring different port numbers. Specify the IP address for the server to listen on using the multihome option. This batch file starts two servers, each binding to a different IP address.

> > start ucc server ctf-coret?game=Botpack.CTFGame multihome=204.12.54.28 ini=server1.ini log=server1.log
> > start ucc server dom-Sesmar?game=Botpack.Domination multihome=204.12.54.29 ini=server2.ini log=server2.log

### Remote Administration

Once the server is up and running, and the remote administration is enabled, you can access your Unreal Tournament server with any Web Browser. Internet Explorer 4 or 5 is recommended, but it should work fine with Netscape 4 also. To access your UT server from a web browser running on the server machine, Use a URL such as the following:

> http://127.0.0.1/ServerAdmin

Or if your copy of UT's Webserver is running on a custom port number (with the ListenPort option)

> http://127.0.0.1:8888/ServerAdmin

Of course, substitute 127.0.0.1 for the IP of your server to administer it from a web browser on another computer. Your web browser will then prompt you for a username and password. The remote admin is divided into two parts:

- Current - Administer the current game in progress - view the player list, kick/ban players, add bots, change the current map, access the server console and chat to players.
- Defaults - Change the map list, rules and settings for each game type, configure server-level options, and administer the IP ban list.

You'll want to change the following Defaults | Server options the first time you configure your server.

- Server Name - the name of your server
- Advertise Server - check this on to advertise your server to the master server
- ngWorldStats Logging - tcheck this on to have your server participate in ngWorldStats for UT.

"Creeping Ping" bug with Win2000
Some server admins have reported that after a while all of the players get increasingly
lagged out when the UT server is running on Windows 2000. This seems to happen only
when the remote administration webserver is running. We believe it may be related
to this Win2K issue:

http://support.microsoft.com/support/kb/articles/Q258/1/00.ASP?LN=EN-US&SD=tech&FR=0

The workaround is to only run the remote admin webserver when you actually want to administer your
server. Disable the remote admin webserver by removing the line which says

> ServerActors=UWeb.Webserver

in your server's INI file. To activate the webserver, join your server as an admin and
type the following command:

> admin summon uweb.webserver

When you've finished administering your server, you can disable the webserver with the command

> admin killall webserver

### Performance

- Make sure to match the maximum number of users for your server to the bandwidth you have available. The amount of bandwidth required for each user is determined by the MaxClientRate, which is set by default to 20000 bytes/sec. If your upstream bandwidth is limited (for example a cable modem), you should reduce this value. Make sure that the number of players your server allows (MaxPlayers) multiplied by MaxClientRate is less than your available bandwidth (in the case of cable modems or xDSL, your upstream bandwidth).
  The MaxClientRate variable can be changed by editing your UnrealTournament.ini file in your UnrealTournament\System directory. MaxClientRate is in the [IpDrv.TcpNetDriver] section.
  When you have your MaxPlayers or MaxClientRate set too high for your upstream bandwidth, you typically see everyone's ping get progressively higher, above 1000 and beyond. This occurs because your server is generating too much outgoing data for your internet connection to handle, and the data begins to back up.

> > > What should the MaxClientRate be set to, to allow good ping on an ADSL Server? And how many players would work well too?

> > It really depends on your ADSL provider. You need to work out what your maximum upstream bandwidth is in Bytes per second. One way to do this would be to ICQ a large file to a friend who is on DSL or cable, and look at what the transfer rate is, or if you know what it is in bits per second, divide by 8. ie 256kbps upstream bandwidth is around 32000 bytes per second.
> > Once you have that number, work out what maxclientrate you want to give everyone. 2600 is the bare minimum and it'll give modem-like netplay for everyone. 5000 is fine for modem and ISDN users but the play won't be quite as good as it could be for ADSL or cable users. 20000 is the largest you should ever go. The number of players you can support is the upstream bandwidth in bytes per second divided by the MaxClientRate you chose. So with 32000 bytes per second of available bandwidth, you could support:
> > 32000 / 2600 = 12 players at modem quality play
> > 32000 / 5000 = 6 players at ISDN quality play
> > 32000 / 10000 = 3 players at better-than-ISDN quality play
> > 32000 / 20000 = 1 player at LAN quality play.
> > I'd go for the 6 players at 5000 if all I had as 256kbps upstream bandwidth, because 5000 doesn't play too bad at all, and it's a good compromise.

- We recommend disabling local NGStats for internet servers. Processing the NGStats logs takes some time between levels, which may result in remote clients getting disconnected. You can find this setting in the options->preferences menu, under the game tab.
- Admininstrators can control downloading of packages from their server by editing the [IpDrv.TcpNetDriver] section of unrealtournament.ini:
  [IpDrv.TcpNetDriver]
  AllowDownloads=True
  MaxDownloadSize=0
  AllowDownloads disables all autodownloads.
  MaxDownloadSize=0 means allow autodownload of any sized file. Otherwise the value is in BYTES. We recommend that rather than disabling all downloads, you set the MaxDownload size to an appropriate value. For example, MaxDownloadSize=100000 will allow mutators and other small packages to be downloaded, but will not allow large files such as maps to be downloaded. Turning off all downloads may make it hard for clients to get on your server if you are using a lot of custom maps, mutators or other custom packages.

### Links

- The Admin Page - an Unreal Tournament community run site especially for server administators.
- Server Admin Help at UTWorld - another community run server admin site.
- Epic runs a utservers mailing list for server administrators to ask questions and discuss topics relating to running UT servers. This list gets a lot of traffic and therefore it is not recommended that you join unless you are a serious UT server administrator. If you still want to join, send an email to majordomo@epicgames.com and include the words "subscribe utservers" in the BODY of the message. I will approve your addition to the list.

- Jack