Some Lesser-Known UT2004 Tweaks

By Raffi_B

Introduction

This set of lesser-known tweaks is mainly designed to cater to advanced players. If a lot of what's being discussed here seems confusing or if you are looking for some more general tweaks, check out these links first:

Now on to the tweaks...



Removing the 85-FPS Cap

First, be aware that the client-side framerate is capped for a reason: to reduce bandwidth to and from your computer. The higher your framerate, the more times per second the game is updating your screen, which means more data. That said, only do this tweak if your internet connection is pretty solid. It will hurt you more than benefit you to enable this on something like a 32-man ONS pub, while it is great for something like 1on1 DM.

Alright, now on to the tweak. The first step is to open up your UT2004.ini and go to the section titled [Engine.LevelInfo]. Under this section, there should be a field called MaxClientFrameRate (if there is more than one entry of this field, feel free to delete all but one of them). This field controls the maximum online FPS. Feel free to set this as high as you want (set it to 0 for no limit) but keep in mind that higher framerate = more bandwidth. I have mine set at 170, which is double the regular framerate.

However, this is not enough. The max framerate is also tied to your client-side netspeed (if you don't believe me, try setting it to the minimum of 2600, then watching your framerate). As I stated above, since a higher framerate will impact the amount of data through your connection, a higher netspeed is required. A lot of topics on this matter say to simply set your netspeed to 10001. This is not a good idea. Why? Netspeed is the limit beyond which unnecessary (and sometimes necessary, in extreme cases) data will be dropped. Setting your netspeed to 10001 will break the 85-fps limit, but unfortunately since you are sending far more data through your connection, a lot of packets will be dropped. Therefore, the ideal netspeed for us to use is 20000, but the game caps netspeed at 15000, so let's stick with that.

So how do we set the netspeed? Open up your User.ini and go to the section titled [Engine.Player]. Under this section, there should be a field titled ConfiguredInternetSpeed. Set this to 15000. So are we done? Not quite... for some reason, after a map change your netspeed is reset to 10000. To get around this, make a bind that simply sets the netspeed to 15000. The easiest way to accomplish this is to bind it to your "gl hf" key or your Ready-Up key, or something else you will hit at the beginning of every game. The command to change netspeed is simply "netspeed 15000" (no quotation marks). For example, my bind looks like this:

NumPad2=say gl hf :] | netspeed 15000

The pipe character denotes multiple commands per bind.

Just remember to hit the bind every time a new map loads, and you'll be enjoying high FPS!

Notes:


Admin Commands Without Restarting Map

There are a few commands that a server admin can perform to alter a server's configuration that take effect immediately. Just log in as Server Admin then type the command in the console. The commands are: Props to Fox for giving me the commands, and Zyphen for testing.



Making .INI Changes From the Console

This tweak is perfect for LANs where you are forbidden to make any changes not accessible in the game. The command is:

set ini:[path] [property] [value]

Examples: It is kind of confusing to perform this command. Not much is known about it, but so far it seems like every command has to originate through Engine, then go through chains of devices and managers to get to the desired property. If you are familiar with computer science, the syntax should be familiar since it resembles accessing fields from objects. Each entry in a section of the .ini refers to a field of an object. For example, if you look in the UT2004.ini, under [Engine.Engine] there is a field called ViewPortManager. When you access this field, it goes to the section that is currently set to the ViewPortManager (which will be WinDrv.WindowsClient in most cases).

To put it more conceptually, you essentially access successively more specific parts of the game until you reach the one that contains the field you want. To make an analogy, think of a house. Let's say you want to turn the fan to half speed in your bedroom. The UT2004-style command would be something like "set ini:House.Bedroom.FanManager FanSpeed 0.5". It's a rather lame comparison, but hopefully the chaining command structure is more visible...

