So I want a crystal to follow above your head, it works, but it is jumpy and stuff. I want it to be really smooth. If you can help me fix this thank you. Btw, this is a local script before you say anything.
function MoveCrystal()
local character = game.Players.LocalPlayer.Character
local crystal = workspace.Crystal
local head = character["Head"]
local objectSpace = CFrame.new(0, 2, 0)
local worldSpace = head.CFrame:toWorldSpace(objectSpace)
crystal.CFrame = worldSpace
end
while wait() do
MoveCrystal()
end

2 comments
wait(-1) will wait the same time as wait() or wait(0). The minimum wait time is about a 30th of a second.
Well well, anyways, renderstepped is shorter than wait, and I use it myself to make animations go smooth. Recommend you try it ;3