Clean
Cleans all resources managed by the Vault and prepares it for garbage collection.
- TypeScript
- Luau
const vault = new Vault()
const part = new Instance("Part")
part.Parent = workspace
vault.Add(part)
const connection = part.Touched.Connect(() => {
print("Touched")
})
vault.Add(connection)
vault.Clean()
local vault = Vault.new()
local part = Instance.new("Part")
part.Parent = workspace
vault:Add(part)
local connection = part.Touched:Connect(function()
print("Touched")
end)
vault:Add(connection)
vault:Clean()
Behavior
The Clean method performs a comprehensive cleanup of the Vault and its resources:
- Prevents double-cleaning: If the vault was already cleaned, returns immediately
- Hierarchical cleanup: Recursively cleans all child vaults first
- Resource cleanup: Executes cleanup logic for every tracked resource
- State reset: Clears all internal tracking structures
- Parent detachment: Removes itself from parent vault's children collection