Skip to content

Debris

Supported Class Services NotCreatable Service

Allows scheduling the guaranteed destruction of an object without yielding.

Description

The Debris service allows scheduling guaranteed destruction of an object without yielding.

Advantages

Besides creating a bit of a mess, objects that are no longer required can use up system memory and cause an experience to run slower over time. For this reason, it's always advised to call Instance.Destroy() on objects you no longer need. In some cases, however, an object may have a specific period of utility before it can be destroyed.

Consider a wall being smashed into individual bricks. If you want a brick to linger for 3 seconds before being destroyed, you can use the following code:

task.wait(3)
brick:Destroy()

However, waiting causes the thread to yield which may be undesired. To avoid yielding, a callback function can be scheduled to run on a new thread after 3 seconds:

task.delay(3, function()
    brick:Destroy()
end)

Or in one line:

task.delay(3, brick.Destroy, brick)

While this now avoids yielding, it has a potential drawback in that the scheduled callback will never run if the script is disabled or destroyed before the callback runs.

This is where Debris has a specific advantage, as it does not yield the current thread and runs outside the context of the script, guaranteeing the instance is eventually destroyed even if the script is disabled or destroyed. The following code does not yield and guarantees the instance will be destroyed:

Debris:AddItem(brick, 3)

Note that Debris has a hardcoded maximum of 1,000 objects, so if more than 1,000 items are added, the oldest debris will be destroyed instantly to make room for new debris.

Inheritance

Object → Instance → Debris

Nova inheritance: Instance → Debris

Properties

MaxItems Supported Property Deprecated The maximum number of items that can be assigned to the Debris service at one time.
MaxItems: int

The maximum number of items that can be assigned to the Debris service at one time.

The maximum number of items that can be assigned to the Debris service at one time.

If this number is exceeded, objects are automatically destroyed in order from oldest to newest until the amount is less than or equal to MaxItems.

This property is currently restricted and will error if set. The value is hardcoded to 1,000 items.

Nova behaviour: Nova keeps this legacy member for compatibility. Roblox's modern deprecation wording may describe later Roblox behaviour; verify it against Nova before relying on the copied text.

Roblox documentation

Methods

AddItem Supported Function Schedules a given Instance for destruction within the specified lifetime.
Debris:AddItem(Instance item, double lifetime = 10)

Schedules a given Instance for destruction within the specified lifetime. After the lifetime argument has elapsed, the object is destroyed in the same manner as Instance.Destroy(). Note that the lifetime argument is optional and defaults to 10 seconds.

Note that Debris has a hardcoded maximum of 1,000 objects, so if more than 1,000 items are added, the oldest debris will be destroyed instantly to make room for new debris. This means you should treat the lifetime parameter as a maximum lifetime, not an exact lifetime.

Roblox reference signature
Debris:AddItem(item: Instance, lifetime: double = 10): null

Roblox documentation

addItem Supported Function Deprecated Use AddItem() instead
Debris:addItem(Instance item, double lifetime = 10)

Use AddItem() instead

Roblox reference signature
Debris:addItem(item: Instance, lifetime: double = 10): null
Nova behaviour: Nova keeps this legacy member for compatibility. Roblox's modern deprecation wording may describe later Roblox behaviour; verify it against Nova before relying on the copied text.

Roblox documentation

SetLegacyMaxItems Supported Function
Debris:SetLegacyMaxItems(bool enabled)

No description available.

Roblox reference signature
Debris:SetLegacyMaxItems(enabled: bool): null
Security: LocalUserSecurity

Roblox documentation

Inherited members

Inherited from Instance: 8 properties, 36 methods, 7 events. They are documented on the base class page.

Roblox reference: Debris

Generated from Nova's API dump and Roblox creator-docs. Nova-only members come from the engine's reflection metadata.