How to tween rotate a model

Is only the PrimaryPart moving? Sorry, I didn’t read every reply here.

When you try what I just suggested, I mean.

yes only the primary part is moving

I definitely had this problem so what I did i mean for my case was create a variable that held a CFrameValue instance and instead i tweened that CFrameValue instance, then in a loop (which i unbinded after the tween was complete) I set the models:PivotTo, to the CFrame Value. This is a little nasty but it gets the job done.

Although tweening your models primary part cframe is the best option here only if every single part is welded towards the primary part

tried this and now the whole tool is moving instead of the one part

local TweenService = game:GetService("TweenService")
local Model = script.Parent -- Change to your model path

local Info = TweenInfo.new(1, Enum.EasingStyle.Linear)

for _, Part in pairs(script.Parent:GetDescendants()) do
	if Part:IsA("BasePart") then
		spawn(function()
			local Tween = TweenService:Create(Part, Info, {CFrame = Part.CFrame * CFrame.Angles(0, 5, 0)})
			Tween:Play()
			Tween.Completed:Wait()
			print("The model has been rotated!")
		end)
	end
end