Another method you can use is Welding the model to the PrimaryPart and then move set the CFrame of the PrimaryPart
Example:
local function WeldModelToPrimaryPart(model)
local primaryPart = model.PrimaryPart
for _, part in next, model:GetDescendants() do
if (part ~= primaryPart and part:IsA("BasePart")) then
local weld = Instance.new("Weld")
weld.Part0 = primaryPart
weld.Part1 = part
weld.C0 = primaryPart.CFrame:inverse() * part.CFrame
weld.Parent = part
part.Anchored = false
end
end
end
local model = workspace.TestModel
WeldModelToPrimaryPart(model)
model.PrimaryPart.CFrame = CFrame.new(0, 0, 0)
Using this method will prevent this from happening