A persistent, visual history browser for Dwarf Fortress.
NextPlus is a community fork of LegendsViewer-Next. It makes Dwarf Fortress Legends exports easier to discover and explore, combining historical records, interactive Premium-style maps, universal offline search, and a library of cached worlds.
Status: Actively developed. Features listed below are implemented; planned features are not yet available. NextPlus is an independent community project, not an official Dwarf Fortress or DFHack application.
- World Library: Automatically finds Legends exports, organizes known snapshots, and lets you load or switch worlds without browsing for XML each time.
- Installation detection: Finds Steam installations (including custom libraries), with a manual folder picker and saved export directories.
- Premium maps: Interactive Leaflet maps with terrain and site sprites sourced from your locally installed Dwarf Fortress, plus civilization and warfare overlays. BMP and generated-map fallbacks remain available.
- Historical exploration: Browse figures, family trees, civilizations, sites, artifacts, wars, battles, eras, world records, and populations.
- Universal historical search: Search the loaded world across figures, civilizations, sites, places, artifacts, wars, battles, chronicles, individual events, and creature definitions. Exact and prefix names rank first; category and year filters, pagination, and links to existing detail pages are included. Search is fully offline and does not require an AI model or API key.
- Persistent caching: Reopens verified historical data without reparsing the XML. Supports cache rebuild/removal and warned offline opening when the source export is unavailable.
- Export diagnostics and bookmarks: Shows missing companion files and remembers previously opened worlds.
The first import parses history and creates a cache, so it can take longer. In local .NET 10 Debug benchmarks with two worlds, subsequent full loads were approximately 47% faster than parsing and map setup (about 14 vs. 27 seconds for region2; 22 vs. 42 seconds for region3). Performance depends on world size and hardware.
Universal historical search adds a one-time in-memory index build per loaded world generation. In the local benchmark environment this was about 4.5 seconds for each tested large world, with roughly 110–136 MiB of retained managed memory. Searches then use the index and do not invoke the XML parser.
For developers: Install the .NET 10 SDK and Node.js, then run:
git clone https://github.com/Morasami/LegendsViewer-NextPlus.git
cd LegendsViewer-NextPlus
dotnet restore
dotnet run --project .\LegendsViewer.Backend\LegendsViewer.Backend.csprojOpen http://localhost:15422 if the local frontend does not open automatically.
For players: A downloadable Windows release is planned. There is not yet a verified NextPlus release package; until then, run from source. See Releases for future builds.
- Export Legends data from Dwarf Fortress (DFHack can provide extended companion files).
- Open Explore Worlds → Dwarf Fortress Settings to confirm or choose the game folder.
- Let the World Library discover exports, or add an export directory and rescan.
- Select a snapshot to load; later openings can use its verified cache.
- Use Historical Search (or the app-bar search field) to search across the loaded world, filter by category or year, and open a result to its existing detail page.
The main <region>-<date>-legends.xml is required for a first import. Matching optional companion files extend available information:
| Suffix | Additional information |
|---|---|
-legends_plus.xml |
Extended historical data |
-world_history.txt |
World/civilization history |
-world_sites_and_pops.txt |
Sites and populations |
-world_map.csv |
Premium world-map data |
-world_map.bmp |
Legacy map fallback |
Premium rendering also requires compatible locally installed game graphics. NextPlus does not bundle or redistribute those graphics. DFHack is not required to remain running while browsing an exported world.
On Windows, NextPlus keeps its settings, bookmarks, World Library index, and parsed-world cache under:
%APPDATA%\LegendsViewer-NextPlus\
Discovery and loading do not modify original game files, saves, or exports.
Planned, not implemented yet:
- Automatic discovery of interesting stories and broader relationship-oriented retrieval on top of the universal search index.
- Relationship graphs, deeper biographies and bestiary pages, artifact journeys, and research notes.
- Snapshot comparisons and exploration of additional save-derived data and authentic individual sprites.
- Optional evidence-grounded AI Historian for chronicles and historical studies.
- Versioned, tested Windows releases for players who do not build from source.
Built with .NET 10 / ASP.NET Core, Vue 3 / TypeScript / Vuetify, and Leaflet. The Windows self-contained publish workflow exists, but end-user release packaging and verification are still planned.
dotnet test
cd LegendsViewer.Frontend\legends-viewer-frontend
npm run test:run
npm run buildSee the World Library, cache architecture, and universal historical search reports. Contributions are welcome: open an issue or submit a focused PR to main. Please do not commit game assets, world exports, saves, local caches, or generated browser-test artifacts.
Based on Kromtec's LegendsViewer-Next, the original LegendsViewer, and contributions from the Dwarf Fortress/DFHack communities.
Licensed under MIT. Dwarf Fortress and its graphics belong to their respective owners.