This is the season of the Forge of Days – the hottest August day in the UK for the last decade – so here’s something apposite for you.
I’ve been quiet recently, for two reasons. One is that last month, Lottie finally cajoled me into taking a couple of weeks off. (I now have to return the favour, which is going to be a toughie because her work ethic makes mine look like a half-articulated preference.) But the other is that I’ve been rewriting some core parts of the Cultist Simulator code base, so I can reuse more of it for BOOK OF HOURS.
The rewrite is on the beta branches on GOG and Steam now. There are some performance improvements (and probably some exciting new bugs), but the big visible change is an update to the modding framework – especially, integration with the Steam Workshop.
Our Steam Workshop page is named for the Invisible Serapeum: the library in EXILE which, unusually for a library, claims the patronage of the Forge of Days.
If you’re interested in playing mods, then just keep an eye on the Steam Workshop to see what shows up (no news on a GOG workshop-like, but you can still install mods manually). If you’re interested in making mods, read on…
All these changes, including the Steam Workshop, currently only function with the beta (gateofhorn) branch. Please let us know about bugs at firstname.lastname@example.org
Uploading a Mod to the Serapeum
- Add the mod to the /mods folder in the Cultist save folder, as per usual.
- Start the game and hit the ‘DLC & Mods’ button
- Hit ‘Upload’. You should get a message confirming success or lamenting failure, and a window showing the Woklshop item.
- Subscribe to the item and restart the game; the Steam version of the mod should show up under Mods.
- Once you’ve uploaded a mod, you’ll get a file called serapeum_catalogue_number.txt in the local mod folder. As long as this is in the local mod folder and you’re the originally authenticated user, you can update the mod.
Modding Framework Changes [updated 12/08/2020]
I’ve updated Marc’s original modding post here. Existing mods will need some changes, but it’s a matter of find/replace and renaming some files.
- If you add “newstart”: true to a legacy in a mod, it’ll show up in the INVISIBLE SERAPEUM on the menu page, and players will be able to start it as if it were a piece of DLC.
- You can also now use tablecoverimage:, tablesurfaceimage:, and tableedgeimage: on Legacies to customise table appearance.
- if you add a file to the mod root called cover.png, it’ll be used as a preview image for the mod, in the game and on Steam.
- Modding and core files now require strict JSON, not the weird relaxed hybrid I’ve preferred. That basically means quoting keys as strings: “label”: “Teresa”, not label: “Teresa” .
- A lot of you sensible folk have used strict JSON anyway; if you need to tidy up non-strict JSON, there are a bunch of free online tools and add-ins that will do it with a click. Google ’em and pick the one you prefer.
- manifest.json is now synopsis.json, to provide a simple at-a-glance way of seeing whether it’s old or new format.
- I’ve renamed some properties for consistency:
DeckEffect -> DeckEffects AlternativeRecipes-> Alt LinkedRecipes -> Linked FilterOnAspectId -> Filter MutateAspectId ->Mutate MutationLevel -> Level [on Verbs] Slots-> Slot
- I’ve rationalised our frankly arcane image folders. You’ll now find images in
images/aspects images/burns images/cardbacks images/elements images/elements/anim images/endings images/legacies images/statusbaricons images/verbs images/verbs/anim images/ui
- Mod files can no longer contain multiple entity types (e.g. both recipes and elements) – one file, one entity type (though you can have as many files for one entity type as you like). Sorry, this is just me making my life easier.
- The property manipulations in the modding framework are still available, except for $plus and $minus, which I’ve removed because the kind of things that could be done with them were likely to cause problems. I kept confusing $extends (which adds items to a collection) and extend (which inherits properties from an existing entity) so I’ve also renamed $extends to $add.
There are a lot more changes coming, but the ones above should, I hope, be all the breaking changes.
Have fun with this lot. My whole approach now is to make the Cultist code a bit more general-purpose. ngl, this is primarily for our own benefit – the more we can reuse it for BOOK OF HOURS, the better – but if we can reuse the same content framework for two very, very different games, then the most ambitious amongst you should be able to go properly wild with it. Welcome to the House without Walls.