Mod Edit: merged from a duplicate Wishlist thread.
It occurs to me that in light of of the relatively limited keybindings available in MSFS, the tardiness Asobo has addressed the issue with and the wide variety of potential requirements in third party aircraft the game needs a different, more holistic approach to keybindings.
Currently we can pan the view around the cockpit, hover the mouse over almost every operative control and manipulate it with combination of mouse clicks, wheel and movement. Why can’t we simply have similar way to assigning keybindings? Meaning, simply click on a virtual control in the cockpit and assign a physical controller function to it.
Further, there should be absolutely no requirement for the keybinding to exist in the main control options, this system should explicitly allow binding physical keys, axes or any other functions to any function at all in the virtual cockpit, provided it can be operated with the mouse. You want to assign three axes to control the engine flaps on the upcoming F6F Hellcat? You can do it organically, even though the default control options provide no such function. You want to assign everything in the virtual G1000 to your physical replica of it? You can do that too.
.
Suggested approach:
Ctrl key is the basic modifier key. You press Ctrl and hover the mouse over a virtual control in the cockpit. As you hover over it you’ll see the control name and what in-cockpit keybindings you have assigned to it, if any.
If you Ctrl + left click then different things happen depending on the virtual control:
Simple push button: Set key to press.
Two-position switch: Set key to toggle.
Lever or similar: Set key to increase position, then set key to decrease position.
Switch with three or more rotary or linear positions: Same as lever.
Rotary knob: Same as lever.
Ctrl + right click would be for assigning virtual four-way control, such as hat* with elevator and aileron trim controls, to physical four-way control.
Shift would be the alternative assignment button, if you Ctrl + Shift left click on virtual control:
Lever or similar: Assign axis, after assigning an axis the game should ask if you want to invert it.
Two-position switch: Assign key to set on, then assign key to set off.
Switch with three or more rotary or linear positions: Would first advice you to set the switch on the physical controller to middle or required penultimate position, then walk through all the switch positions on the virtual switch to assign every one of them to switch position on the physical controller.
Ctrl + Shift right click would allow you to bind virtual four-way controls to axes. For example, to bind virtual mini joystick* to physical mini-joystick.
Alt would be the alternative function button, Ctrl + Alt plus left click would allow you to assign key to alternative function on the virtual controller, such as push function on rotary knob.
Ctrl + Alt right click would allow you to assign key for selecting the virtual control for manipulation with the plus/minus function.
Ctrl + Shift + Alt left click would clear any existing in-cockpit keybindings from the virtual controller.
*The reason I suggested these two for separate assignment is mainly the zoom control on the G1000 which is also used for view panning.
.
Asobo would provide the basic interface, aircraft and avionics developers would then link the virtual controls into the interface.
This system should supplement rather than replace the existing system. It’s probably the best for sake of clarity if buttons that are already assigned to universal control scheme in the control options are unavailable for assignment for in-cockpit keybindings.
There should be export/import function. This should should allow:
Retaining profiles for in-cockpit keybindings when installing and uninstalling aircraft.
Managing multiple profiles on single aircraft, such as for aircraft with different avionic options.
Allow creation of templates for avionics. For example, you jump in an aircraft and assign nothing except the WT G1000 controls and export them, when you hop into new aircraft you can then import that as basis before assigning any other in-cockpit keybindings.