Yes, I have tested it many times with friends
Because Player:GetNetworkPing() always returns 0 in studio, i use a custom method (nothing complicated, I just measure it through a remotefunction), so it’s pretty consistent in studio and live servers
ping is accounted for through a “Timer” module(implementation not shown, but it basically syncs time between client and server, it doesnt have perfect accuracy but its close enough)
of course, the client can lie about their ping (and all the kinematic information), but that’s a compromise I’m willing to make to make vehicle control feel more responsive
we used the magic of studio to make an initial concept, we probably went through 6 prototypes until we found one that was accurate, we’re gonna make a V2 that predicts the gaps in player ping, rn we’re just happy you can have really fun battles
love that nah fr its great, i attempted with raycasting but forgot that 1.7 had wheel collisions on startup and scrapped the system 3 times because i thought it was my error that the karts where still colliding.
for the timer module, cant you just use workspace:GetServerTimeNow()? im currently trying to use your method to replicate characters instead of fighter jets but since your timer module’s implementation isnt shown i cant be quite sure how exactly it syncs with the server