UIPageLayout reacts to Gamepad Input when set to False

When using the page system for the backpack in my game, specific slots (each page has a UIGridLayout that orders the items) will cause the page to change, making it impossible to select some items. This first appeared about five months ago, but I was able to fix it then by making each page that isn’t on screen invisible. After about a month ago, the page system was acting up again, and the problem was caused by my fix for the first time it was buggy. I stopped making pages invisible, and it started working again, but the old bug that caused the pages to change with gamepad input (set to false) came back.

Try making a page system that has a grid of buttons on each page (using a UIGridLayout) and set the page’s “GamepadInputEnabled” property to false. In my case, this still allows the pages to change with the gamepad.

3 Likes

This behavior is still occurring.
The ScrollWheelInputEnabled and TouchInputEnabled settings seem to work.

See the gif below. I am using a controller.

1 Like

Still occurring, sadly.
Same issues as before.

2 Likes

It can really make some games annoying to play with a gamepad. Often times even making some features break entirely.

Did you ever find a workaround for this issue?

I’m returning to this thread almost a year later because I was still running into this problem. Here’s my solution, I’ll make it public for anyone who finds this thread… basically instead of doing

UIPageLayout:JumpTo(Frame)

You can setup a ModuleScript with the below code:

return function(frame:GuiObject)
	
	local page = frame.Parent:FindFirstChildOfClass("UIPageLayout");
	
	if page then
		
		for _,v in frame.Parent:GetChildren() do
			
			if v:IsA("GuiObject") then
			
				v.Visible = v == frame;
				
			end
			
		end
		
		page:JumpTo(frame);
		
	end
	
end

then just do this:

local JumpTo = require(PATH_TO_MODULE_SCRIPT);

JumpTo(Frame);

This will make all non-active pages invisible so that they can’t pickup controller input.

1 Like