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

Syntax error: Expected 'then' when parsing if statement, got '=', How do I fix this?

I got this error while writing a script that deactivates Roblox studio videos when you touch a certain part and activates another video. (for a 2d game, couple of my stages are set in a city and I wanna make ads for billboards in the background.)

script.Parent.Touched:Connect(function()
	if workspace.Advertisement2.SurfaceGui.BloxyCola.Playing = false then
		workspace.Advertisement1.SurfaceGui.Eat.Playing = true
	elseif
		workspace.Advertisement2.SurfaceGui.BloxyCola.Playing = true then
		workspace.Advertisement1.SurfaceGui.Eat.Playing = false
	end
end)

I tried putting == instead of just 1 '=' but that just made it not work. I put prints in between each line and the script goes through, Just the video doesn't play. so I'm pretty sure its because of those double equals.

1 comment

0

If statments require two =='s.

1 answer

So, the reason you get that error is because the code right here:

if workspace.Advertisement2.SurfaceGui.BloxyCola.Playing = false then

as well as:

elseif
	workspace.Advertisement2.SurfaceGui.BloxyCola.Playing = true then

doesn't have a second "=". To fix this, you simply have to add another = right next to the currently existing one, as shown here:

if workspace.Advertisement2.SurfaceGui.BloxyCola.Playing == false then

The reason you must have two equals signs instead of one when working with if statements is that the equals sign has dual purposes.

One as a variable definer:

MyVariable = 50

And the other as a if statement:

if MyVariable == 50 then
	print("MyVariable has exceeded up to " .. MyVariable)
end

The difference between using it as a variable definer and a if statement operator is that: when defining variables, defining variables simply needs one equals sign, as it's defining a value to a variable, much like how 2+2 = 4. The other needs two equals signs because you are not defining a value to a variable, instead; you are comparing two values together, and if they are identical to each other, it results as true, otherwise its false.

In summary, use one equals sign for defining variables, and use two for comparing two values in if statements.

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