[HOW TO] Configuring Your Controllers Guide (Completed)

NOTE: I wanted to make this a guide and applied to do so but haven’t ever heard back. So, as I see this as a pressing issue for many, I’m posting it here.

Key Concepts
  • Assigning an input (be it keyboard key(s), controller buttons, or controller axis) to a pre-existing command, and making it “stick”, is what this is all about.
  • The game has a long, long list of commands. To see all possible commands, go to Options/Controls/Keyboard/Default and set the filter to ALL. Then expand each group of commands in turn. As you will quickly notice, you will rarely if ever have a need for the vast bulk of these commands or can’t use them until the relevant DLC (gliders, helicopters, live weapons, etc.) comes along. So, the primary goal is to pick out only the commands you will actually use and assign a keyboard key, a combination of keyboard keys, or a controller button to (“controller” here means joystick, yoke, HOTAS, throttle, button panel, mouse, Xbox gamepad, whatever). This is best done by making a custom keyboard profile (see below).
  • Any dedicated flightsim controller worth buying comes with its own software to program commands into it. Using this software is FAR, FAR, better than not. If you don’t use this software, usually 66% to 90% of the controller’s base functionality will not be available. MSFS does not recognize modes, does not allow reconfiguring hats from 4-way to 8-way, etc, and basically treats every $300 dedicated flightsim gizmo as an Xbox controller with more buttons. So if you own such a thing, BY ALL MEANS download its software and learn to use it. Otherwise, you’re throwing money away.
  • The basic convention of dedicated flightsim controller software is to turn the HOTAS, stick, yoke, button panel, or whatever into another keyboard. That is, you assign keyboard press(es) to each button on your controller and it’s the same as if you’d typed those commands in on the keyboard. This is why it’s imperative that you either learn the rather convoluted MSFS default keyboard commands (see above) or create your own custom keyboard profile with your own set of key bindings that’s more understandable to you. Either way, as long as you know what key(s) activates which command, you can program your controller buttons and hats to send that to the game.
  • MSFS has default profiles for a wide range of dedicated flightsim controllers (plus keyboard and mouse). Most of these seemingly cannot actually be edited (as in, they might appear to accept changes, but they don’t save). You can’t even adjust axis sensitivity without creating a custom in-game profile. So, if you want to configure your controls to your taste vs. Asobo’s, you must create your own in-game profiles for most of your controllers. The only default in-game profile I haven’t seen a reason to change so far is the mouse.
  • Note that in-game controller profiles are separate and distinct from any profiles created by your controller’s own software, and they do not conflict. IOW, you will need both to get the most out of your expensive dedicated flightsim controllers.
Main Controls Screen

The new Options//Controls menu looks like this:

At the top, just below the title line, is a row showing all the controllers you currently have plugged in and the game has detected. Note the scroll arrows on the ends of the row. If you have more controllers than will show up at once, use these arrows to find the ones you can’t see. In my case, my stick/throttle HOTAS is off the right margin.

Within the row of controller names, the selected controller will be highlighted and will show the in-game profile that it is currently using (in this case, the default keyboard profile). If you’ve created your own profile(s), the scroll arrows at the sides of the profile name will be active, allowing you to page through your profiles to select the one you want to use. This selection is saved automatically so next time you start the game, it will be using the profile you had selected last time. NOTE: these are the IN-GAME profiles, separate and distinct from any profiles you create outside the game with the controller’s own software.

The rest of the screen is divided into 3 columns. At the top of the left column is the sensitivity button which brings up a screen where you can adjust the sensitivity and deadzones of your axes. More on this later.

The rest of the left column is controls for searching for both commands and assigned inputs. For example, suppose you try to assign the key X to “Increase flaps” and get the message that X is already being used by some other command. You can “Select an Input”, enter X, and see what that other command is. There’s also a “Filter” selection that will display all commands, commands with keys/buttons already assigned, and “essential” commands (this latter I find pretty useless). Finally, at the bottom is a button to expand or contract the groups of commands in the central column.

The wide central column shows the commands available for the selected controller. These commands are grouped and subgrouped. For instance, the Power Management group contains subgroups for throttle, mixture, and prop, each of which has a number of related commands in it. Also note that each command can be given 2 different keys/buttons for the selected controller.

The right column is just a picture of the selected controller, to give a visual verification you’re editing the profile for the correct controller.

So, in general, the way you use this screen is as follows:

  1. Select the desired controller in the top row.
  2. Select the desired profile for the selected controller.
  3. Find the command you want to assign a key/button to in the central area, either by scrolling through them manually or by using the various search options in the left column.
  4. Enter the key/button you want to use for that command (more on this later).
  5. Hit the “Apply and Save” link at the bottom of the screen.
  6. Repeat for another controller or go back to flying.

NOTE: This whole process can be done in-flight. Hit ESC, then go to Options/Controls. Make your changes, Apply and Save, then Go Back and finally Resume.

In-Game Profiles, Their Importance, and How To Create Them

The 1st time the game detects a new controller, it will give it a profile called “Default” (at least if recognizes the controller to begin with). So, the 1st time you run the game, ALL your controllers will be using the “Default” profile. This means the key bindings (in the keyboard profile) and button assignments (for your flight controller) will be what Asobo thought was best. You probably won’t agree so will want to change things. For this, you will need to create your own, new profiles.

NOTE: It seems like changes made to the default profiles don’t survive shutting down and restarting the game. This is probably due to the automatic file verification that happens as part of “Checking for Updates” on launch. I’m guessing the default profiles are on the list of files this checks and if they’re different from the original version, they get replaced. I don’t know, but that seems to match the reported symptoms. While this will likely get patched at some point, I think it’s better practice just to make your own profiles anyway.

There are 2 ways to create a custom profile: forced and voluntarily. “Forced” happens when you’re using the default profile and change the sensitivity settings. The game won’t let you make this change to the default profile, so creates a new profile and prompts you to give it a name.

“Voluntary” is what you should be doing anyway IMHO rather than mucking about with the default profiles. To create a new profile, do the following:

  1. Select the controller you want to make the new profile for
  2. Go down to the bottom margin of the screen (need to be in full screen mode, it doesn’t seem to show in windowed mode–use ALT-ENT to toggle between full screen and windowed) and click the “PRESET MANAGER” link (see pic above in the “Main Screen” section).
  3. The “Preset Manager” is a row of icons with mouse-over tool tips, but they’re pretty easy to figure out graphically. You want to click on the gaint “+” sign.
  4. You will then be asked to name your new creation. Give it something descriptive so, if you end up making several profiles for the same controller, you can remember which does what.

I STRONGLY recommend creating your own keyboard profile to make key bindings you’re already habituated to from other games. Not only does this make entering keyboard commands easier (as you don’t have to memorize anything new), but odds are your controller-software profiles from other games will now work in MSFS, at least for the most part, so no need to make new ones from scratch. You will also almost certainly want to adjust flight controller sensitivity so will be forced into making new profiles for them for this reason even if you don’t want to change any of the button assignments.

And if you use your flight controller’s own software to make profiles outside the game, you will CERTAINLY want to make new in-game profiles for your flight controllers that have ONLY the axes assigned, none of the buttons.

Editing Your Custom In-Game Keyboard Profile

The keyboard profile is the “One Profile to Rule Them All” because it defines all the key bindings. The default MSFS keyboard profile is not at all similar to any other game I’ve played and has a lot of good keys tied up with commands you’ll likely never use. Thus, it’s best to start from scratch IMHO. Which is what happens when you create a new keyboard profile as described above–it will be a totally blank slate and you’ll have to enter EVERYTHING you want into it.

NOTE: I recommend using SOME of the bindings in the default keyboard profile just so the game functions properly. This means you should look at the default keyboard profile and write down the keys used for the following commands (at a minimum, depending on taste).

  • EVERYTHING in the “Menu” group. Otherwise, you won’t be able to navigate around the game’s menus very well.
  • The Camera\Instrument views CTRL-1 through CTRL-9. These are essential even with TIR, at least on my small 1080 monitor. YMMV.

Otherwise, everything else is up for grabs. Set things up to be what you’re used to from other games.

NOTE: Think about the Drone Camera, too. This is great for getting nifty screenshots and pretending you’re walking around on the ground. Some folks use an Xbox gamepad for this but I find it easier to use the keyboard.

Anyway, whatever you do, the process of assigning keyboard keys to commands is as follows:

  1. Find the command you want to give a keypress to. In this case, I’m replicating the default “Menu” commands in my custom keyboard profile, so am going to put ESC in the 1st box of the “Toggle Pause” command.
  2. Click on the 1st box of the command.
  3. This will cause a box to pop up. The top line of this box has gray-out text saying “Search by Input”. Click on this line.
  4. With the “Search by Input” line selected, simply hit the key(s) you want to assign to this command. IOW, if you want CTRL+KP8 for this, hold CTRL and press KP8. Or just press a single key.
  5. One the key(s) appear in the top line, press the “VALIDATE” button at the bottom of the box. This saves your new input TEMPORARILY.
  6. To PERMANENTLY save your changes, you must hit the “Apply and Save” link in the bottom margin of the screen, which not only saves your custom profile but also makes it active in your current or next flight, as applicable.

NOTE: The above process is the same if you want to use “joystick buttons” (Button 1, 2, etc.) for your flight controllers. The “joystick buttons” are essentially just additional keyboard “letters” as far as the game is concerned, but as the keyboard can’t create them you can only do this when editing the flight controller’s profile. However, I STRONGLY recommend NEVER using “joystick button” inputs for anything unless you don’t even have a keyboard, only a gamepad. Instead, create a custom keyboard profile to set your desired key bindings, then use that to make a proper flight controller profile outside the game using its own software.

Creating an In-Game Flight Controller (Axis) Profile

Having established your preferred keybindings in your custom in-game keyboard profile, it’s time to work on your main flight controllers (stick/throttle/yoke/whatever). The main difference here are the axes, which really work pretty much the same as key presses. If you use the “joystick buttons” instead of your controller’s own software, then set your buttons up EXACTLY the same as you did defining keyboard presses. OTOH, if you DO use your controller’s own software, DO NOT set up any buttons in the in-game profile. ONLY set up the axes. You’ll define all the buttons and hats outside the game, based on your custom keyboard profile.

Either way, to define an axis in your custom in-game controller profile, do the following:

  1. Select the controller on the main screen.
  2. Make sure your custom in-game profile is selected for that controller
  3. Find the appropriate axis (elevator, aileron, rudder, toe brake, elevator trim, mixture, prop pitch, whatever) as with defining key bindings
  4. Click the box where the input will go, as with defining keybindings.
  5. Click on the top line with the gray text that says “Search by Input”
  6. Wiggle the appropriate part of your controller that you want to map to this in-game axis. IOW, if mapping elevator pitch, move the thing on the controller you want to use for elevator pitch. Direction of movement really doesn’t matter.
  7. Hit the “VALIDATE” button, and then “Apply and Save” as with defining key bindings.

NOTE: Some axes have different axis command options so be sure to pick the appropriate one for what you’re doing. For example:

  • The engine controls (throttle, mixture, and prop pitch) have 5 choices each: A single command to affect all engines at once, plus individual commands for each engine separately. The latter allows those with multi-handled throttle quadrants to get full control. If you only have a single throttle lever (like I do), use only the axis that affects all engines (it won’t say “engine 2” or whatever), then use the mouse in virtual cockpit mode to move the handle(s) for an individual engine as needed.
  • Some axes have a choice between being 0-100% or +/-100%. The former is best for throttle, prop, and mixture, the latter best is for flight controls. Elevator trim is an example of where you have both options (most axes do not). So for elevator trim, be sure to go with the +/-100% axis.

NOTE: After you’ve assigned a flight control movement to an in-game axis, moving that part of your controller will make a bar move back and forth below the command’s line on the main Controls page, and you can see if it’s going in what you think is the right direction. If not, you can check the “Reverse Axis” box. In my experience, the axes for elevator, aileron, rudder, throttle, and toe brakes default to the correct direction. However, I had to reverse elevator trim, mixture, and prop pitch. YMMV.

Adjusting Axis Sensitivity and Dead Zones

Control axis sensitivity and dead zone can be adjusted by:

  1. Selecting a controller with defined axes (will not work for the keyboard, for example)
  2. Pushing the “SENSITIVITY” button at the top of the left column of controls on the main Options/Controls screen (see pic above in the “Main Controls Screen” section).

Before doing this, however, it’s important to understand what “Sensitivity” means. In a nutshell, it’s like this:

  • 0% controller deflection always equals 0% control surface (or brake pad) deflection.
  • 100% controller deflection always equals 100% control surface deflection.
  • Sensitivity setting therefore only affects the relative motion of the control surface to the controller at different points in the controller’s travel. They always start and end in the same places.
  • Dead zones define an area of controller movement that does not move the control surface at all. However, once the controller deflects beyond the dead zone, the control surface does NOT start moving from zero deflection. Instead, it instantly jumps to the position it would occupy at that point on the graph for that amount of controller deflection (based on sensitivity setting).

From the foregoing, you should now understand these things:

  • 0% sensitivity is always (except for dead zones) a 1:1 correspondence between the % of controller deflection and the % of control surface deflection. This is the most realistic option for airplanes controlled directly by pushrods and cables. If the plane is fly-by-wire or has something in the system that alters control movement based on speed, altitude, FMC settings, and whatnot, all bets are off as to how realistic this is. However, it’s the easiest setting to get comfortable with so I recommend it.
  • Positive sensitivity causes more control surface movement for a given amount of controller deflection in the early part of controller movement, so the control surface is “ahead” of the controller itself. This reverses in the latter part of controller movement, so the controller “catches up” with the control surface and they both arrive at 100% deflection together. This can result in a twitchy plane. Thus, I don’t recommend ever using positive sensitivity unless you have a disability that limits the range of motion of your hands/arms to the point that you can’t move the controller its full extent. I used to have a friend with serious ALS who needed to do this.
  • Negative sensitivity has the opposite effect. In the 1st part of controller movement, you get less control surface movement so the controller “gets ahead” of the control surface to begin with. But after a point, you get more control surface deflection for a given amount of controller movement to let the control surface “catch up”. This can cause over-control at larger stick deflections, which you’re more prone to do given the lack of authority in the early phases of controller movement. But folks using a yoke (which pretty much guarantees over-control anyway due to poor ergonomics) might find this helpful, at least in non-aerobatic flight regimes.
  • Large dead zones make for a twitchy plane because they eliminate the ability to make fine adjustments. IOW, with 0% sensitivity and 5% deadzone, the minimum control surface movement is ± 5% with nothing in between.

So, my recommendations are as follows:

  1. For ALL axes, put sensitivity at 0%. Unless you have a disability, then go as far positive as you need to. Or unless you use a yoke, in which case a bit of negative might do you good (and consider buying a HOTAS).
  2. For elevator, aileron, rudder, and toe brakes, have no more than a 1% dead zone (unless you have negative sensitivity, in which case you can go a bit bigger).
  3. For all other axes (throttle, mixture, prop pitch, trim, etc.), have a 0% dead zone.

And that’s all I have. I hope you found this useful.


I think that should be in the manual Section


Thanks for your appreciation. I’ll post more when I’m sober enough :smiley:

Updated the OP to complete this “guide” that is not an actual guide because I still haven’t heard back on my application to make this a guide :wink:

How do you setup a profile tied to a specific aircraft. So for example using your Joystick for the Airbus and ignoring the Yoke. Or using your prop profile on the throttle quad for props and a different profile for jets ?

1 Like

Hey did you notice an odd behavior when the sim outputs a 100% deflection while the controller is ~75% deflected.

Everything is working fine, the sim is outputting the correct inputs but at some point on the deflection range of my joystick the sim abruptly outputs 100% deflection. It’s like the final ~25% of the joystick range is just ignored and it jumps from 75% deflection to 100%.

I’m using 0% sensitivity with 0% dead zones, but using different settings doesn’t seem to help.

1 Like

Hi there. Thank you for this guide. I own CH Products flightsim Yoke and Pedals. My difficulty is that I can not get the throttle,and hatswitch, Yoke or Pedals to work in Microsoft Flight Simulator. I also can not program any buttons. Please advise whether there is a workaround for this. Thank you.

1 Like

Well, I don’t have such a collection of controllers so I’ve never faced this situation myself. However, it seems like it would be pretty simple. The game will recognize the yoke and stick as separate controllers so each will have its own profiles, their defaults plus any you’ve made yourself. So using one should not conflict with having the other. I would try giving each controller its own “axes only” profile and then make profiles for their buttons outside the game with their own software. These external profiles would both use the same in-game keyboard profile for key bindings. This should work whether both controllers are plugged in at the same time or you switch them out.

