• Which the release of FS2020 we see an explosition of activity on the forun and of course we are very happy to see this. But having all questions about FS2020 in one forum becomes a bit messy. So therefore we would like to ask you all to use the following guidelines when posting your questions:

    • Tag FS2020 specific questions with the MSFS2020 tag.
    • Questions about making 3D assets can be posted in the 3D asset design forum. Either post them in the subforum of the modelling tool you use or in the general forum if they are general.
    • Questions about aircraft design can be posted in the Aircraft design forum
    • Questions about airport design can be posted in the FS2020 airport design forum. Once airport development tools have been updated for FS2020 you can post tool speciifc questions in the subforums of those tools as well of course.
    • Questions about terrain design can be posted in the FS2020 terrain design forum.
    • Questions about SimConnect can be posted in the SimConnect forum.

    Any other question that is not specific to an aspect of development or tool can be posted in the General chat forum.

    By following these guidelines we make sure that the forums remain easy to read for everybody and also that the right people can find your post to answer it.

FSX 737-800 fde improvements

Changing the gs parameters is unlikely to any effect here. They used when the autopilot is in glideslope mode.

Roy Holmes

Resource contributor
As regards drag, in most cases I had the CD0 for the airplane.(1101) I have a somewhat generic set of values for Mach drag which goes in 154a, since I only use FSXA or P3D.

BTW, when I mentioned using
I should have added that there are no PID adjustments for autothrottle, They are hard wired in the code. However, it is possible to write PID code in a separate gauge and not use the stock AP autothrottle mode. I have not done that because none of my jets has autothrottle and some of them have no autopilot. I did make an autopilot for helicopters which uses a "throttle" control in altitude hold mode, so I know it is doable. There is a post from Chris that has to do with a taxi speed PID and that could be adapted to your needs.


Sorry I took a while to get back.... been a busy week.

Your A/T problems are correctable in table 1199- lines 85 thru 91. Set them to 1000 and tweak from there. They absolutely do work. Your issue is with the capture window. This controller switches from "change" mode to "focus". This is where you see the slow down in rate.

As for your original thrust issues, you have two steps of work:

1) set your sea level thrust at static.
2) adjust all MACH for losses and Ram effect.

Rule #1 - Never adjust for altitude!!!!! The ENTIRE table 1506 is at Sea Level only and all measurements MUST be normalized to sea level!!!!! I explain how later.

To set your sea level thrust curve you may need to do some investigating if you don't have test data on your engine. Lucky for you I have an actual CFM56-7B chart....


In the aircraft.cfg, set static thrust to the published number ONLY if you know the N1 of that number. Otherwise use the number at 100% on the chart. For example, from looking at the chart above, we can see that the published 27,300lbs is around 101.5% N1. 100% N1 is USUALLY NOT the point where the published static rating was measured, but by default, FS calculates static thrust from the cfg file as a factor of 1.0 in table 1506. What this means is you must be sure to align 1.0 to the correct fan speed. This is by far the most common and critical error made by FS flight dynamic designers with regards to engines.

Also, this chart applies to all CFM56-7B engines. To illustrate my point, here is an example:

7B27 = max SSL rating 27,300lbs @ 100.9% N1
7B26 = max SSL rating 26,300lbs @ 98.7% N1
7B24 = max SSL rating 24,200lbs @ 96.25% N1
7B22 = max SSL rating 22,700lbs @ 91.8% N1
7B20 = max SSL rating 20,600lbs @ 90.2% N1
7B18 = max SSL rating 18,500lbs @ 87.3% N1

These are the N1 ratings that will produce the SSL thrust rating as published. Contrary to popular belief, most thrust variants of an engine model are usually reduced throttle positions on the same engine.

The CFM56-7B engine is max rated (max limitation beyond takeoff thrust) to 27,700lbs at 104%N1 --- this is what you would get in an emergency with firewall throttles. You should model this aspect as well.

So, here's how you do it...

Set the cfg static_thrust to 27,300lbs. Set inlet_area to 20.295.

Enter the airfile table 1506 and set your N1 columns as follows:

0, 5, IDLE %N1, 30, 38, 46, 55, 62, 66, 75, 80, 85, 87.3, 90.2, 91.8, 96.25, 98.7, 100.9, 104.8, 108.8, 112.8, 120.9.

Notice the last 10 entries are your 6 engine ratings, plus an extra four columns for later use.

Now set your 1506 scalars for MACH 0.0 like so:

0 @ 0%N1,
0.023 @ 5%N1,
0.045 @ IDLE%N1,
0.068 @ 30%N1,

and so on... What I am doing here is using the thrust chart to find thrust pounds at X% then dividing the number into 27300. The line crosses 38% at approximately 2,600 pounds of thrust. 2600 / 27300 = 0.095

0.095 @ 38%N1,
0.1475 @ 46%N1,
0.218 @ 55%N1,

Figure out the rest in the middle, then use the thrust rating numbers provided above starting from 87.3%. 100.9%N1 will be 1.0 (equal to the cfg static_thrust), 104.8%N1 should be 1.01465. Leave everything above 104.8%N1 set to 1.02 for now, we'll come back to those later.

You now have your static thrust charted (Mach 0.0). You should be able to check in FS with brakes locked on an ISA day, and using a thrust gauge, that the actual static thrust produced matches the chart accurately.

Now for non static....

There are two ways you can proceed.

Follow Roy's way in the document. This would require using engine sim or FDWB or some other means of ascertaining ram drag, but how accurate your results may be will depend on how accurate those tools are.


You will need a ram drag chart, either a real one or one you can make yourself.

First, a note about FS ram drag.... it doesn't exist. FS only models what's called momentum drag which is different from (half of) ram drag. They also coupled it with ram effect, which opposes drag. To make matters worse, they tied fuel flow to net thrust, which nullifies any negative effects of ram drag.

Momentum drag is what we encounter running on a treadmill. It is merely nullified thrust. Ram drag is an actual drag force similar to what raises a wind sock. As wind enters the opening and slows, pressure increases, creating forward thrust. The 'equal and opposite' reaction raises the sock... Ram effect is the increase in total density caused by changing Delta2/Theta2 which increases mass flow and thus increases thrust and efficiency.

The official designator, Fr, or force of ram drag is equal to momentum drag, plus spillage drag, plus installation losses. There are also about 10 other forms of drag included in Fr that may or may not apply to your airplane.

Gross thrust minus that list of drag equals net thrust, or Fg - Fr = Fn

What we need to find is net thrust Fn.

First, grab all the in flight performance charts you can find that are measured by mach vs. weight. Cruise charts etc...

Second, set your fuel flow to be correct at static. If the real 737 burns 830 lb/hr at the idle thrust for the N1 shown on the chart, then make sure yours does too. Tweak the TSFC setting in the cfg file to get this right.

Third, load a scenario in FS matching the performance charts. Set weather to what is on your chart, and hold altitude and speed. Double check you have everything correct. Take a fuel flow reading. Your reading will most likely be two times lower than the real aircraft. Subtract the real FF/HR number from your FS FF/HR number. Then convert this number into Thrust pounds.

In case you aren't familiar, fuel flow is equal to net thrust pounds * TSFC, so Fuel Flow / TSFC = Fn. For the 737, the TSFC on the ground will be around 0.30.

Now you must normalize this result using: Thrust pounds# / (Delta * (1+0.2*M^2)^3.5) --- Don't forget the ^3.5 on the end!!!

The thrust pounds you solve for is ram drag. Do this at every Mach, and plot on a chart. Be sure to notate MACH vs RPM, CORRECTED RPM that is! You must correct the charted RPM to plot your 1506 scalar. This is simply n1/ sqrt(Theta2).

Side note: In case you are wondering, this is how FS produces thrust. static reference * 1506 scalar * (Delta * (1+0.2*M^2)^3.5). To convert thrust measurements in sim back to airfile you reverse the process. Measurement / Total Delta / static reference = 1506 scalar

Now go back and take additional readings at various altitudes to see the divergence. The divergence is caused by the RPM changes. At various RPM, the same mach will produce different ram drag, but regardless of altitude, at a given density and Mach, ram drag is constant at each specified RPM. Be sure to correct your RPMs before charting.

