Running Unreal Tournament Servers
Jack Porter
Epic Games, Inc.
http://www.epicgames.com/
Audience: UT Server Administrators
Last Updated:
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 utbugs405@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]<
br>
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
|