Maybe try changing the WEIGHT value from 1/WEIGHT to something like or 2 0.1 or simply just some other value, depending on how smooth you want the movement to be. You may need to experiment with different values to find the best one
Uhh that’s really weird then, maybe instead of using Position:Lerp() you could use CFrame:Lerp() as I believe this should smoothly interpolate both position and rotation making the movement somewhat better I guess
function updatesubject()
local targetCFrame = CFrame.new(head.Position + camera.CFrame.XVector * 2.5 + script.Parent.Humanoid.CameraOffset)
subject.CFrame = subject.CFrame:Lerp(targetCFrame, 1/WEIGHT)
local LookXZ = Vector3.new(rootpart.CFrame.LookVector.X, 0, rootpart.CFrame.LookVector.Z)
subject.CFrame = CFrame.lookAt(subject.Position, subject.Position + LookXZ)
end
rs:BindToRenderStep(“UpdateSubject”, Enum.RenderPriority.Camera.Value - 1, updatesubject)
it’s cause of your weight and that ur using Head.Position which is dynamic when character is moving / walking, so the lerp point is not consistent when walking due to head bobbing / moving