Here is the answer!
local button = script.Parent.Parent.Parent.Frame
local mouse = game.Players.LocalPlayer:GetMouse()
local icon = button.Mouse.Mouse
button.MouseEnter:connect(function(x,y)
game:GetService("UserInputService").MouseIconEnabled = false
icon.Visible = true
end)
button.MouseLeave:connect(function()
game:GetService("UserInputService").MouseIconEnabled = true
icon.Visible = false
end)
game:GetService("RunService").RenderStepped:connect(function()
icon.Position = UDim2.new(0, mouse.X - 25, 0, mouse.Y - 25)
end)
You have to create a ImageLabel to use as a mouse.
Here is a DevForum Post about it.