A couple things to check first (the “off course / turn to heading X” loop is usually one of these)
If this started right after an airport/sectional/navdata update, the most common cause is a mismatch between what ATC thinks the approach course is and what your avionics/nav source are actually following (or you’re tracking a GPS “magenta line” while ATC is judging you against something else).
Step-by-step checks
1) Confirm what “course” you’re actually tracking (heading vs track)
ATC is usually evaluating your track over the ground and/or the published final approach course, not your compass heading. With any crosswind, you can be on the “correct heading” and still be drifting off the approach course.
- On final/intercept, look at your map or the CDI and see whether you’re actually centered, not just pointing the nose at the assigned heading.
- If there’s wind, try flying the CDI/needle (or GPS course) instead of holding a fixed heading and see if ATC stops complaining.
2) Make sure you’re on the correct NAV source for the approach
If you’re flying an ILS/LOC but the avionics are still in GPS/FMS mode (or vice-versa), you can get into a situation where the airplane is tracking one thing and ATC expects another.
- For an ILS/LOC: make sure the nav source is the localizer (NAV1) and you’ve tuned/identified the ILS frequency (and front course looks reasonable).
- For an RNAV (GPS) approach: make sure the source is GPS/FMS and the approach is actually loaded/activated in the FMS.
3) Quick isolation test: try the same approach with default navdata
Since you mentioned it started after an update, it’s worth testing whether the update itself introduced a bad course/leg in the data X-Plane is using.
- Temporarily remove/disable any custom navdata you installed (if you’re using any) and re-test the same approach.
- If it immediately behaves with default data, you’ve confirmed it’s data-related rather than flying technique.
4) Verify you’re flying the exact procedure ATC expects
After navdata updates, procedure names/variants can change slightly. If ATC cleared you for one transition/runway procedure but you’re flying a different one in the box, ATC can keep flagging you “off course” even though you’re lined up “visually.”
- Double-check the approach name (and transition) ATC cleared you for matches what you loaded.
- If you’re doing “VFR landing” with ATC still vectoring you like IFR, make sure you actually cancel IFR / stop flight following if that’s what you intend.
A few quick questions so I can narrow it down
- Which exact X-Plane 12 version are you on now (and roughly when this started)?
- Are you using default navdata or a custom navdata update? (If custom: what provider, and is it AIRAC-based?)
- Example airport/runway/approach where it happens (ILS vs RNAV, and the runway number)?
- Which aircraft/avionics are you using when you see it (default G1000, G430/530, airliner FMS, etc.)?
- When ATC says “off course,” are you actually centered on the CDI/localizer, or are you holding a heading in a crosswind?
Give me one example approach (airport + runway + approach type) and what navdata you’re running, and I can tell you exactly what to look for and whether it sounds like a bad procedure record versus a source/mode issue.