Menu spawns in AFTER the script runs, meaning that you need to use WaitForChild to wait for it to spawn in. FindFirstChild would work if the Menu spawned in before the script ran.
You never checked whether the menu was not visible before making it visible, meaning the if statement would always return true and it would always be invisible.
script.Parent.MouseButton1Click:Connect(function()
if menu.Enabled == false then
menu.Enabled = true
elseif menu.Enabled == true then
menu.Enabled = false
end
end)
I have no clue what you’re talking about there it’s not a safety net, it’s just a quicker way of writing if statements when they are connected. You could also write it like this:
script.Parent.MouseButton1Click:Connect(function()
if menu.Enabled == false then
menu.Enabled = true
else
menu.Enabled = false
end
end)