Method to get physics interpolation/extrapolation data

Currently, as a Roblox developer, it is difficult to get the points the physics engine uses to properly know where a client is on various different screens at any given moment.

What I am specifically referring to is getting the points used by the physics engine to interpolate/extrapolate characters so that other players move smoothly regardless of fps.

So far I’ve found this via my own testing:

  • It seems physics are behind on the server by ~ 100ms, and other clients seem to be nearly perfectly in sync with the server.

This still begs the question, though, of both of the following:

  • Is this data accurate?
  • If this data is accurate, how do we get the points?

A side note, if anyone knows the exact method the physics engine uses, please let me know. (i.e. clients sync with server, clients are 100ms behind server and server is behind by 100ms from the client that sent the data, etc)

Anyways, it would be nice if a feature could be added to make getting these points at a specific time, or even adding an event for when a new point is received for a certain part/model/etc chances. It would also be nice if we could call the internal physics interpolation/extrapolation method to figure out where a part should be, with some alpha between the two values, effectively acting similar to lerp. If this is not possible, it would at the very least be nice to have a method that tells us how far a specific client is behind the server (either this method or the formerly mentioned could be used to create the other method).

I will also provide some use cases for this:

  • If this feature is added, I would be able to perfectly make a killcam/gameplay recording system
  • ", I would be able to account for this delay and perfectly determine where a fired bullet should be, while accounting for lag and whatnot. Effectively removing nearly all possibilities of cheating with guns, while also allowing for your shots to not be “slow”, even with hitscan as opposed to projectiles.
  • There are quite a few other use cases, but the above two are the main ones I would use this for.

Edit: So this is somewhat awkward… it was intended for the scripting help category and I hit the “+” sign there, but this somehow got put in feature requests… odd… no matter, I’ll just edit this post to fit this category.

26 Likes