Hello There, Guest!

24-03-2011, 09:34 PM | Post: #1
Offline St0mpy 
Ok im bored and since we're stuck with the rough old controls.con way of binding keys again heres a little guide to pass on what ive learned about making the game fit the controller.

After several years of battlefield releases there are problems in key setup still, mainly 2 things wont always bind to the same key. The design is suck. Playing a fast paced shooter I cant be fumbling about doing an impression of bodybag filling, I have a set area, or a controller I use most. Why not have reload/vehicle smoke/air chaff on the same key? They dont clash ingame but the settings throw a fit when we try. If youve been in this position then this is for you!

1- BFPFF Options Panel
2- Opening controls.con
3- The Blocks
4- Advanced Bindings
5- Idiots Guide to making a Spotted button
6 - Mousewheel Spotted button
7 - Joystick POV hat as mouselook
8- General Settings Suggestions

BFPFF Options Panel

First, set your normal keys up in the game options panel. This is as simple as clicking onto the setting to change then pressing the key/button or axis you want to use. For axis on controllers whatever direction you press first will match with the direction you clicked. This also works with mouse scrolls. Any buttons can be assigned just like keys here too.

Most of your key changes, buttons and axis will work in game panel, we only mess about with the controls file in difficult situations. REMEMBER your joystick numbering on your stick probably starts at 1, and EA start at 0, so button 1 written on your joystick may be button 0 in options and in controls.con

BINDING AIR WEAPONS: The last update made the aircraft weapons panel confusing and wrong. Until they fix them heres an explanation of the settings:

Air Options ----- Action Ingame
Missiles -------- Fires a missile or drops the bombs, depending on which you have toggled active
Gun -------------- Fires the gun in any mode
Bombs --------- Toggles between Missiles mode and Bomb mode


Opening controls.con

BFPFF is similar to BF2 but theyve cut it to one key per command. Fortunately the old 2 key system is there allowing us a little help when it comes to using custom controllers and not losing your main keyboard settings. Usually making an edit is as simple as closing out of the game (ESSENTIAL), opening controls.con, locating the part we want to change and entering the right button or key.

If you have already set most of your keys its a good idea to backup controls.con, but you must move the backup out of the folder. Otherwise if you mess something up, press revert to default and your settings are back to the start

Ok lets open it, open the (start menu) documents and settings folder, or just documents on later windows. Inside the Battlefield Play4Free folder is several .con files. We just want controls.con. Right click choose open with and send it to notepad or your favourite text editor. Enable 'always use this..' if you intend to come back and edit it again. It wont affect the game.



The Blocks
Inside youll see 7 blocks of commands with nice clear ControlMap titles. The 4 sections of Land (=vehicles), Air, Helo and Sea are straightforward, the infantry commands are mixed between the top and the last (default) sections and theres a large block called defaultGameControlMap which is a combination of commands that should be in the default section and some left over game cvars for some common keyboard keys at the top.

Each block has several lines in them, ill put the first one here from the first infantry block.

Code:
ControlMap.addKeysToAxisMapping c_PIYaw IDFKeyboard IDKey_D IDKey_A 0

This is a hard one to start. Whats happening here is the game reads the line and its asking to add some keys as an axis for yawing (no that aint what you do after youve been down the pub, that means moving from side to side) and then we give 2 keys from the keyboard, D and A to the axis called yaw. Now any fps gamer will tell you what movement pressing A or D gets you. Make sense?

Lets break a section of that first line in half.
.addKeys | ToAxisMapping
On the left is our hardware we want to control. There are 3 things we can .add on the left which cover all controllers from keyboard to ps or xbox

Key(s) - Key is any key (or pair of keys) on a keyboard.
Button(s) - Button can be any mouse, joy or controller button.
Axis - Axis could be a joystick forward back, or an xbox/ps thumb pov forward back

On the right we tell the game which kind of control we want it as, trigger or axis. In the full line example we offered 2 keys A,D for the game axis table. We could offer a joy axis if we wanted (which would make the line addAxisToAxisMapping) and run around on the ground with a joystick. We dont have to type these bits by hand usually, its just handy to know as we read down the file.

Line 2 is roughly the same, its the W and S (forward or back) and its internal command is the throttle axis(for walking and running).


Heres a change, line 3 we have a button.

Code:
ControlMap.addButtonToTriggerMapping c_PIFire IDFMouse IDButton_0 0 0

