π¨ Daggerheart: Art Mapper
Daggerheart: Art Mapper puts your own images on the Daggerheart compendiums. You drop image files named after the entries into Data/dh-assets/, click Regenerate Art Mappings, and the matching adversaries, environments, classes, subclasses, ancestries, communities and domain cards show your art. Druid beastforms get a gallery the player picks from when transforming, and compendiums from other modules can be included too.
The module ships no artwork. The folders start empty and you fill them with images you own or made.
What it does
- Scans your image folders and applies the art to the matching compendium entries. Matching is by the entry's name, so there is no ID list to maintain.
- Gives druid beastforms a gallery to choose from at transformation time. It works for players even though they cannot browse the server's files, and it never modifies the Daggerheart system compendium.
- Updates items already sitting on world actors, which compendium art does not reach. Only items whose image is still the system default are changed.
- Does all of the above for Actor or Item compendiums shipped by other modules, such as homebrew adversary packs or extra domain cards.
- Registers through Foundry's own compendium art system, so the core Compendium Art screen controls it: per-category toggles and priority against other art modules.
Quick start
- Enable the module. On first load it creates
Data/dh-assets/and asks you to reload. - Put your images into the folders (see below). Filenames must start with the entry's name.
- Open Game Settings β Configure Settings β Daggerheart: Art Mapper and click Regenerate Art Mappings.
- Reload when prompted. Your art is now on the compendium entries.
Repeat steps 2 to 4 whenever you add or rename images.
Naming and organizing your images
Put each image in the folder for its category. The folder structure is in the next section.
The filename must start with the entry's name. All of these match an adversary called Dread Knight:
dread-knight.webp dread_knight.webp Dread Knight.webp
dread-knight-1.webp Dread-Knight2.webp dread knight 03.webp
Matching is lenient: spaces, hyphens and underscores all work, and capitalisation is ignored. The safest choice is the recommended convention:
Dread-Knight_1.webp β hyphens between words, "_" before the number
Use the English names, even when the Daggerheart system runs in another language. Translation modules rename the compendium entries on screen, but the module matches files against the original names, so the same files work in every language.
The _ before the number matters when one entry's name is the start of another's. "Merchant" and "Merchant Baron" are both adversaries, and so are "Tangle Bramble" and "Tangle Bramble Swarm". A number placed straight after the name makes the shorter entry's wildcard also take the longer entry's images, because Merchant* also matches Merchant-Baron1.webp. A separator that never appears between words fixes it:
Merchant_1.webp Merchant_2.webp β "Merchant_*" stops here
Merchant-Baron_1.webp β never reached by "Merchant_*"
If two such entries share a plain prefix anyway, the module does not guess: the shorter entry gets a single fixed image, and a warning naming both entries appears in the console (F12). Only these prefix pairs can break, but using _ everywhere means you never have to check which names start others.
Every image format Foundry supports works: PNG, JPG, WebP and so on.
In token/ folders you can add more than one file for the same entry (dread-knight_1.webp, dread-knight_2.webp). The module then builds a wildcard path and turns on Foundry's own Randomize Wildcard Images option on that entry's prototype token. Each time you drop the actor on a scene, Foundry picks one of the matching images for that token.
Keep capitalisation the same inside one entry's set. Zumbi_1.png and zumbi_2.png are matched to the same entry, but Foundry's server resolves the wildcard case-sensitively, so no single pattern covers both. The module falls back to one fixed image and says so in the console. Pick one casing per entry.
Click Regenerate Art Mappings to apply any change.
Your files are safe. Everything lives in Data/dh-assets/, a folder that belongs to no module. Updating, reinstalling or uninstalling Daggerheart: Art Mapper never touches it, and the module never deletes or rewrites images you added.
Folder structure
Everything sits in your Foundry Data folder, the one holding worlds/, modules/ and systems/, in a folder named dh-assets:
Data/dh-assets/
βββ core-mapping.json β generated by the module, do not edit
βββ beastform-art.json β generated by the module, do not edit
βββ assets/
β βββ adversary/
β β βββ portrait/ β daggerheart.adversaries (actor portraits)
β β βββ token/ β daggerheart.adversaries (token images)
β βββ ancestry/ β daggerheart.ancestries (item art)
β βββ class/ β daggerheart.classes (item art)
β βββ community/ β daggerheart.communities (item art)
β βββ domain-card/ β daggerheart.domains (item art)
β βββ environment/
β β βββ portrait/ β daggerheart.environments (actor portraits)
β β βββ token/ β daggerheart.environments (token images)
β βββ subclass/ β daggerheart.subclasses (item art)
β βββ druid-transformation/ β beastform galleries, by tier
β βββ tier1/
β β βββ agile-scout/ βββ tier3/
β β βββ aquatic-scout/ β βββ aquatic-predator/
β β βββ household-friend/ β βββ great-predator/
β β βββ nimble-grazer/ β βββ great-winged-beast/
β β βββ pack-predator/ β βββ legendary-beast/
β β βββ stalking-arachnid/ β βββ legendary-hybrid/
β βββ tier2/ β βββ mighty-lizard/
β β βββ armored-sentry/ βββ tier4/
β β βββ mighty-strider/ βββ epic-aquatic-beast/
β β βββ pouncing-predator/ βββ massive-behemoth/
β β βββ powerful-beast/ βββ mythic-aerial-hunter/
β β βββ striking-serpent/ βββ mythic-beast/
β β βββ winged-beast/ βββ mythic-hybrid/
β β βββ terrible-lizard/
βββ custom/ β folders for compendiums from other modules
Every folder is kebab-case. Beastform folders are the form's English name lowercased with spaces turned into hyphens: "Agile Scout" becomes agile-scout, "Great Winged Beast" becomes great-winged-beast.
Beastform art
Each beastform has its own folder. Put any number of images in it, and when a druid transforms into that form the module shows Daggerheart's image picker with your images, so the player chooses which one their token becomes.
- Drop images into the folder for each form, for example
druid-transformation/tier1/agile-scout/. - As GM, click Regenerate Art Mappings.
- Accept the reload prompt. It reloads every connected client, so players get the new galleries on their next transformation.
Some details:
- A form with an empty folder keeps Daggerheart's own artwork and transforms exactly as it does without this module. You can fill in as few or as many forms as you like.
- Players do not need extra permissions. Listing server files requires the Browse File Explorer permission, which players do not have by default. The GM does the scanning once and the result is saved as a small file every client can read.
- The system compendium is never modified. The gallery is supplied at transformation time. If you uninstall this module, every beastform goes back to its stock artwork, with nothing left behind and no broken image paths, in this world or any other world on your server.
- Evolved and hybrid forms work the same way as the normal ones, each with its own folder.
Custom compendiums from other modules
The standard folders cover the Daggerheart system's own compendiums. Manage Custom Compendiums applies the same workflow (drop an image, the name matches, the art is applied) to Actor or Item compendiums from any other active module.
- Open Manage Custom Compendiums in the module settings.
- Every active Actor or Item compendium not already built in is listed, unchecked.
- Check the ones you want and click Save. The subfolders are created under
Data/dh-assets/custom/, and the dialog shows the exact folder name. The module generates that name and it cannot be renamed. This keeps names short and makes sure two compendiums never point at the same folder by mistake. - Add images, following the same naming rule as everywhere else.
- Click Regenerate Art Mappings.
Actor compendiums get portrait/ and token/ subfolders, like Adversaries and Environments. Item compendiums get one flat folder. This works even when a pack mixes several item subtypes, because matching is by name, not by subtype, so nothing extra needs configuring.
Unchecking a compendium only stops the module from scanning it. It never deletes the folder or your images. If the source module is later disabled, its entry stays listed as Unavailable instead of disappearing, so you keep the configuration and can remove it deliberately.
Actor image sync
Compendium art applies to compendium entries. Items already on an actor keep the image they had when they were added. Sync Actor Images closes that gap: it scans every world actor and updates only the img field of eligible embedded items. No other field is ever touched.
Only images that are still the system default are replaced. Anything you or a player set deliberately is left alone. Running it again is safe: once everything is current, nothing changes.
It covers Classes, Subclasses, Ancestries, Communities and Domain Cards, plus any item type found in a custom Item compendium you added. Items with no compendium counterpart are untouched.
Click Sync Now in the module settings. GM only. Generate the art mappings first if you have just added images.
Settings
Found under Game Settings β Configure Settings β Daggerheart: Art Mapper.
| Setting | What it does |
|---|---|
| Open Instructions | In-app version of this guide, with the folder list. |
| Manage Custom Compendiums | Pick compendiums from other modules to include. |
| Regenerate Art Mappings | Rescans every folder and rebuilds the mapping. Run after adding images. |
| Sync Now | Applies module art to items already on world actors. |
| Include Adversaries | When off, adversary portraits and tokens are skipped on the next regeneration. |
| Include Environments | When off, environment portraits and tokens are skipped on the next regeneration. |
The two Include options take effect the next time you regenerate. They do not change an existing mapping.
Compendium art priority
This module registers through Foundry's own compendium art system, so it appears on the core Compendium Art screen (Configure Settings β Core, palette icon) next to any other art module you have installed. There you can:
- turn Portraits, Tokens and Items on or off for each source;
- reorder sources, deciding which module wins when two provide art for the same entry.
The module only appears on that screen once a mapping has been generated.
Console and macro commands
Run these from a script macro or the browser console (F12, Console tab). They are also reachable as game.modules.get("dh-assets").api.
// Apply module art to items on world actors. GM only.
// Returns { actorsAffected, itemsUpdated }.
await dhAssets.syncActorImages();
// Rescan the beastform folders and republish the galleries. GM only.
await dhAssets.generateBeastformArt();
// Re-read the published galleries on this client, without reloading.
await dhAssets.loadBeastformArt();
// Inspect what this client currently has: Map of "tier1/agile-scout" β [file paths].
dhAssets.getBeastformArt();
Troubleshooting
My art did not appear. Click Regenerate Art Mappings and reload. If a specific entry is missing, check that the filename starts with that entry's exact English name.
One entry always shows the same token instead of a random one. Open the console (F12): the warning says which of the two causes applies. Either its name is the start of another entry's name and the files share a plain prefix, or the files for that entry disagree on capitalisation. Both are covered in Naming and organizing your images.
A druid transformation shows no gallery. That form's folder is empty, or the GM has not regenerated since the images were added. Ask the GM to click Regenerate Art Mappings. Players can then run dhAssets.loadBeastformArt() to pick it up without reloading.
Art from another module wins over mine, or the other way around. Change the order on the core Compendium Art screen, described in Compendium art priority.
Β
π§° My Daggerheart Modules
| Module | Description |
|---|---|
| πΒ Adversary Manager | Scale adversaries instantly and build balanced encounters. |
| πΌοΈΒ Art Mapper | Automatically assigns artwork to system compendiums, actors, tokens, and custom module content β keeping your visuals organized and up to date. |
| πΒ Colossus | Manage massive multi-part boss encounters with independent HP per part and a single shared stress pool. |
| π¦Β Containers | Group inventory items into collapsible containers β pouches, chests, backpacks β to declutter character sheets. |
| π₯Β Critical | Animated criticals. |
| π Β Custom Stat Tracker | Add custom trackers to actors. |
| β οΈΒ Death Moves | Enhances the Death Move moment with a dramatic interface and full automation. |
| πΒ Distances | Visualizes combat ranges with customizable rings and hover calculations. |
| π¦Β Extra Content | Homebrew content pack. |
| π±Β Fear Tracker | Adds an animated slider bar with configurable fear tokens to the UI. |
| π§Β Horde | Explode single horde tokens into dozens of individual tokens and manage their movement and stats automatically. |
| πΒ Mystery Box | Introduces mystery box mechanics for random loot and surprises. |
| β‘Β Quick Actions | Quick access to common mechanics like Falling Damage, Downtime, etc. |
| πΒ Quick Rules | Fast and accessible reference guide for the core rules. |
| π€Β Resource Macros | Automatically executes macros when the Fear or Hope resources change. |
| π²Β Stats | Tracks dice rolls from GM and Players. |
| π§ Β Stats Toolbox | Import actors using a statblock. |
| πΒ Store | A dynamic, interactive, and fully configurable in-game store. |
| πΒ Unidentified | Obfuscates item names and descriptions until they are identified by the players. |
| πΒ Void | Unofficial module that brings The Void playtesting content β experimental classes, subclasses, ancestries, communities, adversaries, loot, weapons, and more. |
πΊοΈ Adventures
| Adventure | Description |
|---|---|
| β¨Β I Wish | A wealthy merchant is cursed; one final expedition may be the only hope. |
| π£Β Suicide Squad | Criminals forced to serve a ruthless master in a land on the brink of war. |


