Welcome to the
Configure
Page
Futhermore a few interesting and useful editing tips to get the most out of your
\Unreal\System\Unreal.ini
file. How remote admin works, setting up Death Match Level Loops, and many other
admin related things...
Page start: Thursday, August 6th 17:57 1998
Dedicated Unreal Server A socalled dedicated server, is a server that does nothing else but control internet multiplayer gameplay. No graphics are output, so no one can *play* on that machine directly. This has the advantage that the server PC is not "bogged" up wasting resouces on useless display updates. Furthermore it's *fairer* to players that connect to the machine, since a player sitting in front of the server will effectively have no latency (read lag!). So you can see there are good reasons for running an Unreal server in dedicated mode. If you want to read up on the possible command line parameters of Unreal please read the appropriate section on the Console Page. Below I will consicely describe the more important commands.
Launching a
Dedicated
Unreal
Server
<path to Unreal\>Unreal.exe <StartMap\>.unr
PORT=<PortN°>
LOG=<LogName>
READINI=<Inifile>.ini
-server
Example:
c:\Unreal\Unreal.exe DmFith.unr PORT=7777 LOG=dm.log READINI=Server.ini -serverStep by step I will explain each parameter:
Path to
Unreal
Map
Choice on
Startup In most cases you will want to run a Death Match level loop... Check out your Unreal\Maps\ directory to find out about the map names: DM List (DmAriza, DmCurse, DmDeathFan, DmDeck16, DmElSinore, DmFith, DmHealPod, DmMorbias, DmRadikus, DmTundra)... note there is also a map for socalled "Dark Matches" (DkNightOp).
Port
Number
Log
Files
Main
Unreal
Config
File:
Unreal.ini Once you have put together your own config file to run a e.g. DM Server you can "execute" this file on server startup with READINI=<Inifile>.ini, to ensure that everything is working the way *you* want. Note READINI= only *reads* the .ini file, this file will *not* be changed after you shut down the server. Note that usually when you quit Unreal, the .ini is *overwritten* and thus updated. If you *want* the latter to happen then use INI=. When running several servers this certainly is not what you want, so READINI= certainly is for admins :).
Dedicated
Mode
Setting up Your own Server.ini File There are 2 ways to edit Unreals main configuration file Unreal\System\Unreal.ini... the "sissy" way ;) via Main Menu Options/Advanced Options or the hard way :)) in a text editor. Personally I prefer editing by "hand"... to get you off to a good start you might try using the menus. After quitting Unreal again all the menu settings will be *saved* in the Unreal.ini file.
Setting
Advanced
Server
Options via
Menus
I have marked the more important options above. Note again for remote administration you will have to set AdminPassword and bAllowRemoteAdmin. Since by default the Death Match levels are played in a loop it's a good idea to set the FragLimit to 60 or something. This means that after 60 frags the next map will be loaded. You might also want to set the TimeLimit to something like 35. Finally set MaxPlayers to something like 16 (on a 10MBit connection and a Pentium II this ought to be ok, the upper limit seems to be around 32 for a system like that).
Setting
Advanced
Server
Options via
Text
Editor Note that Unreal.ini is divided into sections, so that editing is made simple. Futhermore it's a ASCII file, so that editing can be done with any text editor, for this I recommend Ultra Edit. Now lets get going:
DeathMatchGame
[UnrealI.DeathMatchGame]
MaxPlayers=16
FragLimit=60
TimeLimit=35
bMultiPlayerBots=True
bChangeLevels=True
InitialBots=3
bNoMonsters=False
bMuteSpectators=False
bHumansOnly=False
bAllowRemoteAdmin=True
bCoopWeaponMode=True
AutoAim=1.000000
MaxSpectators=2
AdminPassword=Arghh
Note for all the other game types there are specific sections too:
[UnrealI.TeamGame], [UnrealI.CoopGame], [UnrealI.KingOfTheHill], and
[UnrealI.DarkMatch] see below.
Game Types
[UnrealI.UnrealServerMenu]
Map=DmRadikus.unr
GameType=UnrealI.DeathMatchGame
Games[0]=UnrealI.DeathMatchGame
Games[1]=UnrealI.TeamGame
Games[2]=UnrealI.CoopGame
Games[3]=UnrealI.KingOfTheHill
Games[4]=UnrealI.DarkMatch
Games[5]=
...
Games[15]=
MaxGames=4
Please note the line GameType=UnrealI.DeathMatchGame it defines what
kind of a server you will be running and under what rules you will play. In most cases this will be
what you want... But you can easily set the server to run a Dark Match e.g.
GameType=UnrealI.DarkMatch... note I am not sure what maps other than
DKNightOp.unr will support this type of game. If you find out send me an
email. Note that you can also define the map Unreal
will run on startup here: Map=DmRadikus.unr.
DM Map List
[UnrealI.DMmaplist]
Maps[0]=DMariza.unr
Maps[1]=DMcurse.unr
Maps[2]=DMDeck16.unr
Maps[3]=DMElsinore.unr
Maps[4]=DMHealPod.unr
Maps[5]=DMtundra.unr
Maps[6]=DMRadikus.unr
Maps[7]=DMMorbias.unr
Maps[8]=DMDeathFan.unr
Maps[9]=DMfith.unr
...
Maps[31]=
MapNum=4
In all you can run 32 maps in a Level Loop.
MapNum=4 is Unreal's way of remembering what map to
play first! Note there is also [UnrealI.DKmaplist]
for Dark Matches.
Favorites Menu
[UnrealI.UnrealFavoritesMenu]
Favorites[0]=unreal://unreal.mplayer.com
Favorites[1]=unreal://unreal.heat.net
Favorites[2]=unreal://unreal.won.net
Favorites[3]=unreal://unreal.gamespy.com
Favorites[4]=unreal://unreal.gamehub.net
Favorites[5]=unreal://unreal.vrgn.com
Favorites[6]=unreal://nali.unrealserver.net
Favorites[7]=unreal://krall.unreal.org
Favorites[8]=unreal://server.unreal.com
Favorites[9]=
Favorites[10]=
Favorites[11]=
Aliases[0]=MPlayer.com
Aliases[1]=Heat.net
Aliases[2]=World Opponent Network
Aliases[3]=GameSpy
Aliases[4]=AT&T Worldnet
Aliases[5]=VRGN Game Network
Aliases[6]=Now OnLine
Aliases[7]=The Unreal Org
Aliases[8]=Epic MegaGames
Aliases[9]=..Empty..
Aliases[10]=..Empty..
Aliases[11]=..Empty..
Alas I have found this menu totally useless, because if you pick one of the aboev sites a
web browser is opened, and the server links shown there will start a *second* Unreal, instead
of telling the current Unreal in memory to connect to the specified server. I hope Epic will fix
this sometime soon.
Bot Info
[UnrealI.BotInfo]
bAdjustSkill=True
bRandomOrder=True
BotNames[0]=Bot-Dante
BotNames[1]=Bot-Ash
BotNames[2]=Bot-Rhiannon
BotNames[3]=Bot-Kurgan
BotNames[4]=Bot-Sonja
BotNames[5]=Bot-Avatar
BotNames[6]=Bot-Dominator
BotNames[7]=Bot-Cholerae
BotNames[8]=Bot-Apocalypse
BotNames[9]=Bot-Bane
BotNames[10]=Bot-Hippolyta
BotNames[11]=Bot-Eradicator
BotNames[12]=Bot-Nikita
BotNames[13]=Bot-Arcturus
BotNames[14]=Bot-Shiva
BotNames[15]=Bot-Vindicator
BotNames[16]=
...
BotNames[31]=
BotTeams[0]=Blue
BotTeams[1]=Red
...
BotTeams[31]=
BotSkills[0]=0.000000
...
BotSkills[31]=0.000000
BotClasses[0]=Unreali.MaleThreeBot
..
BotClasses[31]=
BotSkins[0]=Dante
...
BotSkins[31]=
As you can see, Bot Teams, Skills, Classes amd Skins can also be set.
BotSkills[...] does not seem to work properly, I always
play against bots with skill 1, but here they all have skill 0.0... weird.
A maximum of 32 Bots in one game seems to be possible, though I'd like to see the machine that
can mussle that sort of PC power ;)
URL
[URL]
Protocol=unreal
ProtocolDescription=Unreal Protocol
Name=Player
Map=Index.unr
LocalMap=Unreal.unr
Host=
Portal=
MapExt=unr
SaveExt=usa
Port=7777
I wish I knew what Host, Portal
and Name are for. I am still looking for a way to give my server a
proper name. Host might be the server IP like 131.220.96.124. Name is probably
the your name when you connect as admin, the default "Player" so to speak. But I will still have to do
some testing on this.
Engine
[Engine.Engine]
GameRenderDevice=GlideDrv.GlideRenderDevice
AudioDevice=Galaxy.GalaxyAudioSubsystem
NetworkDevice=IpDrv.TcpNetDriver
Console=Engine.Console
Language=int
GameEngine=Engine.GameEngine
EditorEngine=Editor.EditorEngine
WindowedRenderDevice=SoftDrv.SoftwareRenderDevice
RenderDevice=GlideDrv.GlideRenderDevice
DefaultGame=UnrealI.SinglePlayer
DefaultServerGame=UnrealI.DeathMatchGame
ViewportManager=WinDrv.WindowsClient
Render=Render.Render
Input=Engine.Input
Canvas=Engine.Canvas
CdPath=G:\
You might want to adapt the default game
DefaultServerGame see the
list above for examples. More importantly... if you start Unreal and
are always asked to insert the original CD even though you did a ful install, try setting
the CdPath to where on your harddisk unreal is installed:
e.g. e:\Unreal\...
Cache
[Engine.GameEngine]
CacheSizeMegs=20
...
[Editor.EditorEngine]
...
CacheSizeMegs=20
...
The defaults are 2MB (for the GameEngine) and 4MB (for the EditorEngine)...
at present I use 20MB for both... you might like to experiment with these values a bit. As a
side note I have a 64MB RAM system.
Aliases
[Engine.Input]
Aliases[0]=(Command="Button bFire | Fire",Alias=Fire)
Aliases[1]=(Command="Button bAltFire | AltFire",Alias=AltFire)
Aliases[2]=(Command="Axis aBaseY Speed=+300.0",Alias=MoveForward)
Aliases[3]=(Command="Axis aBaseY Speed=-300.0",Alias=MoveBackward)
Aliases[4]=(Command="Axis aBaseX Speed=-150.0",Alias=TurnLeft)
Aliases[5]=(Command="Axis aBaseX Speed=+150.0",Alias=TurnRight)
Aliases[6]=(Command="Axis aStrafe Speed=-300.0",Alias=StrafeLeft)
Aliases[7]=(Command="Axis aStrafe Speed=+300.0",Alias=StrafeRight)
Aliases[8]=(Command="Jump | Axis aUp Speed=+300.0",Alias=Jump)
Aliases[9]=(Command="Button bDuck | Axis aUp Speed=-300.0",Alias=Duck)
Aliases[10]=(Command="Button bLook",Alias=Look)
Aliases[11]=(Command="Toggle bLook",Alias=LookToggle)
Aliases[12]=(Command="ActivateItem",Alias=InventoryActivate)
Aliases[13]=(Command="NextItem",Alias=InventoryNext)
Aliases[14]=(Command="PrevItem",Alias=InventoryPrevious)
Aliases[15]=(Command="Axis aLookUp Speed=+100.0",Alias=LookUp)
Aliases[16]=(Command="Axis aLookUp Speed=-100.0",Alias=LookDown)
Aliases[17]=(Command="Button bSnapLevel",Alias=CenterView)
Aliases[18]=(Command="Button bRun",Alias=Walking)
Aliases[19]=(Command="Button bStrafe",Alias=Strafe)
Aliases[20]=(Command="ActivateTranslator",Alias=ActivateTranslator)
Aliases[21]=(Command="ActivateHint",Alias=ActivateHint)
...
Aliases[39]=(Command="",Alias=None)
The sythax is not very complicated... add the sequence of commands you want executed
into quotation marks (") after the Command
keyword. Note that | is used to separate
more than one command. You can give this sequence of commands a handy new name,
do this after the Alias keyword.
Key Bindings
[Engine.Input]
MouseW=
MouseX=Axis aMouseX Speed=6.0
MouseY=Axis aMouseY Speed=6.0
Here you can set the socalled mouse accelleration.
LeftMouse=Fire
RightMouse=AltFire
MiddleMouse=Jump
Delete=InventoryPrevious
End=InventoryActivate
PageDown=InventoryNext
home=ThrowWeapon
Shift=ShowScores
Alt=Walking
Ctrl=Duck
Left=StrafeLeft
Right=StrafeRight
Down=MoveBackward
Up=MoveForward
Space=Talk
Tab=Type
Escape=ShowMenu
Pause=Pause
Above is an example of the keys I use to play. As you can see, practically all keys
in the Unreal config have plain text approximations. This can be a bit confusing at times.
NumPad0=NextWeapon
NumPad1=PrevWeapon
GreySlash=SwitchWeapon 1
NumPad2=SwitchWeapon 2
NumPad3=SwitchWeapon 3
NumPad4=SwitchWeapon 4
NumPad5=SwitchWeapon 5
NumPad6=SwitchWeapon 6
NumPad7=SwitchWeapon 7
NumPad8=SwitchWeapon 8
NumPad9=SwitchWeapon 9
Enter=SwitchWeapon 10
NumPadPeriod=
GreyMinus=
GreyPlus=
GreyStar=
I use the numerical key-pad to have all the weapons in reach and to be able to switch through
the list of weapons.
F1=Help | FunctionKey 1
F2=ActivateTranslator | FunctionKey 2
F3=ActivateHint | FunctionKey 3
F4=ShowScores
F5=ChangeHud
F6=QuickSave
F7=QuickLoad
F8=FunctionKey 8
F9=Shot
F10=Cancel
F11=Brightness
F12=EndFullscreen
In case you are interested, see the above complete list of function keys.You can assign commands and aliases to every alpha-numerical key. See a few examples below:
A=
B=
...
E=say Welcome To AEon's Unreal Server...
F=Feigndeath
G=Grab
...
K=GOD
L=FOV 110
...
O=Toggle bExtra0
...
T=Taunt Taunt1
...
V=Taunt Victory1
...
Z=Taunt wave
Use the say command to send Talk info to other
players in multiplayer gaming. Use FOV command to
expand your socalled "Field Of View", the default FOV is 90. I only
use 110 to make screen shots. Taunt lets you gesture
to other players in net gaming, ought to be good for a laugh or two :))
UnknownF5=
...
Unknown05=
The other keys are coded, as in the examples above. I haven't got the slightest what this
coding could mean... :)
TCP Net Driver
[IpDrv.TcpNetDriver]
ConnectionTimeout=30.0
InitialConnectTimeout=500.0
AckTimeout=1.0
KeepAliveTime=1.0
DefaultByteLimit=2600
MaxClientByteLimit=12000
SimLatency=0
DumbProxyTimeout=2.0
SimulatedProxyTimeout=10.0
SpawnPrioritySeconds=1.0
DuplicateClientMoves=True
ServerTravelPause=5.0
MaxTicksPerSecond=15
Note that the default MaxTicksPerSecond is 35.
It seems for internet gaming this value is far too high. A value of 15 is proposed.
Furthermore the MaxClientByteLimit default value is
25000, this value is also too high, a value of 12000 is proposed. When running
a server you should change these 2 values.
Server Uplink
[IpDrv.ServerUplink]
DoUplink=False
MasterServerAddress=master.unreal.com
CommentString=AEon's Unreal - AEonsUnreal.home.pages.de
GamePort=7777
You can tell a socalled Master Server that your server is up and running. This Master Server will
in turn relay the information to others... I am not quite sure to whom. I suspect that a web page
will show all the servers that are linked to the master, to let potential player know where to play.
Since DoUplink is set to False I presume that Epic is still working
on this. The CommentString look very interesting... maybe you can give your
server a name here! You can also set the GamePort here...
Head Up Display
[UnrealI.UnrealHUD]
Crosshair=4
HudMode=1
Possible values for Crosshair are 0 to 6, turn
off the crosshair with 6. Values for HudMode are
0 to 5, turn off the HUD with 5.
Remote Server Administration A short how to connect to an Unreal server, and how to control it, if you are Admin of that server... read: you got the password :)... (~wink~ ^AP^ !) As you may have read further up for remote administration you will have to set AdminPassword=passwrd *and* bAllowRemoteAdmin=True. Note also the list of Unrealscript Console Commands... these and *only* these will work for remote administration. To be frank the list is darn short and I really miss a *lot* of powerful admin commands... hmpf... another point Epic should fix. I'd like to point out the few commands that are of interest: Say talk to other players, and Switchlevel to change map. *All* other commands I would consider cheating made possible for the admin... I hope Epic did this right like id did with Quake II, that cheating if at all possible, then for all players... very weird... With these preparations, you can administer your server by logging in as a player and using the administrator password using the following URL syntax: myservername.com?name=MyName?password=MyPasswordTo connect to AEon's Unreal Server as Admin, type from your local copy of Unreal the following console command: open 131.220.96.124?name=AEon?password=passwrdI will have to do some testing on this sometime soon... I find the name= part of the login especially weird, since I am not certain at all where to edit the login name, and if more than one name will work... hmpf
Client Downloading of Files "When clients enter a 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 will immediately try 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 <- especially interesting) *.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." ... Source: Planet Unreal Hmmm... all this makes me wonder a bit... but the auto file download does seem to work... and that before it worked in Quake II ;)... you should not forget though that a download from an Unreal server can *never* be as fast as FTP download (and if for some reason it is, you yeah you ;) are severely sucking up bandwidth)... so it's still a good idea to check out the site's WEB. Saving everything in non-readable files is a bit strange... if you play on my server and download a custom map, you won't be able to do a practice match in that level, for you simply won't be able to find/read the file. We will see how this works...
|