Ok controlmap, add me a button in to make the fire command happen, make it my mouse_0 button. Nice.

Another?

Code:
ControlMap.addKeyToTriggerMapping c_PIAction IDFKeyboard IDKey_Space 10000 0

Hmm ok we can see its saying add the space bar key for a command called action, fortunately we can look at the game itself to see spacebar is jump/parachute, so we know whats going on there now. We'll come back to the numbers on the end in a bit.


Stepping out of the default set, heres a controller button i use for reload, this is how it turned out in the .con

Code:
ControlMap.addButtonToTriggerMapping c_PIReload IDFGameController_0 IDButton_15 10000 0

add a button to the trigger map for the command reload, using button 15 of game controller 0. See this is getting simple now yeah?


Lets go for broke, 2 lines, each individual but both for one thing.

Code:
ControlMap.addAxisToTriggerMapping c_PINextItem -1 IDFMouse IDAxis_2 0
ControlMap.addAxisToTriggerMapping -1 c_PIPrevItem IDFMouse IDAxis_2 0

As you should know by now this adds an axis as a trigger, which presents a problem as to which part of the axis (forward or back) goes in what direction, so with a sneaky addition of a - we can it tell which way to go Smile

Lastly, remember the digits at the end of the line, the second to last 10000 or 0 tells us if its a repeating key or one shot eg if firing was one shot youd have to press once for every bullet, or if alt weapon on the plane was repeating it would keep switching between bombs and missles really fast. Mostly the game wont let you change these. If its an axis the number is 0 for the default direction, or 1 to invert it.

The final 0 or 1 denotes primary or secondary key (see advanced).

Example

An example of multi binding to the same key: EG in my earlier example, binding countermeasure in both air panels and then smoke on vehicles to button_15 was ok, they set in the settings fine. (all 3 ended up as ControlMap.addButtonToTriggerMapping c_PIFlareFire IDFGameController_0 IDButton_15 0 0) but when it came to binding reload in the foot panel it conflicted. So I set reload to a spare button (button_10) in settings, then closed out, found button 10 in the .con and just changed it to 15 like below, saved and tried it. Bingo.

Code:
ControlMap.addButtonToTriggerMapping c_PIReload IDFGameController_0 IDButton_10 10000 0
to
ControlMap.addButtonToTriggerMapping c_PIReload IDFGameController_0 IDButton_15 10000 0


Advanced Bindings

Secondary Key: As mentioned before, the .con does support 2 keys for each command. The BFPFF team has chosen not to give us the full template, infact it looks very much a work in progress still, however we can still add secondary keys to the .con ourselves should we need one. Heres an example from my own .con

Code:
ControlMap.addKeyToTriggerMapping c_PIPositionSelect1 IDFKeyboard IDKey_F1 10000 0
ControlMap.addButtonToTriggerMapping c_PIPositionSelect1 IDFGameController_0 IDButton_0 10000 1

Now here we see c_PIPositionSelect1 has 2 commands with completely different uses bound. c_PIPositionSelect1 is the cvar for 'sit in seat 1' and here I bind it to key F1 as well as controller button 0. The second line I added. The only rule for adding a second line for a command is that you MUST change the very last digit to a 1. Otherwise just follow the rules above as if it was a single line.

Secondary Doubles:
Of course we can multibind secondary keys too, or secondaries to the first. EG the above second key on button 0 is the same button as I accelerate a land vehicle with as a primary axis.

Code:
ControlMap.addButtonsToAxisMapping c_PIThrottle IDFGameController_0 IDButton_0 IDButton_2 0

So pressing button 0 in a land vehicle, I start to drive forward, but also button 0 puts me in the F1 driver seat. Im usually already in it when driving and the F1 call goes silent, but if im in the gunners position in a jeep, i dont have to fumble for the F1 before pressing drive, i just drive.


Idiots Guide to making a Spotted button

One button spotted is the most popular advanced bind, it combines ok with your gesture button. I do mine more simply than some guides posted here, i think it makes more sense to leave default lines where possible and add in our extra bit. Im going to go ultra slow here for beginners, since most have probably done it already.

In steps, were going to set our new spotted key/button to a known game key temporarily, then look in controls.con and do some cut and pastes. It looks long, its just long winded, its easy really Smile

1) Fire up bfpff, go to the General section of the options panel and find Ingame Store at the bottom.
2) Mouse click to highlight it then press the key or button you want to use for spotted. Make sure you see the new button in the box there.
3) Close out bfpff completely, find, backup then open controls.con as shown in the blue section above

4) Find the section defaultGameControlMap and look for the last line with c_GIShowIngameStore in it. Thats our line we want.
5) Highlight all of this line and right click, cut, to take it into your clipboard.
6) In the middle of this same section is a line with c_GIOK, find it.
7) We need to keep these lines around here, but make a space for an extra line underneath that line.
8) With your cursor on the space paste in our line we took to clipboard.
9) Highlight just this bit, c_GIOK, press copy (not cut), find only the c_GIShowIngameStore bit and replace it pasting in c_GIOK instead.
10) Find the last digit on the line, 0, and change it to 1. You should end up with something like this if its a controller. This is for a Joystick button 10

Code:
ControlMap.addButtonToTriggerMapping c_GIOk IDFMouse IDButton_0 0 0
ControlMap.addButtonToTriggerMapping c_GIOk IDFGameController_0 IDButton_10 0 1

OR THIS (if its a keyboard key you chose (z here))

ControlMap.addButtonToTriggerMapping c_GIOk IDFMouse IDButton_0 0 0
ControlMap.addKeyToTriggerMapping c_GIOk IDFKeyboard IDKey_Z 0 1

Ok to the second part, much easier now.
11) Highlight the whole of your new line youve made and press copy.
12) Look again in the same section for a line containing c_GIRadioComm and like before, make a space for a line below it.
13) Paste in our line we just put in the clipboard two steps ago and then in this new line only change c_GIOk into c_GIRadioComm

You should end up with this:
Code:
ControlMap.addKeyToTriggerMapping c_GIRadioComm IDFKeyboard IDKey_Q 0 0
ControlMap.addButtonToTriggerMapping c_GIRadioComm IDFGameController_0 IDButton_10 0 1

OR THIS (if its a keyboard key you chose (z here))

ControlMap.addKeyToTriggerMapping c_GIRadioComm IDFKeyboard IDKey_Q 0 0
ControlMap.addKeyToTriggerMapping c_GIRadioComm IDFKeyboard IDKey_Z 0 1

14) Finally, fire up bfpff, go to the General section of the options panel and find Ingame Store at the bottom, highlight it and put O back in there.

Enjoy your spotting. Do it lots!


Mousewheel Spotted button

This works REALLY well but your team mates might get bored of the spam. Its a solution to the hit and miss spotting ingame.

WARNING. M95 Extended scope version relies on next/prev for the extended bit of the zoom. Moving next/prev will also move x-zoom.

1) in game options you MUST bind next and prev weapon to something out of the way or itll complain. I use + and - under the F keys. Then close out the game completely and open controls.con

2) Search in ControlMap.create defaultGameControlMap for this first line, then add the second line after it so the pair appears like this
Code:
ControlMap.addButtonToTriggerMapping c_GIOk IDFMouse IDButton_0 0 0
ControlMap.addAxisToTriggerMapping c_GIOk -1 IDFMouse IDAxis_2 1

3) and again search for this first line in the con, and add the second line after it so the pair appears like this
Code:
ControlMap.addKeyToTriggerMapping c_GIRadioComm IDFKeyboard IDKey_Q 0 0
ControlMap.addAxisToTriggerMapping c_GIRadioComm -1 IDFMouse IDAxis_2 1

Done. Scrolls the wrong way? move both -1s to the other side of the command eg c_Command -1 to -1 c_Command

And if someone crys about the spam, it wasnt me that told u lot Big Grin


Joystick POV hat as mouselook

Steps: Put left and right hat buttons as mouselook buttons and then add a line to use the same hat buttons on the mouselook axis. Idk what joystick you all have, im gonna show you my logitech 3d pro settings, just replace the hat numbers with your ones.

1) Make sure nothings bound to the hat in controls. For jets, in AirPlayerInputControlMap find the line with c_PIMouseLook in it, and replace it with these 2 lines.

Code:
ControlMap.addButtonToTriggerMapping c_PIMouseLook IDFGameController_0 IDButton_13 0 0
ControlMap.addButtonToTriggerMapping c_PIMouseLook IDFGameController_0 IDButton_15 0 1

1a) Helo pilots if you want to do it in HelicopterPlayerInputControlMap too you can.

2) in ControlMap.create defaultPlayerInputControlMap, find the line with c_PIMouseLookX in it, but this time leave the first line and add this after it as a second line

