Arrowed's Adversary Bank
pendingby Arrowed
Manage and run Daggerheart TTRPG encounters with searchable adversary stat blocks, condition tracking, and instance management.
Arrowed's Adversary Bank
An Obsidian.md plugin for Daggerheart TTRPG GMs to search, edit, and create adversary & environment stat blocks with enhanced encounter management.
A fork of BeastVault by Lyova Potyomkin, with additional features for running encounters at the table.
What's New (over BeastVault)
- Adversary Renaming — auto-suffix duplicate names on insert ("Bladed Guard 2", "Bladed Guard 3"), plus double-click any rendered name to rename it inline
- Instance Naming — when running multiple copies of an adversary, each instance gets a label you can click to customize ("Left Chimera", "Wounded One")
- Condition Tracking — toggle Daggerheart conditions (Vulnerable, Restrained, Frightened, etc.) per instance, with support for custom conditions via YAML or the "+" button
- Summon Buttons — features with a
summonfield get a button that inserts the referenced adversary into the document - Clickable "Mark a Stress" — the text in feature descriptions becomes an interactive button; for multi-instance adversaries, a picker lets you choose which one takes the stress
- HP/Stress Controls — +, -, and clear buttons on every HP and Stress row for quick adjustments
Original BeastVault Features
All original BeastVault features are fully preserved:
- Search and insert adversaries & environments from the SRD via commands
- 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 for any theme
- Works in a canvas for FCG-style encounter building
- Local homebrew library support with folder scanning
- FSB (Fantasy Statblocks) compatibility
Installation
Manual
- Go to the latest release
- Download
main.js,manifest.jsonandstyles.css - Inside your Obsidian vault, create folder
.obsidian/plugins/arroweds-adversary-bank - Copy the downloaded files to this folder
- If Obsidian was open, restart it
- Navigate to
Settings>Community pluginsand enable Arrowed's Adversary Bank
Via BRAT
- Install the BRAT plugin from the community plugins browser
- Navigate to BRAT settings and click
Add beta plugin - Enter
arrowedisgaming/arroweds-adversary-bankas the repository and clickAdd plugin
Usage
Insert from Library
Insert an adversary via a command: Ctrl+P > Insert adversary from library, or use the side ribbon menu (sword icon).
[!TIP] Bind plugin commands to hotkeys from the Hotkeys settings tab. For example,
Alt+Afor adversaries andAlt+Efor environments.
[!TIP]
Clickthreshold buttons to mark the corresponding amount of HP. UseAlt+Clickto clear it instead.
Renaming
- Auto-suffix: Inserting the same adversary twice auto-names them "Bladed Guard" and "Bladed Guard 2"
- Inline rename: Double-click the adversary name on a rendered card to edit it. Press Enter to save, Escape to cancel.
- Instance names: When you have 2+ copies (via the +/- buttons), each instance's stat bar shows a clickable name label. Click to customize it.
Conditions
Below each instance's HP and Stress slots, you'll see condition badges for the 8 standard Daggerheart conditions. Click to toggle.
Custom conditions can be added two ways:
- In the YAML: add a
conditionsfield with a list of custom condition names - At runtime: click the
+button on the condition bar, type a name, press Enter
name: Chimera
hp: 9
stress: 5
conditions:
- Poisoned
- Burning
Summon Buttons
Add a summon field to any feature to get a button that inserts the named adversary:
features:
- name: Raise Dead
type: Action
desc: The Necromancer raises skeletal warriors.
summon:
- Skeleton Warrior
- Skeleton Archer
HP/Stress Controls
Each HP and Stress row has inline buttons:
- - removes one mark
- + adds one mark
- x clears all marks
Reference
The daggerheart code block parses the adversary or environment as YAML with the following properties:
| Property | Definition | Example |
|---|---|---|
name | Name of the adversary | Bear |
tier | Adversary tier | 1 |
type | Type of the adversary | Bruiser |
desc | Adversary description | A large bear with thick fur and powerful claws. |
difficulty | Adversary difficulty | 14 |
weapon | Name of the adversary's weapon | Claws |
range | Range of the adversary's weapon | Close |
damage | Amount and type of adversary's weapon damage | 1d8+3 phy |
hp | Total adversary hitpoint slots | 6 |
stress | Total adversary stress slots | 3 |
thresholds | Adversary thresholds, separated by a /; leave blank for minions with 1 HP | 9/17 |
attack | Adversary attack bonus; click to roll for attack | +1 |
xp | Adversary experiences | Ambusher +2, Keen Senses +3 |
motives | Adversary's motives and tactics | Climb, defend territory, pummel, track |
conditions | Custom condition names for this adversary | Poisoned, Burning |
features | List of feature objects, see table below | |
id | Stat block id for state tracking; auto-generated, can be any random string | a2sd4vsf |
features properties:
| Property | Definition | Example |
|---|---|---|
name | Name of the feature | Relentless (2) |
type | Feature type | Passive |
desc | Feature description; supports markdown | Make a standard attack. On a success, the target is *Vulnerable* until they next act. |
uses | Uses per scene | 2 |
countdown | Size of the countdown | 6 |
flavor | Hints for GM/PCs | Have any of the PCs forded rivers like this before? |
summon | Adversary name(s) to summon | Skeleton Warrior or a YAML list |
For environments, weapon, damage, range, hp, stress, thresholds, attack, xp, motives are not set.
Instead, additional properties are available:
| Property | Definition | Example |
|---|---|---|
impulses | Environment impulses | Bar crossing, carry away the unready, divide the land |
adversaries | Potential adversaries in an environment | Guards, Masked Thief, Merchant |
tone | Tone and feel of the environment | Musty and mournful, serene yet slightly wrong |
All properties are optional and simply won't render if skipped.
[!IMPORTANT] Do not use
TABin stat blocks. The indents for features must be manually indented with spaces.
Attributions
This plugin is a fork of BeastVault by Lyova Potyomkin, licensed under the MIT License. The original BeastVault was inspired by FreshCutGrass and DaggerForge.
Copyright Notice
This plugin includes materials from the Daggerheart System Reference Document 1.0, (c) 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.