Search...Search plugins and themes...
⌘K
Sign in
  • Get started
  • Download
  • Pricing
  • Enterprise
  • Account
  • Obsidian
  • Overview
  • Sync
  • Publish
  • Canvas
  • Mobile
  • Web Clipper
  • CLI
  • Learn
  • Help
  • Developers
  • Changelog
  • About
  • Roadmap
  • Blog
  • Resources
  • System status
  • License overview
  • Terms of service
  • Privacy policy
  • Security
  • Community
  • Plugins
  • Themes
  • Discord
  • Forum / 中文论坛
  • Merch store
  • Brand guidelines
Follow us
DiscordTwitterBlueskyThreadsMastodonYouTubeGitHub
© 2026 Obsidian

TTRPG Sheet Kit

Antonio PorcelliAntonio Porcelli111 downloads

Interactive counters, checkbox tracks and multi-column layouts for tabletop RPG character sheets, saved as plain text in your notes.

Add to Obsidian
  • Overview
  • Scorecard
  • Updates3

Leggi in italiano

Keep your tabletop RPG character sheet in Obsidian and update it with a click.

TTRPG Sheet Kit turns small YAML blocks into counters with −/+ buttons and checkbox tracks, and adds a columns callout to lay out the rest of the sheet. Every click writes the new value back to the note as plain text, so your sheet stays readable, searchable and synced like any other note.

It is system-agnostic: D&D, Fate, Pathfinder, Blades in the Dark, or your own homebrew.

A character sheet with counters, checkbox tracks and a spell list in columns

See the before and after comparison below.