Code:
ControlMap.addButtonsToAxisMapping c_PIMouseLookX IDFGameController_0 IDButton_13 IDButton_15 1

Done. Just remember to change button 13 and 15 for whatever button numbers the game settings see your hat as. Yes there is a Y axis for looking up and down, you could map it to the up/down hat axis, but weve used our only 2 slots for activating mouselook for L/R hat buttons so it would be pointless. Only the workaround can use more than 2 slots per command.


General Settings Suggestions

If you want to bind a key that is already in use in the defaultplayer or defaultgame blocks then leave it as is and add a secondary line as shown above.

Its more helpful if you want eg a joystick button done, to set it to a different joy button in settings temporarily till you open controls.con and find it, that way you just change the number and not have to type out all the ControlMap.add.....blah blah stuff.

Use your wheel scroll for 3 or 5 weapons. You dont need to edit the .con to do this, but honestly changing weapons by next/previous scrolling is a way to get respawned. Put them on keys you can be sure of. Many mice have additional buttons, but no matter how many you have, if you bind the next and prev in settings to 2 keyboard keys you wont use (i put them on + and -), you can use the forward scroll/backward scroll/scroll click (and any side scrolls) for a weapon on each point. Eg as a medic one pull back of the wheel dispenses a medkit and the click is my tracer.

Some mice with many buttons dont always follow convention, if you have problems getting them recognised, assign them as keyboard keypresses in your mouse software and then map the keys themselves in the settings/con.

Some controllers argue with each other. My n52 software likes to grab controller slot 0 even if my joystick is on it. Setting up the n52 and then storing the profile onboard then uninstalling the software and plugging back in the 2 controllers is the only way ive solved that one. If you need to see which buttons are being pressed on what # controller, theres a neat ahk script to detect what stick axis or button is being pressed on which controller.


Q - Can I change settings on the fly?
Q - Can I bind in compensation for game factors like spread or fog?
Q - Can I bind a fire all weapons or throw all grenades at once button?
Q - Can I look around any further than the camera can already?
A - No.

I think thats it for now, feel free to post any tips ive forgotten or cool double bindings you might use.
(This post was last modified: 31-05-2011 05:39 PM by St0mpy.)
Quote
25-03-2011, 01:28 AM | Post: #2
Offline SnAjP 
i was told its not possible, tho u seem like u know what u r doin .) so
is there a way to bind "i need medic" shout on one key?
Quote
25-03-2011, 03:40 AM | Post: #3
Offline St0mpy 
since ive started playing engineer, binding i need medic to my forward walk wouldnt be a bad idea Big Grin, but seriously, no you cant do that with in game binds, only spotted.
Quote
25-03-2011, 03:57 AM | Post: #4
Offline Pantalaim0n 
Some exotic stuff:

Code:
ControlMap.addKeyAndButtonToAxisMapping
ControlMap.addButtonAndKeyToAxisMapping

e.g.
ControlMap.addKeyAndButtonToAxisMapping c_PIThrottle IDFKeyboard IDKey_U IDFMouse IDButton_0 0


ControlMap.setAxisScale IDAxis_0 1.6 ### much higher X axis sensitivity (default is about 0.05)

I have no idea if any of this works in p4f though.
Quote
31-03-2011, 07:22 AM | Post: #5
Offline St0mpy 
hehe yes thats one of the more diverse ones, theres several others too but ive not been bothered to check them either, but I cant see why they wouldnt work.
Quote
31-03-2011, 10:54 AM | Post: #6
Offline [FR]Scompe 
Good idea, nice guide Smile

Quote
31-03-2011, 08:18 PM | Post: #7
Offline BillygotTalent 
Awesome Guide, thank you alot Smile
Quote
02-04-2011, 03:59 AM | Post: #8
Offline St0mpy 
Thanks guys Smile

guide now updated with 1 button spot and a note on the confusion on what buttons work what air weapons.
Quote
02-04-2011, 03:32 PM | Post: #9
Offline Necanitas 
Nice guide but i wont change anything.

