Advanced commands

Incoming! - efficient and valuable information in the middle of a match

When playing a FPS, time is of the essence. You have to be able to act and react in a matter of seconds...fractions of seconds even. Getting the right mindset for this is one thing, but you have to be able to move your fingers to the right buttons just as fast. Luckily, computer gamers have an entire keyboard at our disposal, from which all buttons can be bound to specific actions.
If there was one best key setup, then my job here would be easy: I would post this setup and tell everyone to get used to it. Unfortunately, things aren't that easy. Some of us can handle a separate button for each weapon and be able to draw exactly the right tool for the job whenever they want, others prefer to stick with a 'selectbestweapon' bind or even the "nextweapon/previous weapon" from the mousewheel. Some use WASD as their buttons for moving around, others swear by ESDF, RDFG or even use buttons that aren't shaped in cross-pattern. I even know a good player who claims he still plays with his arrow keys.

All in all, key setup is a matter of taste. Changing your binds takes time to get used to and a change is not always made for the better. Observe yourself while playing: if you're constantly fumbling to get the right weapon, you should add some binds. Or suppose you see an enemy run off with the flag. By the time you typed 'Hey, I just saw the enemy flag carrier passing by here. And 'here' is on the left side, at the flak cannon' that flag carrier will be gone... and you will probably be dead because someone couldn't resist type killing. You can bind these events to buttons as well, so you won't lose much time by explaining stuff.
And there are many more examples that could help you in some situations where it's either helpfull or at leastconvenient.

You shouldn't bind yourself a whole new key setup at once. Take it one step at a time, to allow yourself to properly remember which button gives which effect. Try to group similar buttons together for easier remembering. And finally: keep your most important keys (like weapon switching and -throwing) close by, and put the taunts and game setting-changing buttons further away.

There are 4 ways to edit your keys:

All methods store their data in \System\user.ini. This is also the reason why the first method of binding is explained here: if you don't know the name of a button, you can still use the first method to bind this key to a temporary action (like TurnLeft or turnRight). By opening user.ini after setting these binds, you can easily search for this action and replace it with the bind you had in mind for this one. you know how to bind stuff to keys, let's find out what possibilities you have in binding. I'll illustrate each possibility with an example from my own user.ini file. If you want, you can even download my entire user.ini file to examine my settings. But before we get started, take a look at the notes:

Advanced buttons

Selecting the right weapon: there are 3 commands that lets you switch between weapons: switchweapon <weapon number>, getweapon <weapon class> and pipedswitchweapon <weapon number>. These methods differ as follows

Multiple actions bound to one button: you achieve this by using the '|'-symbol to separate each command.
Example: Use | SwitchWeapon 10. This is a perfect combination: ONS, vCTF and AS are played without translocator, BR and CTF without vehicles. The only time this action can cause a problem is in assault, ir you want to exit a vehicle at the time an objective is completed; it'll also transport you straight to the new respawn spot (SwitchWeapon 10 | use prevents you from entering a vehicle at the same time the objective is completed).

Example: getweapon XWeapons.RocketLauncher | PipedSwitchWeapon 7. 7 is the combination flak cannon/grenade launcher, so what will happen with this bind if you have two or more of these weapons? This bind is set up to have the rocket launcher as a priority, so if you have it on you, you'll switch to that. Pressing the button again (or pressing it for the first time if you don't have the RL and ammo for it) activates the pipedswitch that will give you weapon nr. 7. Which weapon this is depends on whichever has the highest priority. Pressing the button again will try to select the RL again. If this fails (no RL or no ammo for it), the pipedswitch is activated again, thus giving you the lower priority weapon.
This is how the two commands interact with each other. For this example, I'll describe the possible weapon cycling scenario's:
-one weapon: bind switches to this weapon
-RL+flak: cycles RL, flak, RL, flak, ...
-RL+grenades: cycles RL, grenades, RL, grenades, ...
-flak+grenades: cycles <highest priority weapon>, <lowest prioriy weapon>, <highest priority weapon>, ...
-RL+grenades+flak: cycles RL, <highest priority weapon>, RL, <highest priority weapon>, ...

Example: getweapon Onslaught.ONSAVRiL | switchtolastweapon this continuously switches between the AVRiL and your last weapon.

