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)
An elseif
has to be on a line before the end of an if
statement.