[Image: necanitass1v6eb8t3y.jpg]
Quote
06-04-2011, 11:41 PM | Post: #10
Offline Hidiousclaw 
Hey after completing the idiots guide to spotting I can no longer leave any game I am in. If i reset my controls it works just fine. but of course my one key spotting doesnt work. I absolutely love the spotting but it is quite annoying to not be able to leave any game without fully exiting the whole client. i exit the game using the esc key, then just clicking on leave. I can not suicide or say i dont wish to leave the game either once i do this. Have you heard of this problem? or might know what i should do?
Quote
07-04-2011, 12:17 AM | Post: #11
Offline Hidiousclaw 
lol i found the problem. i actually have to click my spot button to leave the game or do anything with the ingame mouse. as though my spot key is my left mouse button
Quote
07-04-2011, 03:33 AM | Post: #12
Offline aRkLeY 
Nice guide. thanks for the effort.

Quote
07-04-2011, 05:22 AM | Post: #13
Offline St0mpy 
Hidiousclaw Wrote:  lol i found the problem. i actually have to click my spot button to leave the game or do anything with the ingame mouse. as though my spot key is my left mouse button

sorry to hear youre having problems, it sounds like youve not made a second line for your spotted, and instead used the main (first) GIOK line for your button, which should be bound to the mouse at all times, since it controls all menu clicks.

go back and replace the first GIOK line with the one in my example, its the same for all of us, and then treat your spotted line you made as line 2 and put a 1 at the end instead of the 0..should be all ok then Smile

z3nhunter Wrote:  Nice guide. thanks for the effort.

youre welcome Smile
(This post was last modified: 07-04-2011 05:24 AM by St0mpy.)
Quote
08-04-2011, 12:06 AM | Post: #14
Offline Hidiousclaw 
yes thats exactly what it was. I overlooked replacing the last 0 with a 1, I was too worried with changing my spot key to F instead of Q. I just tried it now and everything works beautiful. Best guide ever. Thank you so much!
(This post was last modified: 08-04-2011 12:15 AM by Hidiousclaw.)
Quote
09-04-2011, 08:01 AM | Post: #15
Offline St0mpy 
sweet, glad that was easy, enjoy your spotting Smile
Quote
10-04-2011, 12:48 AM | Post: #16
Offline Poni 
very good guide, especially the one-button spotting tutorial Wink

[Image: 7kmteesr.jpg]

Sorry for bad English
Quote
10-04-2011, 10:10 PM | Post: #17
Offline ShutTheChuckaUp 
Sry I'm lost with the one button spotting

[Image: wcitalia.png]

"First person to kamikaze into me with a Jet or Chopper gets an insta ban"
-Silvanoshi
Quote
10-04-2011, 10:35 PM | Post: #18
Offline Poni 
at which point you can't get further?

[Image: 7kmteesr.jpg]

Sorry for bad English
Quote
10-04-2011, 10:47 PM | Post: #19
Offline Skyfaller 
Stompy im unable to get this running.

I would like to bind Spotting to mouse wheel up and 'you got it' to mouse wheel down.

for air, I would like to be able to use my hat switch on my joystick to see left/right and up and the down view to be binded to spotting.


Can this be done?
Quote
11-04-2011, 07:18 AM | Post: #20
Offline St0mpy 
Skyfaller Wrote:I would like to bind Spotting to mouse wheel up

i was so impressed how well this worked ive added it to the guide above, thanks for asking


Skyfaller Wrote:and 'you got it' to mouse wheel down.


this cant be done with ingame binds at this time


Skyfaller Wrote:for air, I would like to be able to use my hat switch on my joystick to see left/right

ok you can do this, ive added it to the guide above too, read up there ^^


Skyfaller Wrote:and up and the down view to be binded to spotting.

problem, we only get 2 lines per command, and ur going to use the second lines doing the mousewheel up spotted, so either mousewheel, OR hat up OR hat down

there is a workaround, make your spotted button an unused keyboard key, then use your joystick and mouse software to make scroll up and the hat buttons you want do that keypress
(This post was last modified: 11-04-2011 10:54 AM by St0mpy.)
Quote



Forum Jump:


WEB_PLAYER_PROFILE_ADD_TO_FRIENDS
WEB_PLAYER_PROFILE_REMOVE_FROM_FRIENDS
/en/ajax/checkFriendStatus
/en/ajax/friend
Battlefield Play4Free requires Windows XP or newer, sorry!
Please upgrade to Internet Explorer 5 or newer.
The 64bit version of Internet Explorer is not currently supported, please use the 32bit version.
Please upgrade to Firefox 1.5 or newer.
Please try Internet Explorer, Firefox or Chrome.
Battlefield Play4Free does not currently work with your browser.