MoveTo changes the Y location to an unwanted value. The only option is SetPrimaryPartCFrame(), but this changes the orientation to an unwanted value. How should I proceed?
Give this a try:
model:SetPrimaryPartCFrame(CFrame.new(Vector3.new(0,0,0), model.PrimaryPart.Position))
To preserve orientation, you have to add a Vector3 to the current CFrame:
local cf = model:GetPrimaryPartCFrame() model:SetPrimaryPartCFrame(cf + Vector3.new(x, y, z) - cf.Position)
Vector3.new(x, y, z) - cf.Position
gets the difference between where you want it and where it currently is. We add that difference to the current CFrame to get the correct position without changing orientation.