Skip to content

Experiences

The experiences component is used to list personal experiences that players can invoke for bonuses. Each experience is a short story hook plus an optional modifier (like +2) that players can apply when it meaningfully impacts a roll.

You can use it for:

• Character backstory moments that grant bonuses.
• Session‑earned experiences and scars.
• GM‑granted flags that invite specific kinds of play.

Each experience row shows:

• A name (or short title).
• A note describing what happened or how it matters.
• A bonus value (like +2) to apply when used.
• A helper line reminding players how to use experiences at the table.

The block intentionally does not encode which rolls an experience applies to; that stays a conversation between player and GM.

Example – Experiences list

Experiences block rendering example

yaml
```experiences
styleClass:
items:
  - name: "Storm-Born"
    note: "You survived a violent storm as a child; since then, thunder and wind answer your emotions."
    bonus: +2

  - name: "Whispers of the Wild"
    note: "Spirits of stone, root, and river sometimes speak in the edge of your hearing, guiding your steps."
    bonus: +2
```

When rendered:

  • Each entry becomes a row with the name, note, and a +2 (or similar) badge.
  • A helper text at the bottom explains: spend 1 Hope and add the listed bonus when you and the GM agree an experience is relevant.

Example – Single experience at root

For a quick one‑off experience, you can omit items and define a single item at the root:

yaml
```experiences
styleClass:
name: "Storm-Born"
note: "You survived a violent storm as a child; since then, thunder and wind answer your emotions."
bonus: +2
```

Example – Map style items

You can also define experiences as a map instead of a list:

yaml
```experiences
styleClass:
items:
  river:
    name: "Storm-Born"
    note: "You survived a violent storm as a child; since then, thunder and wind answer your emotions."
    bonus: +2

  void:
    name: "Whispers of the Wild"
    note: "Spirits of stone, root, and river sometimes speak in the edge of your hearing, guiding your steps."
    bonus: +2
```

Functionally this is the same as the list version; the keys (river, void) are just for organizing your YAML.

Configuration

Top‑level experiences block options:

PropertyTypeDefaultDescription
styleClassStringnoneOptional CSS class applied to the entire experiences block container (alias: class).
itemsArray or Object (map)[]List or map of experience items.
nameString (root single)"Experience"Name/title when defining a single experience at the root.
noteString (root single)""Description text for a single root experience.
bonusNumber / String+2Default block‑level bonus when defined at the top; per‑item bonus overrides this.

Experience Item

Each entry under items (in either array or map form) is an object:

PropertyTypeDescription
nameStringMain title for the experience (e.g. "Saved by the Stranger").
titleStringAlias for name; used if name is not provided.
labelStringAnother alias for name; useful when migrating older notes.
noteStringDescription text of what happened or how this experience matters.
description / summaryStringAliases for note; first non‑empty value is used.
bonusNumber / StringModifier value for this specific experience (e.g. +2 or -1). Overrides the block default.

Behavior details:

  • bonus is parsed from either a number (2, -1) or a string ("+2", "3").
  • If an item has no bonus, it uses the block‑level default (which is +2 unless overridden).
  • Text fields (name, note, etc.) are rendered as plain text, not Markdown, to keep the layout simple and consistent.

At the table, this gives players a clear, compact list of experiences and exactly what they’re worth when invoked, while keeping the role‑play and negotiation about when they apply front and center.