Gamepad Virtual Cursor for UI is Live! [Opt-in Only]

I’m not sure what you mean? Windows? Pc?

No (this may be the problem)

Every experience of mine, happening on alts too

Yeah, Windows/Mac/Mobile?

Thanks for the rest of the info, will try to get this resolved shortly.

1 Like

https://www.roblox.com/games/3349048109
My game with the cursor activated

It is happening in almost every game I play.

Will it Work Foe Mobile Players Who’s Using a PS4/PS5 Controllers?

1 Like

I would like to opt in because I like the new Xbox cursor design.

1 Like

This is opt-in by studio, there’s an option to enable this or not. Do you really see anyone here requesting to opt in?

So for example in the game (and I’m sure many other simulator games)

We have billboard UI that pops up once the player is near the pet capsules so they purchase a new egg to unlock a pet, though in order to do that they need to click on a button in the UI.

As for surfacegui, there are a few things, first would tie back to the scrollingframe not being working yet (leaderboards would be a good example of this) another thing is having 3D boards which use SurfaceGui to show some IAPs to the player, so these would usually again have both scrolling frames and/or buttons players need to interact with.

So here are a couple use cases made me weary of this,

  1. Having tools that are very important to the core game loop, where players must equip and use, the number of tools or what they do can vary/differ.

  2. Say as an example we have some building tools where players can equip them and then click on a place on the map to place down items, would this cursor be able to function properly as a mouse would (Given we use UserInputService, etc…)

Hope this helps :smiley:

No I don’t see anyone saying ‘opt in’

1 Like

Okay, but yeah. Go into studio, StarterGui, Properties, You’ll find something saying VirtualCursorMode. Either choose Default (Disabled), Disabled, or Enabled. You can find it here on the first post.

Why is it showing up for me universally?

1 Like

Is there a way I can force this on the player, instead of them having to press a key to activate/deactivate? I highly doubt any kid would know that they are required to press said key to have this enabled. Would be good for some sort of property that we can force enable/disable.

For example, an in game menu should have it enabled, but when the player closes the menu, it should disable. Also allows us to prevent player from turning it on when we don’t want them turning it on.

Player can turn it on when playing game (first person), which I obviously don’t want to happen. (can’t get a screenshot without it disabling cause I’m using keyboard)

3 Likes

Done some recent testing with this, here’s some information I gathered:

  1. ScrollingFrames are still incredibly hard to use. I believe they should function similarly to how they do on desktop, where the mouse wheel is used to zoom the camera in and out unless it’s hovering over a scrolling frame, where it will be used to scroll up and down that instead.

  2. Some mouse events are triggered with ButtonR2, some are triggered with ButtonA. I have no idea why, but it was extremely confusing at first and not intuitive at all. One button for as many actions as possible is the best case.

  3. This might not be related to the gamepad mouse, but setting DevComputerMovementMode to KeyboardMouse stops gamepad users from being able to move their character with the default controls.

1 Like

While I personally won’t use this, it’s great to see improvements to Roblox on Xbox! Are there any more improvements planned for Roblox on Xbox in the future, such as private servers, the loads of UX issues and the plentiful of bugs in #bug-reports:xbox-bugs that still have not been fixed?

How did you manage to get this to work? ScrollingFrame don’t work at all for us with this new cursor.

I understand that Roblox is still working on improving it, but you solution would be good enough for us.

We have enabled this on our game Splash

It’s great!

My wish list:

  • Ability to programmatically turn the cursor on and off. On our lobby screen, I’d like to turn on the cursor by default
  • All the features planned: scrolling support, text box support and billboard/surface support (in that order)

I’ve written a module that enables basic gamepad scrolling using the DPad. You can find it as a Gist here.

Copy the code into a ModuleScript in ReplicatedStorage and then activate your ScrollingFrame like so:

local GamepadCursorScrollUtil = require(game.ReplicatedStorage:WaitForChild('GamepadCursorScrollUtil'))
GamepadCursorScrollUtil:addGamepadScroll(SomeGuiElement.ScrollingFrame)

The addGamepadScroll returns a table of callbacks. So if you can manually disconnect them if need be.

3 Likes

Got this weird error (I don’t have Virtual Cursor enabled)

  22:01:14.537  CoreGui.RobloxGui.Modules.VirtualCursor.VirtualCursorMain:99: attempt to index nil with 'GetPropertyChangedSignal'  -  Client - VirtualCursorMain:99
  22:01:14.537  Stack Begin  -  Studio
  22:01:14.537  Script 'CoreGui.RobloxGui.Modules.VirtualCursor.VirtualCursorMain', Line 99  -  CoreScript - VirtualCursorMain:99
  22:01:14.537  Stack End  -  Studio
  22:01:14.537  Failure to Start CoreScript module VirtualCursorMain.
Requested module experienced an error while loading  -  Client - StarterScript:94

Will we have the ability to change the cursor to a custom image in the future?

1 Like

Quick update - we are deep into a solution for scrolling frames. More info coming soon!

4 Likes

Existed to hear, we will enable the feature back when it’s ready for testing or finished at all.

1 Like