BeastVault

pending

by Lyova Potyomkin

Adversary and environment stat blocks for Daggerheart TTRPG.

4 starsUpdated 4mo agoMITDiscovered via Obsidian Unofficial Plugins
View on GitHub

BeastVault

An Obsidian.md plugin for Daggerheart TTRPG GMs to search, edit, and create beautiful adversary & environment stat blocks.

Features

  • Search and insert adversaries & environments from the SRD via commands
  • Beautifully render editable stat blocks with intuitive UI
  • Roll dice for attack or damage with one click
  • Track marked HP, stress, countdowns and feature uses
  • Battle points counted in the status bar
  • Customizable colors to look pretty in any color theme
  • Works in a canvas for FCG-style encounter building

Planned

  • Local library support for homebrew stat blocks to search over
  • Filtering and sorting via Bases
  • "Summon" buttons for adversaries/environments that might summon others
  • Ability to mark adversaries with conditions (e.g. Vulnerable, Restrained)

Installation

Manual

  1. Go to the latest release
  2. Download main.js, manifest.json and styles.css
  3. Inside your Obsidian vault, create folder .obsidian/plugins/beastvault
  4. Copy the downloaded files to this folder
  5. If Obsidian was open, restart it
  6. Navigate to Settings > Community plugins and enable BeastVault

Automatic via BRAT

  1. Install the BRAT plugin from the community plugins browser
  2. Navigate to BRAT settings and click Add beta plugin
  3. Enter ly0va/beastvault as the repository and click Add plugin

Showcase

Insert from library

Insert an adversary via a command by going Ctrl+P > Insert adversary from library or using the side ribbon menu.

Insert an adversary from library

[!TIP] For quicker access, bind plugin commands to a key combination of your choice from the Hotkeys settings tab. I use Alt+A to insert an adversary & Alt+E to insert an environment.

[!TIP] Click threshold buttons to mark the corresponding amount of HP. Use Alt+Click to clear it instead.


Homebrew

Make your own homebrew adversary by creating a daggerheart code block, or edit an inserted one by clicking the </> button in the top-right corner.

Create homebrew adversary

[!TIP] You can insert an empty adversary template by using the Insert adversary template command.

[!IMPORTANT] Do not use TAB in stat blocks. The indents for features must be manually indented with spaces.


Build encounters

Build out full encounters (works in a canvas too!) and track their HP & stress during a session. Marked HP & stress are preserved even after you close Obsidian.

Canvas encounter

[!TIP] Building encounters in a canvas is made much more convenient by enabling node auto-resizing in this plugin. During a playing session, using canvas in read-only mode is recommended.


Library management

Go to BeastVault settings > Library folder location and enter a folder name. All notes in this folder will be scanned for daggerheart codeblocks, which will be available in search.

You can also import adversaries in bulk, by creating .json or .yaml files in this folder, which can contain a single stat block or an array of stat blocks. The structure of the stat blocks is documented below.

Additionally, it is possible to enable compatibility with Fantasy Statblocks in settings. With this enabled, any FSB-compatible blocks found in the notes inside the library folder will also be available in search, as long as they have layout: Daggerheart Adversary or layout: Daggerheart Environment.

[!IMPORTANT]

  • Only entries with a valid string name are added to the library.
  • After adding, deleting, or modifying anything in the library, run Refresh library either by using the side ribbon menu or the command palette.
  • If an entry has no hp and no stress fields, it is added as an environment; otherwise - as an adversary.
  • All other fields are optional.

Reference

The daggerheart code block parses the adversary or an environment as YAML with the following properties:

PropertyDefinitionExample
nameName of the adversaryBear
tierAdversary tier1
typeType of the adversaryBruiser
descAdversary descriptionA large bear with thick fur and powerful claws.
difficultyAdversary difficulty14
weaponName of the adversary's weaponClaws
rangeRange of the adversary's weaponClose
damageAmount and type of adversary's weapon damage1d8+3 phy
hpTotal adversary hitpoint slots6
stressTotal adversary stress slots3
thresholdsAdversary thresholds, separated by a /; leave blank for minions with 1 HP9/17
attackAdversary attack bonus; click to roll for attack+1
xpAdversary experiencesAmbusher +2, Keen Senses +3
motivesAdversary's motives and tacticsClimb, defend territory, pummel, track
featuresList of feature objects, see table below
idStat block id, used by the plugin to track marked HP, stress etc; inserted automatically, can be any random string; defaults to fileName::adversaryNamea2sd4vsf

features properties:

PropertyDefinitionExample
nameName of the featureRelentless (2)
typeFeature typePassive
descFeature description; supports markdownMake a standard attack. On a success, the target is *Vulnerable* until they next act.
usesUses per scene (for those features that limit them)2
countdownSize of the countdown activated by the feature, if any6
flavorHints for GM/PCs for flavoring an adversary or environment for their settingHave any of the PCs forded rivers like this before? Are any of them afraid of drowning?

For environments, weapon, damage, range, hp, stress, thresholds, attack, xp, motives are not set. Instead, additional properties are available:

PropertyDefinitionExample
impulsesEnvironment impulsesBar crossing, carry away the unready, divide the land
adversariesPotential adversaries in an environmentGuards (Bladed Guard, Head Guard), Masked Thief, Merchant
toneTone and feel of the environmentMusty and mournful, serene yet slightly wrong

All of the properties are optional, and simply won't render if skipped.

Attributions

Plugin inspired by FreshCutGrass and DaggerForge.

Copyright Notice

This plugin includes materials from the Daggerheart System Reference Document 1.0, © Critical Role, LLC. All rights reserved.

Public Game Content created and owned by Darrington Press, LLC. Available at https://www.daggerheart.com.

Licensed under the Darrington Press Community Gaming License: https://darringtonpress.com/license/.

Stat blocks may have minor edits to correct obvious errors.

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.