Keybinding Tutorial

  • Two Factor Authentication is now available on BeyondUnreal Forums. To configure it, visit your Profile and look for the "Two Step Verification" option on the left side. We can send codes via email (may be slower) or you can set up any TOTP Authenticator app on your phone (Authy, Google Authenticator, etc) to deliver codes. It is highly recommended that you configure this to keep your account safe.

Sos_your_face

how you become manta?
Dec 8, 2008
76
0
0
S. Florida
www.clan-bge.com
0. Preamble
Bindings always work for me. Read this entire thing and follow every step and they will work for you too. Don't ask me any questions that are answered in the tutorial because you're too lazy to read and follow every step.

Enjoy!

1. Backup
We'll be altering the UTInput.ini file. Make a backup just in case. Just copy and paste the file in the same spot and it will name the new one "Copy of UTInput.ini".

2. Unbind
First off, you MUST unbind the keys you want to use. All you have to do is open UT3. Open the Settings-->Input menu. Click "Keys" at the bottom of the screen. Set the "Fire" function to the key you wish to use, and then set "Fire" back to the left mouse button (LMB). Voila, the key is now unbound.

3. Bind
Open C:\Documents and Settings\*YourName*\My Documents\My Games\Unreal Tournament 3\UTGame\Config\UTInput.ini.

You must now make a binding for what you want to use. You make the changes in the section marked [Engine.PlayerInput]. There is a section marked [UTGame.UTPlayerInput] with all the same lines, but I'm not totally sure what it's for, and changes to it don't seem to do anything.

Format:
Bindings=(Name="X",Command="Y")
where X is the key you wish to use and Y is the command.

Multiple commands can be piped in, such as change to a weapon plus change mouse sensitivity.

Format:
Bindings=(Name="X",Command="Y | Z")
where X is the key you wish to use, Y is a command and Z is a command. There is a space before and after the pipe "|".

A command is what you enter in the console in game, from "Say" to "GOD" to "Screenshot".

If the key you wish to use isn't already on the list, you can add it. Letters are represented by the capital of said letter, e.g. "K". F keys are represented as such "F8" "F9". Symbols and numbers are represented by the written name of the key, e.g. "Minus" "Comma" "SpaceBar" "seven" "eight". The numpad is represented as such: "NumPadZero" "NumPadFive" etc.

When binding a key for the first time I recommend binding a "Say" command because it's simple to test. Once you are sure it's working, you can use any command possible that you can enter in the console while in game.

4. Example
I'm going to bind my "J" key to say "It works!" I made a backup already, so I open UT3 and in the Settings-->Input-->Keys menu I set my "Fire" function to "J". Then I set "Fire" back to LMB. My "J" key is now unbound.

I now open my UTInput.ini file found in My Documents. At the top of the file under [Engine.PlayerInput] I find Bindings=(Name="J",Command="Taunt 1"). Unbinding a key does not clear it's definition in this list for some reason, that's why it's still set to "Taunt 1".
I change the entry to this:
Bindings=(Name="J",Command="Say It works!")
Now I open UT3 and start an Instant Action match and test that bad boy out.

5. What else can I do?
"Say" and "TeamSay" macros are just the beginning. There are many things that can be done. Most popular would be binding weapons to keys.
Bindings=(Name="X",Command="GBA_SwitchWeapon1") where 1 can be any number 0-9 representing each weapon respectively.

You can bind ThrowWeapon, a command that is not in the game by default. WeaponsStay must be off for it to work:
Bindings=(Name="X",Command="ThrowWeapon | teamsay Weapon Dropped")

You can instantly connect to a favorite server:
Bindings=(Name="X",Command="Open xx.xx.xxx.xxx") where x is the IP.

You can bind mouse sensitivity:
Bindings=(Name="X",Command="setsensitivity 20.0") where 20.0 is actually 2000 in the in game settings. Whatever setting you want it to be in game, divide that number by 100 and use that.

You can bind field of view:
Bindings=(Name="X",Command="FOV 100") where 100 can be any number 80-100 which are the limits the game allows.

