lloyAlloy on GitHub
after
Docs

after

Updated
local part = new Instance("Part")
local alive = true
local function respawn() end

after 3 do
    part.Transparency = 1
end

after 3 where alive do
    respawn()
end

Runs a block later: task.delay(seconds, function() ... end). The seconds are a number. return leaves the block, not the function around it, since the block is a function of its own.

where puts a condition on it, and the condition is read when the timer fires, not when the block is scheduled. A local the code changes in between is read at its new value.

after is also the word in destroy x after n.

The word is free as a name too. after before a delay is the keyword, and the block closes it: after 2 do, after (n + 1) do, and after 3 where cond do. Every other reading is a name, so after = 1, after(x), after[1] = 2, and after += 1 read the Luau way. The delay and its do sit on one line when the delay is parenthesized, since after(x) on its own line is a call.