
With X-Plane 12.4.1 now available, let’s take a deeper dive into some of the changes concerning X-Plane developers!
Hey everyone, this update is rather short this time around. Everything is striding along nicely this Spring! Let’s see what’s new here.
NOTAM – SDK Threading
As I’m sure you’ve all noticed by now, a raft of plugins did experience issues during the 12.4.1 beta. Thankfully, most have now been resolved, but a quick explainer about what’s happened here.
We’ve been logging erroneous plugin behaviour for a while, including XPLM calls before plugin init and unsafe thread access practices… but now that we are in the Glorious Future™ where X-Plane really is doing multi-threaded rendering (with more planned in the future), we now have to enforce thread safety on XPLMDataAccess and hard assert to ensure sim stability. The tldr here is that many plugins were incorrectly calling X-Plane before it was meant to.
A few notes here:
1. Please keep in contact with us. If you are a developer, please feel free to reach out and join our developer Slack. You can use support@x-plane.com
2. Do not delay in testing your addons. We still see a few developers attempt to defer testing until after an official release. We don’t want the disruption, nor do customers!
Some plugins could also benefit from switching to easier data-access methods, like websockets. Any damage here would solely be on us!
We also know the communication/logging of this could be better; believe us, we’ve already hotly debated this internally, and we’ll work to fill out SDK deficiencies.
NOTAM – AMD Device Loss (We kicked its butt)
After reviewing the crash rate, Sidney is pleased to report that AMD device losses should be solved.
NOTAM – Steam Rollbacks

For the Steam users in the room, it is well known that you guys do not have the same special powers as LR Direct users. So starting with 12.4.1, you now have the option to rollback to the last previously available version.
I will caution that this is not a permanent workaround (Although the rollback method will always be available). Please attempt to resolve the issues with 12.4.1 first (At least 95% of plugins we’ve come across have now been resolved, or have a pending update)
TCAS API
As part of the A330 updates, we’ve now got an enhanced TCAS API for aircraft developers, put together by Philipp. Have a look!
New Assets

We keep ploughing through asset creation. Not only is this helping towards next-gen scenery, but also helping to unlock artists today!

Cab-Over European Style Trucks
My personal favourite, Justin (MisterX) has worked on these European-style trucks (and has brought some American vs Europe balance into this world). We’ve got a number of different liveries and truck variants for you to choose from.
lib/vehicles/static/trucks

Gravel Textures
Meanwhile, Petr has worked to finally give us new gravel textures. The new polygons come in different colors and a mixture of solid to patchy cover. You can use the provided lines and polygon patches to then blend in the gravel color.
This is really going to open up some of the more outback and GA airfields for scenery authors, and I can’t wait to see what you all come up with.
lib/airport/ground/terrain/gravel
lib/airport/ground/terrain_FX/patches/gravel
lib/airport/ground/terrain_FX/paths/gravel
Blue-Roof Hangars

A small update to our hangar library, which is now available with blue roofs.
Gateway Update

