BA Help API
Add pages to the Big Ambitions in-game Help window from your own mod.
Big Ambitions builds its help tree from StreamingAssets/helpstructure.json, a file inside the game
install that Workshop mods cannot ship changes to, and the modding API exposes no hook for it. This
library fills that gap. Registered pages are merged into the live help structure and re-applied
whenever the game rebuilds it, so they behave exactly like base-game pages — they appear in the
sidebar, they are searchable, and other pages can link to them.
Documentation
| Page | What’s in it |
|---|---|
| Getting started | Install, declare the dependency, register your first page |
| API reference | Every public member, with parameters and behaviour |
| Worked example | A complete mod adding eight cross-linked pages |
| Conventions | The 14 base-game categories, slug naming, where your page belongs |
| Localisation | How page text works, Markdown support, linking |
| Troubleshooting | Blank pages, missing pages, load-order problems |
Thirty-second version
Reference the BAHelpApi assembly from your .asmdef, then:
using BigAmbitions.Modding.Help;
// In OnLoadAsync
HelpApi.RegisterPage("MyMod", HelpCategories.Furniture,
slug: "furniture-mymodwidget",
pageKeyPrefix: "mymod:itemname_widget");
// In OnUnloadAsync
HelpApi.UnregisterOwner("MyMod");
Add the text to your own Locales/en.json:
{
"mymod:itemname_widget": "Widget",
"help_mymod:itemname_widget_content": "**Widget** does something useful."
}
That is the whole integration. The page appears under Furniture, in alphabetical position, in the player’s language.
Why a library rather than copy-pasted code
Because the game has no help hook, any solution has to reach into the help window’s private state. Doing that from several mods independently would mean several mods each rebuilding the sidebar on their own schedule, fighting each other after every language change.
One shared assembly keeps a single registration list and a single merge pass. Big Ambitions derives mod dependencies from assembly references, so depending on it is just a reference — the loader handles ordering, failure propagation and version checking for you.
Design guarantees
- Never fatal. If a game update renames the internals this depends on,
IsSupportedturns false, one warning is logged, and dependent mods keep working without help pages. - Never silent. A page whose localisation keys are missing is reported in the log, rather than rendering as a blank page you have to debug.
- Self-healing. The game re-parses its help structure on language change and scene reload; pages are re-applied automatically when that happens.
- Isolated per mod. Pages are tracked by owner id, so mods never interfere with each other’s
registrations and
UnregisterOwnerremoves exactly yours.
View on GitHub · MIT licensed · Unofficial community library, not affiliated with Hovgaard Games