This is EXACTLY what I was trying to say in the other thread!
The generic transponders all use INDICATED ALTITUDE and not Standard Pressure Altitude (sl 29.92 inHg). They SHOULD be using standard Pressure Altitude. I don’t know what the G1000 or G3000 transponders are using to get altitude. But the KT76C, the AS21, and AS330 transponders are all using “Indicated Altitude:3”, or register 3.
And, too boot, there are three indicated altitude registers FS uses so the Transponder, Auto Pilots and Altimeter are not linked. So, when you change the indicated altitude on your Altimeter, you are NOT changing the indicated altitude of either your auto pilot or your transponder! The transponder should not be using indicated altitude in the first place.
But the B key affects all three indicated altitude registers. So, when you use the B key, you are changing the altitude of your transponder to the current indicated altitude, and when you reset your altimeter to pressure altitude above FL180, the transponder is still using the same indicated altitude you set with the B key, and there is no way to change that.
And if VATSIM etc are reading the Transponder altitude, and you’ve used the B key, it’s going to be wrong if you are using live weather.
I just wrote a long text about this to Matt.
I created a package which fixes the three generic transponders if anyone wants it, but I would hope that Asobo will fix this. I reported the issue months ago.
For instance, the code in the KT76C.js is
getAltitude() {
return SimVar.GetSimVarValue("INDICATED ALTITUDE:3", "feet");
It should be
getAltitude() {
return SimVar.GetSimVarValue("PRESSURE ALTITUDE:3", "feet");
(It super annoyed me the KT76C displayed the indicated altitude of my altimeter, and not the standard pressure altitude it was supposed to (read the manual) and that’s how I came across this)