Using a lot of math. Basically, I get the position of the part, the position (x) amount of studs below the part (based on beam length), use :WorldToScreenPoint to get the screen positions of the 2 points, and update the ui to fit between the two positions.
I’d like to say so. It uses GetPartBoundsInRadius to only update it for lights within a certain radius, and also uses an object pool for the imagelabels.
It actually slightly goes around walls unless the center of the light part is covered