UI Navigation Bug w/ ClipsDescendants UI

I had my friend @Repotted test the Xbox compatibility of my game with his controller. Most of the UI works as expected except for the Shop and Inventory.

I’ll only be showing the shop as it is designed almost the exact same way as the inventory.

However, only the main part worked:

By “Main Part” I mean the buttons under the tabs, but above the currency

The other 2 sections don’t work

Notice how nothing in the middle works.

I’ve seen a pattern that the UI navigation only breaks in UI that is only viewable to some extent in ClipsDescendants where the X or Y value has to be less than 0 or greater than 1. The X pos for the first section where the selection works is 0, but the other sections are at -1 and -2.

Is there any fix or easy workaround for this?

2 Likes

So you mean the controller can’t select the items contained in the tabs?
Most likely you haven’t set the NextSelectionDown, NextSelectionRight, etc. properties of the objects properly.

Additionally, every time you switch tabs you’ll need to set the NextSelectionDown properties of the tab buttons to the items in the currently selected tab.

Personally, I think having a bind like RB and LB to switch tabs would be better than having buttons. Like I said above, you’d need to stuff around with all the NextSelection stuff - it’d be better if you could just make some binds to the controller buttons to do things, and only have selection stuff going on within the item tabs themselves.

A really good example of this in my opinion is Grim Dawn’s controller UI:

2 Likes

What exactly does NextSelection do? I only need the UI on the Left and Right to work when needed. I don’t have a controller to directly test this, so I need a better way to picture it and use it effectively.

1 Like

The NextSelection properties on an object dictate what gets selected from the currently selected object. For example, if I had a button selected, and tried to select something to the right with the controller, the object in the NextSelectionRight property would be selected.

1 Like

I think I have an idea on how this will work.

2 Likes

Good luck :wink:

1 Like

I just did some edits. Some work, but the tab buttons don’t seem to work when I make the NextSelectionUp and Down different.

GameUI.ShopBack.Info.Topbar.Crates.NextSelectionDown = GameUI.ShopBack.Info.Sections.Sections.Store.Infomation.Purch
    	GameUI.ShopBack.Info.Topbar.Crates.NextSelectionUp = GameUI.ShopBack.Info.Sections.Sections.Store.Infomation.Purch
    	GameUI.ShopBack.Info.Topbar.Trails.NextSelectionDown = GameUI.ShopBack.Info.Sections.Sections.Store.Prods.Products.Gem25
    	GameUI.ShopBack.Info.Topbar.Trails.NextSelectionUp = GameUI.ShopBack.Info.Sections.Sections.Store.Prods.Products.Gem250
    	GameUI.ShopBack.Info.Topbar.Store.NextSelectionDown = GameUI.ShopBack.Info.Sections.Sections.Store.Prods.Products.Gem50
    	GameUI.ShopBack.Info.Topbar.Store.NextSelectionUp = GameUI.ShopBack.Info.Sections.Sections.Store.Prods.Products.Gem500
    	GameUI.ShopBack.Info.Topbar.xButton.NextSelectionDown = GameUI.ShopBack.Info.Sections.Sections.Store.Prods.Products.Gem100
    	GameUI.ShopBack.Info.Topbar.xButton.NextSelectionUp = GameUI.ShopBack.Info.Sections.Sections.Store.Forw

It doesn’t seem to work still.

1 Like

Might be because they are being set somewhere else. Check the properties at runtime to see if your code is working – that’s probably the issue.

Also

  • Isn’t there like nothing above the tab buttons? Why are you setting NextSelectionUp then?
  • You should probably set all of the NextSelectionDowns to the first item in the tab, not the horizontally corresponding one (for consistency)
1 Like

I just tried forcefully making the xbox controller select an object when the page is open with GuiService.SelectObject, but it still WONT SELECT it

1 Like

Can you provide a repro rbxl? Your description of the ClipsDescendants issue is unclear.

1 Like

I was able to recreate the bug issue I was having. I tried to add add useful comments and make my UI code clean to understand. Send a PM or respond here if you have any questions.

UIBug.rbxl (17.1 KB)

2 Likes

I’m able to repro the behavior using that. This is definitely a bug, we’ll look into this.

2 Likes

Sorry for bumping such an old thread, but I’m still encountering this issue. I have to disable ClipsDescendants on my UI for NextSelection__ to work properly. Is this ever going to be fixed :face_with_raised_eyebrow:

5 Likes