My game involves teleporting players to a different spot in the game when a round begins. However, if a player’s network is too weak, the player will not teleport thus breaking the game. The game breaks since the game assumes that the player is in the playing field when it is not and prevents the round from progressing properly.
How would I check if the player failed to teleport due to poor internet and take action accordingly? Note that I teleport all of the players on a server script and the teleport happens in the same place using PivotTo()
You could have a system that checks the player’s current position, after some time. It might even be useful to get the player’s NetworkPing to help you check to see if you need to wait until their ping is sufficient to move.
If I were to use the method of checking the network ping, what ping range should be considered as unstable?
As for the position method, is there a possibility that the server would still assume the player’s position has moved and has not yet replicated to the clients due to the high ping (this would make the positioning method not work)?
I believe anywhere between 1000-1500 ms ping would be a concern, since they’re receiving the data every 1-1.5 seconds.
Well, the client’s position has to replicate to the server despite the server setting it. But, the position may be set on the server on the same frame it was set. So, you just have to wait a frame to check if the player’s position is where it should be.