Adding onto @dthecoolest, here is an example using coroutines.
local temp = script.Parent.Template
local function create(text, deleteOthers, timee)
local clone = temp:Clone()
clone.Parent = script.Parent
clone.Name = text:split(" ")[1]
clone.Text = text
if deleteOthers == true then
for i, v in pairs(script.Parent:GetChildren()) do
if v:IsA("TextLabel") then
if v.Name == "Template" then return end
v:Delete()
end
end
end
coroutine.wrap(function()
wait(timee)
clone:Destroy()
end)() -- Notice how there needs to be parenthesis here, this is because coroutine.wrap() returns a function in a new thread and does not immediately execute it like task.spawn()
end
Coroutines also have some other cool features that you should totally check out! Here’s the link to the API reference if you’re interested: coroutine | Roblox Creator Documentation
You can also read up on this post to see specifics about the differences between the two.