VATSIM / IVAO / PILOTEDGE Users - Be aware of an important bug!

I think the core issue here is a misunderstanding of what the problem is. It sounds like there’s an assumption that some kind of data is faulty or being forwarded incorrectly to VATSIM, and thus there is something erroneous inside the sim itself that needs repair or is broken. However, neither of those things is true. I understand you’re not particularly interested in hearing why that isn’t the case, but I think it’s worth attempting to understand, as it does have real world pilot impact, which is why the atmosphere model was updated. I would like to also stress that the exact same set of issues laid out below also hold true of the XP12 atmospheric and altimetry model.

I’ll try and take you through the whole situation, to better explain what is happening here.

Historically, all ATC clients read a value called PLANE ALTITUDE. This value was the exact geometric altitude above the earth. This previously was safe to use, as in an exactly ISA atmosphere (which all simulators could only model to this point) the geometric altitude and the indicated altitude are identical if the altimeter is correctly calibrated.

However, in reality, temperature and pressure effects cause errors in altimetry. These are especially relevant to pilots in cold weather conditions on approach where you can see in some charts that you may have increased minimums, as cold weather can make the altimeter read higher above the ground than you actually are, which can be disastrous if not accounted for properly. These effects were missing from the sim prior to the altimetry model update.

As a result of this, the PLANE ALTITUDE value (which was never the indicated altitude, as a reminder, but reasonably safe to use before) does now usually not match the altimeter indication. I cannot stress enough, this is not a bug, but a feature. Real altimeters act in exactly the same way.

To allow third party developers to read the correct data depending on their use case, there are a few values which can be used instead:

  • INDICATED ALTITUDE: The altitude currently shown on the cockpit altimeter
  • CALIBRATED ALTITUDE: The altitude that would be shown on the cockpit altimeter if the altimeter was always perfectly calibrated
  • PRESSURE ALTITUDE: The altitude that would be shown on the cockpit altimeter if the altimeter was set to 29.92inHg.

In a real ATC environment, there is no equivalent of PLANE ALTITUDE (pure geometric altitude). The fact that this worked OK before is merely because the sim’s atmosphere model was incorrect and simplified. Instead, in real life ATC receives the pressure altitude from the plane’s transponder unit, and corrects that using the local QNH, showing the corrected value on the scope if under the transition alt, or the pure pressure alt if above it. It is 100% possible for third party clients to accurately do this by reading the PRESSURE ALTITUDE data value and it has been possible since the altimetry and atmosphere model update.

However, there is a wrinkle here, and it isn’t caused by MSFS. VATSIM, IVAO, PilotEdge and the like also have to support mixed simulations, which include mixed atmosphere simulations: in other words clients with totally different environmental and altimetry sims need to coexist under the same ATC. There are now two classes:

  • Sims that are only capable of simulating an ISA atmosphere, for which the geometric alt is safe to use (FSX, P3D, XP11, XP10)
  • Sims that can simulate non-ISA atmospheres, for which the geometric alt is very much not safe to use (MSFS, XP12)

Things get even more complicated when you realize this additional wrinkle: the ability to use non-ISA atmospheres means that if two people are not using the same weather, their altimeters may be reporting the same value for two entirely different places in space. I’ve actually talked at great length with the developer of vPilot and the PilotEdge client about this tricky issue, and as you can imagine, there’s no one single perfect technical solution to this issue from the client side. I’ll demonstrate why:

Let’s pretend there are two planes from different simulators both coming in to KTEX RNAV 9Z at 13000 feet. The OAT is -5F/-20C (it got that cold last year). You’ll notice the warning here in the chart regarding the required temperature correction:

Let’s assume both simulators have calibrated their altimeters to local QNH. One simulator can only do ISA atmospheres, so one client’s plane reports PLANE ALTITUDE at exactly 13000. The other simulator can do non-ISA atmospheres, so reports PLANE ALTITUDE at 12335ft. They both have the same INDICATED ALTITUDE value of 13000 feet. Where do you place each plane? There are three locations to consider:

  • Where does the non-ISA plane appear in the ISA sim?
  • Where does the ISA plane appear in the non-ISA sim?
  • Where do either plane appear on the ATC client?

There are a lot of unhappy options. You can place both planes at their geometric altitudes in all three locations, but this has some problems:

  • If the ATC client scope is doing the proper QNH correction, then the ISA plane appears to be ~700 feet high. If it isn’t doing that, then the non-ISA plane appears to be ~700 feet low.
  • The expectation of both pilots in each simulator who locally have correct QNH is that they would have 0 feet of vertical separation, but instead they have ~700 feet.

You could just stick each plane at their INDICATED ALTITUDE. But wait, this also has some issues:

  • If the pilots have the wrong QNH they still appear as if they’re at the right altitude on the ATC client scope, because they’re both at 13000 feet indicated.
  • If the pilots have the wrong QNH then they should have some vertical separation but would show visually in each respective simulator that they do not

Furthermore, the non-ISA plane is actually closer to the ground and is experiencing the effects that require altitude correction. If the ISA plane attempts to do that altitude correction, it will be flying at too high an altitude. So, there isn’t a totally straightforward answer as to how to support totally incompatible atmospheres or weather settings from the third party developer side. One plane is almost 1000 feet closer to the ground in these conditions, which can’t just be ignored or waved away.

VATSIM and PilotEdge have done the best possible compromise they can here, which is using an algorithm that weights the separation between planes highly on the simulator client side, so should show planes at roughly the correct vertical separations to each other’s clients as they get closer to each other. If third party ATC decided to drop support for ISA-only sims and also force everyone to somehow download the exact same weather, then these differences between clients would nearly vanish, but that’s not really a practical answer.

Therefore, you end up with the situation that exists today: old ISA-only sims must be catered to and worked around with these types of algorithms, and different weather settings in non-ISA capable sims can still wreak havoc with no clear and perfect solution for placing the aircraft in space in the ATC client.

10 Likes