I have a ship that can be piloted by a player.
However I have a very strange problem, the server is completely smooth but the client has some parts that are left behind, it almost seems like the network is syncing before TranslateBy is done moving all the parts.
Server(Smooth) ! Gif
Client(Some parts of the model are left behind until the next sync) ! Gif
Note when I play the game in the studio(Play not Test) the client is very smooth.
Client
RunService:BindToRenderStep("move", Enum.RenderPriority.First.Value, function (delta) for i, ship in ipairs(localShips) do -- localShips contain the models local dt = (delta * 1000) / 16 local tSpeed = ship.speed.Value / 60 ship:TranslateBy(ship.PrimaryPart.CFrame.lookVector * (tSpeed * dt)) end end)
Server
RunService.Heartbeat:Connect(function (delta) local dt = (delta * 1000) / 16 local tSpeed = ship.speed.Value / 60 ship:TranslateBy(ship.PrimaryPart.CFrame.lookVector * (tSpeed * dt)) end)
Any idea on why this is happening?
Is there a better way to do this?