Cultist Simulator

Cultist Simulator

Shelves
Showing 11-20 of 40 entries
< 1  2  3  4 >
Update: 11 Apr, 2023 @ 2:24am

update at: 04/11/2023 11:24:48

Update: 11 Apr, 2023 @ 2:13am

update at: 04/11/2023 11:13:26

Update: 7 Apr, 2023 @ 3:21am

update at: 04/07/2023 12:21:32

Update: 5 Apr, 2023 @ 10:34am

update at: 04/05/2023 19:34:23

Update: 17 Dec, 2022 @ 11:52am

update at: 12/17/2022 20:52:25

Update: 16 Dec, 2022 @ 1:01am

It is a DLL mod. It REQUIRES you to subscribe to the security mod GHIRBI and enable it BEFORE enabling any DLL mod. You can check if a mod is a DLL mod in the main's menu mod list, there is a mention under its icon.

Any feedback that doesn't confirm that they have GHIRBI subscribed to and enabled will be ignored (and possibly deleted). I cannot follow up on all the feedback from all the mods if the proper informations aren't provided (or if you didn't read the very workshop page)


Shelves

"These are not books, lumps of lifeless paper, but minds alive on the shelves."

- Gilbert Highet

Adds Shelves to organise your cards automatically.

Requires The Roost Machine to be subscribed to, enabled, before it in the loading order, and to restart the game once. Due to having Roost Machine as a dependency, this mod is only supported on the gateofhorn beta branch!

What it does
  • The mod defines a new type of objects, "shelves", and provides three example shelves: stats, commissions and tools.
  • When in game, open the Settings and go in the Shelves tab. Here, you can enable or remove shelves. Other mods can define new shelves, that will appear here.
  • now each time you will click the Stack button or hit the key shortcut (TAB by default), after stacking the cards, the game will try to move all the matching cards to the shelves.

A Few Things To Know (FAQ)
  • Q: Will my exhausted cards automatically move to the non-exhausted slots when they regenerate?
    No. Use the stacking action after they've regenerated to make them move to the proper position on the shelf.

  • Q: Can you add new built-in shelves?
    I could, if you can think of a cool idea of shelf to make! But other mods exist, providing dozens of unique shelves. This one is mainly aimed at providing the feature, not a full library of shelves for all your needs.

  • Q: How can I destroy a shelf I created by mistake?
    Open the Settings, go into the Shelves tab, and disable the shelf. It will be removed from the board.

  • Q: I have very specific habits. Can I make my own shelves?
    Yes you can, and I will explain it in the next section!

I Have Habits: How to make custom shelves
This section is mainly for modders, so I will assume you know how to make an empty new mod. If you don't, there is documentation to do that on the cultist simulator community server (but it's quite simple, no knowledge required). If you want to create your own shelves for personal use, just create a local mod for you. This section is also how modders of other mods can make shelves, if they think a custom one could be useful based on the new cards and mechanics their work introduces.

You can now define a new type of file, "shelves". Create one, and in it, for each new shelf you want to define, write a new object following this structure:
{ "id": "tools", "name": "Tools", "category": "tools", "rows": 1, "columns": 8, "expression": "tool", "rootCache": [ {"maxtoolheartamount": "[~/tabletop:tool:max/heart]"} ], "priority": 2, "background": "toolsshelf_bg", "style": "aligncenter", "areas": [ { "columns": 8, "expression": "[tool] && [root/maxtoolheartamount]" ... } ] }
  • id: unique id for your shelf
  • name: readable name, will be displayed in the settings (keep it very short)
  • category: optional. A value in the given list: tools, abilities, lore, influences, texts, vaults, followers, rites, influences, jobs, ways, reputation, ingredients, apostles, dancer, exile, ghoul, priest. If no category is provided or it isn't in this list, the shelf will be displayed in the "other" category.
  • rows: how many rows for the entire shelf. Optional, default value = 1
  • columns: how many columns for the entire shelf. Optional, default value = 1
  • expression: Optional. An expression describing what to move in the shelf. More on that below
  • rootCache: Optional. A list of objects, each declaring values to pre-compute before activating the areas of each shelf. Can be used to ask the game to pre-compute costly values used in several shelves. Objects in the list can define computed values relying on values computed in previous objects of the list. Shelves and area expressions can use these computed values by accessing them via root/computedvaluename. They are recomputed with each new stack action and are cleared before each new shelf activation. This feature was introduced to enable more complex shelves to be written without introducing too much of a performance hit by recomputing the same value several times. Computed values cannot store expressions to use as "sub-expressions", only integers.
  • priority: Optional, default value is 2. Ranges from 0 (lowest) to 4 (highest), higher priority shelves are called first to grab cards.
  • background: Optional. An image to display as a background
  • style: Optional. Default value = "aligncenter". Can be "stretch", "aligncenter", or "repeat"
  • areas: a list of areas for your shelf. It is an array of objects, each with the properties rows (=1 by default), columns (=1 by default), x (horizontal position, 1 by default), y (vertical position, 1 by default), background (optional), style ("aligncenter" by default), and expression.

How Things Work
You need to set areas for the shelf to work at all. The shelf is just a collection of areas you can move together. Each areas has an expression and will move cards in its zone, if there is room available and it also matches the expression property of the shelf, if any is defined. This is why the tools shelf, displayed here as an example, has one area of the size of the entire shelf. It doesn't define any expression because the shelf expression is good enough. Use the shelf expression property to restrict the set of cards potentially movable inside it, so you can write shorter expressions for the areas.

The expression syntax is simple for simple things. Quick cheatsheet:
  • element:
    [elementa] : any card with this id or this aspect on it
  • element a OR element B:
    [elementa] || [elementb]
  • element a AND element B:
    [elementa] && [elementb]
  • element a of quantity at least 3, AND element B:
    [elementa] >= 3 && [elementb]
  • Parenthesis are authorized to enforce priority. Square brackets are mandatory around a reference to an element id of the game.

For more informations about it, check the Roost Machine's documentation on its workshop page or on the fan community discord server (channel #modding).

Note: you can't define "half rows" or any kind of overlap yet. I'm working on that, no promises yet though.

Update: 25 Nov, 2022 @ 10:40am

Well, it's definitely lost. Screw this, won't bother writing one again.

Update: 25 Nov, 2022 @ 10:39am

Trying to get back the description I just lost.

Update: 25 Nov, 2022 @ 10:34am

update at: 11/25/2022 19:34:30

Update: 8 Nov, 2022 @ 10:37am

update at: 11/08/2022 19:37:36