
With X-Plane 12.4.0 now available, let’s take a deeper dive into some of the changes concerning X-Plane developers!
I am unusually tardy with this post, so I would first like to apologize for the delay. I chose today’s title mostly because of multi-threading… but also because I’m all about family. And the X-Plane family has certainly come together over the holidays with our latest release.

12.4.0 is out now – Introducing some significant performance upgrades, A330 Improvements, Tobii integration, new art assets, and much more. We’ve been furiously working on this for quite a while in the latter half of 2025, and we are happy to see such a well-received reaction. I personally frequent Discord, Reddit, the Org forums, AVSIM, and other Facebook groups, and we want to make sure users are feeling more heard.
One thing that has impressed me of late is the amount of creations going on. RealOps is breaking ground with its ground-handling plugin. The wonderful scenery innovations by X-Codr. New career mode plugins. More people are trying out aircraft development. New developer tools/pull requests from XP2B. The community has been cooking lately!
More importantly, we’re focused on giving you guys and gals more features to create in X-Plane. This is going to be a big focus for some upcoming updates of ours. (No, that isn’t a reference to scenery… that comes later). But more on that another day!
So let’s get into what’s new for this update…
SDK Changes
SDK 430
SDK 430 is now available and compatible with X-Plane 12.4.0 or newer.
Warning: the 4.3.0 SDK incorrectly identifies itself as version “421” in the version included in X-Plane 12.4.0. Despite this, all entry points are present. The version number is corrected to 430 to match published docs as of X-Plane 12.4.1.
Official Changelog
- The new XPLMInitFlight and XPLMUpdateFlight APIs in XPLMPlanes provide complete control over creating and editing how the user’s flight starts.
These APIs supersede and expose deeper functionality than the previous XPLMPlaceUserAtAirport and XPLMPlaceUserAtLocation APIs. - The third MDCU is exposed in the avionics API.
Other Noteworthy Changes
- Fixed an error where users might get the message “The sim destroyed an instance during the dag!” when using add-ons (XPD-17441)
- Improved documentation of XPLM_MSG_DATAREFS_ADDED (XPD-17317)
- Fixed return value of XPLMGetVirtualKeyDescription (XPD-17397)
Future SDK changes
We will/should be adding access to additional basemaps/terrain data in a future update.
What happened with plugins during 12.4.0?
The short story here is, we found quite a few plugins calling X-Plane functions before it was fully loaded, which is a big no-no. I’ve asked Ben to make a blog post in his free time about further details on this, and how you can best avoid such incidents in the future.
Can you improve documentation on this?
Short answer: Yes
Long answer: I don’t think it’s any secret that we’re in the middle of a large documentation revamp, so there will be plenty of forthcoming changes. When we’re ready to communicate more, we shall!
Performance Improvements
The glorious future is here! Or at least, partially. X-Plane now takes advantage of multi-threading for scenery only. I strongly encourage you to read Sidney’s post about it here, and make sure you understand performance here. But here are a few Q&A’s
Should I expect massive amounts of increases?
It depends on your hardware and what the bottleneck was in the first place. If you’re GPU-limited (which is your GPU Compute time taking longer than your CPU), you are unlikely to see any benefits
Is this the end of multi-core/threading improvements?
No! Please see Sidney’s post for a full outline. Additionally, 12.4.1 will have additional performance improvements.
Will this help my multi-monitor setup?
Not inherently, as this is geared towards the scenery system. We have plans to address multi-monitor displays and further parallelize that work. This is not a short-term item, and I would suggest you read Sidney’s article.
Are you working on device losses?
Yes, but with caveats. We know it occurs disproportionately more with AMD devices. However, we found user feedback to be particularly poor. Throughout 12.4.0 beta, we decided to enable a “partial flavour” of AMD aftermath by default, and this should help us get one step closer to diagnosing these issues.
For the bug trackers here, we have XPD-17857, if you want to follow along.
How can I help?
Contact us via support, and they will give you further instructions. And be prepared to submit Aftermath reports!
New Assets

