Version: SU14 (ongoing, this has been the case since the Alpha
Context: External SimConnect client
Bug description: Ai aircraft can be created and given a route with SetDataOnSimObject with “AI WAYPOINT LIST”. But once applied, the route cannot be changed, subsequent calls to this method don’t have any effect. This used to be different in previous versions of SimConnect, the route could be changed at any point in time by sending new waypoints
Hello @LorbySI ,
I tried to use SimConnect_SetDataOnSimObject to change the waypoints of my spawned aircrafts and it seems to work fine. May I know which type of aircraft did you spawn ? ( Enroute ATC / Parked ATC / Non ATC ? ) ? Also, may I ask if you receive any Simconnect Exception ?
thank you for your reply!
Those are mostly Non-ATC, but it varies. I have a legacy app that creates live AI traffic using the built-in AI FDE (as opposed to controlled in slew mode) by constantly sending them new waypoints. This app will also alternate the aircraft between ATC controlled and non-ATC “on the fly”. The app works fine with the legacy sims (FSX/P3D), but with MSFS all aircraft are just flying straight ahead after they have been created in the correct spot (in the air). They don’t react to the changes that I send them. They receive a new waypoint by and large every 15 seconds. I am not aware of any SimConnect exceptions.
What I can do is make these aircraft fly a predefined route - I just cannot change it once they are in the air.
This is just my showcase, the live traffic app itself is not important. But I have other apps too on the backlock that want to do this (=change the route of a NON-ATC AI aircraft while it is flying). So I would like to find a solution if possible.
So you are able to spawn a non ATC aircraft mid air and send it a first list of waypoints that it will follow?
But you are not able to modify this list with following calls to SetDataOnSimObject?
We witness something slightly different.
Whenever an aircraft is spawned mid air (SIMCONNECT_DATA_INITPOSITION OnGround set to false), it spawns in a “zombie” state, flying straight with a decreasing speed until it stops and simply ignores any waypoint list.
However, when the aircraft spawns on the ground and takes off, we are able to provide it with a list of waypoint and change it dynamically.
The following code snippet edited from the AIObjects SDK sample shows this last behavior:
AIObjects.cpp (9.7 KB)
‘Z’ will spawn a DA62 on ground in 0° lat, 0° lon
‘X’ will send a list of waypoints, DA62 will takeoff when receiving it.
Following presses on ‘X’ will alternate between 2 waypoint lists.
You can use the SimObject debug panel to show the AI path and active waypoint.
@Kaiii3 What’s your input on this? Are you able to spawn non ATC aircraft and provide them with a waypoint list successfully?
yes, that sounds about right. I never thought about it that way, but this is exactly what I am seeing too. I have two other apps that create AI for various purposes, and I can indeed make an AI fly a waypoint based route when it is created on the ground. I am semi-certain that I cannot change that route though, but I will have to investigate that further.
When I create them in the air, they appear in the correct spot, altitude, heading and speed, but just fly straight ahead for a while and then disappear. I just found out about the disapparing part right before I posted the above issue, and will have to look into that more closely too.
As a side note, this problem with airborne Non-ATC AI has existed since the Alpha. I noticed it right away when testing Lorbys own live traffic app with MSFS way back when. But I never thought much of it since there are other apps already in place doing the same thing.
@FlyingRaccoon I have not worked with NonATC in a long time becuase of the “not able to taxi”-bug. But I have seen a strange behavior when actua setting new Flightplans to ATCControllerAircraft after the last SU…
I will do some testing and checking on my end and let you guys know.
I can confirm this with my tests. I found some other stange behavior:
I inject the airplane in the air, and when sending it a waypoint with SIMCONNECT_WAYPOINT_FLAGS.ON_GROUND it actual starts decending torwards it and does not “stop” in the air.
Thanks for your tests.
The issue has been logged on our side.