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

Elseif syntax error? Whats wrong with it? Order?

So I'm trying to make a code system, and apparently I suck, because the third code isn't working for me because its an error. This is my WHOLE code if I got some sort of order wrong, you may use this code if you can fix it. Thanks!

local player = game.Players.LocalPlayer
local RE = game.ReplicatedStorage.EnterCode
local codes = player:WaitForChild("Codes")

--Optional if you want your code to have an expiration
local date = os.date("*t", os.time())

--Codes
local codelist = {
	code1 = "iread", -- Always put a comma every timne you're going to add another code
	code2 = "update2",
	code3 = "adbonus"
}

script.Parent.MouseButton1Click:Connect(function()
	if script.Parent.Parent.CodeHandler.Text == codelist.code1 then -- Im gonna add an expiration in this code
		if date["month"] >=0 and date["day"] >= 0 then -- Months are in numerical order .Month and Day must be in lowercase letters. Use "<=" If you want to make your code valid until that date. Use "==" if you want to make your code valid only on that date.
			if not codes:FindFirstChild("Code1") then -- This one here
				RE:FireServer(500, "Code1") -- The string must be the same as in the top. For now I can reward the player, cash. Until I can learn how to save tools.
				script.Parent.Text = "Code redeemed successfully!"
				script.Parent.Parent.CodeHandler.Text = "" -- Removes the text in our code handler textbox
				wait(2)
				script.Parent.Text = "Redeem Code"
			else
				script.Parent.Text = "Code already redeemed!"
				wait(2)
				script.Parent.Text = "Redeem Code"
			end	
		else
			script.Parent.Text = "Code expired!"
			wait(2)
			script.Parent.Text = "Redeem Code"		
		end
	elseif script.Parent.Parent.CodeHandler.Text == codelist.code2 then -- Your second code. So if our textbox matches the code in our dictionary...
		if not codes:FindFirstChild("Code2") then -- This one here
			RE:FireServer(300, "Code2") -- The string must be the same as in the top. For now I can reward the player, cash. Until I can learn how to save tools.
			script.Parent.Text = "Code redeemed successfully!"
			script.Parent.Parent.CodeHandler.Text = ""
			wait(2)
			script.Parent.Text = "Redeem Code"
		else
			script.Parent.Text = "Code already redeemed!"
			wait(2)
			script.Parent.Text = "Redeem Code"
		end
	else
		script.Parent.Text = "Code invalid!"
		script.Parent.Parent.CodeHandler.Text = ""
		wait(2)
		script.Parent.Text = "Redeem Code"
	end
	elseif script.Parent.Parent.CodeHandler.Text == codelist.code3 then -- Your third code. So if our textbox matches the code in our dictionary...
	if not codes:FindFirstChild("Code3") then -- This one here
		RE:FireServer(300, "Code3") -- The string must be the same as in the top. For now I can reward the player, cash. Until I can learn how to save tools.
		script.Parent.Text = "Code redeemed successfully!"
		script.Parent.Parent.CodeHandler.Text = ""
		wait(2)
		script.Parent.Text = "Redeem Code"
	else
		script.Parent.Text = "Code already redeemed!"
		wait(2)
		script.Parent.Text = "Redeem Code"
	end
else
	script.Parent.Text = "Code invalid!"
	script.Parent.Parent.CodeHandler.Text = ""
	wait(2)
	script.Parent.Text = "Redeem Code"
end
end)

1 comment

0

You can't have elseif after 'end', it makes no sense, you can only have it after if or other elseif statement

1 answer

An elseif has to be on a line before the end of an if statement.

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