WED artists, we won with this update. Petr and Justin have created a brand new round of assets, fulfilling some long-requested items.
Segmented Circlelib/airport/markings/segmented_circle
Wind Tees (Currently Not Animated)lib/airport/markings/wind_Tee
Signal Square (Common for small EU airfields)lib/airport/markings/signal_square
New Glider Models: ASK-21 & Ventus 3lib/airport/aircraft/gliders
Animated Craneslib/vehicles/static/tower_crane
Construction Material Objects: Cable Wires, Wooden Pallets, Steel Pipes, Concrete Pipes, Cement, PVC Pipes, Concrete Blocks, Steel Beamlib/industrial_area/construction
VHF Dipole Antenna Towerlib/airport/radars/VHF
RV/MotorHomes/Trailerslib/vehicles/static/RVs
Camping Equipment: Tents, Chairs, Tables, Coolerslib/public_area/camping
Completely Revamped Modern Carslib/cars
New Taxislib/cars
Pavements: Asphalt, Concrete, Grass, Mosaic, Tiled, Mulch, Grates (Pavements are 0.15m AGL, if you wish to place objects on top)
Documentation Herelib/airport/ground/sidewalk_15cm
Planter Objects: Grass, Bushes, Rock Shrubslib/vegetation/planters
Fences: Mesh, Metallic, Stone Wall, Woodenlib/vegetation/planters
Road Bumpslib/airport/ground/roads/speed_bumps
We’ll certainly be back with even more assets in future updates (for those who attended our Discord Developer Stream over Christmas, if you know… you know). But my personal thanks to Petr and Justin for knocking these out of the park.

A Note On Grass…

Some of you will be looking at that grass polygon with a swooning desire to place large swathes of it over your airfields…
PLEASE, PLEASE, PLEASE…. DO NOT DO THIS!
This is a one-way track to performance degradation, and we will block gateway submissions that abuse this! We have also dreamed that one day the world will be filled with lush grass to touch. But this is not the device to get there. Keep your grass planter objects in small, localised areas.
Gateway Update

