5e Character Sheet

Interactive fifth edition (2014 rules) character sheets that live inside your Obsidian notes.
Create a character in a few clicks, keep your friends' characters next to your campaign notes, and roll straight from the sheet.

Latest release Obsidian 1.4+ 5e 2014 rules MIT license

Character sheet: portrait, race, class and ability scores

> Unofficial fan project. Not affiliated with, endorsed, sponsored or approved by Wizards of the Coast. See [Legal](#legal). ## Highlights - **Everything in one note.** Race, class (multiclass included), background, ability scores, combat, skills, features, spells, inventory, personality and a diary, saved in the note itself. - **Rules done for you.** Racial bonuses, proficiency, saves and skills, AC, hit points, spell save DC, spell slots (single and multiclass), class features by level and a creation checklist that tells you what is still missing. - **Works with or without game data.** Manual mode for homebrew and quick notes, the SRD 5.1 built in, or import the books you own and 5etools homebrew. - **Roll from the sheet.** Click any bonus to roll; Shift-click for advantage, Ctrl/Cmd-click for disadvantage. Uses [Dice Roller](https://github.com/javalent/dice-roller) when installed. - **Linked to your notes.** Optional links and page previews to a compendium, `[[links]]` in every text field, and Initiative Tracker integration. ## A quick tour ### Choose race, class and background Searchable menus grouped by book. Hover an option to preview its compendium note before choosing.

Race menu with the compendium note preview

### Combat and skills AC, initiative and speed are calculated from your equipment, class and race, and can be adjusted with + and −. Track HP, temporary HP, exhaustion, death saves, hit dice and conditions. Skills show where each proficiency comes from; click the dot to cycle none → proficient → expertise.

Combat and skills

### Attacks and features Attacks come from your equipped weapons. Race, background and class features are filled in as you level up; expand any of them to read the full text and write your own notes on it (reminders, uses, rulings, `[[links]]`). Notes stay with the feature when you level up or re-import your data. A feature with a choice (Fighting Style, Eldritch Invocations, Pact Boon, Metamagic, maneuvers, Totem Spirit, Expertise, Favored Enemy, Draconic Ancestry…) shows its options inside it, with the text of what you picked; **Character Creation** reminds you while a pick is missing, and your picks are kept when you change level. **+ Add feature** adds any class, subclass, race or background feature from your rules data, and **+ Custom feature** one of your own (a DM boon, a homebrew tweak). On a feature you don't use, hide moves it to a **Hidden** list, where a click shows it again, and remove takes it off the sheet (pick it in **+ Add feature** to get it back).

Attacks and race and background features

Class features, feats and ability score improvements

### Spellcasting Spell save DC, spell attack, prepared and known counts, and slots per level that you can tick off or adjust. The ⓘ next to *Spell Slots* shows how many slots of each level the rules give and marks any level where the sheet differs, with a *Reset* to go back to them. Prepared spells stay at the top of the list. Spells your features grant are offered in **Character Creation**: *Add* one by name (Mage Armor from Armor of Shadows), or *Choose…* from the spells allowed (High Elf's Wizard cantrip, Magic Initiate, after picking its class's list). They are added always prepared, marked with what granted them. The same goes for natural weapons and breath weapons (in Attacks) and the uses of race traits such as Relentless Endurance (with the class resources). *Dismiss* hides a suggestion for good. If what granted an item goes (another race, an invocation swapped out), the item is flagged and Character Creation asks whether to remove it.

Spellcasting: slots and spell list

### Inventory and proficiencies Items with quantity, weight, equipped and attuned (max 3), coins, carrying capacity, and the proficiencies and languages your choices give you.

Inventory, coins, proficiencies and languages

### Personality, biography and diary Plain text when you read, a text box when you click. Type `[[` to link any note in your vault.

Personality, appearance, biography, diary and events

## All features - **Header** with portrait, name, player, alignment, race, subrace, background and classes (multiclass supported, with prerequisites checked). - **Ability scores** with Point Buy (validated), Standard Array, 4d6 rolls or manual entry; racial bonuses applied automatically; an edit mode keeps the view clean. - **Combat**: AC from equipped armour/shield (Unarmored Defense included), HP from hit dice and CON, hit dice (in manual mode, their number and die are set with the pencil next to *Hit Dice used*), death saves, inspiration, exhaustion, conditions and a Long Rest button. - **Saves and skills** with proficiency/expertise, passive scores, Jack of All Trades. - **Race, background and class features** filled in by level, with class resources (Ki, Rage, Sorcery Points…) and the choices they give (Fighting Style, Eldritch Invocations with their prerequisites, Metamagic, maneuvers, Expertise, Draconic Ancestry…). - **Feats and Ability Score Improvements** counted against the ASIs your class levels grant. - **Spellcasting**: spell save DC, spell attack, prepared/known counts, spell slots for single and multiclass casters (Pact Magic separate), slots you can add or remove (and what the rules give, under the ⓘ), and a spell list with prepared spells first. Domain/oath/circle and racial spells are added automatically; those of feats, invocations and choices are offered to add. - **Inventory and coins**, attunement (max 3), carrying capacity, attacks from equipped weapons. - **Personality, appearance, biography, diary and events**: rendered Markdown with `[[links]]`; click to edit, type `[[` to pick a note. - **Rolls**: click any bonus to roll; Shift-click = advantage, Ctrl/Cmd-click = disadvantage. Uses the [Dice Roller](https://github.com/javalent/dice-roller) plugin when it is installed, a built-in roller otherwise. - **Initiative Tracker**: the sheet keeps `name`, `level`, `hp`, `ac` and `modifier` in the note's properties, which [Initiative Tracker](https://github.com/javalent/initiative-tracker) reads for players linked to a note. > The screenshots show content imported from the books the author owns. The plugin itself ships only the SRD 5.1; see [Rules data](#rules-data). ## Requirements - Obsidian **1.4** or later. - Desktop (Windows, macOS, Linux) and mobile (Android, iOS). Mobile works but has had less testing. - Nothing else is required. The plugins and tools below are optional and add extra features. ## Installation **From Community plugins** (once the plugin is listed): *Settings → Community plugins → Browse*, search for **5e Character Sheet**, install and enable it. **Manually** (before it is listed, or to try a specific version): 1. Download `main.js`, `manifest.json` and `styles.css` from the [latest release](../../releases/latest). 2. Put them in `/.obsidian/plugins/fifth-edition-character-sheet/` (create the folder; `.obsidian` is hidden in most file browsers). 3. Restart Obsidian, or reload plugins, and enable **5e Character Sheet** in *Settings → Community plugins*. **With [BRAT](https://github.com/TfTHacker/obsidian42-brat)**: add this repository as a beta plugin. BRAT installs and updates it from the GitHub releases. ## Recommended plugins and tools (optional) | Plugin or tool | What it adds to the sheet | |---|---| | **Page preview** (core plugin, on by default) | Previews of compendium notes when hovering links and the options of the race, class, subclass and background menus. | | [Dice Roller](https://github.com/javalent/dice-roller) | Rolls go through Dice Roller (including its 3D dice and roll history, if you enable them there). Without it the sheet uses its own roller. | | [Initiative Tracker](https://github.com/javalent/initiative-tracker) | Add the character as a player linked to its note: name, level, HP, AC and initiative modifier are read from the sheet and kept in sync. | | [ttrpg-convert-cli](https://github.com/ebullient/ttrpg-convert-cli) (command-line tool) | Generates a compendium of notes from your own data. With it, races, classes, features, spells, items and conditions on the sheet link to those notes. | ## Getting started 1. Run **5e Character Sheet: New character** from the command palette or the ribbon icon, and give the character a name and a folder. 2. Choose where the rules come from in *Settings → 5e Character Sheet → Rules data* (see below). Manual mode is the default. 3. Fill in the sheet. Click the pencil on **Ability Scores** to edit scores; click any text to edit it. ### Adding a sheet to any note The sheet is a code block, so any note can hold one: ````markdown ```character-sheet-5e ``` ```` The character's data is saved in that note's properties. Put your own notes, headings and links above or below the block as usual. ### Settings The settings have five pages, and a sixth with imported data (tabs in Obsidian before 1.13): - **General** - **Characters folder**: optional. Where new characters are created. Leave it empty to use the last folder you created a character in (the vault root the first time). - **Theme**: the sheet's accent colour. *Original* keeps the plugin's red accent, *Obsidian theme* uses your theme's accent colour, and *Custom* lets you pick your own. - **Sheet template**: which sections new sheets show (all of them by default, even while empty). On a sheet, hover a section's title to hide it, and use the **Hidden sections** menu at the top to show it again. - **Rules data**: none (manual mode), SRD 5.1 or imported data (see below). For imported data it walks you through the three steps of the import. A warning on the page means the import is still to do or out of date. - **Import data** (with imported data): what was imported and from where; remove entries and change their compendium notes (see [Import data](#import-data)). - **Custom data**: your own races, subraces, classes, subclasses, backgrounds, feats, spells and items, and traits and features for the races and classes of your rules data (see [Custom data](#custom-data)). - **Compendium**: optional, only for links (see [Compendium links](#compendium-links-optional)). ### Rules data | Source | What you get | |---|---| | **None (manual mode)** — default | Everything is typed in: race, class, features, spells, AC, HP, speed, hit dice. Simple maths stays automatic: modifiers, proficiency bonus, saves, skills, passive Perception, initiative, spell DC and attack. | | **SRD 5.1 (included)** | Menus and automatic rules for the SRD 5.1 content (9 races, 12 classes with one subclass each, 319 spells, equipment). | | **Imported from 5etools** | All the content of the books you own (see below). | Switching sources never loses information: manual fields and data-driven choices are stored separately. #### Setting up 5etools data, step by step New to 5etools? This is everything you need, in order. Only for content **you are entitled to use**; the plugin does not download anything. 1. **Get the data.** 5etools keeps the content of the books as JSON files in a folder named `data` (with files such as `races.json` and `backgrounds.json`, and folders such as `class` and `spells`). You need that `data` folder from a copy of 5etools. 2. **Put it in your vault.** Copy the whole `data` folder into your vault, e.g. as `.5etools/data`. A folder whose name starts with a dot is hidden, so the hundreds of JSON files don't show up in your file list, search or graph. Obsidian on mobile can only reach files inside the vault, so keep it there on every device you use. 3. **Choose it in the settings.** Open *Settings → 5e Character Sheet → Rules data* and choose **Imported from 5etools**. Three steps appear. 4. **Find it.** Press **Detect**. It looks through your vault, hidden folders included, and lists the 5etools data folders, homebrew files and compendium folders it finds; pick what to use and press **Use these**. Or type the folder (e.g. `.5etools/data`) in **Folder with 5etools data**. 5. **Import.** Optional: **Only 2014 rules** leaves out the 2024 core books, and **Only entries with a note** imports exactly what your compendium contains. Press **Import now**. A report shows what came from the 5etools data and from each homebrew file. 6. **Done.** The races, classes, backgrounds, spells and items are in the menus of every sheet. The data is converted on your device and stored in the plugin's folder in your vault, so you can delete the copied `data` folder afterwards. Import again after you update it. Optional extras: - **Homebrew**: 5etools homebrew files go next to the data, e.g. in `.5etools/homebrew` (see [Homebrew](#homebrew)). - **Compendium notes**: [ttrpg-convert-cli](https://github.com/ebullient/ttrpg-convert-cli) turns the same 5etools data into notes for your vault, and the sheet then links to them (see [Compendium links](#compendium-links-optional)). The Obsidian TTRPG Tutorials explain it step by step, for the [command-line version](https://obsidianttrpgtutorials.com/Obsidian+TTRPG+Tutorials/Plugin+Tutorials/Community+Plugins/TTRPG-Convert-CLI/TTRPG-Convert-CLI+5e) and the [app version](https://obsidianttrpgtutorials.com/Obsidian+TTRPG+Tutorials/Plugin+Tutorials/Community+Plugins/TTRPG-Convert-CLI/TTRPG-Convert-CLI-UI). #### Homebrew The import can add homebrew in the 5etools format: the same JSON files [ttrpg-convert-cli](https://github.com/ebullient/ttrpg-convert-cli) reads, e.g. from the [5etools homebrew repository](https://github.com/TheGiddyLimit/homebrew), or your own. 1. Put the files in your vault, e.g. in `.5etools/homebrew`, next to the 5etools data folder. 2. List them under **Homebrew files**, one path per line, e.g. `.5etools/homebrew/My Book.json`, or press **Detect** and check the ones to use. Detect recognises 5etools homebrew by its `_meta` block, wherever it is in the vault, even with the whole homebrew repository there. 3. Press **Import now**. Their races, subraces, classes, subclasses (also of official classes), backgrounds, feats, spells and items are added to the 5etools data, with book names from the files. Without a 5etools data folder only the homebrew is imported (subraces and subclasses of official races and classes then have nothing to attach to). The report after the import has a row for each homebrew file with what came from it by kind. Open a file to see each of its entries, whether it was imported, and why not (e.g. *2024 edition* with **Only 2014 rules**), and which of its contents the sheet does not use (monsters, optional features…). Many books in the homebrew repository are for the DM: a campaign guide may bring backgrounds, feats, spells and items but no races or subclasses. Entries that copy others (`_copy`) work across files and the official data. Spells get their class lists from the spell or from a homebrew class's spell list, and a homebrew subclass's extra spells (`subclassSpells`) can be chosen by characters with that subclass. - A file needing another one (e.g. a class whose spells are in a separate spell book) works best with both listed; the import says when one is missing. - A file, or an entry in it, that can't be read is left out and the rest still imports. The report says what was left out (also in the developer console). - Compendium links and **Only entries with a note** also work for homebrew in a ttrpg-convert-cli compendium. - Your homebrew files stay in your vault; nothing is downloaded. #### Import data The **Import data** page shows what the imported data holds, as the report after an import does: a row for the 5etools data and one for each homebrew file, with how many races, subraces, classes, subclasses, backgrounds, feats, spells and items came from it. Open a row to list its entries; the search box and the kind menu narrow them down. For each entry: - **Compendium note**: the note it links to (click to open it), or *None*. The pencil picks another note of your compendium folder (of the whole vault without one), *No note*, or, for a note you chose, *Match by name again*. Your choice is kept when you import again, and links from the sheets and from other entries' text follow it. - **Remove**: the bin takes the entry out of the imported data (a race or class takes its subraces or subclasses along). It stays out when you import again; **Removed entries**, at the bottom, lists what you removed, and *Restore* brings an entry back with the next import. Data imported before this page existed shows everything as 5etools data until you import again. ### Custom data On the **Custom data** page you make your own entries and use them on any sheet. Press **Create an entry**, choose what to create (a race, subrace, race trait, class, subclass, class feature, background, feat, spell or item), and fill in its form. The fields depend on the kind of entry: a race's size, speeds, ability score increases, proficiencies and traits; a class's hit die, saving throws, proficiencies, spellcasting, subclass title and level, features by level (with their uses, tracked with the class resources) and table columns such as Ki Points (values by level are written as `1: 2, 5: 3, 11: 4`); a subclass's features, spells always prepared and, for a class without spells, its own spellcasting (a third caster); a spell's level, school and spell lists; a weapon's damage and properties; a feat's prerequisite and ability score increases; a background's proficiencies and feature. A subrace belongs to a race, yours or one of the rules data (a new elven subrace). A subclass belongs to a class the same way. Your races, subraces, classes and subclasses have their traits and features in their own form; a race trait or class feature entry adds one to a race or class of the SRD or imported data (a trait added to the dwarf, a feature for the Champion). Any entry but a trait can link to a note, opened from the sheet with a preview on hover. - With the SRD or imported rules data, your entries are in the sheets' menus with the rest, grouped under *Custom data* and marked *(Custom)*. Importing again doesn't touch them. - In manual mode, **From custom data…** (next to the race, subrace, background and classes, and in the features, Feats, Spellcasting and Inventory sections) fills the sheet's typed fields with an entry. - The list shows every entry, with a search box and a kind menu. The pencil edits an entry, the copy button makes a new one from it, and the bin deletes it. Renaming an entry keeps it on the sheets that use it. - Entries are kept in `.5e-character-sheet/custom-data.json` in your vault, or the file you set on the page. A folder starting with a dot is hidden from Obsidian's file list and search; note that Obsidian Sync doesn't sync hidden folders (other sync tools, such as git, do). You can edit the file by hand and press **Reload**; anything that can't be read is listed under **Problems**. ### Compendium links (optional) If you keep a compendium generated by [ttrpg-convert-cli](https://github.com/ebullient/ttrpg-convert-cli), set **Compendium folder** to the folder that contains its `compendium` and `rules` folders. Races, classes, subclasses, features, spells, items and conditions then link to those notes, with page previews on hover. With **Only entries with a note** the importer keeps exactly what your compendium contains. ## Privacy and file access - The plugin works offline: it makes no network requests and has no telemetry. - It only reads files inside your vault. - How each sheet is shown (collapsed sections, edit mode) is kept on each device with Obsidian's own per-vault storage (Obsidian 1.8.7 or later; before that only until Obsidian closes), not in your notes, so opening a section doesn't change the note. - It reads the list of files in your vault only when you ask for it: - **Portrait image**: clicking the portrait lists the images in your vault so you can choose one. - **Links in text fields**: typing `[[` lists your notes so you can choose one to link. - **Compendium links**: only the notes inside the compendium folder you set are read, to match races, classes, spells and items to their notes. - **Import data**: changing an entry's compendium note lists the notes of the compendium folder (of the whole vault when none is set) so you can choose one. - **Import**: only the 5etools folder and the homebrew files you set are read; the converted data is stored in the plugin's own folder. - **Custom data**: your entries are read from and written to one file in your vault (`.5e-character-sheet/custom-data.json` unless you set another). - **Detect** (import settings): when you press it, the folders of your vault are listed, hidden ones included (not the Obsidian settings folder, `.git`, `.trash` or `node_modules`), and every JSON file up to 20 MB is read to recognise 5etools homebrew. Nothing is saved until you choose what to use. ## Notes and limitations - Character data is stored in the note's frontmatter (`dnd` property, hidden from the Properties panel). Links written inside the sheet work and preview, but Obsidian does not count them as backlinks. - Spell lists, class tables and features come from the data source; homebrew content can be imported in the 5etools format (see [Homebrew](#homebrew)) or added in manual mode. - Optional class features from Tasha's Cauldron are shown and marked as optional rather than chosen individually. ## Development ```bash npm install npm run data:srd # rebuilds data/srd-5.1.json from a 5etools data folder (FIVETOOLS_DATA) npm test # rules engine (on the SRD data), importer, SRD and manual-mode tests npm run typecheck # tsc over src, test and scripts npm run lint # eslint: the Obsidian review rules for src, plus test and scripts npm run build # bundles dist/main.js, manifest.json, styles.css ``` `data/imported.json`, `vendor/` and `local.config.json` are personal and git-ignored. For `npm run data:import`, `npm run install-vault` and the few tests that use personal data (entries the SRD leaves out, compendium links), set `VAULT` and `COMPENDIUM` as environment variables or in `local.config.json`: ```json { "vault": "../My Vault", "compendium": "Resources/Compendium" } ``` ## Legal This work includes material taken from the System Reference Document 5.1 ("SRD 5.1") by Wizards of the Coast LLC and available at https://dnd.wizards.com/resources/systems-reference-document. The SRD 5.1 is licensed under the Creative Commons Attribution 4.0 International License available at https://creativecommons.org/licenses/by/4.0/legalcode. Only SRD 5.1 content is distributed with this plugin. Content imported by a user from their own files stays on their computer and is their responsibility. Dungeons & Dragons, D&D and Wizards of the Coast are trademarks of Wizards of the Coast LLC. 5etools, ttrpg-convert-cli, Dice Roller and Initiative Tracker are independent projects of their respective authors. The bundled SRD data is derived from the data files of [5etools](https://github.com/5etools-mirror-3/5etools-src) (MIT License, Copyright (c) 2017 TheGiddyLimit and contributors); the full notice is in [THIRD_PARTY_NOTICES.md](THIRD_PARTY_NOTICES.md). The plugin's code is released under the [MIT License](LICENSE).