Rotating with character

how do i make the sigil spin separately and not spin the character and im using welds right now i’ve tried swapping part 1 and part 0 and i tried weldconstraints and motor6d.

rotate script:

Part = script.Parent
while wait() do
	Part.CFrame = Part.CFrame*CFrame.Angles(0,math.rad(-5),0)
end

weld script:

local weld = Instance.new("Weld")
		weld.Part0 = char.HumanoidRootPart
		weld.Part1 = sigil
		weld.Parent = char.Head

video if you do not understand:
https://gyazo.com/ab128360b9d3bc42d03c8d3356c04b1f

1 Like

Ordinarily I would suggest editing the C0 or C1 of the weld, but I’m not sure if when welded to 2 anchored parts, if it moves each part simultaneously.
I’d say probably your most sure fire way would be to do away with the welds, and just update the CFrame every RunService.Stepped

Should look something like this in the end

local RunService = game:GetService("RunService")
-- This value determines how fast the sigil spins, and in what direction (positive or negative)
local Degrees_Per_Second = -70

RunService.Stepped:Connect(function(_, deltaTime)
    local _, ry, _ = Part:GetPivot():ToOrientation()
    local charPosition = char.HumanoidRootPart:GetPivot().Position
    
    Part.CFrame = CFrame.new(charPosition) * CFrame.Angles(0, ry + math.rad(Degrees_Per_Second * deltaTime), 0)
end)

If you ever plan on removing the sigil mid-game you need to find a way to disconnect the stepped connection.

You’ll have to define char somewhere above the Stepped connection yourself because I don’t see how you defined it in your script.

I haven’t tested this so if there are any errors just lmk :+1:

Use orientation, as cframes tend to move welded parts.