I am trying to rotate a medium size model with about 36 parts constantly. I have it on a while loop that will rotate it a distance compared to itself using CFrame.Angle on a primary part. This works fine in studio but is really jittery in a server. I have hear about using lerp or slerp for rotation but I don't quite understand how to use it. Could someone explain what lerp/slerp is or give an example of a smoother rotation method?
while true do wait() x:SetPrimaryPartCFrame(script.Parent.CFrame*CFrame.Angles(0,0.005,0)) end
There's no way to smoothly rotate something on the server. Latency will always make it appear jittery, because the position updates will happen between frames, and not always at the same rate.
The only way to get a smooth rotation is to use RenderStepped in some fashion on the client, which you've already stated is not possible, but I would like to ask why?
What, exactly, do you need this rotating bit of blocks for, for everyone to see?
Or You could use the RenderStepped event, it basically Fires each render frame in approximately 1/60 of a second.
game:GetService("RunService").RenderStepped:connect(function() x:SetPrimaryPartCFrame(script.Parent.CFrame*CFrame.Angles(0,0.005,0)) end)
Try using Angular velocity and body position. If the model only applies to one character (like a vehicle that only one player drives at a time), try setting the network owner of that model to the player driving. This way, only people watching you drive see the lag.