How to have circular effect on player

I wanna have a circular effect on the ground around my character. Atm I am using a part with a SurfaceGui and UICorner/UIStroke. This kinda works, however, the character does not rotate when I move around, and it get hidden under parts. It also goes under the ground when you jump and land (for a split second)

ezgif.com-gif-maker (65)

local Circle = Shared.Assets.Circle:Clone()

local Weld = Instance.new("WeldConstraint")
Weld.Part0 = character.HumanoidRootPart
Weld.Part1 = Circle
Weld.Parent = Circle

Circle.Position = character.HumanoidRootPart.Position - Vector3.new(0, character.Humanoid.HipHeight, 0) - Vector3.new(0, character.HumanoidRootPart.Size.Y / 2, 0)

Circle.Parent = character

So just wanting to know if theres something better?

2 Likes

Make it a 3D ring that hovers relative to the ground below.

That way when you move across the ground the sides of the circle lift and lower based on the distance beneath it. This is probably a bit more expensive but because Roblox doesn’t currently have proper Decals that are projected onto surfaces this would be a better way to get a smoother experience.

1 Like

An easier solution to the clipping would be to use a surfacegui with alwaysontop enabled. Good stuff, though.

1 Like

image
Problem is it appears infront of everything, which just looks off

Use Raycasting to position the ring. Or concretly Position property of Raycast result. (My grammar may not be good, I am Slovak)