It might take a while to figure out the chain of field access that has to occur, so if you figure out the needed commands ahead of time and paste them into a text file, you'll have them ready for LANs. If you paste each command into a text file and put one command per line, you can execute the text file and automatically perform all of the commands in the file. This is done simply by typing "exec [filename]" in the console. Keep in mind that it's all done with console commands, not .INI entries, so "set input" is necessary to make new binds and such.

Quick note: the "get ini:" command also exists. An example command would be:

get ini:Engine.Engine.ViewportManager Decals

The only syntactical difference from the "set ini:" command is that there is no value to set, since you are only accessing the value stored in the field.



Diverting OpenAL Audio to your Sound Card

This tweak diverts all audio processing to your sound card, which might result in increased audio quality and better performance. Try it for yourself and see. Some people might not notice any difference, in which case audio is already being fully processed by your sound card.
  1. Open up the settings menu in-game. Go to the "Audio" tab and uncheck "Use System Driver". Close the game.
  2. Open up your UT2004.ini, scroll down to [ALAudio.ALAudioSubsystem], and make sure UseDefaultDriver is set to false.
  3. In your UT2004/System directory, rename DefOpenAL32.dll to DefOpenAL32-old.dll
If necessary, download and install the latest version of OpenAL.

Props to Sofaking for pointing this tweak out to me.



Changing Volume of Minigun, Link Shaft, Vehicles

This tweak allows you to alter the volume of the minigun fire sound, the link shaft fire sound, and vehicle ambient sounds (like the manta hovering and all that). Lowering the volume can be useful for TDM, 1v1, CTF, etc. but would probably be more detrimental in ONS.

All three sounds are controlled by the same field, so you have to alter them all at the same time. Setting the value to 0 will remove the sounds entirely, while setting the value to more than 1 will make them a lot louder (might be useful in ONS to hear mantas sneaking up behind you).

To alter this value, open up your User.ini and go to the [Engine.Pawn] section. In this section there should be a field called AmbientSoundScaling (if it's not there, add it). Again, this value is a scaling value, meaning that 0 removes the sounds, 0.5 plays them at half volume, and 1.0 plays them at regular volume. Anything in between is acceptable as well.



Changing Death Messages, Weapon Names, HUD Text, etc.

These tweaks will allow you to configure your UT2004 HUD exactly how you like it. I like having the most information conveyed to me in the least amount of space, so most of my config is done with space in mind. The three main files you need to edit are XWeapons.int, XPickups.int, and XGame.int (all located in UT2004/System). Before you go off editing these, make a backup so you have something to go back to in case it screws up.

Most of the tweaks take place in XWeapons.int. The first is the death messages. Each weapon has their own death message configuration. %k is the killer, and %o is the victim. For those of you who are like me and like the idea of the most information in the least amount of space, the way to go for death messages is "[Killer] | [Weapon] | [Victim]" (for example, 'Raffi_B | Rockets | Gorge'). In XWeapons.int you can also configure the weapon name that will appear on your HUD when you select a weapon, as well as the pickup messages that appear when you pick up a weapon or ammo.

In XPickups.int you can alter the messages that appear when you pick up adrenaline, health, shields, and the double damage. When altering the messages here keep in mind that the value of the pickup is placed directly after the message you set (so if you put "Health +" for the health pack, it will appear as "Health +25" in-game when you pick one up).

In XGame.int you can configure the messages for rewards. Killing Spree, Mega Kill, Head Shot, Combo Whore, etc. are all configurable in this file. You can also alter the message that appears in the middle of the screen when you kill someone, as well as the messages for a few game events.

If you don't want to start editing from scratch, here are the edited files that I use. Remember to back up your own files before editing. Also, after you are done editing, make a backup of the edited version (to make for two backups in all). When you install a UT2004 patch, it overwrites the .int files to their defaults. If you back up your edited versions you can simply revert to those versions after patching.

There are also a lot of other tweaks scattered around the other .int files, so if you didn't find something in one of those three just peek around the others.



And that about covers it. GL HF

-Raffi_B