Manually :Kick()ing a player before the initial game loading finishes results in no reason being displayed

I got a ton of reports during the first announced public testing of Prison Showdown that users were being kicked from the game without reason. There were hundreds of people in the game already, but after these users were in the game people started getting kicked. I suspected it had something to do with my data loading system (and I was right). However, it took me a long time to find the cause because the only thing displayed to the kicked players was this:

It would be very helpful if kick messages could be sent to clients before this initial map loading process completes so that I can get the error messages I need to debug the problem!

(The process I’m talking about is whatever happens whenever the joining server screen is up. My game overrides that screen but it still happens)

6 Likes

I could confirm this occurrence from a game earlier. Somehow the client was not able to display the reason for kicking, e.g. Player:Kick(reason), despite there was a string used as the first argument.

2 Likes

Possibly related:

1 Like

I think the set message packet isn’t processed before the disconnect in all cases. It shouldn’t be that hard to make a fix if this is the case.

13 Likes

There will be a fix in an upcoming release. It looks like in some cases the client might not have even processed the addition of a Player instance. The kick message was previously set using a remote event of Player. The fix moves the kick message to a mechanism that doesn’t deal with this queuing and isn’t based on Player.

8 Likes

Hey, what upcoming release do you mean? I just tested this and there is no message on join. You can see the date was today January 22nd.

The one next week. The code cutoff was just before the change made it through code review.

4 Likes