Keyboard shortcuts

Press ← or → to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

Machine-readable SDK catalog

Tools discover a build's hooks and injection points through mod-catalog.json, shipped at the root of each prebuilt SDK and beside points.json in a developer source build's catalog directory. Converters, linters and IDE helpers must read this file rather than source paths. Internal source layout is not a tool API.

Fork Nightlies also attach mod-catalog.json as a standalone release asset, listed in the signed SHA256SUMS. Download the current catalog asset from the fork Nightly release, or use the corresponding dated release for an older pinned build. It is generated from the Nightly's exact published commit using the same generator as the SDK. Verify it with that release's checksums and build-specific signature; do not mix the latest catalog with an older pinned build. The catalog follows the release when it rotates to a dated Nightly tag and has the same retention as the other Nightly assets.

The JSON document has schema_version: 1, api_version, hooks and points. Consumers must refuse unknown schema versions. The API version is the mod manifest API version; it is independent of the catalog format version.

Hooks are sorted by id and describe side, nullable scope (Part kind and key), contract, ordered arguments with API name and type, and nullable output. Types are Rust API event field types, including their borrow lifetimes. Points are sorted by name and target; a target distinguishes equal names. Each includes its supported access values (api, internals), API record and ordered args, return contract and type, raw shape when available, and nullable api_refusal. Refused and native-only points remain in the file.

The build generator owns this catalog. Output has no timestamps or absolute paths. A format change requires a schema version change; tools should use the catalog accompanying the build they target. CI regenerates the catalog in-test and compares the two documents for determinism. The full file ships in the SDK, developer source build and fork Nightly release; no committed fingerprint needs refreshing when independently authored hooks land.