Here, you could make 2 in-game profiles for the throttle, calling one “prop” and the other “jet”. Each of these would have different bindings for the various parts of the controller. So, when you want to fly a prop, go to the control menu, select the throttle, and scroll until it shows the prop profile. Fly. When you want to switch to jets, go back to the control menu, select the throttle, and scroll to the jet profile.

When control surfaces jump around like this, it’s usually because you’ve got both an axis and keys/buttons assigned for it. This seems to confuse the game sometimes. So like if its elevators, check to make sure only the axis is assigned, and you don’t have key presses or buttons to increase/decrease the control deflection.

Basically, you really can’t have a keyboard profile that caters to both joystick and keyboard flying. Make separate keyboard profiles for these. That way, when you want to fly with just the keyboard, select the keyboard profile for that. The default keyboard profile naturally has keys assigned so you can fly without a joystick, and because so many keys are defined in it, it’s a lot easier to start from a blank keyboard profile to build your own.

Welcome aboard! Sorry you’re having problems.

I’m using Saitek so don’t have personal experience with CH stuff in this game, but I have heard that other CH-users have had problems. You might want to search for CH controller issues. Maybe another CH-user can help you more than me.

But first off, when you say they “don’t work”, in what way are they not working? When you open the control menu, do your controllers appear in the top row by name, with appropriate picture on the right side when selected? If not, it’s probable your system itself hasn’t recognized/calibrated them yet. In that case, follow this guide about calibrating your stuff.

If they are shown in the game but for some reason you simply cannot use the control interface (as I described above) on them, then I don’t know what to tell you. Sorry I can’t be more helpful.


OK thanks so you really can’t bind to a specific aircraft like you could with FSUIPC in FSX/P3D.
Right now I have a Yoke, Pedals, Throttle Quad and Joystick, all configured and working but sometimes it seems like there is a conflict. I am going to double check that buttons are not also assigned.

The only way I was able to use my Sidewinder pro was to disconnect the wireless dongle for the X-Box controller. If the program saw the X-Box, it would ignore the Sidewinder.

I don’t have any “buttons” assigned as my primary flight surfaces. The only things assigned for those are my X Y Z axis. That for the joystick.

You mean I should delete my keyboard assignements also? I have those still assigned for my keyboard.

Thanks for the help

Make sure you are setting the filter to All once you have selected your device to map.

No, there doesn’t seem to be a conflict between key/button commands on one controller and axis commands on another. It’s when you have a joystick with both axis and button commands for the same axis.

Control configs do not appear to save at the airplane level, no. At least as far as I can tell. So instead you can make separate controller configs for specific aircraft and switch between them via the controls menu, instead of it that happening automatically and seamlessly when you change aircraft.

Despite mapping my Logitech joystick the profile is not saved. I created a new profile in the Preset Manager. Could this be because FS is not jnstalled on my C:/ drive? Where are profiles saved?

I installed the game on my D: drive but there’s still some stuff on the C;/ drive, including controller profiles. Mine are in:
C:\Users\Computer\AppData\Packages\Microsoft.FlightSimulator_8wekyb3d8bbwe\SystemAppData\wgs(folider with a name of a huge long string of number).

The other folder in the \wgs folder is just named “t” so you can’t miss the one with the big long name.

Within this folder are a bunch of subfolders with really long hex names, and inside of each of them is a file with a really long hex name and no extension. These latter file can be opened with a text editor. Most are gibberish but some are actual text you can read. Those are your saved controller profiles.

1 Like

Thank you but I still cannot locate the files you say despite running a search.
I’ll keep looking.

I have the CH Eclipse Yoke and have gotten the button and axis working. Had to look over the default keyboard and mouse settings and figure out (through trial and error) which ones to use for the yoke. I use one HAT switch to move the internal view, and the other for the external view. Other switches and buttons are mapped to flaps, brakes, gear toggle, and lights. Good luck!

I’m trying to understand why there are two columns where you program buttons and switches on my CH yoke. I remember someone on a forum saying to use the left column, and I did. It works. But what is the right column for?

I am a very first beginner, so forgive for asking some maybe basic things. I was be able to create a profile for my Logitech Force 3D pro. I have left the sesitivities as it is, but I am facing with an extreme sensitivity to my opinion. If I feather touch the stick (moving 1 ot 2 mm) the plane is reacting very extreme and is hard to control. I have tried something before with sensitivity, but makes it worse. Am I missing something? When using the keyboard it is much smoother.

1 Like