UnrealSP.Org

The premier Unreal single player site


 
     
 

Coop Server Guide

       
 

Coop Server Guide

Section One: Getting Started

you will be able to:
create fast, easy to use console commands
optimize Unreal to run as fast as possible

Topics covered by this section

console commands
exec files
optimising ram and bandwidth

Console Commands

What is a console command?
A console command is a way of altering Unreal without the use of mods or mutators. Console commands are simply text written into the ingame console. You can open this ingame console by pressing the tilde (~) key. You can also enter text by pressing the TAB key. If you've turned on god mode before you've used a console command. Console commands immediately change specific properties in Unreal. There is no restarting levels or selecting a new game type before you begin playing. You can use console commands to activate mini"mods" at any time during the game. You can deactivate them at any time as well.
Most server admins rarely use any other console commands besides god and fly/ghost for themselves. If the admin takes his time the result can be very rewarding. If you perform even simple functions described in this tutorial your clients will be greatly entertained and wont be able to wait to play on a server hosted by you again.
This can be hard work. Say you wanted to do a simple thing like change the difficulty of the monsters. That could mean writing as much as 80 lines of console commands. By the time you finish that, the level would be over. Sometimes Unreal resets its properties during level changes. Your effort would be a complete waste of time.
We can however make this quick and painless. Many experienced server admins use exec files to run certain mini-mods.

Exec Files

exec files are simply text (.txt) files in your Unreal\System folder that contain few or many console commands. Unreal has a built in feature that lets you type in the name of the exec file and it will execute each and every console command in that particular file. This is why it would be important to put only console commands you want to be done at the same time in the same txt file.
Lets try making an exec file using console commands you probably are already familiar with. Open NotePad (or equivalent) and type

  • god
  • fly
  • summon eightball
  • allammo
save that in your Unreal\System folder as
test1.txt
Now start Unreal and begin playing a new game. Open the console and type
exec test1.txt
Notice that you now have god mode, you can fly and there is an eightball in front of you. However you only have full ammo for any (if any) guns you already have. When you pick up the eightball you will only have its default pickup ammo. This is why it's important to plan ahead as to pick which console commands we want in out exec files.
You can put as many console commands in a single txt file as you want.
Try out a few combinations to get the hang of making exec files. The majority of the tutorial will be based on your ability to do this simple task.

Optimising RAM and Bandwidth

(this only covers configuring Unreal. it will not give your computer maximum performance. There are plenty of sites dedicated to tweaking your computer and modem for the fastest possible connection)
By default Unreal comes configured to use 4MB RAM (before caching) and to run on LAN.
Because of these two things it is bad for two reasons. We all know that 4MB is nowhere near sufficient space to operate a COOP server, much less even run Unreal. If you host a server with LAN settings your clients with high speed internet will be getting more of you bandwidth than the ones with slower connections. This is pretty obvious since they do have faster connections but this is very different from viewing web pages. You need to provide you clients, equally, with as much bandwidth as possible. Your connection is crucial since it will never stop sending and receiving during a game. Because of this default setting in Unreal, clients with faster modems will actually steal bandwidth from those with slower connections.
We are going to optimize our RAM and regulate our bandwidth to solve both of these ugly problems.
There are two ways we can approach this.

1. Download ssick server from FilePlanet (lol).
This is an exe file that contains umods for almost every combination above. (you need to be running at least v224 to run umods)
In order to use it open the setup program by dub-clicking ssickserver.exe. You will see a list of options. Pick the one that best describes your system and hit install.
A umod will appear in your Unreal folder, dub-click that to complete the install. Everything described in the next section will be done plus more (details in the readme/eula in the setup program).
See how easy that was? All you have left to do is pick a name for your server.
Skip to the namepickin part.

2. Do it yourself (you would have to do this every time you install Unreal)
Open your Unreal.ini
Find the section [Engine.GameEngine]
change cachesizemegs=4
to 73% of your total (MB) RAM . (RAM x 0.73 = (answer))
Examples:
64mb = 43
128mb=85
256mb=140
If you use UnrealEd you may want to find the section [Editor.Engine]
and change the line cachesizemegs=6 in the same fashion.
Now lets change our bandwidth so everyone gets an equal amount.
Find the section [IpDrv.TcpNetDriver] (in unreal.ini)
and check the lines

  • AllowDownloads=True
  • ConnectionTimeout=15.0
  • InitialConnectTimeout=500.0
  • AckTimeout=1.0
  • KeepAliveTime=0.2
  • SimLatency=0
  • DumbProxyTimeout=2.0
  • SimulatedProxyTimeout=10.0
  • SpawnPrioritySeconds=1.0
  • ServerTravelPause=3.0
  • NetServerMaxTickRate=15
so they match with this guide
Now depending on your modem we will also add the following
MaxClientRate= (3600 for 56K and ISDN, 5000 for Cable and DSL)

Now find the section [IpDrv.UdpBeacon]
make sure this line says:
DoBeacon=True

Then go to [Engine.GameInfo]
and depending again on your modem add the following
MaxPlayers=(4 for 56k, 6 for ISDN, 8 for Cable, 10 DSL)
MaxSpectators=1 (this is the max for 56k. any others, its up to you)

Wait! There's more...
First open Unreal.ini and find [Engine.GameInfo]
set
bCoopWeaponMode=False
now find [UnrealShare.CoopGame]
and set
bCoopWeaponMode=False
This will cause weapons to respawn after they're picked up. The same player can pick up the same weapon more than once, filling up his ammo.
If for some reason you're planning on putting up a DM server find
[UnrealShare.DeathMatchGame]
and set
bMultiPlayerBots=True
to have bots in your games

Now even if we've intalled ssick server we still gotta open up good ol' Unreal.ini
Since we are going to be using this information to setup a coop server (right?) we got to think of a name for it.


Naming the server

find the section
[Engine.GameReplicationInfo]
and put your server name here...
ServerName=(StinksCoop)
if you want people to know who the admin is (you) fill in
AdminName=(Stinkey)
AdminEmail=(this is optional, your choice) they can mail you of how 1337 your server is ;)
if we want to display a message to people that connect to your server
set
ShowMOTD=True
and fill in
MOTDLine1=(your)
MOTDLine2=(message)
MOTDLine3=(goes)
MOTDLine4=(here)
and since we are the administrator of our server we want to be able to use all the neat stuff we're learning we need to set an admin password
go back to [Engine.GameInfo]
and add (if not already there)
AdminPassword=(your password goes here)
if we want to password protect our server so nobody can get in unless they know the password add (if not already there)
GamePassword=(game password goes here)

Remember to save your Unreal.ini

That is all for editing your Unreal.ini
A lot of people don't realize that in order to login as admin you do it before you start the server in the player setup screen. If you are starting a listen server it comes up right before you start the game. Just put your admin password in the space that says "password". If you are connecting to your server (dedicated) from another machine you need to go into the player setup screen before entering the join game screen.

I know I may get a little heat about the use of 56k computers as servers, but it can be done with the above specifications. Unreal's ReadMe even backs this up. With the Tcpip settings above, clients will be able to connect at 56k rate speeds. It may be a little slow for all you broadband users but it is playable.
A little advice to those who want to put up 56k servers; try not to use too many features or play on hard difficulty settings. You can host servers but the more players/monsters/pawns it has to keep track of the worse the connection will get.

< Prev | Home | Next >