Script clones 1 instead of 3 folders

I’m trying to make a quest system but I’m lowkey dumb. The script only clones the “Serve 3 customers” folder.

Heres my script:

local ReplicatedStorage = game:GetService("ReplicatedStorage")
local dQuestsFolder = ReplicatedStorage:WaitForChild("DailyQuests")

local quests = {
	dQuestsFolder.Mop5;
	dQuestsFolder.Play10Min;
	dQuestsFolder.Serve3;
}

game.Players.PlayerAdded:Connect(function(player)
	local questsFolder = Instance.new("Folder")
	questsFolder.Name = "Quests"
	questsFolder.Parent = player
	
	player.CharacterAdded:Connect(function(character)
		for i, quest in pairs(dQuestsFolder:GetChildren()) do
			if not questsFolder:FindFirstChild(quest.Name) and not quest:FindFirstChild("Completed") then
				wait(.1)
				local questClone = quest:Clone()
				questClone.Parent = questsFolder
				
				if questClone:FindFirstChildOfClass("Frame").QuestName.Text == "Play for 10 minutes" then
					local timePlayed = Instance.new("IntValue")
					timePlayed.Name = "TimePlayed"
					timePlayed.Parent = player
					
					repeat 
						timePlayed.Value += 1
						task.wait(1)
					until timePlayed.Value == 600
					
					local completed = Instance.new("BoolValue")
					completed.Name = "Completed"
					completed.Parent = questClone
					
					timePlayed:Destroy()
				elseif quest:FindFirstChildOfClass("Frame").QuestName.Text == "Mop 5 spills" then
					local spillsMopped = Instance.new("IntValue")
					spillsMopped.Name = "spillsMopped"
					spillsMopped.Parent = player
					
					repeat 
						task.wait(1)
					until spillsMopped.Value == 5
					
					local completed = Instance.new("BoolValue")
					completed.Name = "Completed"
					completed.Parent = questClone
					
					spillsMopped:Destroy()
				elseif quest:FindFirstChildOfClass("Frame").QuestName.Text == "Serve 3 customers" then
					local customersServed = Instance.new("IntValue")
					customersServed.Name = "customersServed"
					customersServed.Parent = player

					repeat 
						task.wait(1)
					until customersServed.Value == 3

					local completed = Instance.new("BoolValue")
					completed.Name = "Completed"
					completed.Parent = questClone

					customersServed:Destroy()
				end
			end
		end
	end)
end)

This won’t work unless you’re storing the completion status

It’s odd that the “Serve 3 customers” folder is the only one being cloned. I can only assume the questname is wrong for the other 2 since the logic is fairly consistent.

Also note that your if statement uses questClone but uses quest for the elseifs. Won’t affect functionality but buildup of inconsistency will bite back in the long run.

Nothing was wrong with the questnames