Is there a way to remove items from debris?

Hello! I am currently working on a free build type of game and I wanted the blocks that the players built to get added to debris for 60 seconds, but if they joined back, their blocks would be removed from the debris. Is there a way to do this? And if not, should I use Destroy for this?

2 Likes

you might as well do something else, because debris only has two functions

Nope, there are simply no other function with the Debris service allowing for this to happen, there is only :AddItem and SetLegacyMaxitems from the Debris | Roblox Creator Documentation documentation as @D0RYU said.

You can instead use a custom task scheduling function with a cancel function like this post.

local function Destroyed(x)
	if x.Parent then
		return false
	end
	local _, result = pcall(function()
		x.Parent = x
	end)
	return result:match("locked") and true or false
end

local function customDebris(instance, lifetime)
	local continueDebris = true

	coroutine.wrap(function()
		task.wait(lifetime)
		local isDestroyedAlready = Destroyed(instance)
		if continueDebris and instance and not isDestroyedAlready then
			instance:Destroy()
		end
	end)()

	return function()
		continueDebris = false
	end
end

local cancelDebrisForPart = customDebris(Instance.new("Part"),5)
wait(1)
cancelDebrisForPart()
4 Likes

oh okay, thanks for the fast answer :wink: