Hey! Everything is fine, but when I try to rotate the hat it looks funny and is offset.
Picture:

The hat as you can tell is offset, by a-lot.
Script:
local Frame = script.Parent
local Duck = game.Workspace.Ducks:FindFirstChild(script.Parent.Parent.DuckName.Value):Clone()
Duck.Position = Vector3.new(0, 0, 0)
Duck.Orientation = Vector3.new(0, -180, 0)
for _,v in pairs(Duck:GetChildren()) do
if v:IsA("Part") or v:IsA("BasePart") or v:IsA("MeshPart") then
v.Orientation = Vector3.new(0, -180, 0)
end
end
Duck.Parent = Frame.FakeWorld
local Camera = Instance.new("Camera")
Frame.CurrentCamera = Camera
Camera.Parent = Frame
Camera.CFrame = CFrame.new(Vector3.new(0, 0.70, 3.275), Duck.Position)
local count = -180
function rotate()
for _,v in pairs(Duck:GetDescendants()) do
if v:IsA("Part") or v:IsA("BasePart") or v:IsA("MeshPart") then
v.Orientation = Vector3.new(0, count, 0)
end
end
Duck.Orientation = Vector3.new(0, count, 0)
count += 2
if Duck.Orientation == Vector3.new(0, -180, 0) then
script.Parent.DestroyEvent:FireServer(tostring(game.Players.LocalPlayer.Name), tostring(script.Parent.Parent.Parent.Parent.Name))
end
end
while wait() do
rotate()
end
The hat is welded to the duck btw.