Placement System Smooth Gliding

Hello there!

I am making a placement system at the moment. I was wondering if there is a way to have a model glide slowly to a location (similar to the tween style quint if you’re familiar) using CFrame?

Here is my current code:

game:GetService("RunService").RenderStepped:Connect(function()
	if FocusedItem then
		if FocusedModel then
			local Tile = HitToGrid()
			if Tile and (Tile ~= FocusedTile or AppliedRotation ~= Rotation) then
				local ToTeleport = GridFolder:WaitForChild(Tile).CFrame
				ToTeleport *= CFrame.Angles(0,math.rad(Rotation),0)
				FocusedModel:SetPrimaryPartCFrame(ToTeleport)
				FocusedTile = Tile
				AppliedRotation = Rotation
			end 
		else
			FocusedModel = Items:WaitForChild(FocusedItem):Clone()
			FocusedModel.Parent = workspace
			for _, Part in pairs(FocusedModel:GetChildren()) do
				if Part:IsA("Part") and Part ~= FocusedModel.PrimaryPart then
					Part.Transparency *= 2
				end
			end
		end
	else
		if FocusedModel then FocusedModel:Destroy() end
		if FocusedTile then FocusedTile = nil end
	end
end)

As you can see from the code it just sets the CFrame.
I was going to weld the parts to root part and tween root, but I wouldn’t want to risk having a part that doesn’t actually touch the root part as from what I understand about welding the weld doesn’t work as intended if the parts arent touching…

image

Does anyone have a way I can have the model glide to its required position instead of cutting there? Thanks!