Features

  • Counters with −/+ buttons, optional minimum and maximum, custom step (Shift+click = ×5).
  • Checkbox tracks for stress, spell slots, daily uses, inventory slots.
  • Vertical or horizontal layout, with optional D&D ability modifiers (14 → +2).
  • Groups: several titled groups in one block.
  • Columns callout to put lists and text (even embedded notes) in two or three columns.
  • Insert commands: pick a ready-made block from the command palette or the right-click menu, no syntax to remember.
  • Works in Reading view and Live Preview, on desktop and mobile.
  • Type a value directly: 25, +8 (healing), -17 (damage).
  • Resets for rests, sessions or days: one command brings every counter back to its starting point.
  • Undo the last change, a whole reset included.
  • Changes only the number that changed: your formatting and YAML comments are kept.
  • Interface in English and Italian (follows Obsidian's language).

Installation

From Community plugins (once published): Settings → Community plugins → Browse → search "TTRPG Sheet Kit".

With BRAT: add progressify/ttrpg-sheet-kit in the BRAT plugin.

Manually: download main.js, manifest.json and styles.css from the latest release into <vault>/.obsidian/plugins/ttrpg-sheet-kit/, then enable the plugin in Settings → Community plugins.

Quick start

  1. Open a note and run TTRPG Sheet Kit: Insert block… from the command palette (Cmd/Ctrl+P), or right-click in the editor and choose Insert TTRPG Sheet Kit block….
  2. Pick a template, for example D&D ability scores.
  3. Click −/+ to change the values.

Every template also has its own command (TTRPG Sheet Kit: Insert: …) that you can bind to a hotkey in Settings → Hotkeys.

Counters

Short form

```ttrpgsk-counters
gold: 7
arrows: 18
fate_points: 2/3        # value/maximum
```

Long form

```ttrpgsk-counters
platinum_old: { label: "Platinum (old empire)", value: 6 }
hp:
  label: Hit points
  value: 24
  max: 30
stress: { type: track, max: 3, value: 1 }
```
Field Meaning Default
label displayed name (name works too) the key
value current value, also as 2/3 0
max maximum none
min minimum (null = no minimum) 0
step change per click (Shift+click = × 5) 1
type number, or track for checkboxes (requires max) number
mod show the D&D modifier, e.g. 14 → (+2) false
reset { on: <moment>, to: max | min | <number> }, see Resets none

In a track, clicking a box fills the track up to that box; clicking the last filled box empties it.

Typing a value

Click the number of a counter to type a value, then press Enter (Esc or clicking away cancels):

You type Result
25 the value becomes 25
+8 adds 8 (healing)
-17 subtracts 17 (damage)
=-2 sets a negative value (needs min: null)

Minimum and maximum are always respected. Anything else is refused and the field turns red.

Resets

Give a counter a reset to bring it back to a starting point at the end of a rest, a session, a day…

```ttrpgsk-counters
hp:     { value: 37, max: 44, reset: { on: long, to: max } }
slot_1: { type: track, max: 4, value: 3, reset: { on: long, to: min } }
second_wind: { type: track, max: 1, value: 1, reset: { on: short, to: min } }
fate:   { value: 1, reset: { on: session, to: 3 } }
```
  • on is the moment, any name you like: short, long, session, day… long also resets what resets on short.
  • to is where the value goes back: max, min or a number. Both fields are required; if one is missing, a warning appears under the counter.
  • Counters with a reset show a small ↺ next to their name (hover it to see when and where it resets).

Run TTRPG Sheet Kit: Reset… from the command palette and pick the moment: every counter of the open note with that reset goes back to its starting point at once. The command only appears in notes that use reset. A notice lists what changed, with an Undo button.

Undo

TTRPG Sheet Kit: Undo last change puts back the last change made by the plugin in the open note: a click, a typed value or a whole reset. You can assign it a hotkey. It won't overwrite values you changed by hand in the meantime. The history lives in memory and is cleared when Obsidian closes.

Block options

Option Values
label block title
layout vertical (default) or horizontal
mod true to show the modifier on every counter

label, name, layout and mod are reserved: don't use them as counter names.

```ttrpgsk-counters
layout: horizontal
mod: true
STR: 10
DEX: 14
CON: 12
INT: 8
WIS: 13
CHA: 16
```

In the horizontal layout, counters wrap onto a new row when the page is too narrow.

Several groups in one block

Each group has its own options and its counters under items:.

```ttrpgsk-counters
coins:
  label: Coins
  layout: horizontal
  items:
    platinum: 0
    gold: 12
    silver: 30
abilities:
  label: Abilities
  mod: true
  items:
    str: { label: STR, value: 10 }
    int:
      label: INTELLIGENCE
      value: 13
```

Columns callout

Put any Markdown (lists, text, links, ttrpgsk-counters blocks) in columns:

> [!ttrpgsk-columns] Spells
> - Fireball
> - Magic missile
> - Shield
> - Invisibility
  • > [!ttrpgsk-columns|3] three columns
  • > [!ttrpgsk-columns|plain] no border or title
  • > [!ttrpgsk-columns|3 plain] both

It also works with an embedded note, whose content is split across the columns:

> [!ttrpgsk-columns|plain]
> ![[spells]]

On phones the callout falls back to a single column.

Example sheet

The examples folder contains a complete D&D 5e character, Elara Thornwood, that uses every feature of the plugin: ability scores with modifiers, hit points with a maximum, death saves and spell slots as tracks, grouped coins and ammunition, negative values, and an embedded spell list in columns. Copy it into your vault together with Elara Thornwood - Spells to try it.

The same sheet written in plain Markdown, without the plugin, is in Elara Thornwood (without plugin).

Before and after

Same character, same data, same theme and window width.

Plain Markdown With TTRPG Sheet Kit
Header and ability scores in plain Markdown Header in two columns and ability scores with −/+ buttons
Health and spellcasting in plain Markdown
Health and spellcasting in plain Markdown
Hit points, death saves, spell slots and spell list with the plugin
Features and coins in plain Markdown Features in two columns and uses as checkbox tracks
Equipment and progress in plain Markdown Coins, ammunition, items in three columns and progress counters

Generate sheets with AI

llms.txt is a compact reference written for AI assistants (ChatGPT, Claude, …). Paste it, or its link, into a conversation and ask for a character sheet: the assistant will write Markdown that works with TTRPG Sheet Kit.

Good to know

  • Values live inside the ttrpgsk-counters block in your note, not in a database: you can edit them by hand at any time.
  • To edit a block's YAML in Live Preview, hover it and click the </> button in the top-right corner.
  • If two devices edit the same counter at the same time, your sync service resolves it like any other text change.

Feedback and feature requests

I'd love to hear how you use TTRPG Sheet Kit at your table.

  • Missing a feature? Need something for your game system, a new layout, a new kind of tracker? Open a feature request.
  • Found a bug? Open an issue with a copy of the block that misbehaves and, if you can, a screenshot.
  • Just want to share feedback on the current features, good or bad? Leave some feedback: every comment helps decide what to improve next.

Development

The plugin is plain JavaScript with no build step. See CONTRIBUTING.md for setup, conventions and pull requests.

npm test

To release: bump version in manifest.json, package.json and versions.json, then push a tag with the same version (e.g. 0.2.0, no v). The GitHub workflow runs the tests and creates a draft release with main.js, manifest.json and styles.css.

License

MIT © Progressify

HealthExcellent
ReviewSatisfactory
About
Keep your tabletop RPG character sheet in Obsidian and update values with clickable +/- counters and checkbox tracks. Turn small YAML blocks into editable, plain-text counters and tracks that write changes back to the note, and arrange lists or embedded notes with a two- or three-column callout for any game system.
TTRPGEditing
Details
Current version
0.2.0
Last updated
2 days ago
Created
Last week
Updates
3 releases
Downloads
111
Compatible with
Obsidian 1.4.0+
Platforms
Desktop, Mobile
License
MIT
Report bugRequest featureReport plugin
Sponsor
PayPal
Buy Me a Coffee
Author
Antonio PorcelliAntonio Porcelliprogressify
progressify.dev
GitHubprogressify
progressify
t.me
tiktok.com
antonio-porcelli-progressify
  1. Community
  2. Plugins
  3. TTRPG
  4. TTRPG Sheet Kit

Related plugins

LanguageTool Integration

Advanced grammar and spell checking, powered by LanguageTool.

Text Format

Format selected text upper/lower/capitalize.

Meta Bind

Make your notes interactive with inline input fields, metadata displays, and buttons.

Thino

Quickly capture memos and display them in the sidebar with a heatmap. (Closed source)

Advanced Tables

Improved table navigation, formatting, and manipulation.

Simplified Chinese Word Splitting

Adds Simplified Chinese word splitting support for the editor and Vim mode.

Editing Toolbar

The Editing Toolbar is modified from cMenu, which provides more powerful customization settings and has many built-in editing commands to be a MS Word-like toolbar editing experience.

Underline

Add underline with shortcut.

Force note view mode

Force the view mode for a note by using frontmatter: YAML block with 'obsidian_ui_mode' as key.

TTRPG Tools - Maps

A toolbox for interactive fantasy maps.