Release 2.4

Last updated 2026-05-23

FlatoutATC 2.4.0 — Release Notes

Released 2026-05-23 (build 46)

Two new airports, a New York metro hub rebuild, a two-way line of communication with the developer, and a long list of fixes you'll feel under your fingers.


✈️ New Airports

Lukla — Tenzing-Hillary (VNLK) 🇳🇵

The 2.4 marquee level. The short uphill runway carved into the Nepalese Himalaya at 9,334 ft, with Mount Everest on the horizon in 3D mode. Runway thresholds snapped to satellite-derived coordinates so the strip lines up with the real-world geometry pilots actually fly.

To support high-altitude work at Lukla, the helicopter service ceiling has been raised from 12,000 ft to 18,000 ft across the game. Vector your rotorcraft to the helipads with confidence.

Anchorage Ted Stevens (PANC) 🇺🇸

Anchorage joins the catalogue with twin parallel 07R/L plus the crossing 15/33, all with runway endpoints refined for satellite accuracy. The international hub runs alongside the famous Lake Hood seaplane and ski-strip operations — the busiest seaplane base in the world is right next door.


🏙️ The New York Metro Rebuild

The Newark map has been expanded to cover all four major NYC-area airports:

  • EWR — Newark Liberty
  • LGA — LaGuardia
  • JFK — John F. Kennedy
  • TEB — Teterboro

And the 3D tower view now renders the Manhattan skyline by hand — Empire State, One World Trade, Hudson Yards, MetLife and the rest of the NYC-metro tall buildings rising in the distance.

Teterboro in particular got reworked for its real-world traffic mix — it now spawns up to 40% helicopters with matching triple-slot helipad goals. Plus the orphan SIDs and STARs left over from the old EWR-only map have been cleaned out.


💬 Talk to the Developer

A direct line. Tap Settings → Feedback, leave a rating and a comment, and your post lands as an anonymous public entry on the Talk-to-the-Developer board at flatoutatc.com/talktothedeveloper. When the developer replies on the web board, you'll get a push notification on your device — tap it to open the thread inside the app.

The whole flow is end-to-end:

  • In-app feedback publishes anonymously — no name, no email, no account identifier attached to the public post.
  • Replies push to your home screen — banner appears even when the app is closed, and the springboard badge counts unread replies.
  • In-app reading — tap the notification (or open the Talk-to-the-Developer entry under Settings) to read the thread inside the app via an in-app browser sheet.
  • Privacy — a dev-only-readable mapping retains your Firebase UID solely to route replies back to you and to honour deletion / access requests.

🚁 Helicopter Improvements

  • Vertical lift-off from the helipad — no more ground roll for rotorcraft. Request takeoff and the helicopter lifts straight up the way it should.
  • Distance-scaled helipad landings — the autoland approach speed now decreases proportionally with distance from the pad for cleaner, more realistic finals.
  • Service ceiling raised to 18,000 ft (was 12,000 ft) — needed for Lukla but available everywhere.

🛠️ Bug Fixes

A focused pass on the things that were silently making play frustrating:

  • Pause behaviour — paused time no longer counts against the level timer when you resume. Several timed scenarios were affected; you now actually get the full clock you started with.
  • Stuck-plane fix — STAR arrivals that couldn't be resolved (the dreaded "0-knot" spawn) no longer appear at all instead of materialising motionless on the radar.
  • Goal type respect — free-play scenarios now respect each goal's allowed aircraft types: helicopter-only helipad goals no longer pull in jets, and runway-tied goals no longer pull in helicopters. Mixed-fleet levels get the right airframe on the right route.
  • Below-elevation guard — landing clearance is now rejected and descent is held if an aircraft drops below the airport elevation, instead of letting it silently sink through the terrain.
  • Thunderstorm drift direction — a sign error meant storms were drifting away from the airport with the wind. Fixed: they now move toward the airport the way the wind is actually blowing.
  • Takeoff-queue timing — the deadline now uses sim-time tick rather than wall-clock comparison, so paused / scrubbed time doesn't corrupt the queue.
  • Turn logic — heading commands now recompute the turn direction every time, so you can't accidentally chain a long-way-around turn from an old command.
  • Emergency aircraft no-roll fix — emergency state on takeoff-roll aircraft no longer corrupts state or triggers a bogus 20-minute countdown.

⚡ Performance & Stability

  • Smoother under heavy load — the emergency-arrow and path-history dot rendering paths have been rewritten to reuse SpriteKit nodes instead of allocating fresh ones each frame. Path-history alone went from ~54,000 allocations per second to roughly zero in steady state. The air radar runs noticeably cooler in heavy scenarios.
  • 3D Ground Tower satellite floor restored — the satellite imagery on the tower floor is back. It was disabled during the 2.3 MKMapSnapshotter crash fix; this release re-introduces it via bundled Mapbox JPGs so the crash stays gone.
  • 3D Tower scene teardown — leaked memory on exit eliminated by matching the air-scene's deinit + dismantleUIView pattern.
  • Architecture cleanups — UI prewarming, AI controllers, and a few other heavyweight types now run on the main actor by design. Concurrency races on cold launch are gone.
  • Frame-rate label updates — air and ground scene labels (goal text, flight plan, flight number, countdown) only redraw when the text actually changes, eliminating per-frame layout churn.

🔒 Privacy

A bit of housekeeping: this release introduces our first formal PrivacyInfo.xcprivacy manifest (Apple's required-since-2024 declaration of what data the app collects) along with corrections from an internal code audit.

What's new on the data front:

  • Apple Search Ads attribution capture — when you install via an Apple Search Ads campaign, anonymous campaign metadata (no IDFA, no Apple ID) is captured once and stored with your account record so we can measure which campaigns lead to better-served players. First-party Apple-to-device data per Apple's own docs; does not require ATT consent.
  • Push notification token storage — if you grant notification permission to receive Talk-to-the-Developer replies, your Firebase Cloud Messaging token is stored on your account record so we can send the replies your way. Standard FCM integration; cleared if you uninstall or revoke permission.

Our privacy policy has been substantially updated to describe both flows. Read it at:

Localised in English, Spanish, French, and German.


💳 In-App Purchases

No changes. Your existing Full Game Unlock ($4.99) and any prior unlocks restore automatically on first launch of 2.4 via StoreKit. No pricing tiers shifted, no new IAPs introduced, no subscriptions.


🌍 Localisation

In-app What's New copy translated for English, Spanish, French, German alongside the existing UI translations.


What's Next

A handful of concurrency cleanups and one architectural consolidation deferred from 2.4 are queued for 2.5. The roadmap continues with new airports, more rating-recovery polish, and (eventually) tile-baked maps for >150 NM worlds.

If you've got thoughts, tap Settings → Feedback and tell us. Replies land back in the app.

— Craig

Release 2.4 — Flatout ATC Help