Example: SwitchToBestWeapon | PipedSwitchWeapon 8 | PipedSwitchWeapon 7 | PipedSwitchWeapon 4 | PipedSwitchWeapon 9 | PipedSwitchWeapon 3 | PipedSwitchWeapon 6 | PipedSwitchWeapon 5. This is a long one, yet it's purpose is simple. The first command switches you to your highest priority weapon. Since the pipedswitch will only trigger once, you can see the entire rest of the command as 'select the best weapon that isn't the highest priority weapon'. So in short, this command lets you cycle between your best weapon and your second best weapon.
If you want to use this command, make sure you put the entire thing in one line or it will screw up. Oh, and change the numbers to fit your personal priority settings (you can leave out 'pipedswitchweapon 0' usually don't have enough superweapons to add it in)

Change name and character: you change your display name with the 'setname <name>' command (only the first 20 characters are used for a name). If you know the names of the characters, you can change these with the 'changecharacter <>' command. Note that you won't change until your next respawn. These commands assume that the rest of the command line is the parameter, so don't put any other commands after them.
Example: setname [Ci-t]Golden_Dragon changes the current name to [Ci-t]Golden_Dragon.
Example: changecharacter Motig changes your skin to Motig, next time you respawn.

Actions bound to the release of a button: this is done by use of the 'onrelease' keyword
Example: getweapon xweapons.shieldgun | onrelease suicide. There are quite some occasions in which staying alive hurts your team more than committing suicide (eg. when you should hurry back to the base, or when you can save a couple seconds while falling in a ravine), so you really should have a key for this one.
This command allows for a suicide that doesn't give your opponents any weapons if you hold the button down for a second. However: most of the time, you'll simply push the button to suicide.
Example: SwitchWeapon 2 | OnRelease ThrowWeapon | OnRelease SwitchToLastWeapon. Many consider the assault rifle too useless to keep around. So if you don't throw it away straight from the start, you can do this on another occasion. Note that you'll have to keep the button pressed until the AR is actually selected.

FOV & behindview: Field Of View is the angle you see in front of you (between 1 and 170). Normally, this is set somewhere at 90-100, but you can set these on-the-fly as well (at least in off-line practice). Low FPS gives a 'zoom'-effect because your view becomes limited to what is directly in front of you. High FOV shows more terrain at once, which makes focussing somewhat harder.
Behindview is the ability to see yourself from behind (wow...who would have guessed that?). Though not very convenient, it allows for the following 'cheat':
Example: behindview 1 | fov 150 | onrelease behindview 0 | onrelease fov 100; wondering if an opponent is waiting for you around the corner? Just press this button to do a quick check.
Note that in online games, the FOV is fixed to a certain number, to prevent this kind of exploiting.

No need to hold your buttons: the command 'toggle' will allow you to set certain actions to keep going until the button is pressed again (even if you are shot inbetween).
Update: This command doesn't seem to work when entered at the command prompt, so you'll have to bind it to a key
toggle brun: makes your character walk/run
toggle bduck: keeps your character in a crouched position
toggle bfire or toggle baltfire: starts a spamfest

Executing external commands: If you promise not to use this command to mindlessly spam the chat box with text, then I'll explain to you how the 'exec <file>' function works. You do? Well then...this command searches for a file in the \System subfolder of UT2004 and tries to evaluate all commands within that file.
Example: set input z exec graphic1.txt (contents of graphic1.txt). This will show a big 'LOL' on might be somewhat disfigured, but UT2004 chat wasn't designed for art, and my ASCII drawing skills are close to zero.

Changing any setting: practically any setting in the game that is stored in UT2004.ini or user.ini can be altered with a command. The syntax for this is 'set <class> <variable> <value>'.

To properly use this option, you need to know the exact name of where the setting is stored, and what the possible valid values are.
Note: entering invalid settings withing .ini files can cause problems. Always keep a backup of the file, before changing stuff.

Example: there's a bug in the 'togglescreenshotmode' command (this command allows you to remove/bring back your HUD): once you bring back your HUD, your weapon hand is set to 'right hand'. You could whine against Epic to fix this, or you could do it yourself: by using a command that not only contains the togglescreenshot command, but also sets your weapon hand to 'hidden'.
The first step is to find out where this 'weapon hand' line is stored. After some search through user.ini and UT2004.ini, you will end up with 2 possibilities: Engine.PlayerController Handedness and Engine.Controller Handedness. To know which one affects the player hand, you should note both settings, enter the game and then change the weapon hand. Go back to user.ini and check which setting is changed: this is Engine.PlayerController Handedness.
Noting the settings also gives a better idea of the valid values of a setting. As you can find out from altering the setting ingame, this is done by a numbering system: -1 corresponds to 'weapon hand=left', 0 is 'weapon hand=center', 1 is 'weapon hand=right' and 2 is 'weapon hand=hidden'. All other settings are invalid, and can cause your computer to explode for all I know ;-)
In the end, this is the complete command for a 'fixed' togglescreenshot command: togglescreenshotmode | set Engine.PlayerController Handedness 2
UPDATE: ToggleScreenshotMode|OnRelease shot|OnRelease ToggleScreenshotMode|OnRelease showgun is a better way to take screenshots.