Now, assuming all your other aero drag is set correctly, this method will yield the exact ram drag for your engine.

The last step is to take this plot and apply it to your static thrust in one of two ways:

You can set table 1507, which I find cumbersome, or set the scalars in table 1506 to reflect net thrust. Either way you will get the exact same results.

In both cases you MUST copy your static thrust to each mach line and convert to corrected RPM. 100%n1 at Mach 1.0 would be moved to 92.4% CN1. See note below.....

To set 1506 to net thrust is very simple:

Ram drag pounds / static thrust reference = scalar to subtract from MACH lines after you have corrected each mach line.

SO, 1000 Fr / 10000 SSL Fg = 0.10 Fr scalar

1506 scalar of 1.0 - 0.10 Fr scalar = 0.9 entered into 1506 at whatever CN1 vs Mach we were converting.

To set 1507:

[ (661 * mach / 32.174) * Intake area * (Delta2/sqrt Theta2) ] / ram drag measurement = 1507 scalar...

(I hate this method, considering the table is completely useless.)

Important note:
Anytime total temperature ratio is above 1.00, which will be mostly at lower altitudes or higher speeds, n1 will be higher than CN1. This means at those speed/altitudes which yield 1.0+ sqrt Theta2, your 1.0 scalar in 1506 will be at a lower CN1. Why do we care? Since our table 1506 is at sea level only, and our static 1.0 is at 100.9% CN1, our mach 1 entry would be at a lower RPM than 100.9%, before we make changes for ram drag. In other words, all Mach lines in table 1506 should be set to static thrust, adjusted for changes in corrected fan speed at each Mach. For example, CN1 for 100.9% n1 at mach 1.0 is 92.4% CN1, so your 1.0 scalar at Mach 1 would need to be adjusted to 92.4% accordingly. Idle at mach one will be about 2% lower than static CN1. If you use 1506 as gross thrust with 1507 as ram drag, the non-static mach line scalars will be IDENTICAL to static, except at different Corrected fan speeds. This is probably the most confusing part. I hope I did a good job explaining it.

This leaves our entries above 100.9%n1. You probably won't have any valuable data to find the correct slope. If you've charted ram drag and thrust vs Mach, you should be able to draw the missing segments visually. Continue the curve until reaching 120.9%CN1. 120.9% is the highest CN1 for your engine, 104.8%n1 / 0.867. If at 100.9 thrust is 27,300 and 104.8 thrust is 27,700, then we can keep adding 400 pounds of thrust for every 4%CN1 up to 120.9. Be sure to realign your Throttle and CN2 tables as outlined by Roy to reflect these changes.

And that's it. Your engines will now produce the same thrust as the real in all flight phases. The only issue remaining is getting a good compromise in fuel burns. Because FS fails to simulate ram drag, taxi and cruise fuel burn will not align. If you keep TSFC set to static, your cruise burn will be too low. If you set it to cruise, taxi burn will be too high.

To find the TSFC of the real plane in any condition, don't use your 1506 chart above. Take fuel burn from the performance charts / (static thrust at the given CN1 * Delta2)

Don't forget to double check your throttle and CN2 alignments.... good luck and feel free to ask questions. Hope this helps.


  • B737-181.png
    99.5 KB · Views: 5,375
Last edited:
Firstly, THANK YOU a houndred times, jx!!
Never thought I could get that data - I lovethis community:D

1. Are you refering to an 738 stating that IDLE FF is 830lb/hr (at 20% N1)?
On pics and vids I always read FF 0.29 per engine. As this seems to be the most important step to get the non static thrust correct, I would really like to know which one is the right ff.

2. I understood, that I have to find out FS Fn by comparing the Fuel Flows, correct? I'm using AFSD (http://www.aero.sors.fr/afsd.html) all the time for my readings and it also shows Fn (and Fr, Fg).
So would it be ok getting real world Fn by real ff/tsfc and then adjust table 1506 lines until AFSD gives my the correct reading for each mach?

3. Do you know the taxi N1? Some references say it's even just Idle. By now I need 45% N1 to hold 20kn at ~60tons.
If this is to much rpm, I would consider edit the sim1.dll. Don't think drag is that excessive at this speed...

