Find instances
findSearches Roblox Studio's data model by name, class, property, tag, or selector in one request, letting AI agents locate instances without multiple tree scans.
Instructions
Searches the data model by name, class, property value and/or tag. Every filter you supply must match, so one call answers questions that would otherwise take several: "anchored BaseParts under Workspace.Map whose name contains door" is a single request.
This replaces separate name / class / property / tag search tools. Prefer it over tree whenever you know what you are looking for.
Tag searches are answered from CollectionService's index rather than by walking the tree, so they stay fast on large places. Narrow with path if a search reports TOO_BROAD.
op="tags" lists which tags the place actually USES, with counts and a few example paths. Call it before filtering by tag on a place you do not know: a tag search that returns nothing looks the same whether you spelled it wrong or nothing carries it, and the tag names are often the clearest description of how a game is organised (Enemy, Checkpoint, Interactable say more than the folder layout does).
selector is the engine's own query language and is the fastest option of all — the matching happens in C++ and only survivors come back. Reach for it when the shape of the tree is part of the question (Model > Part) or when one call should answer two (Part, Model); the filters above still apply on top of it.
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| op | No | 'find' searches for instances. 'tags' lists which CollectionService tags exist in the place, with counts — use it when you do not know the tag names yet. | find |
| tag | No | CollectionService tag the instance must carry. | |
| path | No | Limit the search to this subtree, e.g. "Workspace.Map". Omit for everything. | |
| limit | No | Maximum items to return (1-500). | |
| cursor | No | Opaque cursor from a previous call's `nextCursor`. Omit for the first page. | |
| detail | No | How much to return per item. 'concise' = name + class only, cheapest, use when scanning or counting. 'standard' = the properties that matter for most edits. 'full' = every readable property, expensive — use only after you have narrowed to a handful of instances. | standard |
| selector | No | Engine query selector, matched inside Studio. Supports a class name ("Part", superclasses included), "#ExactName", "[Anchored=true]", either-or with "Part, Model", direct children with "Model > Part" and descendants with "Model >> Part". No substring names and no < > comparisons — use nameContains and propertyValue for those. Combines with the other filters. | |
| studioId | No | Target Studio; omit for the active one. | |
| className | No | Class or superclass, e.g. "BasePart", "Script". | |
| nameContains | No | Substring of the instance name, case-insensitive. | |
| propertyName | No | Property that must exist, e.g. "Anchored". Combine with propertyValue. | |
| propertyValue | No | Required value of `propertyName`, compared as text — "true", "0, 5, 0", "Enum.Material.Neon". Omit to match any instance that has the property. |