Server thinks a vehicle (and its driver) is not where it actually is

OneSync - Wrong playerped/vehicle coordinates

  1. Client (production/canary) and FXServer version
    Production / FXServer-master SERVER v1.0.0.4394 win32

  2. What you expected to happen
    The script to behave normally.

  3. What actually happens
    The script detects a position very far away from where the player actually is.

  4. Category of bug (eg. client, server, weapons, peds, native)
    Probably OneSync client-server issue

  5. Reproducible steps, preferably with example script(s)
    I don’t have reproducible steps, but the affected user provided a video. It’s possibly happened many times more, but this is the first time we get a video of it.

Basically, my script bans someone for “teleporting” when it detects that their position has changed too fast. The way it works exactly is undisclosed, but I can privately provide the source code to Cfx.re.

A user reported that when they entered a specific vehicle, suddenly all the population vehicles and peds around them disappeared. They exited and reentered the vehicle again and they got banned my anticheat.

I investigated the anticheat output, and it seems that the moment the player entered the vehicle, the server thought they were in another location.

image

I checked the printed coordinates, (1760, -867, 71) is where the user actually is in the video above. (367, 4846, -58) instead is inside an interior below Mount Chiliad:

We have received reports of this in the past, however without any sort of correlation or reproduction steps (who owned the original entity, what is the history of said car, is there any object ID conflict, etc.) this is impossible for us to investigate or fix.

Are you using bigmode (‘infinity’), or classical no-length-hack mode?

1 Like

Thanks for the response.
We are using OneSync Infinity
As for the info about the car, I can tell by the video that there was no other player around (unless an admin was spectating), because in our server we have player blips show on the radar. The car seems to have been spawned as part of the population, but it spawned driverless.

EDIT: I confirm from the logs that no admin was spectating that user at the moment (didn’t get spectated in the last 2 weeks)

We are able to see this issue happening and are able to reproduce it quite reliably:

  1. Client (production/canary) and FXServer version
    Production / FXServer-master SERVER v1.0.0.4960 win32
    (we tried a version in 47xx and was happening as well, with 4394 the issue never happened, after reverting to 4394 issue stops presenting itself)

  2. Everything to behave normally. Players can see each other as well as the vehicles around.

  3. Sometimes, after you enter a vehicle, you stop seeing all players and entities around you. When you leave the vehicle, it returns to normal. The people around also don’t see you or the vehicle. If you try to get the location of the ped server side, it gives you that bunker (the same of the original report, in this case of my situation: vector3(367.317, 4846.729, -58.448)). If you try to get the location of the vehicle via the network id, it gives you more or less vector3(0,0,0)).

This only starts happening at about 2hours after the server is restarted, with OneSync Infinity and 400 players connected.

  1. Would guess Server Side, as with the recommended artifacts the issue does not present itself.

  2. We have been seeing the issue 100% of times across three different restarts, after reverting to old artifacts, the issue does not present itself.

Video of the situation: Streamable

As soon as the cars spawn, everyone around me disappears. After I revive myself, forcing me out of the vehicle, everyone shows up. After I enter, everything goes invisible. When I delete the vehicle, everything returns to normal. The blacks squares in the video are other windows opened hidden for privacy reasons. There seems to be also a spam of “no object by ID…” while the bug happens.

Image of console location output (triggered by the command you see performed on the video):

Line 1 - Server Ped Position
Line 2 - Network ID of the vehicle
Line 3 - Coords of vehicle, through the network ID

The real position of the ped during the repro was vector3(230, -800, 30) - can be seen in the video above.

1 Like

Then… where are the reproduction steps?

There’s also a huge delta between ‘4394’ and ‘4960’, so that’s very much not helpful - can you at least post reproduction steps or at least try to narrow down when this started by binary-searching?

Also, note that @Sasino97 claimed this does occur on 4394, and I don’t see any changes that could be related here since 4394, so even there the two of you are being inconsistent, so actual repro steps are all the more critical here.

Just tried with random artifacts between the two above, (4558), and the issue keeps presenting itself, reverting to 4394 seems to fix it.

Not only the behavior above happens, but also some players after entering the server don’t see any other player or entity, like they are on a different routing bucket (I checked and they are actually not). Trying to get the player coords from server side of those players, will be 0,0,0.

I cannot really find many good reproducing steps, only let the server run with 400+ players and at about 2 hours after restart such a thing happens.

I am trying to narrow it down testing all artifacts. Will be trying 4478 (latest optional) next and will report back.

Then I guess this will never be fixed by us, since we don’t have any way to get ‘400+ players’ on a server: you’re going to have to find info and a cause by yourself probably or have someone else who owns a big server do such. :confused:

Again since OP claimed this happens on ‘4394’ too it might be there’s a different reason you’re not seeing such occur there, also the other ‘issues’ you claim happen have also occurred since the first ‘OneSync’ functionality release, may have vanished over time inadvertently however, but we still don’t have any info on them at all, perhaps some changeset did fix them indeed due to some weird equilibrium of other issues, impossible to tell without repro steps or any actionable info (and no, I don’t know how to gather such info either, logging with ‘400 players’ is impossible as it would be 50 MB of logs per second, and other than being able to try random changes to see if such improves I don’t know anything about this at all nor where to start with correlations etc.).

I don’t even think this happens on every server of such size either or there’d be way more complaints, so there’s likely some additional correlation involved somewhere and similarly there’s probably a way somewhere to get this to happen with less players, just that this correlation happens more often with more players.

In my case we only have 50 slots (probably 60 at the time of the report above) in our server. I don’t know how to reproduce that bug, but the location the server thinks you’re in is the same for both me and @pedrogoncalves (the bunker); that would be a good starting point, I don’t think it’s just a random location. Meanwhile, I made a server script drop anyone that’s near that bunker, in case anyone reading this would like a temporary solution and doesn’t care about that interior.

Right. Seems like a usual case of object ID conflicts, but what happens at those coords to lead to so many creations(?) that this ends up breaking?

svgui’s netobjviewer to find the object ID of the car (while it exists) may help.

This is the netobjviewer of a player while having the issue of not seeing anyone inside a vehicle (ID 1478), has hundreds of entities listed under him: 2021-11-13 23-50-29

So far trying the different artifacts, 4478 works fine with no issue (latest optional), with 4504 the issue does happen. I am still trying to narrow it down, but of commits during those versions, i can only find one that could be related, on September 7th regarding “limit amount of created entities per type”

That makes a lot of sense, because, at that spot where the user was in my first video, a ton of population cars (and their drivers) spawn there.

Your observation isn’t very related. The ‘limit’ of created entities is equal to the pool size in game code, this issue isn’t directly related to the fact entities are being ‘limited’, but rather to (for example) spam-recreation or other object ID concerns caused by this logic.

Are you spawning any networked ‘props’ via script? Other than the lot of 00000000 objects - dummy objects likely hitting another bug that has no repro - there’s also some that do look script-created, and it may be some whatever-logic that recreates these if rejected leads to ‘broken’ object ID reuse.

Similarly, I’m not seeing you show the vehicle ID or its position yet, though that doesn’t seem related to whatever may or may not have caused this situation either: just want to confirm if it’s indeed ‘wrong’.