Severe Server Lag on Player Join

Hello,
We’re currently seeing this issue in our game, Quarantine-Z:

When a player joins our game, we can see the server is taking up to 400 ms just to process them. This means that while we normally target 30-60 ticks per second on the server, when a player joins we are missing 12-20 ticks. This is a severe skip that everyone already playing can feel and is impacted by. Gun fights pause for almost half a second, vehicles teleport backwards because players suddenly violate their allotted movement distance per frame, etc.

For some background information, our game is an open-world survival game. Our map is about 10000x10000 studs in size. We use Streaming Enabled, and the unreleased Unstreaming flag, to keep the data loaded on the client to a minimal. This is a really large game. The whole map contains about 10,000,000 triangles and almost 250,000 parts in workspace. That’s to say there’s a lot of data that needs to be sent to a client when they join.

It would help us greatly if player join times could be improved on the server.

7 Likes

Is this a new issue that only recently started occurring, or has this been happening for a while? Since the game is streaming enabled normally there shouldn’t be much data that needs to be sent on join.

4 Likes

This is actually pretty old. I’ve noticed it for several months. My assumption was always that the server was sending a ton of terrain data to the player but I’ve never been able to confirm this. We have 10,000 x 10,000 terrain and about 250,000 parts (pre-runtime so not including some spawned things and players) in the game. I probably first saw this back at least as far as July.

I have a profile of this as well if you’d like to see that. Just didn’t want to post it here since it exposes server-side functionality.

I can also confirm this is pretty old, noticed it months ago but I thought it was an error on my end because I found an old thread that said the issue was fixed. Basically every time a player would join I would see the latency spike up to the hundreds (above 400-500ms or more) for a second or two then fall back down to normal latency, I am also using StreamingEnabled to reduce the lag in game for other players.

Also not sure if is this related to this, but each time someone with a slower computer and from another region joined the game would spike up to the hundreds and stay there up until the player left.

Not sure if it’s related but I had a similar problem in September: Ping skyrockets on player join

1 Like

That could be. Did you happen to use the micro profiler on this at all?

We have several efforts underway to improve our join time and reduce the bottleneck that is seen. These improvements are planned to roll out over the next few months so I don’t have a quick fix for people currently unfortunately.

9 Likes

Sounds fantastic! Thanks for looking in to this and giving us a response!

Hey, was curious if this was implemented yet, because my game also has ping spikes (around 800ms) when a player joins and I can’t figure out how to fix it.

Hi there! Thanks for posting!

We are still currently in the process of rolling out changes to the Join process that we think will improve times. The hope is that these incoming changes will improve your game’s join experience.

One change that we’ll be releasing soon should improve ping if your game contains a lot of (or several large) scripts and mesh parts.

Could you please send me the placeId of your game? I’d like to make sure that we’re aware of all the different obstacles in the way of a good Game Join experience so we can come up with ways to address them :slight_smile:

If you could also please capture microprofiles of the ping spike, that would be a great help as well. Thanks!

2 Likes

Is it okay if I send it in a private message? The game is still in testing and yeah it has tons of mesh parts.

Yup! If it does have tons of mesh parts, I expect the improvement coming in the next ~1-2 weeks to help your game. Please DM me the placeId in case it doesn’t so we can investigate further :smiley:

1 Like

Also a microprofile of the 800ms ping would help us a lot!

1 Like

Hi there, my group’s game seems to be facing the same issues as mentioned above.

A bit of detail on our game: an open world city game with civil service teams i.e. police, EMS (much like ER:LC). We rely heavily on player interactions, meaning ping spikes can discourage players from continuing to play the game.

When a player joins the game, the server’s ping shoots to 1000+ ms and stays like that for 5-10 seconds. Our servers hold 40 players with people joining and leaving every minute, therefore this poses a major problem and renders the game unplayable.

We use Streaming Enabled as we have 100k+ parts in workspace (a good sum of it being re-used filler house meshes). From what I’ve read from other threads, the ping spike is caused by the server sending data to the client. I’ve tested this theory out for myself and found that the total data does spike and returns to normal after the 5-10 seconds.

We’ve also tried removing all scripts from the game and checking the total data when a player joins, the problem still persisted.

I can provide more information if needed, my team and I are desperate as we are still a small group and this costs us player count.
Thanks.

2 Likes

Hi there,

Sorry to hear that :frowning:

Could you please DM me what the place ID of the game experiencing these issues is?

Also, if you have one, could you also DM me a Server-side Microprofile of a laggy join? Such a microprofile could be very illuminating.

1 Like

Hello,

We’ve recently brought on a long-time developer who had quite an insight into causes of these issues, it appears one of our developers were not too careful with what scripts they were using and ended up with a handful of Rosync backdoors! In the end, we ran a command to remove said backdoors and the ping has gone back down to normal levels.

Thank you for your response, it’s my first time ever posting on DevForum and I feel grateful that I can depend on staff.

Thanks again.

3 Likes

Super glad to hear that! We at Roblox really grateful for all of our amazing developers too. Please post if you run into any other issues!

6 Likes

Hello there, I am also getting the same issues as mentioned above.

The game I am currently assisting is getting lag spikes if a player joins the game.
A small background of the game: It’s an incremental type of game. It uses a lot of parts but that is pretty much it (Around 500-1k parts), normally it never really lagged if a player joined the game but now it just freezes your game for a couple of seconds.

1 Like

Hi RooveDev,

Thanks for letting us know. Do you happen to have a Microprofile of this happening that you could share with me via DM? Could you also please let me know the placeId?

I have had some situations where the server would lagspike for about 2-8 seconds in some of my projects and in my game aswell.

Everytime a player would join it would create a massive serversided lagspike and i think its because the server is transferring so much data to the player that the server wants to finish loading in the joining player first before continueing to work on other stuff.

I have definitely noticed this happening whenever there is a big amount of terrain inside of the game, the server would spike up to 2000-6000ms ping and my messages would not show up in the chat due to the server being too busy with sending information to the joining player.

1 Like