How to disable GUI navigation non-permanently

I’m trying to disable the gamepad-style GUI navigation feature automatically. Setting GuiService.SelectedObject works as intended for choosing a GuiObject initially (making the navigation appear, and on the correct UIObject), however, setting it to nil or setting GuiService.GuiNavigationEnabled to false don’t properly disable the navigation; the player still has to disable by pressing Select.

Essentially, I’m having ButtonL3 open a submenu that automatically enables navigation to select an option, and I want it to stop attempting GUI navigation when an option is selected, since it automatically closes the menu.

Is there a way to make GUI navigation go away/hide/return to normal gameplay input? Or is there no possible way to do so?

1 Like

I looked into your question, and I assume you are referring to the same UI navigation that can be found on PC when pressing backslash. In order for it to work, you must have UIs on-screen for it to select. With that being said, I do not know of a way to disable it, but this may help you figure out if it is possible. I noticed that enabling the UI navigation prompts a notification titled, “UI Navigation Enabled” with a text field, “Backslash to toggle.” I attempted to search all scripts (Ctrl + Shift + F) on runtime for key words in that text, but nothing came up. I also attempted to search for SendNotification, which is what creates the prompt. Surprisingly nothing appeared. I searched for these on runtime, since the core scripts are visible. If you are able to find the code in core scripts, then you could fork the code and alter it to your needs. Perhaps you could try similar approaches and have better luck searching for where this navigation system is initiated. I hope you are able to get it figured out!

1 Like

I also searched PlayerScripts for the backslash toggle, hoping to have the same result; but there’s nothing. It seems it’s deeper into CoreScripts or related which the public versions of seem to have not been updated for the UI navigation.

I’m just surprised how difficult it is to do this; I thought setting it to “nil” would work, since if UI elements become not Visible or off screen, SelectedObject becomes nil; so why does setting it to nil not work…? Gosh, what a challenge.

I’m just flabbergasted if there’s not an official way to do this, so if anyone knows of it (or heck, even a hacky way to accomplish the same task), I beg you to reveal your secrets.

1 Like

If you are doing the controllers to PC, simple way is ‘#’, although it will be based around your [Esc] (or press the Roblox Icon) and go to help. It should say your keybind for ‘UI Selection Toggle’.

If you are developing a game that you wish that the UI navigation to go away/hide/return, set AutoSelectGuiEnabled to false.

If you want to disable it only your side, you cannot.

You can see the following post for more overall context & understanding:

game:GetService("GuiService").AutoSelectGuiEnabled = false

will disable backslash and selection button enabling UI Navigation

1 Like