HLO Importer (Powered by Abyssal Engine)
A Foundry VTT module that imports HeroLab Online characters directly into Pathfinder 2e (pf2e) and Starfinder 2e (sf2e) games via HLO's official Public API. A from-scratch modernization of the dormant zarmstrong/hlo-importer, built so the conversion logic lives entirely inside the module with no third-party hosted service in the critical path.
What it does:
Three input modes feed the same parser, matcher, and Foundry actor builder:
- Element Token (API): the headline UX. Save your HLO User Token once in module settings, paste a per-character Element Token at import time, and the module fetches and converts in one click.
- Paste JSON: an air-gapped fallback. Paste an HLO export directly into a textarea.
- Upload File: a file-picker variant of paste. Drag in the downloaded HLO
.json.
The result is a Foundry actor (PF2e or SF2e character) populated with abilities, skills, saves, languages, attributes, ancestry, heritage, class, deity, feats, actions, spells, weapons, armor, gear, and (for Starfinder) augmentations. Re-imports update the existing actor in place rather than producing duplicates.
Preview Images:
HLO Importer Interface Preview 1:

HLO Importer Interface Preview 2:

HLO Importer Interface Preview 3:

Why it exists:
The previous PF2e importer ecosystem (zarmstrong/hlo-importer and its companion conversion service) went dormant in late 2022. Its data tables froze at PF2e Foundry data version 3.13.5 and Starfinder 2e had no coverage at all. This module fills the gap with a current, self-contained pipeline. The conversion runs entirely inside the module (no middleman conversion service involved, no future single point of failure outside of HLO itself). If for some reason I fall out of love with the system and new dev wants to step up, then the source code holds all the keys so to speak and I will be happy to pass the torch at that time!
Compatibility (at the time of release):
- Foundry V14.361 verified primary target.
- Foundry V13 supported as a fallback (
module.jsondeclaresminimum: 13,maximum: 14). - Pathfinder 2e (
pf2e) and Starfinder 2e (sf2e) systems. - Cross-system compendium fallback via
pf2e-anachronismandsf2e-anachronismwhen those modules are installed.
Install:
Inside Foundry, open Add-on Modules, click Install Module, and paste:
https://shinra.cc/hlo-importer-abyssal-engine/module.json
Architecture:
Foundry module sends a request directly to https://api.herolab.online, runs the response through an in-module parser, then through an in-module compendium matcher (slug-first, fuzzy-name second, curated overrides third), then through an in-module Foundry actor builder, and finally hands the result to Actor.create() (or Actor.update() for re-imports). There is no third-party hosted service in the critical path. Codebase is organized as cogs (one functional concern per file) for maintainability and to keep the review surface small.
Author and contact:
- Author: Shinra CC (
shinra.engineeron Discord) - Brand: Part of my code within the Abyssal Engine software family (Foundry modules, Discord bot, Fabula Ultima web app).
- Source: https://shinra.cc/hlo-importer-abyssal-engine/
- Bug tracker: GitHub Issues
- License: MIT.
Acknowledgements:
This module is a from-scratch reimplementation of zarmstrong/hlo-importer (MIT) and its companion conversion service. The original served the Pathfinder 2e Foundry community from 2020 through 2022 and is now dormant; no source code is redistributed from those projects.
Hero Lab and the Hero Lab logo are registered trademarks of LWD Technology, Inc. Pathfinder, Starfinder, and associated trademarks are property of Paizo Inc. Foundry Virtual Tabletop is a trademark of Foundry Gaming, LLC. This project is not affiliated with, endorsed by, or sponsored by any of these companies.