Severe Client-Server Desync

Also experiencing this issue. My players have been reduced to almost nothing. Those who do play believe the game is always undergoing exploitation by another player when infact the game is simply not replicating client positions to each other. From what I’ve seen, the server can see the accurate and true positions but those positions are never updated on the other clients. This results in clients seeing other clients in a frozen like state where they’ve been spawned in. Any damage that is done, is seen by the server and so is authorised by the server leading to the assumption from a player’s perspective, that an invisible entity is damaging them. Please fix.

5 Likes

I personally have not finished my game yet, but as I take breaks playing military games, the servers get so much lag, that I can cross the map and out of no where, just get damaged by nothing. I know it’s a player but how could’ve I known where the player was if everything is just frozen.

i had noticed this aswell, however people have been telling me its only happening in the test server as of now.

The physics side would lack behind, yet other stuff like guns replicate just fine.
you would see gun bullets get shot at a random place where nobody was.

1 Like

This post seems related

I’m also experiencing this issue in my own game, where all client-server communication halts, and never comes back. I’ve managed to get a consistent and very simple reproduction case of what’s causing it, here. This issue is making a lot of games completely unplayable. I hope it will be fixed soon.

It seems like there is still impressive character replication lag / desync. Does this sound related to the feature that was temporarily disabled? Was this feature turned back on?

This is severely impacting my game. I did not see bad character lag before this issue appeared. The one physics assembly in my game seems decently responsive, but characters are replicating too slowly and sliding / teleporting around. I tested this on a baseplate and did not have the same issues so I guess it’s strongly related to server resource usage.

Related topic: Severe Client-Server Desync

PeZsmistic the flag has been re-enabled, but the original issue was resolved. Please link the specific game that is having issues and we will determine if this flag is still causing issues for that game or if there is a different issue.

https://www.roblox.com/games/2546612479/Plane-Crazy-Development-Build?refPageId=fc90eccd-526f-4587-942b-d776ab417544#
it seems to happen less now, but it still happens a lot, this is a brand new server that was just started up.

– edit
nvm it doesn’t happen less now, it happens just as much as it used to.

Yep, our game is having this exact issue.

I’ve ironed it down to being an exploit script that a user joined ingame and ran because our game sometimes work perfectly fine for a whole hour, then suddenly server ping becomes unresponsive, people stop moving, chat pauses, and you have to probably wait over 5 minutes before the server finally updates where everyone is.

This isn’t a server lag bug as discord webhooks are still firing and when downloading a server microprofile, it shows it being entirely healthy.

This exploit script apparently is a way for a client to have a server halt on network packets.

If you want a really rough fix, have a localscript ping the server, have the server check and calculate the mean of everyone’s last ping to the server, if the last ping goes over 10 seconds, start kicking the last player who joined, wait a few seconds, check ping if it’s back yet, if not kick again.

That helped keep our game up because it’s kicking the player running this exploit script.

1 Like

The game Pinewood Computer Core is experiencing the same issue as others have pointed out above, regarding character replication.

Positions are not updated often and are dragging behind. The lag only seems to affect character positions as things like character animations/equipping a tool are replicated properly.

The issue started a little over a week ago and has severely impacted the player count since.

Any sort of news or information regarding what could be causing this would be greatly appreciated.

A great video I was able to get of this lag occurring can be located here.

Everything else about the game is working flawlessly aside from character replication. It’s the same issue that others are getting with the standard Roblox character but appears to be more prevalent on our end due to our player characters being heavily modified.

Just like Coasterteam & rickje139’s issue, player positions aren’t updating frequently & as a result this seems to cause players to teleport every few seconds/minutes depending on the severity of the lag.

Edit: I thought I’d mention that this issue also occurs in test mode in studio as well whenever we run 3-4 clients at once.

2 Likes

Noticing character position updates lagging here: Be an Alien: Renewal - Roblox

Some characters seem more affected than others, and this appears to only happen in erratic bursts. The game is not terribly well optimized and is due for a major rewrite, but there were never issues with character position replication before. There is a teleport tool available to users but you can tell this isn’t being used because when players are frozen/lagging, you can see their walking animations playing.

This video is interesting because you can see the flat lizard character’s colors changing (on Touched on the client and sent through a remote to the server). These colors update long before the character’s position does.
https://gfycat.com/SandyMiniatureDungenesscrab

https://gfycat.com/DefensiveWeeDinosaur

Also I fixed the link in my previous reply, oops.

2 Likes

