Features

DM Hero is packed with features to make your life as a Dungeon Master easier. Let's explore them all!


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 typeWhat it finds
gandlfGandalf (typo tolerance)
wizard elfAll elven wizards
"prancing pony"Exact phrase match
tavern waterdeepTaverns in Waterdeep

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

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

  1. Type {{ in any description field
  2. Select the entity type: npc, location, item, faction, lore, player
  3. Type the entity name
  4. 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

  1. Go to Maps in the sidebar
  2. Click Upload Map
  3. Select an image (PNG, JPG, WebP)
  4. Give it a name and description

Placing Markers

  1. Open a map
  2. Click the + button → Add Marker
  3. Click on the map where you want the marker
  4. Select an entity to link it to
  5. Save!

Markers are color-coded by entity type:

  • 🟢 NPCs (Green)
  • 🔵 Locations (Blue)
  • 🟠 Items (Orange)
  • 🟣 Factions (Purple)

Location Areas

Mark regions on your map:

  1. Click +Add Area
  2. Click the center point
  3. Adjust the radius
  4. Link to a Location entity

Great for showing city districts, forest boundaries, or territory control!

Measurement Tool

Need to know distances?

  1. Click the ruler icon
  2. Click points on the map (A → B → C)
  3. 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.

Use Cases

  1. Session Prep: See all connections before a session
  2. Improvisation: Quickly find related NPCs mid-game
  3. World Building: Discover gaps in your connections
  4. 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

  1. Click your campaign name in the header
  2. See all your campaigns
  3. Click to switch - all entities update instantly
  4. 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!


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

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

EntityDocument Ideas
NPCSecret motivations, voice notes, stat block
LocationRoom descriptions, trap details, treasure
ItemFull magical properties, curse details
FactionInternal 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

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:

  1. Add "Gandalf" as ally of "Frodo"
  2. Open "Frodo" → shows "Gandalf" as ally
  3. 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:

  1. Open an NPC
  2. Go to Memberships tab
  3. Add faction membership
  4. 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

  1. Go to SettingsReference Data
  2. Select a category
  3. Add, edit, or remove options
  4. Available immediately in all dropdowns

Localized

Custom values support multiple languages - add German and English names!


Dark & Light Mode

Eye-Friendly Themes

Switch between dark mode and light mode:

  • Dark Mode: Perfect for late-night sessions, easy on the eyes
  • Light Mode: Great for printing, bright environments

How to Switch

Click the sun/moon icon in the header. Your preference is saved automatically.

Consistent Design

Both themes feature the signature gold accent colors for that fantasy feel.


Session Participants

Track Attendance

Every session records who played:

  1. Create or edit a session
  2. Select participating players
  3. 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

  1. Go to SettingsCalendar
  2. 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 SettingsAI

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:

  1. Open an entity
  2. Click Generate Image
  3. Optionally add a custom prompt
  4. 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

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

ShortcutAction
/Open global search
EscClose dialog/modal
Ctrl+SSave 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

  1. Check the Chaos Graph for key NPCs
  2. Review related locations
  3. Note important items
  4. Prepare faction movements

5. Post-Session Routine

  1. Create a Session entry
  2. Update NPC statuses (dead? moved?)
  3. Update item locations (who has what now?)
  4. Add new NPCs/locations encountered

Getting Help


Happy DMing! 🎲✨