Physics on the Server Sometimes Desync Replication

This occurs on a baseplate. Sometimes during game play physics will start to desync replication, causing the player on the server to stop replicating their position, meanwhile, all the clients will continue to see where the player actually is. If the player stops moving then the server will finally update their position.

This causes a lot of issues with server-side hit boxes, anti cheats and so on. This has happened in a few top engaging experiences I work on and we’ve yet to find what exactly causes it.

Clip of the issue occurring on both players:

Clip of the issue only occurring for one player:

Included in the private message is a link to an experience, an uncopylocked experience (Baseplate) and client logs.

Reproduction Place: (Uncopylocked)

System Information:
Windows 11, i9-13900KF, RTX 4090, 128 GBs of DDR5, etc.
Channel Information:
Roblox/WinInetRobloxApp/0.725.0.7251138 (GlobalDist; RobloxDirectDownload)
zopentelemetryusepeermonotonicclock (Reproduced on Production as well)
image

Note that reproducing is currently random, as sometimes it occurs and sometimes it doesn’t. Best way to reproduce is to have multiple people running around, sometimes resetting. When the green boxes stop following the player (Server-side view of the HumanoidRootPart CFrame) then the desync is occurring.

Expected behavior

The physics shouldn’t ever desync on the server-side so we don’t get issues with our server-side hitboxes and anticheats.

A private message is associated with this bug report

3 Likes

Hello, we’ve deployed a fix which should potentially fix this problem. Can you verify that you no longer see this issue on both this public experience and on the top engaging experiences you have mentioned?

I’ve found that having large velocity on a character can sometimes also cause their physics replication to stop syncing, for reference the person that the physics desync happened on had ~Vector3.new(5500, 5500, 5500) on their AssemblyLinearVelocity. After their AssemblyLinearVelocity was reset they continued to be forever desynced.
Steps:

  1. Spam set AssemblyLinearVelocity to a high Vector3 like Vector3.new(5500, 5500, 5500).
  2. Set AssemblyLinearVelocity back to Vector3.zero.
  3. The player’s physics will forever be desynced.
    Exploiters can do this and break their physics from replicating as well.

NOTE:
The before mentioned random desync no longer happens, it now only happens when you have a large AssemblyLinearVelocity on your character ever.

Clips:
POV of a player watching someone desync:

POV of the player desynced:

This topic was automatically closed 14 days after the last reply. New replies are no longer allowed.