Features
DM Hero is packed with features to make your life as a Dungeon Master easier. Let's explore them all!
Fuzzy Search
The Problem
You're mid-session. A player asks "What was that NPC's name? The one in Baldur's Gate?" You know it's something like "Elminster" but you can't remember exactly...
The Solution
Press / and type "Elminstr" - DM Hero finds "Elminster" even with your typo!
How It Works
DM Hero uses FTS5 (Full-Text Search 5) combined with Levenshtein distance matching:
- FTS5: Indexes all your content for instant retrieval
- Levenshtein: Measures how "close" your search is to actual names
- Cross-Entity: Searches NPCs, Locations, Items... everything!
Search Tips
| What you type | What it finds |
|---|---|
gandlf | Gandalf (typo tolerance) |
wizard elf | All elven wizards |
"prancing pony" | Exact phrase match |
tavern waterdeep | Taverns in Waterdeep |
Metadata Search
Search includes metadata fields too:
- Search "elf wizard" to find NPCs with race=Elf AND class=Wizard
- Search "legendary weapon" to find legendary rarity weapons
- Search "lawful good" to find all Lawful Good NPCs
Type Search v1.3
Search NPCs by their type in any language:
| You search | Finds NPCs with type |
|---|---|
Händler | merchant |
Merchant | merchant |
Diener | servant |
Bauer | farmer |
Works in both global search and NPC page search!
Entity Linking
In-Text References
In any description field, create clickable links to other entities:
The {{npc:Gandalf}} met with {{npc:Frodo}} at {{location:Bag End}}.
He carried the {{item:Staff of Power}} and spoke of {{lore:The Ring}}.
How to Use
- Type
{{in any description field - Select the entity type:
npc,location,item,faction,lore,player - Type the entity name
- Close with
}}
What You Get
- Clickable badges: Click to navigate directly
- Hover previews: See entity details without leaving
- Automatic updates: If you rename an entity, links update too
- Bidirectional awareness: Linked entities know about each other
Example Workflow
Writing about a location:
## The Prancing Pony
A famous inn in {{location:Bree}}. The innkeeper {{npc:Barliman Butterbur}}
serves the best ale in the region.
Rumor has it that {{faction:The Rangers}} often meet here in secret,
and the {{item:Mysterious Map}} was last seen in the back room.
Campaign Maps
Overview
Upload your world maps and make them interactive!
Getting Started
- Go to Maps in the sidebar
- Click Upload Map
- Select an image (PNG, JPG, WebP)
- Give it a name and description
Placing Markers
- Open a map
- Click the + button → Add Marker
- Click on the map where you want the marker
- Select an entity to link it to
- Save!
Markers are color-coded by entity type:
- 🟢 NPCs (Green)
- 🔵 Locations (Blue)
- 🟠 Items (Orange)
- 🟣 Factions (Purple)
Location Areas
Mark regions on your map:
- Click + → Add Area
- Click the center point
- Adjust the radius
- Link to a Location entity
Great for showing city districts, forest boundaries, or territory control!
Measurement Tool
Need to know distances?
- Click the ruler icon
- Click points on the map (A → B → C)
- See total distance calculated!
Important: Set your map's scale in the edit dialog:
- Map scale (e.g., "100 km across")
- Unit type (km, miles, meters)
Map Features
- Pan & Zoom: Smooth navigation
- Drag markers: Reposition anytime
- Filter by type: Show only NPCs, only Items, etc.
- Entity labels: Names appear when zoomed in
- Persistent zoom: Remembers your zoom level per map
Chaos Graph
What Is It?
A visual representation of an entity's connections. Click the graph icon on any entity to see it.
Reading the Graph
- Center: Your selected entity (highlighted)
- Surrounding nodes: Connected entities
- Solid lines: Direct relationships
- Dashed lines: Inter-connections (how surrounding entities relate to each other)
Interaction
- Hover over a node: Highlights its connections
- Click a node: Navigate to that entity's chaos graph
- Filter chips: Show/hide entity types
- View/Edit buttons: Quick actions on hover
Why "Chaos"?
Because a well-developed campaign world looks beautifully chaotic! All those interconnected NPCs, locations, items, and factions create a web of relationships.
Nested Locations v1.3
When viewing a location's chaos graph, child locations are automatically included as nodes:
- City → shows its districts, taverns, shops as connected nodes
- Parent location appears with a "part of" label
- Child locations appear with a "contains" label
Use Cases
- Session Prep: See all connections before a session
- Improvisation: Quickly find related NPCs mid-game
- World Building: Discover gaps in your connections
- Player Questions: "Who knows about the artifact?" - visualize it!
Multiple Campaigns
Switch Worlds Instantly
Run multiple campaigns? No problem! DM Hero supports unlimited campaigns with instant switching.
How It Works
- Click your campaign name in the header
- See all your campaigns
- Click to switch - all entities update instantly
- Create new campaigns with the + button
Completely Separated
Each campaign has its own:
- NPCs, Locations, Items, Factions, Lore
- Players and Sessions
- Calendar settings
- Maps and markers
Perfect for running different game systems or parallel campaigns!
Image Gallery
Multiple Images Per Entity
NPCs can have more than one face! Upload multiple images to any entity:
- Different expressions (happy, angry, mysterious)
- Different ages (young adventurer → grizzled veteran)
- Different outfits (formal, combat, disguise)
- Action scenes and portraits
Gallery View
Click any image to open the full gallery:
- Swipe through all images
- Fullscreen mode
- Set primary image for cards
- Delete unwanted images
AI-Generated Collections
Use the AI image generator multiple times to build a collection of portraits. Keep the best ones!
Documents & Notes
Attach Text Documents
Every entity can have attached documents - perfect for:
- Detailed backstories
- Secret DM notes
- Handouts for players
- Historical records
- Letters and journals
Private Notes
Keep your DM secrets separate! Notes are hidden from the main description but always accessible to you.
Use Cases
| Entity | Document Ideas |
|---|---|
| NPC | Secret motivations, voice notes, stat block |
| Location | Room descriptions, trap details, treasure |
| Item | Full magical properties, curse details |
| Faction | Internal politics, secret members |
Audio Recordings
Session Audio
Record your sessions? Attach audio files to session entries:
- MP3, WAV, OGG supported
- Built-in audio player
- Multiple recordings per session
- Perfect for memorable moments
Use Cases
- Record important NPC dialogue
- Capture player reactions
- Store ambient music references
- Keep voice acting samples
Location Hierarchy
Nested Locations
Create hierarchical location structures:
The Kingdom of Valdris
├── Capital City Ironhold
│ ├── The Royal Quarter
│ │ ├── King's Palace
│ │ └── Noble Gardens
│ ├── Market District
│ │ ├── The Golden Goose (Tavern)
│ │ └── Blacksmith Row
│ └── The Undercity
└── Darkwood Forest
├── Elven Outpost
└── The Witch's Hut
Breadcrumb Navigation
When viewing a location, see the full path above:
Kingdom of Valdris → Capital City Ironhold → Market District → The Golden Goose
Click any parent to jump up the hierarchy!
Benefits
- Organize complex cities
- Track dungeon levels
- Manage regional territories
- Find related locations instantly
Bidirectional Relations
Automatic Linking
When you create a relationship, both sides update automatically:
- Add "Gandalf" as ally of "Frodo"
- Open "Frodo" → shows "Gandalf" as ally
- No duplicate work!
Relationship Types
Create any relationship you need:
- ally, enemy, friend, rival, family
- mentor, student, employer, servant
- loves, hates, fears, respects
- Or create your own!
Cross-Entity Relations
Link any entity type to any other:
- NPC → Location (lives at)
- NPC → Item (owns)
- NPC → Faction (member of)
- Item → Location (hidden at)
- Faction → Faction (allied with)
Faction Memberships
NPCs in Organizations
Track which NPCs belong to which factions:
- Open an NPC
- Go to Memberships tab
- Add faction membership
- Set their rank (Initiate, Member, Leader, etc.)
View From Faction
Open any faction to see all members listed with their ranks. Perfect for:
- Guild rosters
- Cult hierarchies
- Military units
- Noble houses
Reference Data
Custom Values
Don't like the default options? Create your own:
- Races: Add homebrew races
- Classes: Custom classes and professions
- Location Types: Your world's unique places
- Item Types: Special categories
- Faction Types: Organization styles
How to Access
- Go to Settings → Reference Data
- Select a category
- Add, edit, or remove options
- Available immediately in all dropdowns
Localized
Custom values support multiple languages - add German and English names!
Themes v1.4
Eight Themes to Suit Your Table
DM Hero ships with 8 color themes — pick the mood that fits your world:
- Dark (default): warm gold on deep slate, easy on the eyes for late-night sessions
- Light: bright parchment, great for printing
- Vivid palettes: forest green, ocean blue, arcane purple, ember orange, and an Ubuntu-inspired one
- Emily "Deep Lagoon": a cyan-teal community tribute theme
How to Switch
Open the theme picker in the navigation drawer and pick a color swatch. Your choice is saved automatically — no flash of the wrong theme on reload.
Living Dashboard v1.4
Every theme gives the dashboard its own ambient animation in the background — rising embers, drifting dust, fireflies, twinkling sparkles, bubbles… and the Emily theme even brews a distant lightning storm ⚡. It's purely decorative, stays behind your cards, can be switched off in Settings → Playful Extras, and respects "reduce motion".
Release Codenames v1.4
Every minor release now carries a codename, shown right in the title bar. This one: The Summoning.
Session Participants
Track Attendance
Every session records who played:
- Create or edit a session
- Select participating players
- View attendance history
Player Statistics
See at a glance:
- Sessions attended per player
- Last session played
- Characters used
Perfect for tracking group dynamics and rewarding consistent attendance!
Rich Markdown Editor
Supported Features
DM Hero descriptions support full GitHub-flavored Markdown:
Text Formatting
**Bold text**
*Italic text*
~~Strikethrough~~
`inline code`
Headers
# Heading 1
## Heading 2
### Heading 3
Lists
- Bullet point
- Another point
- Nested point
1. Numbered
2. List
3. Items
Tables
| Name | Race | Class |
|------|------|-------|
| Gandalf | Maiar | Wizard |
| Aragorn | Human | Ranger |
Code Blocks
```python
def roll_dice(sides):
return random.randint(1, sides)
```
Blockquotes
> "Not all those who wander are lost."
> — Gandalf
Live Preview
As you type, see your formatted text instantly!
In-Game Calendar
The Problem
"Wait, how many days have passed since we left Waterdeep?"
The Solution
DM Hero tracks your campaign's internal timeline.
Setting Up
- Go to Settings → Calendar
- Define your calendar:
- Month names
- Days per month
- Starting date
Using the Calendar
When creating Sessions, set the in-game date. DM Hero tracks:
- How many days have passed
- What happened on which day
- Time between events
Session Timeline
View sessions on a timeline showing:
- Real-world dates (when you played)
- In-game dates (when it happened in the story)
- Duration of in-game time
AI Integration (Optional)
Requirements
- OpenAI API key (get one at openai.com)
- Enter it in Settings → AI
Name Generation
Stuck on a name? Click the magic wand icon:
- NPCs: Generate names filtered by race
- Locations: Generate names by type (city, tavern, etc.)
- Items: Generate fantasy item names
- Factions: Generate organization names
Image Generation
Create portraits and scenes with DALL-E:
- Open an entity
- Click Generate Image
- Optionally add a custom prompt
- Wait for magic! ✨
Tips for better images:
- Be specific: "elderly dwarven blacksmith with a braided beard"
- Include setting: "in a dimly lit forge"
- Mention style: "fantasy art style, detailed"
Privacy Note
When using AI features:
- Your prompt is sent to OpenAI
- Generated content is stored locally
- No other data is shared
Campaign Export & Import
Full Campaign Backup
Export your entire campaign as a .dmhero file:
- Go to Dashboard
- Click Export Campaign
- Select Full Export or choose specific entities
- Save the
.dmherofile
The export includes:
- All entities (NPCs, Locations, Items, Factions, Lore, Players)
- Sessions and session history
- Relations between entities
- Calendar configuration and weather
- Maps with markers and areas
- Currencies
- All uploaded images and files
Partial Export
Export only selected entities:
- Click Export Campaign
- Uncheck "Full Export"
- Select the entities you want
- Linked entities are automatically suggested
Perfect for sharing specific adventures or storylines!
Import Modes
When importing a .dmhero file:
- New Campaign: Creates a fresh campaign with all imported content
- Merge into Current: Adds entities to your active campaign (partial exports only)
Duplicate handling options:
- Skip: Keep existing, don't import duplicates
- Update: Overwrite existing with imported data
- Duplicate: Import as new entities
Copy to Campaign
Move or copy entities between your campaigns:
- Go to Dashboard
- Click Copy to Campaign
- Select source entities
- Choose target campaign
- Handle duplicates as needed
All relations are preserved when copying!
Hero Basar (Adventure Store)
Discover Community Adventures
Browse adventures created by the community at dm-hero.com/store:
- Filter by tags, rating, or search
- Preview adventure details before downloading
- See download counts and ratings
Download Adventures
- Find an adventure you like
- Click Download
- Save the
.dmherofile - Import into DM Hero (see above)
Share Your Adventures
Upload your own adventures to share with the community:
- Export your campaign (full or partial)
- Go to dm-hero.com/store/upload
- Fill in title, description, and tags
- Upload your
.dmherofile - Wait for automatic validation
- Published!
Requirements:
- Free account on dm-hero.com
- Accept Terms of Service
- Content must pass automated validation
Version Updates
When you update an adventure in the store:
- Version number increases automatically
- Users can re-download to get the latest version
- Import detects if you already have an older version
Data & Privacy
Local-First
All your data stays on your machine:
- Desktop App:
%APPDATA%/dm-hero/ - Docker: In your mounted volume
- No cloud sync: Your data never leaves your computer
Database
DM Hero uses SQLite - a robust, battle-tested database:
- Single file:
dm-hero.db - Easy to backup: Just copy the file
- No server needed
- Works offline
Soft Delete
When you delete something, it's not truly gone:
- Marked as deleted (recoverable)
- Hidden from view
- Can be restored if needed
Export/Backup
Regular backups recommended:
# Find your database
# Windows: %APPDATA%/dm-hero/data/dm-hero.db
# Docker: your-volume/dm-hero.db
# Copy to backup location
cp dm-hero.db dm-hero-backup-$(date +%Y%m%d).db
Keyboard Shortcuts
| Shortcut | Action |
|---|---|
/ | Open global search |
Esc | Close dialog/modal |
Ctrl+S | Save current entity |
? | Show keyboard shortcuts |
Tips & Tricks
1. Use Templates
Create a "Template NPC" with common fields filled in. Copy it when creating new NPCs.
2. Consistent Naming
Use consistent naming conventions:
- Locations: "The Name" or just "Name"
- NPCs: "Firstname Lastname" or "Nickname"
- Items: "The Adjective Item" for legendary items
3. Tag with Relations
Instead of tagging, use relations:
- Create a faction "Quest Givers"
- Add all quest-giving NPCs as members
- Now you can find them all easily!
4. Session Prep Workflow
- Check the Chaos Graph for key NPCs
- Review related locations
- Note important items
- Prepare faction movements
5. Post-Session Routine
- Create a Session entry
- Update NPC statuses (dead? moved?)
- Update item locations (who has what now?)
- Add new NPCs/locations encountered
Dashboard
Overview
The dashboard gives you a quick overview of your active campaign at a glance.
Widgets
- Stats Card: Total playtime, session count, entity count, pinned entities
- Calendar Widget: Current in-game date, days since first session, today's weather
- Notes Widget: Recent DM notes with pending count
- Pinboard Widget: Pinned entities with quick preview on click
- Maps Widget: Map preview image with marker count
- Category Cards: Quick links to entity type pages with counts
3D Dice v1.2
The dashboard features an interactive 3D dice roller:
- Automatically rolls 2d20 on page load
- Click to re-roll anytime
- Rust theme with DM Hero gold color
- Responsive sizing
Encounter Tracker v1.2
Combat Management
Run your combat encounters directly in DM Hero!
3 Phases
- Setup: Add participants from your campaign (NPCs and Players with stat blocks). Duplicate NPCs allowed (e.g., 4x Goblin → Goblin (1), Goblin (2), etc.)
- Initiative: Enter initiative values for each participant. Use the built-in 3D dice roller for NPC rolls.
- Combat: Run the fight with turn management, HP tracking, and conditions.
Combat Features
- Turn Management: Next/Back buttons, automatic round counter
- HP Tracking: Current/max HP with quick +/- buttons, KO state at 0 HP
- Effects & Conditions: Add conditions with duration (X rounds, concentration, permanent). Auto-countdown on "Next". Alerts when effects expire.
- DM Dice Roller: Integrated 3D dice (d4, d6, d8, d10, d12, d20, d100) with custom expressions (2d6+3)
- Entity Preview: Click any participant to see their full stat block
Stat Block Templates v1.2
Custom Stat Blocks
Create reusable stat block templates for different RPG systems:
- Presets: D&D 5e, Pathfinder 2e, DSA 5, Splittermond, or blank
- Custom Groups: Organize fields into groups (Attributes, Resources, Combat, Skills, Custom)
- Field Types: Number (with optional modifier), String, Boolean, Resource (current/max with bar), Textarea
v1.3
Textarea Fields v1.3
The new Textarea field type is perfect for:
- Abilities and special traits
- Attack descriptions
- Legendary actions
- Spell lists
- Any multi-line notes you need in your stat block
Full width, auto-growing, with scrollable readonly view.
Archive Function v1.3
The Problem
Long-running campaigns accumulate many entities. Not all remain relevant, but you don't want to delete them.
The Solution
Archive entities to hide them from default views without deleting:
- Click the archive button (orange) on any entity card
- Archived entities disappear from lists and search
- Toggle "Show archived" to see them again (faded, with "Archived" badge)
- Click restore (green) to bring them back
Features
- Works on all entity types (NPCs, Items, Locations, Factions, Lore, Players)
- Cascading: Archiving a location archives all child locations (recursive)
- Preserved in relations: Archived entities still appear in existing links
- Search toggle: Global search and per-page search have archive toggle
- Visual distinction: Archived cards show outlined style, 60% opacity, orange badge
- Date tracking:
archived_attimestamp shows when it was archived - Export/Import: Archive status is preserved in
.dmheroexports
Multi-Class & Multi-Type v1.3
Multiple Classes
NPCs can now have multiple classes assigned:
- Multi-select dropdown in the NPC edit dialog
- Displayed as comma-separated list on cards and in views
- Fully searchable — search for any single class to find multi-class NPCs
- Backwards compatible with existing single-class NPCs
Multiple Types
Same for NPC types:
- Assign multiple types (e.g., Merchant + Spy)
- Each type shown as individual chip with icon
- Searchable in both German and English (e.g., "Händler" finds "merchant")
NPC Notes v1.3
Separate Notes Field
NPCs now have a dedicated notes field in the details tab, separate from the description:
- Description: General NPC info (appearance, personality, background)
- Notes: Campaign-specific events, plot developments, DM secrets
Shown in the NPC View Dialog with scroll support for long notes.
Auto-Update v1.2
Desktop App Updates
The Electron desktop app checks for updates automatically:
- Banner appears in the navigation when an update is available
- Download button starts the update download
- Database backup is created automatically before each update
v1.3 - Windows and macOS: Auto-install after download
- Linux: Download link to GitHub releases
Version Check on Import v1.3
When importing a .dmhero file created with a newer app version, DM Hero warns you to update first — preventing silent data loss.
Connect Your AI v1.4
Let an AI Fill Your Campaign
The headline feature of 1.4 "The Summoning": connect an AI assistant (Claude, Cursor, …) and let it create content directly in DM Hero.
How It Works
- On the Dashboard, click "Connect your AI" and copy the setup for your assistant (Claude Code, Claude Desktop, or Cursor).
- Start a fresh AI session and say, for example: "Read this PDF and add the NPCs, locations and items to my campaign."
- The AI reads your material and creates everything — NPCs, locations, items, factions and lore — with relations, tags and folders included.
Safe by Design
- The AI first shows a dry-run preview of exactly what it would create or change — nothing is written until you confirm.
- It can link to entities that already exist (no duplicates) and even edit existing ones when you ask.
- Every request is strictly validated; a bad one is rejected, never half-imported.
- When the AI adds or changes something, DM Hero shows a notification and refreshes — so you watch your world fill up live.
Under the hood it's a tiny local MCP server bundled with the app. The AI only talks to DM Hero's local API — your data stays on your machine.
Folders v1.4
Group your NPCs, items, factions and lore into folders to tame big campaigns. Drag entities in and out, open a folder to focus on its contents, and the folders travel with your campaign on export/import. (Hover a folder for a little surprise 😉 — toggle it in Settings.)
Tags v1.4
Add colored tags to any entity and find them instantly by typing #tag in search. Tag by theme — #villain, #sidequest, #act-2 — and pull up everything related in one go. Tags are preserved on export/import.
Climate Zones v1.4
Different Weather, Same Day
Your world isn't one big weather blob. With climate zones you define multiple regions — each with its own temperature range and seasonal weather profile. Generate weather and the desert bakes in the sun while the boreal forest gets snow — on the very same day.
On the Map
Draw zones as circles directly on your campaign maps. Each circle can be locked, and hovering it shows that zone's current weather. Zones, profiles, per-zone weather and map circles are all carried through export/import — older backups still import perfectly.
Getting Help
- GitHub Issues: Report bugs or request features
- Documentation: You're reading it!
- Community: Share your tips with other DMs
Happy DMing! 🎲✨
