{"id":"sap0bombado/create-scope","name":"create-scope","scope":"sap0bombado","platform":"roblox","description":"Mirrored from the Wally registry.","version":"0.3.1","latest":"0.3.1","versions":["0.0.1","0.0.2","0.1.0","0.1.1","0.2.0","0.3.0","0.3.1"],"license":"MIT","licenseRating":"safe","licenseCaveats":[],"licenseVerified":true,"dependencies":{},"integrity":"d8467b022ca6a1b2df49cb4343a80d38a4589bfdb6626514b14a1b005d2883eb","likes":0,"downloads":0,"install":"forest install sap0bombado/create-scope","url":"https://forest.dev/p/roblox/sap0bombado/create-scope","files":"https://api.forest.dev/ai/package/roblox/sap0bombado/create-scope/files","readme":"# create-scope\r\n\r\nResource cleanup. Track Instances, connections, threads, and functions, clean them all at once by calling `scope()`.\r\n\r\n## Install\r\n\r\n```toml\r\n[dependencies]\r\ncreateScope = \"sap0bombado/create-scope@0.3.1\"\r\n```\r\n\r\n## API\r\n\r\n### `createScope(size?, ...) -> (Scope, T...)`\r\n\r\n| Param | Type | Description |\r\n|-------|------|-------------|\r\n| `size` | `number?` | Initial capacity |\r\n| `...` | `T...` | Initial items to track (returned as extra values) |\r\n\r\n### `Scope`\r\n\r\nCallable: `scope(item) -> item` tracks an item; `scope()` cleans up all items.\r\n\r\nCleans items by type: Instance (`:Destroy`), RBXScriptConnection (`:Disconnect`), function (call it), thread (`task.cancel`), table (tries common cleanup methods like `:Destroy`, `:Disconnect`, etc.).\r\n\r\n## Example\r\n\r\n```lua\r\nlocal scope = createScope()\r\n\r\nlocal part = scope(Instance.new(\"Part\"))\r\npart.Parent = workspace\r\n\r\nlocal conn = scope(RunService.Heartbeat:Connect(function(dt)\r\n    print(\"Heartbeat\", dt)\r\nend))\r\n\r\nscope(function()\r\n    print(\"Custom cleanup\")\r\nend)\r\n\r\n-- Clean everything\r\nscope()\r\n```\r\n","readmeTruncated":false}