Hello @Ninjaz_Chimp. I had a similar problem but I have found the solution. By setting the GUI’s property “visible” to false it will not block the mouse where it is. Remember to mark this post as a solution if it helped!
I don’t really understand what the gui is for, but instead of making a button like that, you should just do:
local Players = game:GetService("Players")
local player = Players.LocalPlayer
local mouse = player:GetMouse()
local function onButton1Down()
-- put whatever you want to happen in this function
mouse.Button1Down:Connect(onMouseClick) -- Button1Down is left click, Button2Down is right click