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
You can't have elseif after 'end', it makes no sense, you can only have it after if or other elseif statement