I've implemented a custom cursor icon into my game, but whenever you hover over GUI objects, it displays the default mouse. I tried to make a script that resets the custom icon if you hover over a GUI object, but that doesn't seem to work either. I also can't seem to find any alternative method to set the mouse icon (e.g from userInputService). In case it helps, this is the script I used to set the mouse icon (located in StarterGui):
player = game.Players.LocalPlayer mouse = player:GetMouse() mouse.Icon = "rbxassetid://167166957"
the solution to this may answer your problem
https://devforum.roblox.com/t/mouse-cursor-override/402376