Skip to content

Dice

Main type

Example dice
dice:
  - id: "example_dice" # required
    display_name: "Dice" # required
    tags: ["example_tag"] # optional
    lore_text: "this is a dice" # required
    mechanical_text: "this dice does stuff" # required
    cooldown: 2 # required. static integer. should be modified using scaling nodes.
    base_copies: 0 # required. static integer. should be modified using scaling nodes.
    faces: # required. the base faces the dice has.
      - [fist, fist]
      - [blank]
      - [fist]
    scaling: # required. list of dice scaling nodes (examples below)
      - condition: "q:strength > 2" # works the same way as action conditions. can also do {:taking_action, action_id} which will be true when they're taking that action when choosing dice to roll and rolling for that action, etc.
        modification: [:add_face, [fist, fist, fist]]

always_roll

the key always_roll can be put under actions to make a dice always roll for it. it can have a number or :max, to always roll all of that dice that they have. if the number is higher than the amount of the dice that they have, it will only roll the amount they actually have. also, the tag action_only can be added to dice to make them only available if they're manually enabled by an action, by using always_roll or enable_dice.

example
- id: "saltedslabsossifields/backtrack"
  display_name: "Backtrack"
  condition: :none
  description: "You'll be faster and/or safer on the way back, but you won't learn much."
  cost: [:gain, :quality, exhaustion, 5]
  always_roll:
    bonydie: :max
    example_dice_2: 3
  enable_dice:
    - example_dice

Scaling nodes

Modifications

Modifications can be placed under the modification section of a scaling node. It can be a list of modifications or just one.

Modifying properties

Changing the cooldown
[:modify_property, :cooldown, q:strength + 1] # using an expression

[:modify_property, :cooldown, 2] # using a number
Gaining/losing copies
[:modify_property, :copies, q:strength + 1]

Adding / Removing faces

Add a face
[:add_face, [fist, blank]]
Remove a face
[:remove_face, [fist, blank]] # remove the first face that is the exact same as this (does nothing if there isn't one).

Repeating a modification

repeating based on expressions
repeat:
  - enable: "q:strength >= 2" # whether to enable repeating. an expression.
    times: "q:strength" # how many times the operation should be repeated, if it is enabled.
    modification: # a list of dice modifications or a single one.
      - [:add_face, [fist, fist]]
repeating on an interval
repeat_interval:
  - expression: "q:strength" # what value to base this repeat_interval block on
    start: 10 # start applying the modification at 10 strength
    interval: 3 # apply the modification another time for every 3 strength they have past 10
    modification: # a list of dice modifications or a single one
      - [:add_face, [fist, fist]]

(this can be used as a face modification too)

This example will do nothing until they reach 2 strength, then add a [fist, fist] face for every 2 strength they have. If they have exactly 2 strength, it will repeat twice and add two [face, face] faces.

Modifying individual faces

Modifying a face example
modify_face:
  target: # a list of face target selectors or a single one (examples below).
    - [:least_symbols, fist]
  modification: # list of face modifications or a single one (examples below).
    - [:add_symbols, [fist]]
  limit: 3 # optional, the limit of faces that should be modified. defaults to 1. can also be :none, which will modify all faces that match the target selectors. modifies the first n faces in the list.

The list of target selectors will be run through, one by one, to narrow down the list of faces that will be modified. Then for each of those faces, all of the modifications will be done in order.

Target selectors
Least of a specific symbol
[:least_symbols, fist]
Least unique symbols (each symbol type is counted once)
[:least_symbols, :unique]
Least of any symbols
[:least_symbols, :any]
Most of a specific symbol
[:most_symbols, fist]
Most unique symbols (each symbol type is counted once)
[:most_symbols, :unique]
Most of any symbols
[:most_symbols, :any]
Has all of these symbols
[:has_symbols, [fist, fist, circle]] # has at least 2 fist symbols and 1 circle symbol
Has exactly these symbols and no more or less
[:matches_symbols, [fist, fist, circle]]
Individual face modifications
Add symbols
[:add_symbols, [fist, fist]]
Remove symbols
[:remove_symbols, [fist, fist]] # removes up to two fist symbols (if the face has them)
Set symbols to be exactly these
[:set_symbols, [fist, fist]] # overrides the current symbols to be exactly these ones