You can bind suicide:
Bindings=(Name="X",Command="suicide")

You can combine multiple commands as explained above. For example:
Bindings=(Name="nine",Command="GBA_SwitchWeapon9 | FOV 80 | setsensitivity 7.5") Will change to sniper, zoom my FOV and set my sensitivity to 750.
Bindings=(Name="G",Command="GBA_SwitchToBestWeapon | FOV 100 | setsensitivity 15.0") will change to my best weapon, return to widescreen FOV and return my sensitivity to 1500.
The purpose of this binding is to increase my accuracy when sniping at a distance and when someone approaches me I instantly bust out a close range weapon and return my controls and view to normal.

You can bind a key to alternate between two weapons. In this example it will rotate between Flak and Rockets.
Bindings=(Name="PipeC",Command="switchweapon 8 | switchweapon 7 | setbind o PipeD")
Bindings=(Name="PipeD",Command="switchweapon 7 | switchweapon 8 | setbind o PipeC")
Bindings=(Name="o",Command="PipeC")
"o" is initially "PipeC" which has two switch weapon commands. One will take priority if you have both weapons, but if you only have one it will bring that one up. Then it changes "o" to "PipeD" which alternates the priority of the weapons, so that if you have both you will draw the other weapon. Then "o" is changed back to "PipeC".
"PipeC" and "PipeD" are names than are chosen by the user, and can be changed to anything not already in use. e.g. if you wanted to pipe bind another key then you could make them "PipeA" and "PipeB".

You can bind a hammer jump: (thanks go to Mr. Evil)
Bindings=(Name="StartHammer",Command="ToggleMelee | StartFire")
Bindings=(Name="StopHammer",Command="Jump | OnRelease StopFire | OnRelease ToggleMelee")
Bindings=(Name="key1",Command="StartHammer")
Bindings=(Name="key2",Command="StopHammer")

6. Conclusion
That's all I can think of right now. If someone has something they want to do, but aren't too savvy with this kind of thing, ask me and I'll see if I can write the lines for you.
 
Last edited:

Tweakd

Multiplayer notepad ftw!
Feb 20, 2008
327
0
0
Scotland
Nice of you to write that up. I'm sure a few people will find it useful.

You should add this one though as it's essential in teamgames.

Bindings=(Name="LeftAlt",Command="ThrowWeapon | teamsay Weapon Dropped",Control=False,Shift=False,Alt=False)

(I think it only works with weaponstay off but i cant remember)
 

Slyrr77

New Member
Apr 25, 2004
226
0
0
Hey there - I was wondering if you could give a list of the proper keybind commands to enter into the INI file for all the KEYPAD numbers?

I'm trying to set the key pad numbers to order the BOTS around without having to go through the menu - is that possible?

I'd like to have it so that Keypad 7 orders Bot1 to attack, keypad 8 orders bot 2, and so on. And to have Keypad numbers 4-6 to order bots 1, 2 or 3 respectively to 'Hold Position'; while keypad numbers 1-3 will order bots 1, 2 or 3 to generically 'defend'.

I'd also like to assign the keyboard PLUS to order ALL bots to attack, the keyboard MINUS to order them all to defend,, and keypad STAR to order them all to freelance.

I'd experiment on my own, but I don't know all the commands, nor the key names. There's no list for what they are in UT3 that I can find...

In UT2004 and UT1 it was easy, but all the commands, binds and key names seem to have been changed in UT3. Why they did that I have no idea...

Any help is appreciated...
 

Slyrr77

New Member
Apr 25, 2004
226
0
0
Alas - that's hard news. Especially since the bots are totally ignoring my VOICE commands and any commands I issue from the command menu! They always totally ignore me, even though they say "ROGER" at every command - is there any reason why that would be....?
 

Slyrr77

New Member
Apr 25, 2004
226
0
0
I've been playing the campaign on 'Normal' skill level (where the menu insults you by saying 'don't feel like taking risks today?'). Above that is 'adept' and 'insane'. For the SP campaign, I presume there's no way to increase or decrease the intel level of the bots like the SEVEN different settings there are in 'instant action' games.