Finally, we have our latest round of Gateway airports by our incredible WED artists.
(Note: This list is not a complete representation of all changed/added airports)
Argentina
SAZI — Bolivar
SAZN — Neuquen – Presidente Peron
XSA000B — Chacras del Faro
Australia
XY0055 — Western Sydney Intl
YBMA — Mount Isa
YBMK — Mackay
YCCY — Cloncurry
YFLI — Flinders Island
YHLC — Halls Creek
YLRE — Longreach
YMAV — Avalon
YMEN — Essendon
YPGV — Gove
Austria
LOIH — Hohenems Dornbirn
LOWW — Wien-Schwechat
Bahamas
XMY0006 — Castaway Cay
Belgium
EBCI — Charleroi / Brussels South
EBKH — Balen Keiheuvel
Bolivia
XSL002O — San Fernando
Brazil
SIPK — Hotel SESC Pantanal
SJQN — Quirinopolis
SJYO — Bananal
SSPM — Porto Murtinho
SWYK — Fazenda Ilha Camargo
Bulgaria
LBSF — Sofia
Canada
CNP7 — Iroquois
CNS8 — Morrisburg
CRF5 — Saskatoon/Richter Field
CYCC — Cornwall RGNL
CYCL — Charlo
CYLA — Aupaluk
CYOW — Ottawa MacDonald-Cartier Intl
CYQT — Thunder Bay
CYRI — Riviere du Loup
CYSH — Smiths Falls/Montague
CYXS — Prince George
CYXY — Whitehorse/Erik Nielsen Intl
Central African Republic
FEFF — Bangui M Poko
Chile
SCOT — Santa Rosa de Tabalí
SCOV — El Tuqui
China
XZ001U — Shuang Yu Shu
XZ002W — Yunlong
XZ003K — Zhuzhou Lusong
ZBTS — Sannühe
ZLLL — Lanzhou Zhongchuan Intl
ZSYC — Yichun Mingyueshan
Colombia
SKPP — Guillermo Leon Valencia
Costa Rica
XMR0004 — Sanata Teresa
Croatia
LDLO — Losinj
Czech Republic
LKLT — Letnany
LKVO — Praha – Vodochody
Côte d'Ivoire
XDI0004 — Odienne
DEU Germany
EDX5 — Asslarer Huette
Denmark
EKBI — Billund
EKCH — Kastrup
EKHV — Haderslev
EKLS — Laeso
EKRN — Bornholm Rønne
Eritrea
HHAS — Asmara INTL
France
LFBP — Pau Pyrenees
LFFY — Etrepagny
LFHM — Megeve
LFHZ — [X] Sallanches Mont Blanc
LFLO — Roanne
LFLP — Annecy Meythet
LFMD — Cannes Mandelieu
LFPB — Paris Le Bourget
LFRU — Morlaix Ploujean
Germany
EDAY — Strausberg
EDAZ — Schönhagen
EDBH — Barth
EDDK — Koeln – Bonn
EDDS — Stuttgart
EDFM — Mannheim City
EDFQ — Allendorf/Eder
EDFZ — Mainz-Finthen
EDJA — Memmingen
EDMA — Augsburg
EDME — Eggenfelden
EDMF — Passau-Fuerstenzell
EDMJ — Jesenwang
EDMK — Kempten – Durach
EDMO — Oberpfaffenhofen
EDMS — Straubing
EDMW — Deggendorf
EDPI — Moosburg auf der Kippe
EDQM — Hof-Plauen
EDRJ — Saarlouis – Dueren
EDRY — Speyer
EDTB — Baden-Oos
EDWI — Wilhelmshaven JadeWeser
Germany (civil)
XED006K — [H] Hiddensee
XED08 — Steinheimer Schaefhalde
XED6B — Dettingen/Teck
XEDCV — Hermuthausen
Greece
LGNX — Naxos
LGPA — Paros
IDN Indonesia
WAWJ — Tampa Padang
Iceland
BIAR — Akureyri
BIBD — Bildudalur
India
VASU — Surat
VERK — Rourkela
VODG — Dundigul
XVI000N — Kalaburagi
Indonesia
WABQ — Mulia
WIMS — Dr Ferdinand Lumban Tobing
XWI000R — Marinda
Ireland
EIKN — Ireland West Knock
EISG — Sligo
Italy
LIDT — Trento-Mattarello
LIPE — Bologna Borgo Panigale
LIPN — Verona Boscomantico
LIPV — Venezia Lido G. Nicelli
XLIKI — Caposile
Japan
RJEB — Monbetsu
Kazakhstan
UAAA — Almaty Intl
XUA000F — [H] Anar
Liberia
GLRB — Monrovia Roberts Intl.
XGLFOY — Foya
Luxembourg
ELLX — Luxembourg
Moldova, Republic of
LUKK — Chisinau Intl
Montenegro
XLY000T — Cemovsko Polje/Spiro Mugosa
Nepal
XVN0005 — Thamkharka
Netherlands
EHAM — Schiphol
EHBK — Maastricht Aachen
XEH002N — [H] Buitengaats
XEH002O — [H] L2-FA-1 Heliport
XEH002R — [H] K1-A Heliport
XEH002S — [H] K5-CU Heliport
XEH002T — [H] L4-PN Heliport
XEH002U — [H] L5-FA-1 Heliport
XEH002V — [H] L5-D Heliport
XEH002X — [H] F3-FB-1 Heliport
XEH002Y — [H] D12-B Heliport
XEH002Z — [H] D12-A Heliport
XEH0030 — [H] D15-FA-1 Heliport
XEH0031 — [H] F15-A Heliport
XEH0032 — [H] G14-B Heliport
XEH0033 — [H] G14-A Heliport
XEH0034 — [H] D18-A Heliport
XEH0035 — [H] E17-A Heliport
New Zealand
NZAA — Auckland Intl
NZOM — Omaka
NZTI — Taieri
NZWB — Woodbourne
NZWS — Westport
XNZ000J — Drury
Nigeria
DNAA — Nnamdi Azikiwe Intl
Norway
ENGM — Oslo Gardermoen
Pakistan
OPKC — Karachi Jinnah Intl
OPRK — Sheikh Zayed
OPRS — Risalpur
Palau
PTRO — Roman Tmetuchl Intl
Poland
EPLB — Lublin
EPGL — Gliwice Trynek
EPWR — Wroclaw Strachowice
XEP0008 — Swieta Katarzyna
Romania
LRBS — Bucarest Baneasa
LRSV — Stefan Cel Mare
Russia
UI78 — Mostovoy
XU003P — Esso
XU003Q — May Gatka
Russian Federation
UEEA — Aldan
UELL — Neryungri
Rwanda
HRYR — Kigali Intl
Saudi Arabia
OEJF — King Faisal Naval Base
Singapore
WSSL — Seletar
Sint Maarten (Dutch part)
TNCM — Princess Juliana Intl
Slovakia
LZIB — Bratislava
Slovenia
LJPZ — Portoroz
South Africa
FAUP — Upington
Spain
GEML — Melilla
LEBA — Cordoba
Spain (mainland section and Balearic Islands)
XLE0020 — Oteo de Losa
XLE002B — Chaira
XLE002O — El Carrascal
XLE002P — Tomas Fernandez Espada
XLE002X — Los Oteros
Sri Lanka
VCCG — Amparai
VCCK — Koggala AFB
VCCW — Wirawila
Sweden
ESSA — Stockholm Arlanda
Switzerland
LSGE — Ecuvillens
LSGG — Geneva
LSGP — La Cote
LSGS — Sion
LSPU — Munster
LSTO — Motiers
LSXU — [H] Untervaz
LSZF — Birrfeld
LSZJ — Courtelary
Turkmenistan
UTAA — Oguzhan Ashgabat Intl
USA United States
O24 — Lee Vining
O43 — Yerington Muni
O79 — Sierraville Dearwater
Ukraine
UKDR — Kryvyi Rih Intl
UKOH — Kherson Intl
United Kingdom
EGBG — Leicester
EGHH — Bournemouth
EGHJ — Bembridge
EGMC — Southend
EGSC — Cambridge
United Kingdom (and Crown dependencies)
XEG0056 — Newry private airstrip
XEG0058 — [H] Ailsa Craig Lighthouse
XEG005H — [H] Altnagelvin Hospital
XEG005P — [H] Salisbury Dist Hospital
XEG005W — Fleetlands
XEG005X — [H] St Mary's Hospital
United States
06C — Schaumburg Regl
07V — Cuchara Valley At La Veta
0Y6 — Lake Mills Muni
16Z — [S] Mc Grath
1MD5 — [H] Federal Support Center
1V6 — Fremont County
42VA — Virginia Beach
4G5 — Monroe County
4I0 — [X] Mingo County
4N7 — Greene
65NJ — [H] Helo Kearny Heliport
87VA — Cottonwood Farm
8A7 — Twin Lakes
99MN — [H] St Marys Hospital
FA54 — Coral Creek
KALX — Thomas C Russell Fld
KBBW — Broken Bow Muni
KBCB — Virginia Tech Montgomery Exec
KBIS — Bismarck Muni
KBUF — Buffalo Niagara Intl
KCLE — Cleveland Hopkins Intl
KCMI — Univ of Illinois Willard
KDET — Coleman A. Young Muni
KDKB — De KalbTaylor Muni
KEOK — Keokuk Muni
KFAF — Felker Army Airfield
KFLL — Fort Lauderdale Hollywood Intl
KGAI — Montgomery County Airpark
KGUP — Gallup Muni
KHHF — Hemphill Co
KHNR — Harlan Muni
KHSV — Huntsville Intl
KIMS — Madison Muni
KISM — Kissimmee Gateway
KISP — Long Island Mac Arthur
KJAC — Jackson Hole
KLAF — Purdue University
KLBE — Arnold Palmer Regl
KMKE — General Mitchell Intl
KMKY — Marco Island Exec
KMPI — Mariposa-Yosemite
KMSN — Dane County Regl
KNUW — Whidbey Island NAS
KOLF — L M Clayton
KOXB — Ocean City Muni
KPEA — Pella Muni
KPTN — Harry P Williams Mem
KRDK — Red Oak Muni
KRFD — Chicago Rockford Intl
KRNT — Renton Muni
KRYV — Watertown Muni
KRZN — Burnett County
KSAN — San Diego Intl
KSCH — Schenectady Co
KSDC — Williamson-Sodus
KSEG — Penn Valley
KSFM — Sanford Regl
KSFO — San Francisco Intl
KSLE — McNary Fld
KSMF — Sacramento Intl
KTEX — Telluride Rgnl
KTHM — Thompson Falls
KTMB — Miami Executive
KTNU — Newton Muni
KTPH — Tonopah
KYKN — Chan Gurney Muni
KZER — Schuylkill Co Joe Zerbey
MS88 — Oreck
NJ20 — Coyle Field
NV17 — Youngberg Ranch
NV40 — [H] Action
NV72 — Sweetwater (US Marine Corps)
NV78 — [H] REMSA / Care Flight
O57 — Bryant Field
PAGH — Shungnak
PAK — Port Allen
PAMC — Mc Grath
PHBK — Barking Sands PMRF
PHDH — Dillingham
PHJH — Kapalua
PS81 — [H] Robert Packer Hospital
Q20 — [H] USFS Bridgeport
S77 — Magee
SN34 — Rucker
W50 — Davis
United States (Contiguous)
KIAD — Washington Dulles Intl
KOZS — Camdenton Mem – Lake Rgnl
XK00C7 — Bald Eagle Airfield – Myakka
XK00CL — Grand Rock
XK00DS — Pomona Landing
XK00EG — [H] Erie County Medical Center
XK00EI — Peasley Field
XK00EM — Bakko Aviation
XK00EO — Rassawek
Uruguay
XSU0008 — Chuy
Uzbekistan
UTSS — Samarkand Intl
Vanuatu
NVVV — Bauerfield
Venezuela
SVEN — Encontrados
That’s all from this update. Catch you next time!