Cairn Companion

by Nax
5
4
3
2
1
Score: 50/100

Description

Obsidian plugin for Cairn 2e campaign management

Reviews

No reviews yet.

Stats

0
stars
downloads
0
forks
1
days
1
days
1
days
0
total PRs
0
open PRs
0
closed PRs
0
merged PRs
0
total issues
0
open issues
0
closed issues
19
commits

README file from

Github

Cairn Companion (Obsidian)

An unofficial plugin for running Cairn 2e campaigns in Obsidian.

Ships with the SRD catalog (text under CC BY-SA 4.0 by Yochai Gal, cairnrpg.com): 300 objects (weapons, armor, market items, background items, relics, etc), 8 spells, all 85 monsters from the bestiary of the Guardian's Guide, 20 backgrounds, 12 hirelings, 20 Bonds, and 20 Omens, all in Spanish. Extend that catalog with your own notes anywhere in the vault.

Interactive character sheet (with instant updates), automatic mentions with hover previews, dice rolling (with support for the Dice Roller community plugin if installed), and quick tools for the Guardian.

Table of contents

Installation

Copy the dist/cairn-companion folder (inside this package) to YourVault/.obsidian/plugins/cairn-companion/.

Then, in Obsidian: Settings → Community plugins → enable "Cairn Companion".

Want to modify the plugin or build it yourself? Check DEVELOPMENT.md

Notes Embed

You can embed any content using the cairn code block. All blocks require a type and name property:

```cairn
type: object
name: "Long sword"
```

type accepts: object, skill, spell, npc, monster, background, hireling, bond, omen and character. Plus the special tools (see Guardian tools).

While you type inside the block, both fields autocomplete to ease your experience.

Any extra field inside the block, besides type and name, is parsed as YAML and shown as "Session notes" without modifying the original entry:

```cairn
type: npc
name: "Aldric the Merchant"
behavior: Friendly
notes: Lost his caravan in the Vado ambush
```

If the block can't find the entry, a button appears to create it. If type or name is missing, or the type doesn't exist, it shows a warning with the expected format instead of failing silently.

Commands

The plugin offers commands for extra ease of usage. Use the Ctrl/Cmd+P command palette.

  • "Insertar referencia de Cairn" ("Insert Cairn reference"): pick a type, then search by name across everything indexed, and the full block is inserted at the cursor.

  • There's a command "Nuevo objeto", "Nuevo PNJ", "Nuevo monstruo", "Nuevo hechizo", "Nuevo trasfondo", "Nuevo seguidor", "Nuevo vínculo", "Nuevo presagio", "Nuevo rasgo o habilidad", and "Nueva ficha de personaje". Each one asks for a name and creates the note in your default folder (Settings → "Default folder"), with:

Create examples

Sometimes is easier to see how it works that to read this guide. For that go to the plugin settings and click "Create custom examples".

It will generate one sample note per type, plus an already-filled-in character sheet and a note showing every block in action. These are always created in the fixed cairn-examples/ folder, regardless of your "default folder" — so they're easy to delete all at once when you don't need them anymore.

Notes location

Notes are loaded into the index regardless of where they are placed in the vault. Type detection is always based on the cairn_type frontmatter property.

Organize your vault however you like.

Your custom entries override the default provided ones by the plugin. Duplicated entries may override each other without a guaranteed order.

The "default folder" is a location to place the plugin created entries but doesn't restrict anything else.

Expected frontmatter per type

Type Fields
object damage, armor, cost, slot, quality (list), uses, recharge
skill category
spell cost
npc role, location, fue, des, vol, pg, armor, attitude
monster fue, des, vol, pg, armor, attacks (list), moral, abilities (list)
background gear (list)
hireling cost (per day), role
bond (description only)
omen (description only)
character see Character sheet below

The body of your own note (everything after the frontmatter) is used as the description and rendered as normal markdown inside the card.

Automatic mentions in text

If you type the name of a catalog entry inside a normal sentence:

Under the three there was a  "Gosthly light".

Hovering over it in reading view mode shows a floating summary card; clicking it opens the note if the entry has one, or a full preview with the same buttons as the block if it's a built-in entry.

By default only words with 6+ characters are used but is configurable. It can also be disabled with the option "Automatically detect mentions"

Character sheet

Provides two views, the full one by default and a small using mode:small. Interactable sheet that store it's state on the character sheet.

Allows to remove characteristings, PG, track money and make notes. Roll weapon attacks, saving throws. Automatically provides a scar if PG hits 0. Manage the inventory space and insignificant objects.

Dice

Any value with dice notation has a 🎲 button next to it (an object's damage, a monster's attacks, a background's "3d6 gold", a character sheet's Saving Throws, etc...). Objects show an advantage roll button () or disadvantage ()

Uses Dice Roller (obsidian-dice-roller) if installed or a less sophisticated custom implementation if not.

Guardian tools

These are GM tools to help during a session.

It can be invoked through a command using the "Herramientas del Guardián (Destino, Reacción, Clima, Eventos)" ("Guardian tools: Fate, Reaction, Weather, Events").

Or embeded in a note (this is the only type that doesn't require a name)

```cairn
type: tools
```

It provides the following helpers:

  • Dado del Destino ("Fate Die") (1d6)
  • Reacción de PNJ ("NPC Reaction") (2d6 → Hostile / Cautious / Curious / Friendly / Helpful)
  • Clima ("Weather"), by season (Spring / Summer / Fall / Winter)
  • Eventos en la Mazmorra ("Dungeon Events") and Eventos en Entornos Salvajes ("Wilderness Events") (1d6)

For inspirationm a "Entrada aleatoria" ("Random entry") command is also provided. Pick a type and it shows you a random entry from that catalog (built-in and customs).

The entry can be re-rolled (🎲) or inserted into the current note (📋)

Troubleshooting

I can't find my notes / it can't find an entry I know exists. Check that the note has cairn_type: <type> in its frontmatter — being in a specific folder isn't enough, detection is only based on that property. If you just created or edited the note, try the "Reindex" command; automatic reindexing has a small delay (~0.5s) after each change.

I changed something in Settings → Language and don't see the new catalog. Click "Reload built-in data" right below the language dropdown — the catalog is cached in memory and only re-read on Obsidian startup or when you change language from that dropdown itself (if you changed it another way, use that button).

A cairn block shows a warning instead of the card. It's missing type or name, or type isn't one of the valid ones — the warning itself tells you what's wrong.

Character sheet buttons don't do anything / take a while to show up. Make sure you're in reading view, not edit/Live Preview mode — the buttons are interactive HTML that only renders when reading the note, not while editing it as plain text.

Updating the plugin

If you installed it by copying the folder by hand (not from Obsidian's Community Plugins list, since it isn't published there yet): download the new version, replace the contents of YourVault/.obsidian/plugins/cairn-companion/ with the new dist/cairn-companion folder, and restart Obsidian or disable/re-enable the plugin. Your notes aren't affected — the built-in catalog and the code are independent of whatever you've written.

License

The plugin's code is MIT — see LICENSE.

That covers everything except data/*/*.json, the bundled Cairn 2e catalog data, which is a structured transcription of Yochai Gal's SRD (cairnrpg.com) and, for the Spanish files, "La esquina del rol"'s translation (es.cairnrpg.com). Both are CC-BY-SA 4.0, not MIT — see data/LICENSE. If you modify or redistribute the data files, it's under CC-BY-SA 4.0, not the MIT terms above.