# UnrealServer Tips & Troubleshooting

Last Updated: 12/05/98

### Introduction

For optimal network play performance, you can launch a dedicated copy of the UnrealServer on a computer. This improves performance compared to using a non-dedicated server but, of course, it ties up a PC. UnrealServers are ideal for dedicated Internet servers, and they work similarly to Web servers: they sit around without a user interface, and service clients (players) who want to play.

The documentation here assumes that you've installed Unreal into the \Unreal directory. In this case, the Unreal executable file, Unreal.exe, will be in the directory \Unreal\System. It is fine to install Imrea;If you've installed Unreal in a different directory, remember that the docu

### Launching UnrealServer

#### From the Unreal menus

You can launch a dedicated server by going through the regular Unreal "Start Game" menu, setting the appropriate options, then choosing "Launch Dedicated Servers". This is what you'll want to do for quick LAN games where you have an extra machine sitting around that can act as a dedicated server.

#### From the command line

Alternatively, you can launch a dedicated server from the command line by running Unreal.exe directly (which usually resides in the c:\Unreal\System directory, or the System subdirectory of whatever other directory you installed the game in). For example, to launch the level "DmFith.unr", run:

    	Unreal.exe DmFith.unr -server

When you launch Unreal from the command line, you don't have the opportunity to specify the game options within Unreal's menus. Rather, Unreal uses the options that were most recently set in the menus. These options are stored in the file \Unreal\System\Unreal.ini.

### Unreal Links

There are two ways to place an Unreal link on a web page.

#### unreal:// URL's

> Unreal URL's (for example, unreal://unreal.won.net:7777) provide the simplest way to place a hyperlink on a web page that links to an Unreal server. However, these links only work on machines which have Internet Explorer 3.0 or 4.0 installed. Users who have old Windows 95 configurations (pre-IE3) and use Netscape as their web browser will not be able to follow unreal:// links. Here is a sample link: unreal://unreal.won.net:7777/

##### .unreal Link Files

> (New to version 212) Though less convenient, you can also create a text file using the following format to define a link that will work on all Windows 95/NT machines. First name the file Something.unreal (for example, MyLink.unreal), then insert the following text with Notepad:

>     [Link]
>     Server=unreal.won.net:7777

> Here is a sample link: MyLink.unreal

### Multiple Servers Per Machine

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

However, you can run multiple level servers on one machine. You may give each server a unique TCP/IP port number. If you don't specify a port number, Unreal will generate a unique one, so that multiple Unreal servers may run on a machine without any special effort. Unreal's default port number is 7777. To specify a port, use the following kind of command line:

    	Unreal.exe DmFith.unr port=7778 -server

Some Windows NT servers may have more than one network card installed, and thus more than one IP address. If this is the case, you need to specify the IP address for Unreal to play on using the multihome=www.xxx.yyy.zzz parameter such as:

    	Unreal.exe DmFith.unr multihome=204.157.115.34

Here is a sample batch file to launch two UnrealServers:

    	Start \UnrealSystem\Unreal.exe DmTundra.unr?game=unreali.deathmatchgame -server port=7777 log=server1.log ini1=server1.ini
    	Start \UnrealSystem\Unreal.exe DmTundra.unr?game=unreali.deathmatchgame -server port=7778 log=server1.log ini1=server1.ini

### Using .ini files

When you run multiple servers on one machine, and you have customized the game settings, all of the servers will use the same options, from the Unreal.ini file. In many cases, this is not what you want -- for example, if you're running a "lobby" level that is a downloable level that is played locally, you don't want it to switch levels as would be the case with a deathmatch game. To handle multiple configurations, you can tell Unreal to use a different version of the configuration file than Unreal.ini like this:

    	Unreal.exe DmFith.unr ini=Server1.ini

The configuration file must exist in the \Unreal\System directory.

An easy way to generate a new configuration file is to go into Unreal, set whatever multiplayer options you want, exit out, and copy the Unreal.ini file to a new filename, such as MySettings.ini.

### Setting advanced server options