Speeches and taunts: in case you're blind and deaf: all characters have some ways to curse, order other people around, dance and play with different vehicle horns. If you haven't taken a look at the INA forums page, I suggest you do so now. A taunt list is also available here.

Cheats: most of the players find pleasure in the training ability of the game, like increasing their skills, improving their aim or predicting other players movements. No matter how great a game is, there are some times you don't feel like playing the game to win. Some start up ONS-Tricky and try to top their best daredevil score. Others find comfort in irritating other players, and (try to) use aimbots to ruin games, or accuse better players of using one. And since Epic understands this kind of behaviour as well, they added cheats that you can use to take revenge on those damn cheating Godlike bots!
Example: god | loaded | allammo | summon XWeapons.redeemer | set Engine.PlayerController bAimingHelp True: makes you invincible, gets you all weapons and ammo, spawns an extra redeemer and puts on aiming help (don't forget to set aiming help back off if you're going back to 'regular' bot matches).

Mod & mutator keys: mods and mutators often come with their own commands to change things. The best ones extend the Settings - Input - Configure controls menu, while others just claim whatever key is available (eg. Team Arena Master). It's not hard to use these commands in advanced commands, provided you know what they are (refer to the readme, or bind it to an unused key and then check the user.ini file to what command it's bound).
Example: MyMenu | menu3spn "MyMenu" is the menu from UTComp, and "menu3spn" is the Team Arena Master menu. These two mods/mutators aren't compatible with each other, so no server will have both of them running on the server. As a result, there's no reason to use two different keys to get either menu.


Aliasses are groups of actions that are granted a certain name. They are closely related to advanced buttons, but their name allows them to be used in more complex tasks. Keep in mind that aliasses are limited: there are only 40 aliasses available, and 32 are already used by default. It is strongly advised not to touch these.

Aliasses can be found in user.ini, in the Engine.Input-class. They have a certain syntax, and you should follow this one exactly, or your alias won't do anything:
Aliases[<number>]=(Command="<line of commands>",Alias="<name of alias>")

Note that the double quotation marks for are mandatory: they mark the beginning and ending of the name and the list of commands. Your alias simply won't work without it. To use an alias, you can simply bind a key to the name.
I'm just going to copy-paste my examples for my illustrations, to prevent the syntax of becoming too complex. Make sure you change the number and/or button references to use it properly.

Switching a command: suppose you have a setting you like to turn on or off, depending on a given situation. You could of course bind two buttons for this (one with the 'on' command, the other with the 'off' one), but why do this if you have aliasses? If you create 2 aliasses and include a command for each one to bind a button to change to the other one, you can use that button to cycle between these actions.

That's about all there is to know about key binding as it applies in UT2004. If you wish to know more on editing your .ini files, I suggest you visit UT2004 binding/tweaking guide or check the wiki on this subject. Oh, and this INA thread also contains one helluvalotof information

I'd like to end this guide with a note: good keybinds just makes gaming more comfortable, they don't win you the game. There are more ideas that can be 'convenient' to have close by (eg: a bind that pulls up the shieldgun and sets up the shield, and switches back to the previous weapon once released), but I choose not to describe these for a good reason: simplicity. Binding a key is one thing, but learning to instinctively press it while you're under fire is something completely different. And it takes about the same time to learn how to press and hold that button as it would have taken you to switch to your shieldgun with one button, alt-fire with a second, and finish up with your weapon-of-choice key...But the second solution allows for a faster shield jumps as well.

Top Next