Cypher Sheets

unlisted

by Oscillate Labs

Render Cypher System v2 character notes (YAML frontmatter) as printable one-page character sheets, and export them to PDF.

1 starsUpdated 9d agoMIT
View on GitHub

Cypher Sheets — Obsidian plugin

Status: Proof of Concept

Render a Cypher System (Second Edition / C2) character — written as a ```cypher YAML block in a note — as a printable one-page character sheet inside Obsidian, and export it to PDF.

Write a character's stats as plain YAML; flip the note to Reading view (Cmd+E) and the block renders as a styled sheet you can hand to a player or print.

Cypher System Second Edition (C2) only. The sheet layout follows the C2 rules (descriptor/type/focus, the C2 wound track, etc.). There is no support for Cypher System First Edition (v1) — the data model and sheet are C2-specific and won't represent a v1 character correctly.

Scope: Tier 1 characters; no validation, no calculation. The data is rendered exactly as written — pools, edges, wounds, skills, and abilities are author-supplied. This is an early proof of concept.

Install

This plugin is not (yet) in the Obsidian community store, so install it manually:

  1. Download manifest.json and main.js from the latest release, or build them yourself (see below).
  2. Copy both files into your vault at <vault>/.obsidian/plugins/cypher-sheets/.
  3. Reload Obsidian (Command palette → Reload app without saving) so it scans the new plugin.
  4. Enable Cypher Sheets in Settings → Community plugins.

Build from source

npm install
npm run build      # produces main.js

npm run dev runs an esbuild watch for live iteration. Desktop only — PDF export uses Electron, which isn't available on Obsidian mobile.

Use

  1. Command palette → Cypher Sheets: New blank Cypher character creates a note pre-filled with a ```cypher skeleton — the fastest way to start. (Or add a ```cypher block to any note yourself.)
  2. Edit the YAML in the block. In Reading view (toggle with Cmd+E) the block renders in place as the sheet. To edit the raw YAML, use Source mode (the menu → "Source mode") — Live Preview renders the block, so Source mode gives you the plain text.
  3. Run Cypher Sheets: Export character sheet to PDF to write <note name>.pdf next to the note.
  4. Cypher Sheets: Show character sheet (preview) (or the ribbon scroll icon) pins the sheet in the right sidebar beside the editor.

Authoring format

The character lives in a fenced ```cypher block in the note body — so the data stays plain, always-editable YAML (Obsidian's Properties panel can't edit lists of objects, which is why this isn't frontmatter).

# Bobby Reyes

```cypher
name: Bobby Reyes
sentence: "I am an Empathic Psion who Consorts with the Dead."
descriptor: Empathic
type: Psion
focus: Consorts with the Dead
tier: 1
effort: 1
cypher_limit: 2
might:     { pool: 8,  edge: 0 }
speed:     { pool: 10, edge: 0 }
intellect: { pool: 18, edge: 1 }
wounds:    { minor: 5, moderate: 4, major: 3 }
defend: "Block = Might defense · Dodge = Speed defense, negate."
armor: "None."
skills:
  - Charm (trained)               # Name (level)
  - Intellect defense (inability)
abilities:
  - name: Mind Reading
    cost: "2 Int"                 # omit cost for passive abilities
    text: "Read a visible creature's surface thoughts in short range."
attacks:
  - { name: "Force ray", modifier: "—", damage: "4" }
cyphers: 2                        # number of blank GM-fill cypher slots
gear: [extendable baton, phone]
advancement: [capabilities, effort]   # bought so far this tier
background: "A self-taught medium the dead talk to."
```

Field notes

  • Stat pools accept 8 shorthand or { pool: 8, edge: 1 } (edge defaults 0).
  • Skills use the Name (level) form, where level is trained, specialized, expert, or inability. (The verbose { name, level } form also works.)
  • Abilities / attacks are lists of objects — edit them in the YAML block.
  • Advancement renders the tier-tracking footer. Each of the four options costs 4 XP and may be bought once per tier in any order; buying all four moves the character to the next tier (and grants a focus ability free). other covers the alternate advancements in the Cypher GM's Guide. Omit the field to print an empty footer for pen-and-paper tracking, or use the map form (advancement: { effort: true }) if you prefer explicit flags. Reset it when you reach a new tier.
  • Notes and inventory write-in lines are added automatically to fill the sheet; their count adapts to the character's content.

Commands

CommandWhat it does
New blank Cypher characterCreates a note seeded with a cypher skeleton
Show character sheet (preview)Pins the sheet in the right sidebar
Export character sheet to PDFWrites <note name>.pdf next to the note

Note on metadata queries

Because the data lives in a code block rather than frontmatter, it is not indexed by Obsidian's metadata cache — Dataview and property search won't see might: etc. That's intentional (it's what makes the YAML freely editable); for printable handout sheets it doesn't matter. If you need vault-wide character queries, add a small cypher: true frontmatter flag alongside the block.

License & attribution

Released under the MIT License (see LICENSE).

This is an unofficial fan-made tool for the Cypher System Second Edition. The Cypher System is a trademark of Monte Cook Games, LLC. This project is not affiliated with, endorsed, or sponsored by Monte Cook Games. No game rules text is distributed — you supply your own character data.

For plugin developers

Search results and similarity scores are powered by semantic analysis of your plugin's README. If your plugin isn't appearing for searches you'd expect, try updating your README to clearly describe your plugin's purpose, features, and use cases.