Uncovering input events using the MSFS2020 model behavior dialog
One of the most common questions asked in the MobiFlight Discord is how to control something in a plane. With the incredible MSFS2020 SimConnect event support in MobiFlight pretty much anything is possible… if you can figure out what event to use.
HubHop is a great resource and should be everyone’s first stop when researching events. Chances are someone else has already done the digging and figured out what works.
But what do you do if the thing you want isn’t in HubHop? That’s where the model behaviour dialog comes in. Let’s walk through how to use it to research the event to use for setting parking brake on a TBM930.
Step 1: Enable developer mode in Flight Simulator
This step is easy 😀 Run Flight Simulator then go to Options > General Options > Developers and toggle Developer Mode to On. Restart flight simulator (restarting is important otherwise the later steps won’t show anything useful).
Step 2: Spawn the plane somewhere
This is also easy 😀 Use the World map to spawn the plane you want to dig into somewhere in the world. For this example I spawned the TBM930 at KPAE.
Step 3: Bring up the model behavior dialog and disable minimizing data on load
Once you’ve spawned at the airport open the model behavior dialog from the developer menu across the top of the screen by going to Tools > Behaviors. Then do the following:
- In the dropdown at the top center of the dialog select the XML file that contains the events you’re interested in. In most cases the file is named after the plane and has _interior.xml added to the end. For the TBM930 the filename is TBM930_INTERIOR.XML.
- Click the InputEvents tab
- Uncheck the Minimize data on Load option
- Click Reload user container
- Wait for the plane to reload then select the XML file from step 1 in the dropdown at the top center of the dialog again.
Steps 3 and 4 ensure that the code behind the different events will be visible for us to inspect.
When you’re done the dialog should look like this:

Not seeing any events listed? Check and make sure that you’ve selected the correct XML file from the dropdown. If it doesn’t say INTERIOR in the name you probably have the wrong one selected.
Still don’t see any events listed? Sometimes it happens. Try restarting the sim and going through steps 1-5 again.
Step 4: Find the relevant event
This is where things get a bit tricky since there’s no search feature on the InputEvents tab. It helps to have some idea of what system the input you want belongs to. In the case of the parking brake I guessed that since it relates to wheels it would be in the LANDING_GEAR section so I expanded that:

Sometimes it’s nice to be lucky 😀 LANDING_GEAR_ParkingBrake looks promising. To find out what makes that specific event work:
- Expand the event by clicking the triangle next to LANDING_GEAR_ParkingBrake
- Click the Add to control panel button
- Expand the entry added to the right side of the dialog by clicking the triangle next to LANDING_GEAR_ParkingBrake
- Click the Set tab
Those steps result in a dialog like this:

At this point we know exactly how the sim manages the parking brake:
p0 0 max 1 min (>K:PARKING_BRAKE_SET)
(A:BRAKE PARKING POSITION, bool) 100 * (>L:ParkingBrake_Position)
But what does it mean? How do we use it? This is where it takes a bit of practice and understanding RPN. Generally speaking you are trying to identify which Kvar is getting used. In this case it looks like (K:PARKING_BRAKE_SET) is the magic, and it is either 0 or 1. Chances are 0 means off and 1 means on.
Step 5: Putting the event to use
At this point you can jump over to MobiFlight and try the event out. Create a new input config with an action type of Microsoft Flight Simulator 2020 and check the Show Preset Code box to get a text box for the event code. For this example, in On Press, I would try this:
1 (>K:PARKING_BRAKE_SET)
And for On Release I would try this:
0 (>K:PARKING_BRAKE_SET)
It should look something like this:

Step 6: Document it for others
Once you’ve confirmed the event works as expected head on over to HubHop and add entries so everyone else can benefit going forward!
Step 7: Upvote the feature request so we don’t have to do this anymore
Realistically this is all a big pain and shouldn’t be this hard. Upvote the feature request to let Asobo know you’d like a proper event system where it isn’t necessary to dig through RPN code to make the plane work with external controls!