Thanks again for offering that much help!

Best regards,
You're welcome 100 times.

1. It is the utmost important step!

Ignore the 830 lbs/hr I said. I was just guessing. Find out the real pounds and N1, then by looking up that n1 on the chart you will know how many pounds of thrust are coming out of the hot nozzle at idle.

Here's a fake example of what you'll be doing:

If the real engines idled at X lbs/hr at Y %N1 we would look up Y % on the chart and see that idle thrust is Z lbs. Divide X lbs idle FF into Z lbs idle thrust = Taxi SFC. In FSX apply the value to thrustspecificfuelconsumption. In FS2004, multiply this number by two and apply to fuel_flow_scalar. (I've heard conflicting info about FSX value * 2. You'll know if FS FF is twice as high.)

-Ensure idle N1 in set correct in tables 1502-1504. Make sure that the table 1506 scalar at idle CN1 = charted idle thrust / static_thrust.

-Ensure static Fr in table 1507 is all zero.

Open the sim and observe idle FF. It should be really close. Adjust TSFC scalar accordingly to get it as exact as you can. +/- less than ten pounds is fine.

You should then be able to take it for a taxi test where it will breakaway at around 30-50% and roll at or just above idle at 10 knots. Be sure your weight is set to a medium load. Consult your FCOM taxi section for these details.


I understood, that I have to find out FS Fn by comparing the Fuel Flows, correct?

no. We need to find real world Fg (or Fr) from real world fuel flow or N1 (cockpit indicators) so that we can make our 1506 or 1507 mach charts. We already have the static chart.

Zero out 1507. Set up 1506 by multiplying each row's static scalars by the sea level sqrt(Theta2) vs Mach.

Once that's complete we have a problem of not knowing the ram drag. Most FS designers will just add or reduce thrust to tweak fuel flow at cruise (or taxi) which is totally incorrect. That static chart is CONCRETE! Once you have that, don't ever doubt it.

So would it be ok getting real world Fn by real ff/tsfc and then adjust table 1506 lines until AFSD gives my the correct reading for each mach?

no, TSFC changes on real engines as Fg and Fn diverge and at different RPM ranges while Ram drag from table 1507 changes your RPM alignment from static so you still need to zero it for now. AFSD will help later.

In order to get your engines set up correctly, we need to find real world gross thrust from the charts, so that we can normalize it from whatever altitude and speed charted --- back to sea level static. We can only do this from N1, FF, or mass airflow. Usually the charts only indicate FF. N1 would be helpful. Mass airflow requires a SSL mass airflow table...those are usually kept secret.

You seem like you can handle the math stuff so here are the formulas in order:

Fn at stabilized cruise = Thrust Required

Thrust Required * fuel_flow_scalar (TSFC value in cfg) = FS FF

Charted FF - FS FF / # engines included = Excess Fuel due to Ram drag AT thrust required.

Excess Fuel due to Ram drag / fuel_flow_scalar = Fr Ram drag Force at altitude


Charted FF / fuel_flow_scalar - Thrust required / # engines included = Fr Ram drag Force at altitude

Fr Ram drag Force at altitude / Delta2 = Sea Level Fr at Mach vs CN1 RPM

Thrust required / Delta2 = Sea Level Fn at Mach

Fn + Fr = Fg

Fg / static_thrust = table 1506 scalar at mach (should increase with mach)

Once you have your RPMs mapped,

(KTAS * 1.6878 * 0.07647 * Sigma * inlet_area) = Momentum drag Force

Momentum drag Force * Delta2/sqrt(Theta2) = Table 1507 base value

Table 1507 base value / Fr = Table 1506 Scalar.

That's how you do it, but the only problem is it doesn't work. Table 1506 simply scales RPM-to-thrust alignment. It's nice for tweaking, but it doesn't add any drag force. Which leads to the problem you have with your third question...

3. Sim.dll isn't the issue. Ground friction is correct. Because 1507 doesn't work, you have to compromise your TSFC setting to an average of cruise. If you change the ground friction you would need to recalibrate your braking distance and add some amount of aero drag below Mach 0.20 to keep your field performance correct.