Finally, we have our latest round of Gateway airports by our incredible WED artists. I’m working with Julian to get more updates to you, but I’m in awe at some of the work being done by the artists lately.
Don’t forget that Worldeditor 2.7 Beta is also available to try (although you will not be able to submit gateway airports with this). This provides the ability to flatten the default mesh (default mesh only!)
(Note: This list is not a complete representation of all changed/added airports)
Australia
YAYE — Ayers Rock
YHGI — [H] Hogan Island
YMAY — Albury
YNBA — [H] Nubeena
YPAR — [H] Port Arthur
YRKB — [H] Rokeby Police Academy
YRTN — [H] Railton
YSHD — [H] Sheffield
YTSI — [H] Tasman Island
YTUL — [H] Tullah
YWDM — [H] Waddamana
YWTH — [H] Waterhouse Island
Austria
LOAV — Vöslau
LOKR — St. Donat-Mairist
LOLO — Linz-Ost
LOWG — Graz
LOWZ — Zell am See
XLO0002 — [X] Leopoldsdorf
XLO000B — Ameis
Bahamas
MYIG — Matthew Town
Belarus
UMMG — Hrodna
XUM000A — Shchuchyn
Belgium
EBBT — Brasschaat airfield
XEB0005 — [H] Oostdijckbank Platform
XEB0006 — [H] OSY-OS1ST Heliport
Bhutan
VQPR — Paro Intl
Bosnia and Herzegovina
XLQ000B — Lazy Horse Ranch
Brazil
SBGR — Gov André Franco Montoro
SDXX — [H] Fazenda Santa Vitoria
SNDU — Ponta do Sol
SNLO — Sao Lourenco
SSHK — Fazenda Jaguarandy
XSB000V — SiCPA
Bulgaria
LBBG — Burgas
Canada
C24 — Mineral County Memorial
CAK3 — Delta Heritage Air Park
CYFR — Fort Resolution
CYUY — Rouyn Noranda
CYVQ — Norman Wells
CYYU — Kapuskasing
XC002V — [S] Pistol Lake Seaplane Base
XC00DF — Minaki
China
XZ0036 — Zhongshan Sanjiao
XZ003F — Dunhuang Mingshashan
XZ003I — Yangjiang Heshan
ZLDH — Dunhuang
Czech Republic
LKPR — Praha – Ruzyne
XLK0009 — Hláska
DEU
ED1C — [H] Uniklinik Frankfurt a.M.
Democratic Republic of the Congo
XFZ0003 — Boma
Denmark
EKOD — Odense/Hans Christian Andersen
EKSP — Vojens / Skrydstrup
Estonia
EETN — Lennart Meri Tallinn
FRA France
2051 — [X] Cavallo
Finland
EFHK — Helsinki Vantaa
France
LFGI — Dijon Darois
LFPN — Paris Saclay Versailles
LFRC — Cherbourg Manche
LFYG — Cambrai Niergnies
Germany
EDAB — Bautzen
EDAZ — Schönhagen
EDBC — Magdeburg/Cochstedt
EDFM — Mannheim City
EDHM — Hartenholm
EDRM — Traben-Trarbach Mont Royal
EDTM — Mengen-Hohentengen
EDTR — Herten-Rheinfelden
EDWI — Wilhelmshaven JadeWeser
XED001U — [H] LRZ Schkeuditz / Dolzig
Germany (civil)
XEDB2 — Fürth-Seckendorf
Greece
LGSK — Alexandros Papadiamantis
Greenland
BGCO — Nerlerit Inaat
BGKK — Kulusuk
Hungary
LHKE — Kecskemét (Titán)
Iceland
BIIS — Isafjordur
India
VAUD — Udaipur
VIAR — Amritsar
VICG — Chandigarh Intl
VIDN — Dehradun
VIDP — Indira Gandhi Intl
XVI000I — Donyi Polo
Indonesia
WAPB — [X] Bula
WAPO — Larat
Ireland
XEI001K — [H] Bull Rock Lighthouse
Italy
LIEE — Cagliari Elmas
LIMF — Torino Caselle
LIPV — Venezia Lido G. Nicelli
LIRF — Leonardo da Vinci Intl
LIRQ — Firenze Peretola
XLI001Y — Avro
Kenya
HKMO — Mombasa Moi Intl
Libya
HL81 — Al Hamada Con 66 East
Mexico
MMPP — Punta Pescadero
Morocco
GMTN — Saniat Rmel
Nepal
VNLK — Lukla – Tenzing Hillary
Netherlands
EHEH — Eindhoven
XEH001E — [H] K12-D Heliport
XEH001F — [H] K12-K Heliport
XEH001G — [H] L10-E Heliport
XEH001H — [H] L10-L Heliport
XEH001I — [H] L10-M Heliport
XEH001J — [H] L10-A Heliport
XEH001K — [H] L10-C Heliport
XEH001L — [H] L10-F Heliport
XEH001M — [H] K12-G Heliport
XEH001P — [H] Hollandse Kust Zuid Alpha
XEH001Q — [H] Borssele Alpha
XEH001R — [H] Borssele Beta
XEH001S — [H] Lichteiland Goeree
XEH001T — [H] Europlatform
XEH0022 — [H] K12-A Heliport
New Zealand
NZLX — Alexandra Aerodrome
NZNS — Nelson
NZQN — Queenstown
Norway
ENTC — Tromso Langnes
Panama
XMP0003 — El Real de Santa Maria
Papua New Guinea
XAY004P — Suaka Airstrip
Philippines
RPLL — Ninoy Aquino Intl
RPMN — Sanga Sanga
RPVM — Mactan-Cebu
Poland
EPGD — Gdansk Lech Walesa
Romania
LRCL — Cluj Napoca
LROP — Otopeni / Henri Coanda
Russia
XU003M — Popovka
Russian Federation
UNWW — Spichenkovo
Saint Lucia
TLPC — George F L Charles
South Africa
FAMM — Mafikeng
Spain
LEBB — Bilbao
LECX — Castell de Castells Cocoll
LEVS — Cuatro Vientos
Spain (mainland section and Balearic Islands)
XLE002C — Godos – Caldas de Rey
XLE002Y — Gergal
Sweden
ESGG — Göteborg Landvetter
ESSA — Stockholm Arlanda
ESUP — Pajala
Switzerland
LSPF — Schaffhausen
LSZA — Lugano
LSZT — Lommis
LSZU — Buttwil
Taiwan
RCTP — Taipei Taoyuan Intl
USA United States
51R — Madisonville Muni
Ukraine
XUK0031 — Odesa Zastava
XUK0033 — Luhanka
XUK0034 — Oleksandriya
XUK0035 — Znamyanka
XUK0036 — Zhuravka
XUK003A — Volodymyrivka
XUK003B — Pavlysh
United Arab Emirates
OMDB — Dubai Intl
United Kingdom
EGHA — Compton Abbas
EGTR — Elstree
United States
0A3 — Smithville Muni
1VA4 — [H] Evergreen
3B5 — [X] Twitchell
4TE0 — [X] Lone Star Steel Co
80B — [S] Long Pond
8C5 — Toledo Muni
9C0 — [S] Peninsula Point Pullout
IA63 — Edgren
IN24 — [H] Franciscan Health M. City
KALS — San Luis Valley – Bergman Fld
KAMW — James Herman Banning Ames Muni
KANK — Harriet Alexander Field
KBNO — Burns Muni
KCOF — Patrick SFB
KCXE — Chase City Muni
KDTW — Detroit Metro Wayne County
KFAY — Fayetteville Rgnl/Grannis Fld
KFSM — Fort Smith Rgnl
KGBR — Walter J Koladza
KINW — Winslow-Lindbergh Rgnl
KLAS — Harry Reid Intl
KLAX — Los Angeles Intl
KLCK — Rickenbacker Intl
KLUK — Cincinnati Muni Lunken Fld
KMSP — Minneapolis Saint Paul Intl
KNGU — NS Norfolk
KORC — [X] Orange County Muni
KPIT — Pittsburgh Intl
KPOH — Pocahontas Muni
KSCK — Stockton Metropolitan
KSOY — [X] Sioux Center Muni
M57 — [S] Rangeley Lake
ME12 — [S] Brettuns Pond
ME27 — [S] Double A
PAAQ — Palmer Muni
PAEN — Kenai Muni
PAKT — Ketchikan Intl
PASI — Sitka Rocky Gutierrez
PAVD — Valdez Pioneer Fld
TN19 — [H] Harriman City
UT22 — [H] Logan Regl Hospital
W31 — Lunenburg County
W43 — Hulett Muni
W63 — Lake Country Regl
W78 — William M Tuck
WV32 — New River Gorge
XK005G — [H] Longview
United States (Contiguous)
XK00AO — [H] Intermountain Med Ctr
XK00DL — Triple Tree
XK00DY — Highland View Field
XK00DZ — [S] Camden
XK00E0 — Ridgeview
XK00E1 — [H] NorfolK NS Heliport
XK00E2 — [S] Lucky Landing Marina
XK00E3 — [H] Cranberry Isles
XK00E4 — [H] Utah Valley Regl Med Ctr
XK00E5 — Sioux County Rgnl
XK00E6 — River View Airpark
United States (Puerto Rico)
XTJ000T — [H] Costa Sur Power Plant
Uruguay
XSU0007 — Aeroclub de Rocha
Venezuela
SVOK — Oritupano
That’s all from this update. Catch you next time!