I’m not sure if this provides any value to the discussion, but maybe the devs can find something in common between every game having these problems and isolate what’s causing the problems.

I’ve been getting some reports of a variety of the issues mentioned in the above posts in this game: Case Simulator 2 - Roblox

This seems to be the right analysis. Server is fine, it’s just the communication that gets cut. Notice how LocalScripts also keep running fine.
However, I don’t think that it’s caused by an exploit, nor by heavy server load.
I’ve experienced it in a 2-player server with barely any scripts. game link
My own game is also heavily affected.
For me, the desyncs are usually permanent: after 30 seconds of waiting with nothing happening, the roblox player gives error 277 (check your internet connection), but that’s obviously not the issue here.

2 Likes

Another thing to add: the desyncs are not synchronised (no pun intended) between clients. I.E. not all clients desync at the same time.
EDIT: found a way to pretty consistently cause a permanent desync. Join this game, walk over to the right, and enter the white-aqua car. Once the GUI appears, the desync has started. I wonder if it has to do with firing multiple remotes (the car system fires a lot of them to initialise), as suggested by @NickoSCP below.
One thing the games (that I experience this issue in) have in common is the admin system Adonis. But I don’t know if that affects it at all.

It just seems to be a coincidence that our game manages to always run fine by kicking the last few players that joined and the game comes back to life and that the game had been running fine for an entire 30 minutes before it suddenly has this effect.

Our game can finally handle all the way back up to 200 players, before, it would be till 20 players then the server freezes and everyone complains about lag when it’s just the server being unresponsive.

Could it be some kind of network queue that packets are being dropped by some ISP and Roblox doesn’t drop the packet request and keep trying and instead keeps holding on to this packet until it hits a quota and then stops everything?

Yep, it’s definitely related to the client firing RemoteEvents or RemoteFunctions often.
the client in this test game fires a RemoteFunction twice every heartbeat, and the server spawns a part every 0.2 seconds (and adds it to debris). It quickly disconnects, which you can tell because the parts don’t respawn anymore. The admin system I mentioned before is not present here. This bug does not happen in studio, further indicating a network-related bug.

The first clip is from studio playtesting. You can clearly see the parts keep respawning. The second clip is from the live game. You can see that after a few seconds, the parts stop respawning, because you have been desynced. I have uncopylocked the place (link above) so anyone can view the simple scripts.
Base concept of them is invoking a RemoteFunction two times every heartbeat, and printing out the response from the server. The server prints out the amount of times it has received a request, and returns that to the client. The server also spawns parts every second and adds them to Debris (so they get deleted after a second). After a while, the parts no longer respawn, because the client has desynced.
robloxapp-20200512-1811269.wmv (1.7 MB) robloxapp-20200512-1812341.wmv (1.7 MB)
@ post approval Should I create a new post with more detailed repro, or keep using this thread?

2 Likes

@rickje139 and @PeZsmistic I was unable to verify the behavior when I joined instances of that game (I couldn’t find other players showing the effect) so I was unable to verify if this specific flag was related.

@TheGuyWithAShortName the issue did not reproduce for me reliably in that game even though there were other players moving nearby, so I was unable to verify the relationship of the flag to this issue.

@Coasterteam, @DevFlonk, I was able to confirm that the effect is unrelated to the feature we previously released by temporarily disabling the feature. However I also enabled some additional logging locally that has provided some more context for your games in particular.

For Pinewood Computer Core, I suspect what is happening is that physics updates for the trains are consuming the majority of the physics update bandwidth. Coasterteam, you can try moving the spawning platform to be physically further from the trains, or you can try making the trains less physically complex (e.g. attaching Bogies with a rigid joint like a weld instead of a hinge constraint). When objects are connected with constraints/joints that allow movement then we need to expend bandwidth to describe dynamic movements of those connections, but if the parts are connected rigidly like with a weld then we don’t need to expend physics bandwidth for the sub-components.

For Tank Warfare Arcade, it similarly looks like the tanks themselves are highly physically complex. Due to their complexity and the way that we manage physics update sending, it is likely that each client may only be able to see one or two tanks moving at a time (each tank on its own is large enough to expend the step budget for physics sending).

From these, my guess for Be an Alien - Renewal is that some alien forms (like that slithering snake) may also be highly complex and also be consuming a large portion of the budget.

1 Like

@PeZsmistic in the linked videos, which character was the local player? We perform physics send throttling by distance to the player’s character, so if you have e.g. a free-cam mode, and the camera goes far from the player’s character (or Player.ReplicationFocus if set) then you will see similar effects.