How to make a part follow player's position/orientation while spinning

I’m trying to make a part follow the player’s position orientation while it spins. I’ve tried 2 methods:

  • Welding part to player then tweening CFrame to make it spin but it doesn’t work since tweening CFrame affects the weld
  • Using BodyPosition and BodyGyro to make the part be at the same position and same orientation as the player, but then idk how to make the part spin

I’d appreciate if someone could help me find a solution to this.

You want it to spin on one axis while following the players position on the other two, and also following its position?
Do you have a reference image/gif/video of what you want?

I want it to follow the Player’s position and orientation while spinning on the X axis

You could do this relatively easy by setting some C0 offset on a weld for the “follow players position and orientation” part, then lerping the C1 to spin for the “spinning on the x axis”

local weld = Instance.new("Weld")
weld.Part0 = hrp --or something
weld.Part1 = part
weld.C0 = CFrame.new(0,2,0) --permanent thing

--in a loop
weld.C1 *= CFrame.Angles(0,0.01,0)

Ohhh, thank you, but I actually found another solution, I found out that if you put any kind of force in the part and then set its CFrame, it’ll will replicate to other players. So what I did was put a bodyPosition with 0 power and then I just manually set the CFrame every frame and multiplied the rotation on the X axis by an index that resets once it gets to 360 to make it spin.