Unable to hold an object together with the character using WeldConstraint/Motor6D

I’m trying to make a magic script, and inside of it is a fire ring spell, which causes a rotating object to spawn below the player and spin, and it moves together with the player. The problem is that if I use a weld constraint, the object moves ahead of the player, and it makes the character rotation very weird. If I use a Motor6D in the other hand, it causes the player to rotate together with the ring. What can I do to solve this?

Here is a code snippet of what I have:

local ring = ring0:Clone()
ring.Anchored = false
ring.Parent = spellFolder
ring.CFrame = target.HumanoidRootPart.CFrame - Vector3.new(0,0.15,0)

local weld = Instance.new("WeldConstraint")
weld.Name = "FireRingWeld"
weld.Part0 = target.HumanoidRootPart
weld.Part1 = ring
weld.Parent = ring

WeldConstraint:
https://gyazo.com/5053d0368e28145bba3b326dec3daa10

Motor6D:
https://gyazo.com/067b8c50db3fa6c0c7a655c5ed34064d

you could use the motor6d and make so the spinning effect is an animations that the character plays

The spinning effect is just for the ring, not for the character. The character is supposed to maintain its normal movement while the ring is there spinning below it.

thats the point, make so the animation’s tracks only contain the ring but not the other bodyparts of the character

I managed to find a solution to my problem. For anyone else having the same problem as me, I managed to fix it by setting the ring’s “massless” property to true. Thank you JPO2006roblox for trying to help.