It's easier to explain in math using a hypothetical real plane:

SSL TSFC = 0.30
Cruise TSFC = 0.60
Idle Thrust = 2600 pounds

If you set the CFG to 0.30 TSFC * 2, taxi performance will be spot on because your static chart is correct and your fuel is being derived from 2600 lbs/Fn * 0.3 = 780 lbs/hr. But if you set your CFG to cruise TSFC * 2, your fuel burn during taxi will be too high. Not knowing any better, nearly every FD file I have seen, compensates for this by reducing taxi thrust in table 1506. This results in 780 lbs/hr / 0.60 = 1,300 lbs/Fn during taxi, which is half of what is needed.

I have a few solutions I have come up with but they are not yet ready for public use. Still some bugs and complexities to work out. If you have SimConnect experience, I believe you can use that, and there may be FSUIPC options as well.
Sorry for the late reply, but once again thank you for your valuable explanations!

Ok, I think I understood the steps now, hopefully: I need to KNOW the current FS Fn (at e.g. cruise), which equals thrust required. Then I look into the charts, that actually give me FF and N1 (hope this helps) at any altitude/speed ~> so I get real world Fg.
After that I'm applying all your steps to find out Fr, Fn scalar, and so on...

Is this correct by now?

If yes, my problem is to find out thrust required at stab. cruise as it also depends on the fuselage drag settings, doesn't it?

BTW, tables 1503,1504,1505 and 1506 static are all set up, working fine.

Going through your blue marked procedure shouldn't be a problem, as long as I got the basic understanding (see above) right.:)

I hope you don't mind me asking all this questions after you explained it that extensively.

Best regards,
Yes that sounds about right.

You bring up a great question about the drag. It is almost certain that your drag settings are wrong. Without a drag polar taken from a real airframe, there's no way to be accurate. Also, there is a bug in MSFS induced drag. The increased lift needed at high altitude and high mach is applied via the CL vs Mach table, but unfortunately the additional lift added by that table does not add to induced drag as it should.

But if you take the real world charts and reverse engineer the Fg against your MSFS thrust required, the charts will apply a real world correction to your airfile. In other words, if your model has too much or too little drag, your ram drag calculation will skew and cancel it.

That being said, you may get to a point where you see inconsistencies in your ram drag plots, that can lead you to corrections in other drags. For example, maybe you notice all your high KIAS readings are drag heavy. This indicates too much CDo. And so on.

Also your RPM may not align. Again, trust your static chart! When there are discrepancies, look for something else causing it. MSFS models the corrected chart lookup properly. When I set up my tables, I am usually within 300 pounds of thrust required, at +/- 1.5% N1 in all regimes on the first try. (Using actual flight test data and reports of course.)

Just remember your fuel burn totals will be unreliable until you get to the last step. It will be a compromise unless you are able to change TSFC in sim.
If you set the CFG to 0.30 TSFC * 2, taxi performance will be spot on because your static chart is correct and your fuel is being derived from 2600 lbs/Fn * 0.3 = 780 lbs/hr. But if you set your CFG to cruise TSFC * 2, your fuel burn during taxi will be too high. Not knowing any better, nearly every FD file I have seen, compensates for this by reducing taxi thrust in table 1506. This results in 780 lbs/hr / 0.60 = 1,300 lbs/Fn during taxi, which is half of what is needed.

The complication here is that MS has defined a "minimal" fuel consumption at low thrust settings. Practically this minimum FF is calculated internally as
MinPPH = 0.065 * static_thrust * TSFC (0.065 is a hard constant probably hardcoded in SIM1.dll). Calculation of fuel consumption as Fn * TSFC is only valid if it is greater than this MinPPH. Below that MinPPH will apply whatever engine settings are. Depending on Table 1506 and 1507 designs it may occur at different N1/CN1 values
Yes you are correct, however that threshold is well below normal idle for any engine I have seen.

But for the people who...

Not knowing any better, nearly every FD file I have seen, compensates for this by reducing taxi thrust in table 1506.

...this will likely be an issue. 6.5% is very near the threshold of half idle power. If you are encountering this barrier at idle you most likely have incorrectly set taxi thrust.
Get back into the pain :p

