There’s a strange behavior in Roblox’s GUI where, if you place a ScrollingFrame (containing interactive buttons) underneath an ImageLabel inside the same parent Frame, none of those buttons will ever register clicks or input events. You can crank up their ZIndex, set Active = true
on every container, even swap between MouseButton1Click
and InputBegan
handlers, and still nothing happens. It looks like the ImageLabel is somehow blocking or masking input from reaching its descendant, ScrollingFrame, and I haven’t found any documentation acknowledging or explain it.
My POV
I ran into this over the course of three days while building a dynamic UI, I had a ImageLabel parented to a Frame, and inside that ImageLabel I cloned a bunch of ImageButtons templates, into a ScrollingFrame at runtime. To my surprise, none of the cloned buttons would ever fire MouseButton1Click
or any other input event. I tried tweaking everything from, adjusting ZIndex from the parent frame down to the button themselves, toggling Active
on every GUI object, and even changing the ImageButtons to TextButtons, but the clicks never went through. Eventually I discovered that simply moving the ScrollingFrame out from under the ImageLabel (Switching the parent to the Frame) restored the click functionality instantly. I’m not sure if this is an intentional clipping/masking “feature” or an unintended bug, but I wanted to share in case anyone else spent days dealing with the same issue.