I have made no changes to the guis in my game within the past few weeks but over the past couple of days I started getting reports from some players that they are unable to interact with any of the guis in game. I tested this on my Samsung Galaxy 5A and could not reproduce it, though I believe the majority of reports are coming from iPad users (I don’t have an iPad). Since I made no changes I assume this is a Roblox bug.
My game uses MouseButton1Down as the trigger for player input in the guis and this has worked across all devices in the past. It’s very odd because I can’t reproduce the issue on other devices.
@FracturedSoftware
I feel like I’ve been using .Activated wrong because it never fires any input on Mobile devices at all. Can it be interchanged with MouseButton1Down? Every time I’ve ever tried that it won’t fire on mobile but will fire on computer.
@teamkilled
Yes we do use both of those but the odd thing is, only some buttons don’t work. We basically have ordinary buttons, without any grid or list layouts, refusing to fire on some devices and ones within grid and list layouts not firing. But, we also have regular buttons and ones inside list and grid layouts working just fine. And all of this only happens on some iPads it seems. Other devices are functioning normal (I’ve even had iPad users say it works fine for them). Overall it’s very random. Yesterday I tried a dozen different ways (including using .Activated) to get a simple button to fire when tapped in the emulator (iPad) in an empty baseplate and nothing worked, but a similar button in my live game functions like normal.
Thanks for the report! We also turned on a feature earlier this week that could of caused an issue, but have reverted and will turn back on after we fix this issue.
If anyone had a repro of this not working on production now I would be glad to take a look!
That is exactly the same issue with my game, the avatar editor is broken and the elements are positioned with a UIGridLayout. But I also had an ordinary button no layout modifiers refuse to work.
@darthskrill
Here is a repro of an ordinary button not working on iPad (the “Let’s go” button). It doesn’t work with the iPad studio emulator either: Bug testing - Roblox
@Mimi_Dev Looks like this is broken on mobile because there are several frames layered above the button with Active set to true. If I set active to false on the frames or change the z index to be the correct order so the button is on top, MouseButton1Click or Activated works.
This works on desktop with a mouse because mouse input has some legacy behavior regarding the active property. I’d like to change this, but there is a significant chance it will break a lot of older games so we have to approach with some caution.
I’d recommend using ScreenGui.ZIndexBehavior set to Enum.ZIndexBehavior.Sibling. Global setting is really hard to visualize as the zindex is global and any part of the UI could be over any other part of the UI (this is hard to know when your UI is sufficiently complex). In sibling mode, ZIndex only breaks ties with other sibling UI in the tree, and all children render on top of their parent.
@teamkilled looks like your UI is suffering the same problem as @Mimi_Dev. I would also recommend switching to Sibling UI. We plan on making this the default value for new ScreenGuis inserted into studio, so it is harder to run into this problem.
I restart all my servers every update so unless Roblox doesn’t actually shut down every server when I do that, that shouldn’t be possible.
Edit: I have half the number of players in my game that I should, and I’m still getting reports. The game works in the emulator now. All servers are on the latest version with all Gui items currently using the Sibling setting. Only the buttons inside Grid and List layouts won’t work on mobile. The game still works fine on my Android device (galaxy 5A).
@Mimi_Dev and I looked at this tonight, specifically with ScrollFrames. It appears that if a ScrollFrame.Active = true then the child buttons are not getting Activated/Clicked. If you set Active = false then it works.
You can test this with the attached rblx. Test in studio with a touch device emulator. By default the ScrollFrame is Active and when you click the button no text is printed in the output. Whilst still running, change the ScrollFrame.Active to false and then click the button again and text will print in the output.
When the ScrollFrame is Active changing the ScreenGui’s ZIndexBehavior from Global to Sibling has no affect. There is no problem when the emulator is off.ActiveScrollFrame.rbxl (17.1 KB)