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.
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.