Builtin Library
README.md
guides
The engine's documentation: the guides and asset types that describe how each system works. Four verbs over one catalogue.
searchfinds the guide that answers a question, ranked by what it MEANS rather than by the words it happens to use.listenumerates the catalogue, README first, at the depth you ask for.readopens one guide by path.scanfinds a literal word across the catalogue and returns each hit with the lines around it.
An asset TYPE is documentation too: its README documents the type, and it answers under types/<name>. All four verbs cover both.
The catalogue and the way a path resolves against it live in this toolbox's shared module, and the search is @builtin::modules.discovery. The guides MCP tool calls these tools, so the shell (zero guides search --query "..."), Luau (tools.use("guides", "search", { query = "..." })) and an agent's MCP call are one implementation rather than three that disagree.
The mode a search answers in
A session bound to a world reaches the published corpus and ranks by meaning: a question asked in the caller's own words finds the guide that answers it whether or not they share any wording. An unbound session — a headless test engine, a boot with no credentials — has only the files it holds, and ranks over the words in them.
discovery.defaultMode() makes that decision once and every discovery surface asks it, so a tool search, a guide search and the content search agree about what this session can do. Pass mode to state it instead: "semantic" or "keyword".
The catalogue's edge
This toolbox answers over the documentation. A query aimed past it comes back naming the surface that does answer, so a caller who guessed wrong is told where to go rather than handed an empty page:
- the tools —
tools.search, on thetoolsglobal. - every other kind of asset, including modules, components, render features, shaders and materials —
zeromind.search.