The problem is when you make script.Parent.Visible = false, you are making the entire thing not visible.
Basically, when you make a Parent.Visible = False, anything in it is also no longer visible.
So you have
1 | script.Parent.MouseButton 1 Click:connect( function () |
2 | script.Parent.Frame.Visible = true |
3 | script.Parent.Visible = false |
But I would do
1 | script.Parent.MouseButton 1 Click:connect( function () |
2 | script.Parent.Frame.Visible = true |
3 | script.Parent.Active = false |
Or something similar. You can expand on this such as also changing the script.Parent.Text (if you are using a text button) to nothing, and making the BackroundTransparency = 1 or so on. When active = false, it means if you click on it, it doesn't do anything. If this doesn't work, please private message me.