But whether in SP campaign, or in an 'instant action' match, the bots NEVER obey my commands, either by voice or from the command menu. It's frustrating as heck. I'll order one to HOLD POSITION at a node, and it says 'ROGER', but he just keeps doing his own thing and never comes to the point I indicate.

I lose nearly every WAR map in the SP campaign because of this at least 10 times before finally lucking out and winning - and it's mostly because my bots won't follow orders.... I had hoped that binding the keys as I described above might fix it....
 

Truzaank

New Member
Apr 5, 2005
40
0
0
nice thread. finally got me making sense of all the key-binding-hoopla. but i won't be using it. Just plain vanilla until I feel I'm being limited :p
 

Sos_your_face

how you become manta?
Dec 8, 2008
76
0
0
S. Florida
www.clan-bge.com
I'm glad you found it informative. I don't use too many keybinds either, but chat binds are very useful and I do use them. For example, my favorite two binds are "Orb incoming!" and "Get out of the bender, nub!" The second one I use all the time as people drive off in my Bender while I'm sniping.
 

zazuza

New Member
Feb 10, 2023
1
0
1
36
Hey there - I was wondering if you could give a list of the proper keybind commands to enter into the INI file for all the KEYPAD numbers?

I'm trying to set the key pad numbers to order the BOTS around without having to go through the menu - is that possible?

I'd like to have it so that Keypad 7 orders Bot1 to attack, keypad 8 orders bot 2, and so on. And to have Keypad numbers 4-6 to order bots 1, 2 or 3 respectively to 'Hold Position'; while keypad numbers 1-3 will order bots 1, 2 or 3 to generically 'defend'.

I'd also like to assign the keyboard PLUS to order ALL bots to attack, the keyboard MINUS to order them all to defend,, and keypad STAR to order them all to freelance.

I'd experiment on my own, but I don't know all the commands, nor the key names. There's no list for what they are in UT3 that I can find...

In UT2004 and UT1 it was easy, but all the commands, binds and key names seem to have been changed in UT3. Why they did that I have no idea...

Any help is appreciated...
It is possible to set up these keybinds, I didnt test all of them but the ones I tried worked!
Text copied from a forum post here: https://forums.epicgames.com/unreal...c-keybinding-tutorial-bind-throw-weapon/page8
"""
taunts, status, and orders

Thank you for the informative thread. Here are commands which can be bound to keys for Orders,Taunts, and Status.

Orders
Using a 255 value of the PlayerID with these orders is the same as selecting "All" from the command panel. Works with bots!

Attack
Command= "playemote OrderA 255"
Defend
Command= "playemote OrderB 255"
Hold
Command= "playemote OrderC 255"
Follow
Command= "playemote OrderD 255"
Freelance
Command= "playemote OrderE 255"
DropFlag
Command= "playemote OrderF 255"

Taunts
These are not specific taunts, but they are the specific sets of taunts. I am using a playerID of 0. I am not sure that is correct, but it seemed to test properly. The command console would not let me leave the playerID empty even for the emote groups which do not require player:

Command= "playemote TauntA 0"
Command= "playemote TauntB 0"
Command= "playemote TauntC 0"
Command= "playemote TauntD 0"
Command= "playemote TauntE 0"
Command= "playemote TauntF 0"

Alternatively, you can add just a single extra taunt bind another way using:
Command="taunt 0"
The game is written with a case statement which includes taunts A,B and C.
The default keybinds for Taunt 1 and 2 are of Taunt B and C, respectively. Taunt D,E, and F are missing from the case statement, so it seems you must bind them with the playemote function, instead.

Status
Good Stuff. Ack=Acknowledge

Command= "playemote Encouragement 0"
Command= "playemote Ack 0"
Command= "playemote InPosition 0"
Command= "playemote UnderAttack 0"
Command= "playemote AreaSecure 0"
"""