Introduction for Running Unreal Tournament 1999 GOTY Servers
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 Unreal Tournament 1999.
Configuring and Launching a Dedicated Server from Inside the Game
Enabling Web-based Remote UT
The Unreal Tournament 1999 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 Unreal Tournament 1999 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 Unreal Tournament 1999 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 Unreal Tournament 1999. 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 Unreal Tournament 1999 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:
Change the “bEnabled=False” line to read “bEnabled=True“.
Should you need to change the port number the internal Unreal Tournament 1999 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 Unreal Tournament 1999 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 Unreal Tournament 1999 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.
ucc server dm-Turbine?game=Botpack.DeathMatchPlus ini=server1.ini log=server1.log
ucc server ctf-coret?game=Botpack.CTFGame multihome=126.96.36.199 ini=server2.ini log=server2.log
ucc server dom-Sesmar?game=Botpack.Domination multihome=188.8.131.52 ini=server3.ini log=server3.log
It’s a good idea to make a small batch file which restarts the server should it crash:
ucc server dm-Turbine?game=Botpack.DeathMatchPlus ini=server1.ini log=server1.log
copy server1.log server1crash.log
Should you get a server crash, please mail the logfile to [email protected].
Multiple Servers Per Machine
Each copy of the Unreal Tournament 1999 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. Unreal Tournament 1999’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=184.108.40.206 ini=server1.ini log=server1.log
start ucc server dom-Sesmar?game=Botpack.Domination multihome=220.127.116.11 ini=server2.ini log=server2.log
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 Unreal Tournament 1999 server from a web browser running on the server machine, Use a URL such as the following:
Or if your copy of Unreal Tournament 1999’s Webserver is running on a custom port number (with the ListenPort option)
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 administration 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 Unreal Tournament 1999.
“Creeping Ping” bug with Win2000”
Some server admins have reported that after a while all of the players get increasingly
lagged out when the Unreal Tournament 1999 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:
The workaround is to only run the remote admin webserver when you actually want to administer your
server. Disable the remote administration webserver by removing the line which says
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 For Unreal Tournament 1999 GOTY Servers
- 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:
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.