How to check if mouse is hovering over ANY ui element?

simple question, is there any way to check if the player mouse is hovering over any ui? sumthin like the gameprocessedevent in userinputservice.inputbegan

I have an idea, if you made an event every time the mouse moves, you can use :GetGuiObjectsAtPosition, which returns a table of all gui objects at a certain position(which in this case is the mouse position). And if that table is not empty, that means you are hovering over a ui.

local Player = game.Players.LocalPlayer
local Mouse = Player:GetMouse()

Mouse.Move:Connect(function()
	local MousePos = game:GetService("UserInputService"):GetMouseLocation() - game:GetService("GuiService"):GetGuiInset()
	local getGUI = Player:WaitForChild("PlayerGui"):GetGuiObjectsAtPosition(MousePos.X,MousePos.Y)

	if #getGUI ~= 0 then 
print("hovering over a gui!") 
end
end)

Some links here
Demonstration of someone using the function

Issues you may incounter

4 Likes

This topic was automatically closed 14 days after the last reply. New replies are no longer allowed.