And here I am again, asking for help:D

Well, after a little break and a long long search for some drag data I came back to finish it...

I believe I have set the drag roughly correct now - these are my references:
CD0= 0.01416
L/D at FL330, Cl=0.5, M.781, AOA=2.55 : 17.26
table 154a goes up to 0.00591 at M.8

BTW: I set my table 401 (CL0 vs mach) to 1 all the way up. It flies well, pitch is spot on. I wonder what it is for?!

Now for the engines!

I tried the FF method, but it is indeed not very accurate. All depends on the TSFC and when this is only a little offset everything else screws up...

Thus I decided to use real world N1 numbers instead of FF to get it right.
This is what I did:

1. Ensure all conditions (weight, speed, altitude, ISA) are like in the charts.

2. Use AFSD to note down my hopefully correct drag aka thrust required "Treq". Also note down CN1, altitude, mach.

3. Now I corrected real world N1 to CN1, so that I know to which CN1 I have to assign the new thrust curve.

4. Calculated 1506 new thrust coefficient via:

- - - - - - - - > Treq / (2 * 27300 * delta2)

5. At this point I have a set off pretty accurate values, BUT they are for every special condition only. Like one value for M.681, another for M.795, another for M.625 and so on...

So my problem is that 1506 is certainly devided into M0.1 steps. And I also think that when I correct my values to suit the fix mach numbers, they won't allign with the CN1 anylonger?!

Question: Is there a way to correct my values for the given mach steps AND simultaneously correct CN1 for the same?

I hope my bad english and my thoughts were somehow understandable :eek:

Best regards,
In other words:I have the cn1 and the thrust coefficients, but both need to be corrected for the fix mach steps (0.8, 0.7, 0.6).

I dont know if this is even possible. Because if it would work, it would also be possible to correct them for the lower machs (0.1, 0.3...). And this CAN'T be!

So I will just near my values - not accurate, but better than nothing.

Any thoughts?


Question: Is there a way to correct my values for the given mach steps AND simultaneously correct CN1 for the same?


Yes. But first, I know the TSFC method will screw up your fuel, that is due to the inability of FS engines to change efficiency, we knew that before. The reason you should do it that way is to find REAL WORLD drag AT N1 without a chart.

We already have static, but don't know how the fan speeds change versus thrust as speed changes.

Anyway, using the method you have, you are encountering a common issue. In the words of Yoda "you must unlearn what you have learned."

Think of thrust and the thrust table 1506 like this...

Imagine if air density never changed with altitude. If this were the case the only thing that would change is mach (or Total temperature and Total pressure).

You need to set your table 1506 up to ONLY account for sea level changes in Mach. Each mach point reflects sea level.

THEN, set up your CN1 table to only reflect the same thing, sea level changes with mach.

THEN, set up your CN2 tables to reflect changes with altitude and mach according to the IAP and hi/low mach options.


You are most likely trying to set up your fans using high altitude data and high altitude mach..... throw that idea away.

You can try to take those charts and normalize everything to sea level first, then plot the mach intervals (I've never tried that...can't say if it would be a pain or not). The problem I see here is real world mach and CDi effects will throw your numbers off.

You could also try making a drag polar. Once you have that you would have something concrete to go on.

BTW: I set my table 401 (CL0 vs mach) to 1 all the way up. It flies well, pitch is spot on. I wonder what it is for?!

Either your pitch is off and you don't know it, or your lift table is set to higher speeds or some weird combination. It's mathematically impossible to produce adequate lift at the lower Q of high altitude (when indicated airspeed falls to the mid or low 200's at higher mach). But in the real world, due to compressibility, the wing becomes more lift efficient while also experiencing a heavier load. So the stall angle gets worse while at the same time, lift coefficient goes up. Stall occurs at a much lower CL, but cruise pitch is lower than at the same speed at lower mach. In FS, they missed the boat on this... but that's why the table is there. Pitch is usually 60% at FL350/mach 0.8/271kias in a 737 versus 271 knots at sea level (Mach 0.45).

The reason for this is the effect of density. In that scenario I described, Q is 300 at sea level, while 230 at FL350 with true airspeed way up.