I think it doesn’t change the width, it just aims toward the camera, obviously.
The best way, in my opinion, would be to use a SurfaceGui.
I don’t know why you want the beam to be equal in width, but also facing the camera; that contradicts itself because there are many different perspectives when looking at the beam, therefore changing some curves.
I need to have a circle around a sphere which always faces the camera flat.
As an example, if you look at it from the top, you need to be able to see it like this:
What you are looking for is something like selection sphere. I am not sure if that works for you. That gives the perfect desired effect, but you can’t change the size or anything.
Well, the size of the selection sphere depends on the part. Maybe you can change the size, but I don’t remember anything like that. You could use a Billboard Gui with an image label inside of it. Set the image label’s Size to 1,0,1,0 and then scale the actual Billboard Gui instance yourself. For example, you could do:
local scale = -- do the math to calculate the size of the ring or whatever.
billboard_gui.Size = Udim2.new(scale,0,scale,0)
That should make it the desired size and it will fit around the object, while not growing in size relative to the camera. Just find an image of a hollow ring I guess and take it from there/