rbxasset://SystemCursors is undocumented

Did you know you can use rbxasset://SystemCursors/GrabbingHand, rbxasset://SystemCursors/Arrow, etc in plugins to use native cursor? Unless you’re a Roblox engineer, you probably didn’t, since these are completely undocumented.

There should be documentation for this feature, as well as a list of valid cursors.

41 Likes

I checked the release note and it does looks like this was added for an internal studio plugin. It may have been unintentional to add a release note about it, but regardless the feature exists. The consensus is that this feature isn’t exactly intended for developer use, and we can’t exactly guarantee it’ll stick around. Nonetheless…

We’ll add it on a lower priority. Also, there’s the inherent risk that it may change after the fact, so use at your own risk. Like all community request tickets, I’ll link back to this thread in case anyone wants to add any additional info about this feature. This thread could very well be something that people might stumble upon while searching for more info about this in the future.

Rest assured I try to evangelize the position of developers for as much information as possible. However, not everything makes the cut. I usually consider writing for stuff like this on my own time (forum post or an article on my website) and this might be a good place to do that.

1 Like

In that case, here’s what I was able to figure out are valid cursors:

  • Arrow
  • OpenHand
  • ClosedHand
  • PointingHand
  • Cross
  • IBeam
  • Forbidden
  • SizeNS
  • SizeEW
  • SizeNESW
  • SizeNWSE
  • SizeAll
  • SplitNS
  • SplitEW
9 Likes

This list is correct, just cross checked this with an engineer.

1 Like

None of these seem to be working.

From my experience, they all work fine, and are now documented in the Mouse.Icon documentation. The plugin needs to be activated with an exclusive mouse for you to set the icon.

Tried this but didn’t work, how do I activate the plugin?

plugin:Activate(true)

This simple plugin changes your mouse icon until another plugin activates itself.

plugin:Activate(true)
plugin:GetMouse().Icon = "rbxasset://SystemCursors/Forbidden"

If this doesn’t work, it is likely that one of your other plugins is activating itself repeatedly or when it is deactivated. Some plugins do this to get a permanent PluginMouse, but it will cause interference with other plugins.