Release Notes for 563

Notes for Release 563


A lot of people are going to be happy that Mouse.Icon will soon have a replacement!

Will this also keep the icon changed when hovering over UI buttons? Or will functionality be the exact same as Mouse.Icon?


Instead of just a singular mouse icon, wouldn’t it be better to have something like this?:

UserInputService.MouseIcon = {
	Hover = "rbxassetid://123456789"; -- The hover icon, which is the pointer.
	Text = "rbxassetid://123456789"; -- The icon that is shown when hovering over a textbox.
	Default = "rbxassetid://13456789"; -- The icon that is shown when not interacting with any GUI.


UserInputService.MouseIcon.Text = "rbxassetid://123456789"

I know many people have been requesting this (including myself). it just really doesn’t make sense to have 3 different mouse types but only allow developers to customize one that is the same for each of those mentioned above.

Also thanks for making the new Mouse.Icon. :clap:


Running the installer with the “-bundle” command, will create an installer bundle that can be used to install the Roblox Client/Studio without requiring additional downloads.

What exactly does this mean? Is this for internal use, or will this allow for quick installations on CI machines?

1 Like

Will there be a way to set the “Hover Icon” of the mouse when you hover over buttons?


I wish instead of having a MouseIcon property, there could be a method like:

UserInputService/SetMouseIcon(MouseIconType: Enum.MouseIconType, Icon: string) -> ()

That way Enum.MouseIconType could be Hover, Text, Default or All.


I hope that when this feature gets fleshed out (i.e. implementing your idea) we can change the size of the images. It would make loads of cursor decals in the toolbox usable in games without them looking awkward. (There could also be accessibility advantages to a resizable cursor in the settings.)


A function isn’t really needed in this scenario when you could easily edit a dictionary. This also just means another enum type.

Oh god finally, also I believe this was the case for mesh and image assets as well? game loading has been bugged for a long time everywhere


Dictionary properties in general are horrible to work with. Let’s say you wanted to change the Default icon in one script and then the Hover icon in another, i.e.

UserInputService.MouseIcon = {Default = "rbxassetid://123456789"}

UserInputService.MouseIcon = {Hover = "rbxassetid://123456789"}

The problem is how would the second piece of code affect Default? Would having a nil/nonexistent key keep it the same or change it back to its original? If it stays the same, how would a developer return the mouse icon back to normal?

Having a method with an Enum not only allows for versatility in these modular cases but also doesn’t require the creation of useless new tables every time one wants to change an icon.

1 Like

My code above was just how it would be implemented internally. It would look like this:

UserInputService.MouseIcon.Text = "rbxassetid://123456789"
1 Like

there should be properties that allow people to set images of those

I was maybe thinking of maybe having an event run every time you hover or unhover a button with


so that we can have more flexibility over the icons.

1 Like

A function wouldn’t carry the same burden of ambiguity that a dictionary otherwise would regarding expected behavior vs what actually happens at runtime.

1 Like

I believe this update got reverted?

If not this then at least something like “UserInputService.MouseHoverIcon” + “UserInputService.MouseTextHoverIcon”

1 Like

My guess it could be for offline installations of Roblox, or recovery if internal files get corrupted and a reinstall won’t fix

I believe this feature has existed for a couple years now, but I guess it’s showing up again for some reason.

Weirdly, I haven’t seen it used though, I expected to see a lot more use out of it, especially for archives. Being able to package up a specific version of Studio into an offline installer that will not force updates, especially through CLI in an easy to automate way is something I thought a lot of Studio archives would love.

But, IIRC, it basically generates a .msi installer package, and when you install it it just works. It doesn’t require any internet to install because there are no downloads as stated.


There are many different use cases for changing the mouse icon. I don’t think there should be different fields or an enum for hovering/etc. It’s just messy. We can detect mouse events. What we have is fine.

That has nothing to do with any of this.
When you hover your cursor over a GUI element that has its Active property set to true, you’ll realize that it doesn’t respect the set mouse icon.