I am trying to make a competitive game and I am checking did rocket hit the player or not and in the moment of check server thinks that position.X of a player is 326.45 and it immediately fires a remote and the client that was hit thinks that his X is 331.99. What I can do with this crazy slow replication of characters?..

Walkspeed of my humanoid is 30.
Difference is 5 studs, assuming you are moving in positive X direction perfectly, server accesses your position from where you are on the server (difference is caused by ping), then sends a remote event to client, where the client is already moved from the original point, and keeps moving before it receives the event to print its position,
Calculating difference divided by walkspeed (times two because as I said, the server is already behind, and to take in account time for client to receive remote event), gives you a ping of 92.
Thats just ping, there’s not really much you can do about it.
Pardon?
ping is client - server - client, to move by 5 studs I need 1/6 of the second, which is 0.166, so the ping is 166 ms. I don’t get, how did you come up with 92.
I just gave an explanation, it’s multiplied by two. When the server first gets your position, it’s off because of ping, then it takes time for the client to receive the remote event, again, because of ping. The effect is, yes 164.6, but its just because ping becomes an bottleneck twice when trying to get current position.
Okey, I get a concept, but now it feels strange, because when I played some shooter games I didn’t feel that much of a delay, tbh…
There are a lot of tricks games use for how positions and hit detection and whatnot work. I saw a guide inside Roblox documentation on one method to make it seem smoother for the client who is shooting something, which is to do the detection on the client who is shooting, then sanity checks on the server to check if the result is close enough that the client probably wasn’t exploiting.
However you do things, balance smoothness for users so it feels like their stuff is actually registering correctly on their screen, with very importantly, making sure you aren’t giving too much trust to a client. Assume everything a client tells the server is a complete lie, and everyone is exploiting. Know how far a client can lie and push your systems, and set it to what you think is a good balance.
To be honest, I haven’t understood anything from the first paragraph.
At first, time for checks are really small compared to transfers of packages between server and client, so I don’t understand what’s the difference make this checks on the client or on the server – you still fire a remote and it takes much longer for info to be transferred than make this checks.
At second, to see the change of cframe of other player’s character on your screen it has to be transferred from his client to server and after it server will transfer to you, so you will also see on your client players with a delay
I dunno, away from computer right now typing on phone, sorry about how much I ramble. I’m sure you know what your doing and can figure everything out, but the answer to the original topic is that you can’t really replicate any faster, and it’s just based on the ping of each player.
okey, thank you for the answer anyways – I really appreciate it