local relativePos = Vector3.new(x, y, z) local newCFrame = head.CFrame + head.CFrame:VectorToWorldSpace(relativePos)
-- Run every render frame for smooth movement RunService.RenderStepped:Connect(updateOrbit) FE Hat Orbit Script
connection = game:GetService("RunService").RenderStepped:Connect(orbitUpdate) return connection -- to disconnect later end local relativePos = Vector3
-- Apply new CFrame to hat handle hat.Handle.CFrame = newCFrame end local relativePos = Vector3.new(x
local function orbitUpdate() angle = angle + speed * tick() local x = math.cos(angle) * radius local z = math.sin(angle) * radius local relativeCF = CFrame.new(x, heightOffset, z) hatHandle.CFrame = targetPart.CFrame * relativeCF end
-- Ensure hat is attached to head initially hat.Handle.CFrame = head.CFrame * CFrame.new(0, heightOffset, 0)