Billboard Gui Not Registering Input

I feel like this is a bug, but incase I missed something I’ve posted it here first. I cant get an ImageButton in a billboard gui to respond to input. Tapping or clicking on the button is causing no events to be fired.

I put this in a Local Script in StarterPlayerScripts:

local Button = game.Workspace:WaitForChild("BillboardGui"):WaitForChild("ImageButton")

print("Script ready")

Button.InputBegan:Connect(function()

print("Input began!")

end)

Button.InputChanged:Connect(function()

print("Input changed!")

end)

Button.TouchTap:Connect(function()

print("Touch tap!")

end)

Button.MouseButton1Click:Connect(function()

print("Mouseclick!")

end)

I only get the ‘Script ready’ output and nothing else.

…Well it looks like I cant paste code anymore for whatever reason, so heres a place file:
BugReport.rbxl (15.2 KB)

2 Likes

Billboard Gui has to be inside PlayerGui to work.

You might ask, How do I get it to display in the workspace?

well you use Adornee my friend

Make sure your Gui Objects are Active = true if you want Input

Clickable BGui.rbxl (15.2 KB)


It’s funny how it’s not stated anywhere on it’s Wiki page

https://wiki.roblox.com/index.php?title=API:Class/BillboardGui

but for SurfaceGui it is

https://wiki.roblox.com/index.php?title=API:Class/SurfaceGui

10 Likes

Never knew that! The Adornee property seems a bit more logical now.

This isn’t true at all. I’ve been putting BillboardGui’s in the Workspace forever.

I assumed he meant to pick up user inputs, as it still displays in workspace and I thought it unlikely for such a large ‘bug’ to go unnoticed.

But I won’t be able to test until tomorrow.

Yes that’s what I meant and I did a test and there was no Input in workspace , you ONLY get Input in PlayerGui.

Looks like I might have celebrated too soon, I’ve moved it into the PlayerGui, but I’m still getting nothing out of InputBegan from an ImageButton in it.

Infact I cant seem to get it to respond to any events at all, whatsoever. MouseButton1Down is doing nothing, and I’ve checked and the event has definitely been connected but is never fired.

Can we get a screenshot of the explorer window and the entire source code of the script?

Did you do that?

and I provided a Place File that had the BGui working.


Why do you need

He gave us a Place File

To see the difference between what you gave him (which works) and what he has (for some reason doesn’t). @madattak I can verify that @RuizuKun_Dev’s fix works. Is it breaking when you try to modify it for your purposes? If so, could we get more information?

I found out that it doesn’t Register Keyboard Input at all, this is also true for SurfaceGui, not sure if it’s intended.

It only Registers Mouse Input.


I see @IdiomicLanguage

Unfortunately I’ve found that a lot of places filter out the user input. For example the ContextActionService never fires w, a, s, or d events. Also when using an TextBox in the GUI and you begin typing in it, mouse events stop firing for it. This is why most of the time I try to hook directly into UserInputService. I suppose that to make an interface compatible with mobile and Xbox users, you wouldn’t want a UI dependent upon keystrokes, so Roblox doesn’t have those events fire to prevent newer developers from using it.

Sorry for the delayed reply, had to work on other stuff. Facepalm moment for me, somehow I’d accidentally turned ‘Active’ off on the ImageButton :man_facepalming: