Understanding stutter/de-sync bug finally (technical + proof + how to fix)

Look familiar?

What’s happening is client sees you are overweight and each time you try to move, requests are sent to server “this is my weight, what’s my movement speed?” at 0-delay intervals which causes the de-sync/stuttering.

Click for technical speculative stuff. potential fix.

Combat de-sync now is the same: your status is “rooted” or “in ice shower” or “charging with GA” or “walking after shooting with fire staff” and while you are in this state, client is coded to keep spamming server to give you your updated movement speed without any delay between requests causing the stutter/de-sync.

The fix: have it when a movement speed change is approved by server, have a cooldown server-side to when it replies to client to actually update your movement speed. Client can keep spamming the “what’s my movement speed” request as fast as possible, but server only replies back an affirmative “X. now update your movement speed” at a delay. This keeps it still server authoritative, just with some sort of new CC diminishing return effect.

This bug was likely introduced when movement speed on roads was implemented, as this required checking if you are on a road, consistently + push for server authoritative checks. When this was patched, the overweight bug also changed from not affecting your movement speed at all to this stutter de-sync walk.


If this is the real cause, and the patch above fixes works, this would not only fix the de-sync/stutter bug but free up network bandwidth which might fix lag in Wars as well. This is also a form of CC diminishing returns that people are asking for (e.g movement speed are checks are on a cooldown). Kill 3 friction points with one fix.

6 Likes

Yes. You are right. But this doesn’t work exactly how you say.
The server doesn’t “approve” movement speed changes.
You have a character on your client, and another script is running your character in the server.
When you move on your client, you see how you move instantly, and then you send the input to the server and the server moves your character too.
The problem of the de-sync is that the server and the client doesn’t move in the same way. (For example, imagine that the client thinks that you dodge for 2 meters, and the server thinks that the dodge are 3 meters of distance. After dodge you will be teleported when the server detects you are too far away where you are supposed to be).

The case of the video has a very simple fix: This happens because the server thinks that you aren’t full, but the client thinks that you are full. (sometimes it is the opposite)

The way the client calculate your inventory’s weight (perks… % reduction…) is different to the way that server calculate it.

So your client doesnt want to walk, but you send the input to walk to the server, so the server move you because you can walk.

February’s patchs is the worst patch of all. Every patch brings new bugs, but February’s patch made the game unplayable. It should has been removed the day it was released to live.

5 Likes

Did you just save New World?

Devs get in here!

@Luxendra @Luxark @Shadow_Fox,
Sorry to tag yall on a Sunday.

But this is potentially game-fixing?

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