How to render SurfaceGui on top of BillboardGui?

Hello! I am sorry in advance for my bad English. I have a problem regarding Gui. I am making a “void explosion tracer” in a spherical shape so it remains visible on parts’ surfaces for some time. Here is a demo of what I mean:


Traces on parts works perfectly fine. The way I achieved it is creating a SurfaceGui for each part’s face, and moving a Frame with UICorner to a center of explosion (to be short). Problem arises as soon as I want to add an “explosion effect” itself (which is just a sphere):

You can’t see the explosion tracer through this sphere, so I set the Transparency of black sphere to 0.05, which kinda works the way I wanted, but is very glitchy:

The trace on a part is either rendered behind of this sphere, or on top of it. I am not sure of what’s causing it nor how to control it. Setting AlwaysOnTop for SurfaceGui isn’t a solution since these traces are visible through other parts, but creates a very cool looking visuals which are excactly what I want to achieve:

But like I said, these are visible through all other parts which is a no-no:

And then it hit me - why use the sphere when you can use BillboardGui with a circular frame that has the same size as this “explosion”. Surely you can control order at which 3d gui render. However, I couldn’t find a way where I can force SurfaceGui to render after BillboardGui without the use of AlwaysOnTop, nor a completely different workaround:

To summarise it, i want to render purple tracer on top of black sphere/circle

Any help is appreciated!

P.s.: I just want to know if it’s possible, that’s not actually want I really want, but rather just to learn new “studio hacks”

2 Likes

Hello again, I guess. The answer was on the surface the entire time, I have already answered this question 10 days prior to creation of this post.

The answer is simple: instead of using a basic sphere or shenaningans with the billboard gui, I’ve used a technique from above – created a sphere with flipped normals (faces) in Blender and imported it to Roblox. The end result looks freaking dope, I instantly fell in love with it. I just need to make some fixes here and there, and actually apply this effect for all parts in “explosion radius”.

Result:


Basically, what I made is only an intersection of part and sphere is visible inside this sphere without complex UnionPart operations (or whatever they are called)