Along with @kingerman88’s suggestions, you should use:
task.delay([number], function()
instance:Destroy()
end)
instead of Debris:AddItem as Debris uses the old wait(n) instead of task.wait(n).
Another thing is when declaring unknown variables, instead of this:
local Value
do,
local Value = nil
It’s easier to read and also removes some warnings if you’re using --!strict.
The last improvement I can think of is to not use the second parameter of Instance.new(). You should always set parent last for performance reasons: