No Multiplayer simobject data through SimConnect_RequestDataOnSimObjectType

Version: 1.7.27.0

Frequency: Consistently

Severity: Blocker

Context: SimConnect applications cannot get multiplayer traffic object data through SimConnect_RequestDataOnSimObjectType. We can get the ids for those objects but the data is always garbage or gives us the ego data. It appears to me that it’s sending the previous message again and skips updating the data before sending it through SimConnect.

Update: Getting any data using fsVarsAVarGet returns 0 as well.

Repro steps:
Register SimConnect_RequestDataOnSimObjectType to get all SimObjects in the area. SimVar Watcher can reproduce this issue.

Other reports of this issue:

please add at least basic data - position, attitude, model/type

Hello @runshotgun

This looks like a duplicate of Multiplayer Traffic (not AI) incorrect values - [MSFS 2024] Bug Reports - MSFS DevSupport?

May I ask what simvars you are requesting specifically, so we can differentiate between multiplayer simvars that are supported and don’t work versus the need for new multiplayer simvars.

Regards,
Sylvain

TITLE as string
ATC ID as string
AI TRAFFIC TOAIRPORT as string
WING SPAN in meters
PLANE LATITUDE in degrees
PLANE LONGITUDE in degrees
PLANE ALTITUDE in meters
PLANE HEADING DEGREES TRUE requested as radians
VELOCITY WORLD X in m/s
VELOCITY WORLD Y in m/s
VELOCITY WORLD Z in m/s
SIM ON GROUND as bool
GENERAL ENG COMBUSTION EX1:1 as bool

What I can replicate in the SimVar watcher is when I switch to a fakesim it gives me either my own data or 0. For the strings, I’ll sometimes see it flicker from my own TITLE to something else, to empty string.

EDIT: noticing that multiplayer simvars don’t include the plane’s coordinates… Is this an error in the doc or is this intended?

That is not an error from the documentation.
To my knowledge, this list has been pretty much the same since FSX days.
Simulation Variables | Microsoft Learn

I think this was originally designed to only synchronize some visual states of multiplayer aircraft.

Now, the fact that equivalent data can be retrieved though other means, especially the GET_AIR_TRAFFIC Coherent call, means it’s legitimate to expect at least the same data to be exposed through other APIs.

That’s what’s tracked in the other bug report. I’ll just complete the list of variables with the ones you suggested so this is at least considered.

You listed some variables that are in the list of multiplayer variables though, so I’ll double check they work as expected.
Also am I missing something or some of the simvars you listed are made up and are a request to introduce new simvars specifically for this?

Regards,
Sylvain

Looks like some vars are working in flight.
737 in flight:

On the ground, unsure I can trust the values.
2 stationary traffic at an airport:

MD-11 in flight. GENERAL ENG COMBUSTION EX1:n doesn’t seem to be working.

As far as I know, those are all valid simvars. What vars do you see as made-up?

If it’s about AI TRAFFIC TOAIRPORT, it’s listed in Misc Vars as Legacy (not deprecated) and is working perfectly on regular AI Traffic.

1 Like

Ok, my bad, the documentation search tool was doing its own thing :sweat_smile:

1 Like

That being said, if requests are open, I would love to:

  • get access to FakeSim’s username through the ATC ID
  • or have access to the simobject id through GET_AIR_TRAFFIC so we can match them up ourselves (not ideal if many people want to use this since there is a limit on how many BingMap we can register at once in the session and we’ve already seen that limit be hit with other mods installed)

I think ideally ATC ID should continue to provide the tail number (to keep it consistent with how it’s used for the user SimObject and AI traffic); however, I’d certainly agree that it would be very helpful to have the gamertag (and/or XUID) exposed through a separate simvar though!

It would for all other AI types.
Multiplayer aircraft currently don’t have tail numbers.

Multiplayer aircraft do have tail numbers that are visibly synchronized, at least on aircraft that use the default registration gauge. Here’s a screenshot taken in multiplayer, flying in formation with another user (whose aircraft was substituted as a passiveaircraft with a working registration gauge):

Regardless, in principle it doesn’t make sense to have a variable that behaves differently depending on which SimObject you request it on – what if you want to get the gamertag for the user (or find the tail number of a multiplayer aircraft)? Exposing the gamertag as a separate simvar seems like a much clearer design.

3 Likes

I stand corrected!

1 Like