BOOK OF HOURS: locmod creation reference
We’ve enabled Steam Workshop distribution for fan localisation mods – aka locmods – of BOOK OF HOURS.
[Why only locmods? Because we learnt the hard way with Cultist Simulator how much effort it takes to support a modding framework. A lot of the support requests we get for Cultist to this day turn out to the result of mods, and worse, once there’s an official framework, if we make changes, we have to maintain backwards compatibility for existing mods, which is a bit of a game of Twister. So full official modding support for BOOK OF HOURS is ‘probably, someday’, an upgrade from our previous policy of ‘maybe, someday’.
You can of course create and distribute mods using your own unofficial tech or framework wherever you like, under the Sixth History License! Numerous people already have. We just don’t support them, or host them on our Steam Workshop page.]
Creating a locmod
A locmod consists of a folder with:
- synopsis.json – a JSON file providing some meta information about your locmod, such as its title and description
- content/cultures/[languagename].json – a culture file that allows the locmod to change the labels on buttons and other UI elements in the game
- loc/ – the folder containing the loc files
- images/ – a directory that can contain game images. Certain images in the game will be replaced by the modding framework with any identically named images that you put in images/[certain subfolders]
‘Certain Subfolders?’
images/localised/ is for images which contain text – like map labels and the signs in the village. There is a zip of relevant images here: loc_images. If you place an identically named image (either an edited version of this image, or a new one of the same size) in the images/localised/ directory, that image will replace the original one while the locmod is running.
images/books is for book_covers (zip file again) – there are almost three hundred books in the game, with a spine and cover image for each book. The naming format is ‘t.id’ for the cover, ‘t.id_’ for the spine. (All book elements begin with ‘t.’ for ‘text’).
finally, images/wallarts is for things like paintings and stained glass windows – there are only a very few images – wallarts– with text (and you probably won’t want to translate the Latin into the locmod language)
[Weather Factory grants permission for use and customisation of these images to create mods!]
If you encounter problems while working on your mod, check your game’s player.log for useful messages. You can find it next to your save file.
Synopsis.json
{ “name”: “Locmod Name”, “author”: “Locmod Author”, “version”: “1.0.0”, “description”: “Locmod Description, shown in-game.”, “description_long”: “Long Locmod Description.” } |
The version number should follow semantic versioning [semver.org] rules.
Cultures
The game currently ships with English, Russian, and Chinese (Simplified). If you’d like to add localisations for another language, add a JSON file with a culture entity to the /content/cultures folder in your mod. You can copy the format from the existing cultures in /core/cultures.
A culture entity allows you to specify:
- the name of the language
- values for the UI labels in the game
- which base font script a mod will use. ‘Font script’ here means a selection of font assets that support a particular writing system.
fontscript=’latin’ uses EBGaramond for most text, Titania for numbers, eand should be okay for EFIGS-neighbourhood languages.
fontscript=’cyrillic’ uses EBGaramond with YesevaOne for numbers
fontscript=’cjk’ uses NotoSansCJKsc, a Google font which provides common characters used in Chinese, Japanese and Korean – but actually
fontscript=’jp’ uses NotoSansJp, a similar font that our Japanese localisers reocommended we use
fontscript=’latinplus’ uses LatinABExtendedXNotoSans – this is your best bet for languages which need extended/unusual Latin characters.
Loc folder text
This is the bulk of the locmod: a file for every original content file in the game, with strings matching the original English strings, identified by the id field.
Here, you can find an explanation of what all the different fields mean in the content files, and lots of other relevant info. This is the same documentation we share with professional localisation partners – we’ve added explanations where the process is different for locmods.
Uploading a fan localisation to the Steam Workshop
There are two ways to install a locmod in BOOK OF HOURS:
- locally, by copying that mod to the /mods folder. (Location varies by OS: start your game, open the Options menu, click on “BROWSE FILES”, and you’ll see it.) Installing mods locally is useful if you’re developing your own, or if you don’t have access to Steam for whatever reason.
- from the Steam Workshop, by hitting ‘Subscribe’ on the mod and restarting the game
(You can have the same mod installed from a Steam subscription and locally; but you can’t activate both versions at once.)
If you’ve just created a locmod, you’ll need to install it locally first
Once you’ve done that, if it’s set up right, you’ll see the language in the list of available languages on the BOOK OF HOURS menu page:
…at which point the upload button next to the language name will allow you to upload it to the Steam Workshop.
You don’t have to distribute mods via the Steam Workshop – or exclusively via the Steam Workshop. If you want to host a locmod on a third party site or your own site, that’s fine. But the majority of our players will go to the Workshop first.
Good luck!