Namespace GrindFest.ModAssets.Editor
Classes
- ModAssetBuilder
Builds a mod's assets into its own content directory — the same artifact the base game ships, scoped
mod:<mod folder name>.A mod's assets are declared on a ContentRootAsset whose
directoryNameismod:<mod folder name>. GrindFest ▸ Content ▸ Generate Content Roots writes the base game's roots; a modder adds one for theirs. This entry finds every such root, groups it by the mod it belongs to, and writes that mod's content directory intoMods/<key>/Content/content-directory/— the folder RegisterAllAsync(CancellationToken) registers at boot, after the base game, so a mod's version of a key wins.What this replaced. The previous publisher built Addressables groups named
mod_<key>, normalised entry addresses, redirected a temporary profile into a staging folder, and rewrote bundle internal ids so a catalogue built on the modder's machine would resolve on a player's. A content directory needs none of that — it is self-describing and addressed by path — and it was the one build in this repository that could fail at the pipeline level (SBP Error, measured 2026-09-20 on a machine whose Library had been rebuilt). Nothing of the Addressables path is left here on purpose: a fallback that is never exercised is a fallback that rots, and the mod side already prefers the directory (ModAssetCatalogs.LoadAsync).