Conventions
Following the base game’s own conventions makes your pages indistinguishable from vanilla ones and keeps links predictable for other mods.
Categories
Fourteen categories ship with the game. Prefer one of these over creating your own — a furniture item belongs in Furniture next to the other 522 pieces, not in a category named after your mod.
| Constant | Heading | Base-game pages | Use for |
|---|---|---|---|
HelpCategories.General |
General | 9 | Movement, energy, happiness, the phone |
HelpCategories.Finance |
Finance | 3 | Loans, taxes, accounting |
HelpCategories.BuildingManagement |
Building Management | 10 | Renting, layouts, cleanliness |
HelpCategories.BusinessTypes |
Business Types | 24 | A new business type |
HelpCategories.EmployeeTypes |
Employee Types | 21 | A new employee role |
HelpCategories.EmployeeManagement |
Employee Management | 7 | Hiring, shifts, wages |
HelpCategories.GoodsAndServices |
Goods and Services | 76 | A sellable product |
HelpCategories.WholesaleAndImport |
Wholesale / Import | 17 | Suppliers, import contracts |
HelpCategories.Furniture |
Furniture | 522 | A placeable item |
HelpCategories.Rivals |
Rivals | 4 | Competing businesses |
HelpCategories.FactoryRecipes |
Factory Recipes | 62 | A production recipe |
HelpCategories.FactoryMachines |
Factory Machines | 17 | A factory machine |
HelpCategories.FactoryIngredients |
Factory Ingredients | 61 | A production input |
HelpCategories.Vehicles |
Vehicles | 19 | A drivable vehicle |
Creating your own category
Only worth it for something that genuinely does not fit — a large mod with its own systems, say.
Pass any other key as categoryKey and localise that key yourself:
HelpApi.RegisterPage("MyMod", "mymod:help_category", "mymod-overview", "mymod:help_overview");
{ "mymod:help_category": "My Mod" }
The library warns in the log if a non-vanilla category key has no localisation, because the heading would otherwise show the raw key.
Slugs
A slug is a page’s permanent id. Links target it, so treat it as public API of your mod — other mods may link to your pages, and changing a slug breaks those links.
The base game uses a category prefix followed by a name with no separators inside it:
businesstypes-giftshop
furniture-acousticpanel01
furniture-roundedshelf
products-cheapgift
Prefix the name part with your mod id so it cannot collide:
furniture-laundromatwasher ✅ clearly namespaced
furniture-washer ❌ likely to collide
laundromat_washer ❌ wrong prefix, breaks category convention
HelpSlugPrefixes provides the four common prefixes as constants.
Page key prefixes
The pageKeyPrefix is a localisation key prefix, not a slug. The clean pattern is to reuse a key
your mod already has:
HelpApi.RegisterPage("Laundromat", HelpCategories.Furniture,
slug: "furniture-laundromatwasher",
pageKeyPrefix: "laundromat:itemname_washer"); // ← the item's own name key
The page title is then automatically the item’s localised name, in every language your mod supports, with nothing to keep in sync. You only add the body:
{ "help_laundromat:itemname_washer_content": "..." }
This is what the base game does — its furniture pages use ba:itemname_* prefixes.
Where a page should go
A quick decision guide for a typical content mod:
| You added | Category | Slug |
|---|---|---|
| A business type | BusinessTypes |
businesstypes-<mod><name> |
| Furniture the player places | Furniture |
furniture-<mod><name> |
| A product sold to customers | GoodsAndServices |
products-<mod><name> |
| A vehicle | Vehicles |
vehicles-<mod><name> |
A business-type page conventionally lists the furniture it requires, linking to each furniture page; each furniture page links back and says where it can be bought. See Localisation for the exact link syntax.