Keep particles on ParticleEmitter:Destroy()

As a Roblox developer, it is currently impossible to keep the existing particles while destroying the particle emitter

I think right now the best option is a bunch of conditionals and I am probably missing stuff but I am doing this:

--where ins is the bullet (see the streamables)
local ttl=0
for _,v in ipairs(ins:GetDescendants())do
	if v.ClassName=='Sound'or v:IsA'LayerCollector'or v:IsA'Light'then
		v:Destroy()
	elseif v:IsA'ParticleEmitter'or v:IsA'Beam'or v:IsA'Trail'then
		ttl=math.max(ttl,v:IsA'ParticleEmitter'and v.Lifetime.Max or v:IsA'Trail'and v.Lifetime or 0)
		v.Enabled=false
	elseif v:IsA'BasePart'or v:IsA'Decal'then
		v.Transparency=1
	end
end
_G.debris:AddItem(ins,ttl)

to achieve https://streamable.com/0eegv

But Iā€™d like to just write

ins:Destroy()

Except right now Roblox :Clear()s the ParticleEmitter when we call :Destroy(), so it looks like this: https://streamable.com/3qxmq

So please support and maybe someone will see and fix this

18 Likes