#### Advanced Options / Game Settings (applies to all game types)

- AdminPassword: Administrator password; only accepted if bAllowRemoteAdmin is True.
- AutoAim: Maximum allowable auto aiming amount for helping players who aren't using MouseLook.
- bLowGore: Reduced blood.
- bClassicDeathmessages: Displays old-style death messages.
- bCoopWeaponMode: Weapons behave as in coop play: each player can get them once per life, no respawning.
- bHumansOnly: Don't allow non-humans to play, such as SkaarjTroopers.
- bLowGore: Low violence.
- bMuteSpectators: Don't allow spectators to chat with players.
- bNoMonsters: No monsters in gameplay.
- bVeryLowGore: Extremely low violence.
- Difficulty: Difficulty level, affects bots.
- GamePassword: Password required for plays to enter.
- GameSpeed: Multiplies the game speed; 1.0 means normal speed. 0.5 means half-speed, 2.0 means twice normal speed.
- MaxPlayers: Maximum players allowed in the level.
- MaxSpectators: Maximum spectators allowed in the level.

#### Advanced Options / Game Types / DeathmatchGame (applies to all deathmatch games)

- bChangeLevels: Lets the server switch levels when the frag limit or time limit is reached.
- bHardCoreMode: Increases weapon damage by 150%.
- bMegaSpeed: Increases game speed by 150%.
- bMultiplayerBots: Causes the server to place "InitialBots" number of bots in the multiplayer game.
- FragLimit: After this number of kills, the level switches. Zero means no frag limit.
- InitialBots: Number of bots to place in the game; only affects network play if bMultiplayerBots is set.
- TimeLimit: After this amount of time, the level switches. Zero means no time limit.

### Remote administration

To enable remote administration on a server:

1. Run Unreal.exe.
2. Open up the "Advanced Options" window (from the main menu, Options/Advanced Options).
3. Open up "Game Types" / "Deathmatch Game" (or whatever type of game you want to remote-administer).
4. Set the "AdminPassword" to a password, for example "MyPassword".
5. Exit the game, and launch your server.

Now, you can administer your server by logging in as a player and using the administrator password using the following URL syntax:

    	myservername.com?password=MyPassword

You can do this from within Unreal, by typing the following console command:

    	open myservername.com?password=MyPassword

To send administrative commands to the server, type "ADMIN" followed by any console command, documented in the Console Commands document. For example, to switch to a new level titled DmAriza.unr, type:

- ADMIN SERVERTRAVEL DmAriza.unr

### Client downloading of files

When clients enter your server, the server sends them a list of all Unreal "packages" (binary files containing structured Unreal objects). The client then makes sure he has all of the server's packages. If he does, he immediately tries to enter the game. If he is missing one or more files, he asks the server to download them, and the server obliges by sending each file in turn, using a UDP-based sliding window protocol.

The kinds of files which are automatically downloaded include:

- *.u (class files)
- *.utx (texture files)
- *.uax (audio files)
- *.unr (map files)
- *.umx (music files)

The reason behind client-side downloading is to allow servers to be set up in a Web-like fashion: Players can hop back and forth between servers, automatically downloading and caching the levels, graphics, music, and other objects as they go.

When clients download files, the files go into the \Unreal\Cache directory, using a filename composed from their 128-bit GUID (Globally Unique Identifier) and the .uxx extension, rather than their human-readable name.

### Setting up an index level (formerly known as a "lobby" level)

If you're running a cluster of lots of Unreal servers, you may want to provide one common entryway for them, in the form of an "Index" level. An "Index" level is a small level with a bunch of teleporters which point to your game levels. Like a regular Internet level, an "Index" level is downloaded to the player's hard disk the first time he enters your server. Unlike a regular Internet level, the Index level is played alone -- you can't see or interact with other players in an Index level.

In UnrealEd, you can force a level to be "played alone" by opening the map, going into Options / Level / LevelInfo, and setting bLonePlayer to True. This says, basically, "The player should download this level from the server, but then play it locally -- rather than with network support". This is desired for index levels, otherwise your little level would fill up with huge numbers of players bumping into each other, having a hard time going into the appropriate teleporters.

Here is a sample index level, available for download: Index.unr. It's not very pretty, but it's small and it makes for a fast download.

To customize this level for your server, you can do the following:

1. Download Index.unr into your \Unreal\Maps directory.
2. Run UnrealEd. If you're having problems with UnrealEd, read the solutions on the Known Bugs page.
3. In the 2D overhead view (the window in the upper-left hand part of the screen), learn how to move around and zoom in and out: To move around, hold down the left mouse button and move the mouse around. To zoom in and out, hold down both mouse buttons and move the mouse up and down. Experiment with this till you get comfortable with moving and zooming.
4. Look at the contents of the entry level: there are some big orange boxes, which represent cubes that were subtracted (hollowed out) from the world. There are some smaller blue boxes, which represent brushes (in this case, in the shape of teleporters) added to the world. The torch icons represent lightsources. The joystick icon represents the default player-start point. The orange icons with the stick figure standing next to an arrow represents a teleporter. There are four teleporters in this level.
5. Right-click on one of the teleporters. A pop-up menu with some options should appear. Click on "Teleporter Properties". The property sheet for this actor (a teleporter actor) will appear.
6. In the property sheet, click on the word "Teleporter" to expand that tab.
7. Click on the "URL" field. A little edit-box will pop up. Here you should type the URL you want the teleporter to link to. In Unreal, teleporter links work just like Web page links. In the URL, you can type a name in one of the following formats:
   - server.unreal.com:7777 (a link to an UnrealServer running at server.unreal.com, on port 7777)
   - unreal://server.unreal.com:7777/ (another way of specifying the above -- the more complete form)
   - http://server.com/ (A link to a web page; these are kind of annoying to users, because it causes Unreal to go out of fullscreen mode and launch a web browser)
   - For more information about Unreal URL's, read the URL document.
8. Change any of the other teleporters you want to change.
9. Do a File / Save to save the level.
10. Your Index level is now ready to use.

### Other information

Read the Console Commands & Command-Line Parameters document for other useful options when launching a dedicated server.

Read the Unreal URLs document for information about Unreal URL's, which provide a way to link UnrealServers to each other; UnrealServers to the Web, the Web to UnrealServers, and much more.

### Creating Custom Skins

To create new skins for the Unreal models, and make them downloadable, you'll need to create a new skin .utx file in UnrealEd (place it in the \Unreal\Textures directory). Also, you'll need to create a new text file, similar in format to \Unreal\System\Female1Skins.int. These filenames need to start with the model name, "Female1", "Female2", "Male1", "Male2", "Male2", or "SkTrooper", followed by some unique word. For example, you could create:

- \Unreal\Textures\Female1NewSkins.utx
- \Unreal\System\Female1NewSkins.int

Within the Female1NewSkins.utx file you create, import one or more textures and give them any name you want. Four names have special significance: T_Blue, T_Green, T_Red, and T_Yellow are used for colored teamplay skins.

The Female1NewSkins.int should contain a list of the skins contained within Female1NewSkins.utx. See the existing \Unreal\System\Female1Skins.int file for an example. Basically, for each skin in the .utx file, the .int file lists its complete name -- for example, Female1Skins.T_Blue refers to the skin named "T_Blue" in the file "Female1Skins.utx".

Note: Do not modify Unreal's existing .utx and .int files, such as Female1Skins.utx and Female1Skins.int -- if you do that, you won't be able to enter multiplayer servers, because your .utx files will differ from the server's. The nice thing about Unreal "mods" is that they reside in separate files, so they can coexist and can be easily distributed -- rather than being modifications of our existing files.

For server administrators: To enable players to use your new skins when they enter your server (downloading the skins if they don't have them), go into Advanced Options / Advanced / Game Engine Settings / ServerPackages. There, add the new skin package name (for example, Female1NewSkins) to the list. Don't include the file extension, just the base name.

-Tim