What is the Dummy’s PrimaryPart? It will completely rotate only if the HumanoidRootPart is being tweened. If you’re wanting to rotate other types of models, you should instead use a CFrameValue, tween it and whenever it’s changed, set the Model’s pivot to its value.
I may be wrong but I think tweens can’t tween a CFrame in a way the entire model moves. You may want to use a workaround like creating a CFrameValue which is going to be tweened and listen for value changes, which will then be applied to the model using SetPrimaryPartCFrame:
local CF = Instance.new("CFrameValue")
local spininfo = TweenInfo.new(5)
CF.Value = script.Parent.PrimaryPart.CFrame
local Spin1 = TS:Create(CF,spininfo,{Value = CF.Value * CFrame.Angles(0,math.rad(120),0)})
local Spin2 = TS:Create(CF,{Value = CF.Value * CFrame.Angles(0,math.rad(240),0)})
local Spin3 = TS:Create(CF,{Value = CF.Value * CFrame.Angles(0,math.rad(360),0)})
CF.Changed:Connect(function(value)
script.Parent:SetPrimaryPartCFrame(value)
end)
Spin1:Play()
Spin1.Completed:Connect(function()Spin2:Play() end)
Spin2.Completed:Connect(function()Spin3:Play() end)
Spin3.Completed:Connect(function()Spin1:Play() end)