Jump to content
  • entries
  • comments
  • views

About this blog

Tips, tricks and advice for Falcon players.

Entries in this blog


The release of 4.35 brings updates to realism to the aircraft, weather and A-G combat. In this post I'll cover the basic things necessary to get people flying in the new release. All images are from BMS manuals.

Part 1: Procedural changes

Canopy update (-1, Canopy switch and yellow spider are now separate.


The canopy switch is no longer a toggle, the canopy is now raised with a left click and lowered with a right click. Clicking on the yellow spider inflates the seal around the canopy to allow for cockpit pressurization, and also acts as a safeguard for the canopy switch. Please note the switch is not visible after a left click.


JFS 1&2 (-1, Both Jet Fuel Starter switch positions are now modeled.


The JFS works by venting one or both hydraulic accumulators to a hydraulic start motor. The START1 setting is less powerful as it uses only one hydraulic accumulator at a time, and has a 50/50 chance of starting the engine successfully. Using only one accumulator at a time means that you get a second chance at starting the engine.

The START2 setting uses both hydraulic accumulators and has a higher chance of starting the engine, but this means you only have one chance at engine startup before you need to ask ground crew to recharge the JFS.

A solid green JFS run light after ~15 seconds indicates a good JFS start. No green light after engaging the JFS means it has failed to reach operating speed. A slow JFS light flash (1/sec) indicates JFS overheating, and a fast flashing light indicates JFS failure.


Anti-Ice (-1,, 1.6.4): Engine icing is now implemented.


The ANTI-ICE panel has a three-position switch to control engine anti-ice (OFF-AUTO-ON). Anti-ice is turned on manually during engine start to verify operation, and set to Auto for flight. Use of engine anti-ice will lead to higher engine temperatures (FTIT) and lower engine performance.


Brakes & Hydraulics (-1,, 1.13):


  • DN LOCK REL button is now implemented. This button is a bypass for the safety mechanism (a solenoid) that prevents raising the landing gear while on the ground. In the event that the safety mechanism fails it may prevent lowering of the landing gear in-flight.
  • BRAKES channel switch is now implemented. Both Channels 1 and 2 are redundant, but only Channel 2 has an alternate power source.
  • The PARKING BRAKE switch ANTI-SKID option is now implemented. The middle position is anti-skid on, the down position turns off all anti-skid functions for brake channel 2 and turns off only touchdown anti-skid for channel 1. Anti-skid is only available once exceeding 12 kts ground speed and will stay available until under 5 kts. Maximum braking at slow speed will not trigger anti-skid and may blow a tire.
  • Arrestor cables now implemented. BMS 4.35 implements working arrestor cable systems at non-generic airbases.

Airbases, Datalink changes, IFF and more.

Airbase operations

An expected update, airbases now have dedicated ground, tower, and arrival/departure frequencies and menus.

Airbases now handle traffic differently, both on the ground and in the air. Airbase ground control will issue better taxi instructions, and will hand you off to the tower frequency when you reach the runway.

This is all handled automatically through the briefing process, using the data cartridge to assign each frequency to a predetermined preset, which you can view in the briefing window in brackets.

From the manual:
"#2, #3, #4 for communicating with the home airbase as you fly out
#5, #6 for communicating in flight on the tactical net with AWACS for instance (with #13 if doing an AAR)
#4, #3, #2 for communicating with the home airbase ATC upon your return."

In addition to the chocks holding the aircraft in place, there is also an EPU ground safety pin that must be pulled before takeoff in the ground control menu.

Once you take off, you will be handed off to the departure frequency where you inform them of your flights airborne status and receive departure instructions.


Engine temperatures

The engine starting procedure can now fail due to pilot error. Moving the throttle out off the cutoff position before the engine reaches 25% RPM will cause a hot start condition with engine temperatures exceeding ~700C, requiring the engine to be shut off and allowed to cool.

To cool off the engine, you can return the throttle below idle cutoff and leave the JFS running.

There is also a chance that this may happen randomly, so you need to keep an eye on engine temperatures during startup.

The JFS can run for 4 minutes before overheating and 8 minutes before failing. It can now be recharged by the ground crew.


Engine Oil

Engine oil pressure can fail to rise high enough to run the engine.

If the HYD/OIL stays illuminated and the oil pressure stays below 15 psi then the engine must be shut down and allowed to cool before attempting to restart.


IFF has now been added

IFF is meant to determine friendly or bogey status, and has two separate parts: an interrogator that asks for IFF codes from airborne contacts, and a transponder that responds to requests from other aircraft.




TL;DR Leave the knob on Norm when in flight. IFF requests are made using TMS Left when the FCR is selected. You can change mode requests on the left side of the FCR near the bottom. Options are M1, M2, M3, M4 and M+ (which requests all 4). The most useful modes will be M1 and M4. Correct responses will be green circles, incorrect responses will be yellow squares. Incorrect responses do not mean that a contact is an enemy. 

IFF codes will change over time. Your transponder will take care of this on its own, but to make sure you interrogate for the latest codes make sure you go to the INTG page in the DED (LIST -> RCL) and hit 9 so that the DCPL in the bottom right changes to ALL. This will couple the interrogator to your transponder.

Manual time for nerds:
M1 is assigned to a team. All the allies share the same code, which is changed every hour as stated in the TIME events.

M2 is specific to each aircraft. All aircraft have a different M2 code, which does not change.

M3 is specific to each aircraft as well but (unlike M2) rotates every hour.

M4 is always assigned per team and the encryption key rotates every 24 hours.

If a contact responds to interrogation correctly then a green circle with the requested mode will appear in the contacts location on the FCR and HSD. The contact does not have to be visible on radar to respond.

Note that some modes listed above are per team, and others are per aircraft. A contact that you interrogate will not respond correctly to M2 or M3 requests unless you tell your interrogator to look for the response from that specific aircraft.

This means that a friendly aircraft might respond to M1 and M4 requests correctly, but not M2 or M3.

IFF codes change over time, you can see the full details in your briefing screen, but long story short is you don't have to worry about it:

Luckily you do not have to manually input all these settings in the jet; your DTC is pre-programmed
with all the briefed settings. Therefore if you do not change any IFF settings manually, the time and
position criteria will be defined as per the brief and the IFF settings will change accordingly. All you
have to do is turn the IFF MASTER knob to STBY at ramp and turn it to NORM upon taking off.



Datalink changes mean scrubs need to git gud

The -34 includes the following line in section 1.5.2: 
Note: IDM operates over VHF or UHF radio, so you cannot transmit on VHF or UHF and send/receive data link transmissions over the same radio at the same time.

This means that you cannot rely on the continuous datalink mode available on the FCR page to do everything for you if you want to use the radio, and you will have to request datalink info manually with Comms Left.

The manual says:
Once powered up, LIST → ENTR will select the A-G DL page. There are now 4 selectable options on this page:
COMM (UHF/VHF): this option toggles which radio A-G datalink messages will be transmitted over. Note:
everyone must be on the same frequency, whichever radio is used. By default VHF is used for A-G datalink,
with UHF used for A-A (INTRAFLIGHT) datalink messages. This can be toggled by moving the * * asterisks
around VHF/UHF using the DCS switch and pressing a number key 1-9 on the ICP.
Note: while humans can use any radio/frequency, AI are always on UHF TACTICAL (UHF PRESET 6 by default).


More to come.


Things For Beginners: IVC

Updated for 4.34

Text about purpose of blog post

One aspect of getting involved in Falcon that can't be learned or prepared for in single player is the configuration and use of voice comms.

Here I attempt to describe basic and advanced configuration and use of IVC.


Setting up the IVC Client
    Basic Setup

  • Input and Output

            In the "Sound Devices" section at bottom of IVC Client program, select your microphone in "Capture" list and speakers/headphones in "Playback" list.

            This is usually the only required setup step, and if you have the correct things set as the default devices to use then even this should take care of itself.




    Advanced Setup, in \Bin\x64\IVC\IVC Client.ini

    Inserted at the bottom of this section is my own configuration file

  • Sidetone and sidetone accesories

            We can add a Sidetone that will let us hear our own voice when we transmit. We use the "tone = " option in the .ini, and set it to "loop:#", where # is a number.

            To find this number, right-click on the volume icon and select playback devices. Click on your playback device of choice (here it is "Speakers"), and in the "levels" tab find your microphone.

            Each entry has a number starting from 0 at the top, and in this instance our microphone would be 1.



            Following the above, we would set our loopback in the .ini file using "tone =  loop:1".
            We can also use "toneVol" option to raise or lower the sidetone volume. Usable values as defined in the manual are +6 to -6. I use "toneVol = +6".


  • Loudness

            Setting "loudness = 1" adds compression to incoming audio, making it easier to hear other players.


  • Outsiders

            Using "outsiders = all" is the best option for listening to players who are in 2D while we are flying. Other options are detailed in BMS-Manual.pdf on pages 257-258.




Using IVC in the map screen

  • Connecting

        When connecting to the server, enter the IP address of the IVC server as well. Once clicking connect, the game should take control of the IVC Client window and connect to the IVC server automatically.

        For most users it's not necessary to touch the IVC Client window beyond the initial setup steps.


  • F1 and F2

        Once in-game and connected to the server in 2D, the F1 and F2 keys let us communicate by voice to others who are either in 2D with us, or in the cockpit and have their UHF radios tuned to preset 14.

        F1 will communicate with anybody in-flight who is on the UHF 14 preset, F2 is for people hanging out at the map screen only.

        Make sure you use the right one, if you have a conversation in 2D using F1 then people in-flight will be able to hear you.


Using IVC in flight

  • Coordinating with other players

        None of this is useful unless everybody knows how stay in contact with everybody else. 

        Members of each flight need to know what VHF channel to use to talk to one another, and multiple flights should know which UHF channel to use to coordinate with one another.


  • Using preset channels

        We normally use preset channels for radio comms. By default the F16 has a frequency assigned to each preset, we don't normally change any presets after the 4.34 update.

        To change preset using the ICP, press COM1 for UHF or COM2 for VHF and type in a preset, 1 to 20, and press ENTR.

        For most uses UHF is set to 6 normally, or 14 to talk to people in 2D.


  • Using frequencies

        We use sometimes use frequencies when having radio problems, sometimes there are issues with somebody's presets and they have a preset assigned to a different frequency.

        To change frequency, press COM1 for UHF or COM2 for VHF and type in a frequency, without the decimal point. 

        For example, to dial in the Kunsan tower frequency (292.3) we would type in 2923 and press ENTR.


  • Talking

        Once we're in the cockpit, we use the Comm switch to broadcast on UHF or VHF. When we do, either UHF or VHF will be highlighted in the DED depending on which one we're using. 

        See the first "Keybindings for new players" post for more details on the Comm switch.




  • Comms volume

        Comm1 volume is for UHF, used mainly for inter-flight comms and for AWACS. Comm2 is VHF and is used for communicating with your flight.

        The tiny volume knob on the backup UHF panel balances the volume between AI radio comms and player voice comms.





  • Guard frequency

        UHF guard frequency is 243.0 MHz, all UHF receivers also listen to guard frequency by default, making it useful if we need to transmit to as many people as possible.

        VHF has a guard frequency as well but people must choose to listen to it.

        We can transmit on Guard by switching either COMM mode knob to "GD".





  • Backup Radio

        87th Tripp made a good video on the backup radio.



Things For Beginners: BVR

The goal of BVR is to kill the other guy without him killing us back.

That's pretty much it.

We'll start with the weapons. There are missiles like the AIM-7 that require constant radar guidance in order to hit their targets, and there are missiles like the AIM-120 that don't. The former is mostly useless and easily defeated. We only care about the latter type here.

The 120 is initially guided through datalink from the firing aircraft, until it reaches the point where the missiles own radar can take over and guide it to the target aircraft. This doesn't always have to be the case though. If the firing aircraft cannot maintain missile guidance, the missile will attempt to guide itself using the target aircraft's last known position and heading.

This makes the AIM-120 sort of like an air to air cruise missile.

The upside and downside is that there is no launch warning. Newer enemy aircraft will have similar weapons available. You may get a hint or two if they decide to crank left or right after firing, but you must always assume that if you're within firing range then so are they. The only other way to know for sure is if the missile is already tracking you.

When we engage in BVR we need to take into account several things:

  • How close is the target?
  • Is it a MIG-29 or a Su-27/30/33/37?
  • If the target doesn't go defensive before your missile begins tracking on its own, it will afterwards. How much energy will the missile have left when it reaches the target?
  • When do we go defensive?
  • Are there any friendly aircraft in the target area?
  • Are we sure the target is an enemy aircraft?

1. If a peer adversary (one with similar capabilities to us) gets too close, we have to assume that it has already fired at us and take immediate defensive action. If it's further away we can assess the threat and engage it.

2. The RWR in the F-16 variants flown in the standard Korean theatre show both the MIG-29 and all Flanker variants with the 29 symbol. This is vital to keep in mind as the MIG-29, while still a major threat, is fairly simple to shoot down (Correction: later versions of the MIG-29 have access to the AA-12/R-77, which has a longer range than the AIM-120 as modeled in BMS and similar capability), whereas the Flanker has capabilities which rival our own and needs to be taken much more seriously.

3 and 4. The best way to defend yourself is to not be shot at in the first place. Other than that, the best way to defend yourself is to go defensive as soon as possible. We need to guide a missile and so does our target. The longer we guide it the better the shot quality will be and the more we put ourselves at risk, and this applies for the enemy as well. You might guide the missile for 5 or 10 seconds and hope it hits as you burn away, or you might choose to take your chances and wait as long as possible until you hear the RWR audio tone of an incoming missile. This also applies to the enemy. If we launch from too far away our missile will not have enough energy to catch the target when it decides to turn and run.

5. If we leave our outgoing missile to its own devices, it will attempt to find its way to the target and hit anything it sees. You may be tempted to help out someone who got a little too close to the enemy, but if your missile tracks him instead he's toast anyway. Again, this also applies to AI aircraft, so spacing and situational awareness can be very important as you don't want to take a missile that was meant for somebody else.

6. No clue, go and find out. We either have to rely on an AWACS declaration or use our targeting pod in air to air mode to gain a visual confirmation of our target. A third option is our FCR, which may be able to display aircraft type at the top of the MFD in certain situations, but don't count on it.


The engagement process will be explained through video (below) of an actual engagement that occurred shortly after takeoff and caught us off guard:

At 25 seconds, a threat appears just as we make our fence in call, which delays our response. At this point, all we have is a 29 partially obscured by a friendly on our RWR. I could have used the TGT SEP button to separate them, but I didn't consider it necessary.

40 seconds: After the fence in call is taken care of, we need to find the threat aircraft. The RWR is fairly accurate at longer ranges, so all I have to do is search in the general heading. Once we find a contact in the right direction, we ask for an AWACS declaration, which my wingman receives first because I have text turned off and have to wait for the audio. 

At around 55 seconds I call for my wingman to go spread, and then give him permission to take a shot if he has one. At 1:13 you can see me switch to Track While Scan on the left MFD, which will let me fire on multiple targets if necessary.

1min 20: I pull up according to the steering cue and send a missile downrange. My normal criteria for a launch is below the circle on the range scale, but as a bit of a bonus the bar jumps upwards to account for our slight loft.

After launch I immediately pull off to the right while maintaining lock on the enemy aircraft in order to reduce the closure rate to the enemy (and therefore the chance of being hit) as well as drag any potential incoming missile outwards into a lead pursuit and waste some of its energy.

1min 45: I make the decision to abandon my missile and go defensive with 6 seconds to go (M06, below the range scale), assuming (correctly) that I've been launched on and (incorrectly) that a missile would be stopping by to deliver mail shortly. It turns out I could have waited another ten seconds or so, but I didn't take any chances. When going defensive I dive down and away to force the missile into thicker atmosphere to waste its energy while maintaining moderate G (under 5) and speed (under 550kts) to avoid damaging stores or the aircraft and forcing an aborted mission. This defensive maneuver is also shown in a second video I'll put below as well. This move is not safe below 16,000 ft. over enemy territory, as MANPADS will take you down. This limits the effectiveness of the tactic and means we have to be even more cautious over enemy territory.

At 2:35, the missile has been defeated and the enemy aircraft has been shot down by #2, though we don't know it right away. I turn back in prepared to re-engage and look around, while #2 eventually calls AWACS who confirms no more threat. Other times the only way you know for certain is when you look all over and can't find it anymore.



Below is a more extreme version of the defensive maneuver, which includes an emergency jettison:



Hopefully this will be of use, and will prevent people from dying while playing with military combat aircraft on the internet. Other BVR tactics are available, some of which require extreme bravery and testicle radius.


Keybinding Part 2

We'll be talking about the keyfile editor from the last post and will be using it to create a new keyfile.


A version with modified Quickstart keyfile and Callback Reference can be found here:  https://www.dropbox.com/s/dln076plj6hs3xw/Keyfile editor Alpha 1.zip?dl=0

When you start it up, you will be greeted by two panes (and errors, ignore them). The lower pane has tabs, one tab for each device. In each tab there is a list of buttons that can be lit up by pressing them on your devices.

We'll load the BMS Basic keyfile, you can do this with the full keyfile or the minimal keyfile, or you can use the quickstart keyfile bundled with the program.

2017-11-15 14-46-12.mkv_snapshot_00.02_[2017.11.15_15.49.02].png


We are going to assign every button to a blank callback first, and then change the callback afterwards.

Start by pressing the green '+' at the top right, doing so will add a blank unbound callback to the upper pane. We need one blank callback for every unbound joystick button, in this case eight of them.


2017-11-15 14-46-12.mkv_snapshot_00.11_[2017.11.15_15.52.30].png


After we've made our blank callbacks we'll assign our unbound buttons to them, one button per callback. Double-clicking "Unassigned" in the right hand column will bring up a dialogue box, we can either press a joystick button or select a button from the drop down menu to assign it to the callback. We are going to change these blank callbacks later. It's easier to bind to blank callbacks and then change them than it is to assign buttons to the desired callbacks directly, as the program does not handle button conflicts very well.


Next, we're going to be assigning the button that will function as our pinky shift. For those that have them, use the pinky button on your stick. For everybody else, find a button that's easy to hold down while pressing other buttons simultaneously. I'll use Joy 1 Button 10, remember what you choose as it will be important later on.


2017-11-15 14-46-12.mkv_snapshot_01.17_[2017.11.15_16.04.46].jpg


In the bottom pane, double-click on the current callback for that button to bring up a library of callbacks, sorted by their location in the cockpit of the F-16. We want to look for the Flight Stick section under Flight Control (HOTAS), and select SimHotasPinkyShift, and hit OK.


2017-11-15 14-46-12.mkv_snapshot_01.21_[2017.11.15_16.06.35].jpg


Once the pinky shift button is assigned, we need to save the keyfile and close the program immediately. Reopen the program and reload the saved keyfile and you will be greeted with new tabs for your shifted device states.

Go to the new tab for your shifted device and do the same thing we did at the start, pressing '+' to add a new blank callback for every unbound button in your shifted device tab.


2017-11-15 14-46-12.mkv_snapshot_03.07_[2017.11.15_16.09.15].png


To assign our shifted buttons, we need to do something slightly different. Click "Unassigned" like we did the first time around, but this time when the dialogue box pops up we will need to hold our pinky shift button in combination with the desired button to map. The end result should include the string <Shifted>.


2017-11-15 14-46-12.mkv_snapshot_03.10_[2017.11.15_16.09.41].png


As before we'll assign every unbound button, but this time these buttons all require you to press them while holding the pinky shift button. This poses an issue for our pinky shift button, as we can't "shift" the "shift button" here.

Instead, we'll have to select the shifted counterpart (in our case Joy 1 <Shifted> Button 10) of our pinky shift button from the dropdown menu. If you can't find it you can press another shifted combination to put the dropdown menu in the right area, then select the correct button.

"But if we can't shift the shift button then why do we need to bother assigning it in it's shifted state?"

Just do it, I'll explain shortly.


2017-11-15 14-46-12.mkv_snapshot_06.19_[2017.11.15_17.28.41].jpg


After assigning the remainder of your buttons, we'll return to the "shifted" shift button.

As I said before, we can't "shift" the "shift button" in this program.

But BMS does.

Technical stuff, don't worry too much about it: Put simply, BMS by default automatically reserves lots of buttons. 256 of them, 0 to 255, 32 for each device. The pinky shift mechanism in BMS works by effectively increasing each joystick button number by 256. When we bind callbacks to the shifted layer we are binding callbacks to buttons 256-511 instead of the normal 0-255. The issue is that when we tell the game to shift buttons upwards, the pinky shift button is shifted upwards as well and the game cannot tell when it is released because the associated button number doesn't exist anymore.

The way around this is to assign SimHotasPinkyShift twice, once to the desired button (Joy 1 Button 10 as done previously), and again to it's shifted counterpart (Joy 1 <Shifted> Button 10).

Double-click on the callback, scroll up to the Flight Stick section under Flight Control (HOTAS), and select SimHotasPinkyShift again, and hit OK.


2017-11-15 14-46-12.mkv_snapshot_06.50_[2017.11.15_16.16.45].jpg

2017-11-15 14-46-12.mkv_snapshot_07.03_[2017.11.15_16.17.43].jpg

2017-11-15 14-46-12.mkv_snapshot_07.32_[2017.11.15_16.18.33].jpg


Once we've taken care of the pinky shift bindings, we can assign the rest of our buttons as desired. Below you can see the end result. Note SimHotasPinkyShift, as discussed before, is assigned to the same button in both the normal and shifted states.


2017-11-15 14-46-12.mkv_snapshot_12.52_[2017.11.15_16.25.31].jpg

2017-11-15 14-46-12.mkv_snapshot_16.48_[2017.11.15_16.24.47].jpg


Recreated above is the setup I use for my Hotas X. You may find it worth it to sacrifice certain things like TMS Right, DMS Up/Left/Right and maybe even TriggerFirstDetent for things like wheel brakes, airbrakes toggle or landing lights based on your needs. I use racing wheel pedals for differential toe brakes and the rocker on the back of the Hotas X mapped to keyboard buttons (using JoyToKey) for extending and retracting airbrakes, which is why neither of these are present here.



I write this so we have something to point new people to.

This will be a quick how-to regarding keybindings for players new to BMS and unsure of what controls need to be bound. Also explained will be a vital control mechanic in BMS known as the Pinky Shift button, and how this will help you when you don't have $500 to blow on a new stick.

Anybody used to a universal "do this" buttons as found in any normal video game needs to know that every in-game control mimics a control in the real F-16, and many of them serve multiple purposes. Attached in image format is a list of buttons on the real F-16 HOTAS, their functions and their in-game callbacks.





For those who don't yet know what the above is and what it means for you, below is a basic rundown of callbacks, how important they are and what they do. As I rarely use the keyboard, I can't say what the keyboard binding for any of these would be. For those with not enough buttons it's perfectly fine to put things wherever you want them, as long as they're easy to remember and (preferably) make sense logically:

Vital keys:

  • SimTriggerSecondDetent = Gun
  • SimPickle = Weapon Release
  • SimTMSUp = Target Select / "Do" button
  • SimTMSDown = Target Deselect / "Undo" Button
  • SimDMSDown = Switch SOI (Switch MFD)
  • SimMissileStep = Change weapon / pylon / bombing mode
  • SimRadarElevationUp = Raise Radar Altitude
  • SimRadarElevationDown = Lower Radar Altitude
  • SimDropProgrammed/SimCMSUp = Drop countermeasure prgms. 1-4
  • SimToggleMissileCage = Cage / Uncage Sidewinder seeker, remove maverick cover
  • SimHotasPinkyShift = Zoom / change FOV when press, acts as shift button when held
  • SimCMSRight = ECM Standby
  • SimCMSDown = ECM Consent
  • SimSelectSRMOverride = Dogfight override mastermode
  • SimDeselectOverride = Cancel override

Hat Switch:

  • SimCursorUp = Radar cursor
  • SimCursorDown
  • SimcursorLeft
  • SimCursorRight

(Recommendation) Shifted Hat Switch:

  • SimTransmitCom2 = Transmit VHF Radio
  • SimTransmitCom1 = Transmit UHF Radio
  • SimCommsSwitchLeft = A-A Datalink Transmit (not as important for beginner)
  • SimCommsSwitchRight = A-G Datalink Transmit (not important for beginner)


  • SimWheelBrakes = Wheelbrakes (K by default)
  • AFBrakesToggle = Toggle airbrakes


  • AFBrakesIn = Airbrakes retract
  • AFBrakesOut = Airbrakes extend 

Useful, not vital:

  • SimDMSLeft = Cycle left MFD pages
  • SimDMSRight = Cycle right MFD pages
  • SimSelectMRMOverride = Missile override mastermode, for quick A-A use
  • SimSpotLight = Cockpit spotlight, comes on with battery power, recommend bind to keyboard

Things I've never used:

  • SimDMSUp = Change SOI to HUD

For users with no head tracking I highly recommend never using the hat switch for viewing and learning to use the mouse effectively instead, as it frees up the hat switch for vital functions. By default, one can look around by holding down the right mouse button, and can drag the head around using the middle mouse button.

The pinky shift mechanic in BMS allows the pinky button on the F-16 HOTAS to function similar to the shift button on your keyboard, or the function button on some laptops. Just as the keyboard shift button allows other buttons to have multiple uses, the pinky shift mechanic allows you to effectively have two callbacks assigned to one joystick button and allows you to access the second callback by holding down SimHotasPinkyShift and pressing the desired button.

SimHotasPinkyShift must be assigned twice to the desired shift button, as the act of pressing the shift button will shift the shift button too, and the game will not recognize the release of the button unless the callback is present in both the normal and shifted states.

The only issue is that this mechanic is not accessible through the in-game setup screen (the in-game editor has other issues as well, one being that it does not actually show the correct callback names). To make use of it, one has to resort to using spreadsheets included with the game, third party editors (linked below), or modifying the keyfile by hand.

Third Party Editors:



  • Easy to use, no spreadsheets.


  • Old program, lacks new keybindings.
  • Has a habit of crashing, save often.
  • Default quickstart keyfile is missing a few things, attached in this post should be a modified version for use with the program (Quick HOTAS Setup.key). One can also edit the default BMS keyfiles.
  • Built-in callback reference is outdated.


  • Use this one.
  • If the program has issues after setting shift button, save and reload the keyfile after setting shift.
  • If you have program crashes at the same point consistently, saving and reloading the file sometimes fixes it.





  • Seperate launcher for game, still no spreadsheets.


  • Not as easy to use.
  • One has to fiddle around with toggle button to assign shifted states.
  • Cannot shift hat switch.


Other References:



Quick HOTAS Setup.key