D&D HP Tracker
pendingby Miลosz Kucharski
Track hit points, temporary HP, and apply damage/healing with resistance and vulnerability options for D&D characters.
๐ฒ D&D HP Tracker for Obsidian
A simple and intuitive hit point tracker for your D&D characters, right in your Obsidian vault!
โจ Features
-
Visual HP Tracking - See your character's health at a glance with a color-coded HP bar
- ๐ข Green when healthy (>50% HP)
- ๐ก Yellow when wounded (25-50% HP)
- ๐ด Red when critical (<25% HP)
-
Temporary Hit Points - Track temporary HP separately, automatically applied before regular HP
-
Damage Modifiers - Apply resistance or vulnerability to damage calculations
- Normal - Full damage
- Resist (รท2) - Half damage (rounded down)
- Vuln (ร2) - Double damage
-
Quick Actions
- Take damage with modifier support
- Heal your character
- Add temporary HP (automatically takes the higher value)
- Long Rest - instantly restore to max HP and clear temp HP
-
Mobile Friendly - Works on desktop and mobile Obsidian
๐ Installation
From Obsidian Community Plugins (Coming Soon)
- Open Settings โ Community plugins
- Select Browse and search for "D&D HP Tracker"
- Select Install
- Enable the plugin in your Community plugins list
๐ฎ Usage
Opening the HP Tracker
There are three ways to open the HP Tracker:
- Click the heart icon (โค๏ธ) in the ribbon (left sidebar)
- Use the command palette (Ctrl/Cmd + P) and search for "Open HP Tracker"
- The tracker opens in the right sidebar by default
Tracking HP
- Set your max HP in the plugin settings (Settings โ D&D HP Tracker)
- Enter a damage or healing amount in the input field
- Select a modifier if needed (Normal, Resist, or Vuln)
- Click the appropriate action button:
- Take Damage - Apply damage (temp HP absorbed first)
- Heal - Restore HP (up to max)
- Add Temp HP - Add temporary hit points
- Long Rest - Full HP restoration
Example Combat Scenario
- Your character has 50 max HP and 20 current HP
- A friendly cleric casts Aid, giving you 5 temp HP
- An enemy hits you for 12 damage, but you have resistance
- Select "Resist (รท2)", enter 12, click "Take Damage"
- The plugin calculates 6 damage (12 รท 2)
- Your 5 temp HP absorbs the first 5, leaving 1 damage to regular HP
- Result: 19 HP, 0 temp HP
- After combat, you click "Long Rest"
- HP restored to 50/50
โ๏ธ Settings
Configure your character in Settings โ D&D HP Tracker:
- Max HP - Your character's maximum hit points
- Current HP - Your current hit point total (also changes with tracker actions)
- Temp HP - Current temporary hit points (also changes with tracker actions)
๐ ๏ธ Development
Want to contribute or customize the plugin?
# Clone the repository
git clone https://github.com/yourusername/obsidian-dnd-hp-tracker.git
# Install dependencies
npm install
# Start development with auto-rebuild
npm run dev
# Build for production
npm run build
Project Structure
src/
main.ts # Plugin entry point
settings.ts # Settings interface and defaults
constants.ts # View type constants
HPTrackerView.ts # Main HP tracker UI
HPTrackerSettingTab.ts # Settings UI
๐ค Contributing
Contributions are welcome! Here are some ways you can help:
- ๐ Report bugs
- ๐ก Suggest new features
- ๐ Improve documentation
- ๐ง Submit pull requests
Please feel free to open an issue or pull request on GitHub!
๐ Roadmap
Future features under consideration:
- Multiple character support
- Death saving throws tracker
- Conditions and status effects
- Hit dice tracking for short rests
- Import character data from D&D Beyond
- Spell slot tracking
- Initiative tracker
๐ License
This plugin is released under the MIT License. See LICENSE for details.
๐ Acknowledgments
Built with โค๏ธ for the D&D and Obsidian communities.
Special thanks to:
- The Obsidian team for their excellent plugin API
- The D&D community for inspiration and feedback
๐ Support
- Issues: GitHub Issues
- Discussions: GitHub Discussions
Roll for initiative! ๐ฒ
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.