Scripting HelpersARCHIVE
A little piece of Roblox history. Preserved for everyone, one question at a time.Read about the archive →
COMMUNITY QUESTION

The frame won't become visible?

--// LOCALSCRIPT


--// Variables
local optGui = script.Parent.Frame
local button = script.Parent.TextButton

--// Booleans
on = false

--// Scripting

button.MouseButton1Click:Connect(function()
	if on then
		on = true
		optGui.Visible = true
	end
end)

button.MouseButton1Click:Connect(function()
	if on then
		on = false
		optGui.Visible = false
	end
end)

1 comment

0

if on == false then? and True that way maybe?

2 answers

Hello there. It seems you are having some problems

local on = false

button.MouseButton1Click:Connect(function()
    if on then
        on = true
        optGui.Visible = true
    end
end)

Check line three if on then this fires if on is true. Problem is... local on = false you set the variable to false. So it wouldn't run. Did you also know there's an easier way to invert true/false variables? you can do something like this

local on = false

button.MouseButton1Click:Connect(function()
    on = not on
end)

on = not on this makes on becomes the oppoosite of itself. Get it? Lets say on = true it will turn on into on = false

Your mistake here was you only need one function. Here's an example:

-- removed variables for now

button.MouseButton1Click:Connect(function()
    if on then
        on = true
        optGui.Visible = true
    end
end)

 -- Using two functions result in the two starting once you click.

button.MouseButton1Click:Connect(function()
    if on then
        on = false
        optGui.Visible = false
    end
end)

Instead, use one function with an else variable:

--// LOCALSCRIPT


--// Variables
local optGui = script.Parent.Frame
local button = script.Parent.TextButton

--// Booleans
on = false

--// Scripting

button.MouseButton1Click:Connect(function()
	if on then
		on = true
		optGui.Visible = true
	else -- Right here!
		on = false
		optGui.Visible = false
	end
end)

I hope this helped!

This discussion is preserved as it was. New answers, comments, and votes are closed.