Rotating a part while it is welded to my character turns myself instead of the part and I don't know why

Sorry for the long title, but thats basically it.

ring.CFrame = char.RightHand.CFrame
local weld = Instance.new("Weld")
weld.Part0 = ring
weld.Part1 = char.RightHand
weld.Parent = ring
SpinMagicRing(ring, "y", 3, weld)

Here, I am welding the ring to the RightHand of the character. When I call SpinMagicRing, it modifies the C0 of the weld to make it rotate.

weld.C0 = weld.C0 * CFrame.Angles(0, math.rad(step), 0) -- step is the 3 thats passed

This is how I’m rotating it.

My issue, however, is that it spins my character and not the ring, which is the opposite of what I want. Am I supposed to change the C1 instead of the C0? Am I supposed to swap the Part0 and Part1, or maybe the parent? I don’t really know what to do past this point.

Is the part welded to the humanoidrootpart?

No, the ring is not welded to anything else except the RightArm.

ring should be part1 and righthand should be part0

Nothing changed, same result as before.

can you show me how are you spinning it?

weld.C0 = weld.C0 * CFrame.Angles(0, math.rad(step), 0)

also added it to OP.

part0 = char.RightHand
part1 = ring
like i said before
weld.C1 = weld.C1 * CFrame.Angles(0, math.rad(step), 0)
and change c0 with c1

I set part0 to the right hand, part1 to the ring, and used C1 instead of C0 and it didnt change anything

Did you make sure that ring is unanchored?

Oh, that fixed it.

I didn’t know it needed to be unanchored to work, thank you lol.

1 Like