No description
  • C# 93.9%
  • Nix 6.1%
Find a file
Repository files (latest commit first)
Filename Latest commit message Latest commit date
2026-09-02 17:28:26 +02:00
ArchiveFileExtractor feat(book): parse book from top level GRUP 2026-09-02 17:28:26 +02:00
SkyrimSourceExporter feat(book): parse book from top level GRUP 2026-09-02 17:28:26 +02:00
.gitignore feat(bsa): export binary file + export in human readable format strings table 2026-09-01 16:57:21 +02:00
deps.json feat(bsa): export binary file + export in human readable format strings table 2026-09-01 16:57:21 +02:00
flake.lock feat(bsa): export binary file + export in human readable format strings table 2026-09-01 16:57:21 +02:00
flake.nix feat(bsa): export binary file + export in human readable format strings table 2026-09-01 16:57:21 +02:00
README.md docs: add a README.md 2026-09-02 17:27:59 +02:00
SkyrimSourceExporter.sln feat(bsa): export binary file + export in human readable format strings table 2026-09-01 16:57:21 +02:00

Book Atlas - Skyrim Source Exporter

HUGE THANKS TO UESP, UESP CONTRIBUTORS AND ALL MODDERS WHO WORK ON FILE FORMAT SPECIFICATIONS.

Gather book data from Skyrim game files and export it for use by Book Atlas.

Development

The project targets .NET 10 and uses Native AOT for release builds.

Dependencies are managed through NuGet during development and pinned for reproducible Nix builds.

A developpement environement is available througt nix.

To update the Nix dependency lock file:

nix develop
update-deps

Build the native executable with:

dotnet publish \
  SkyrimSourceExporter/SkyrimSourceExporter.csproj \
  --configuration Release \
  --runtime linux-x64

Arm64 is also supported. Use the right runtime id for your target.

Scope

Generate a static website containing all books from Skyrim.

Books should be readable in every language supported by the game. When a book has an in-game location, its position should be displayed on the map.

The first version targets Skyrim's base game data. The data pipeline should remain extensible to mods and other Elder Scrolls games.

Roadmap

v0 - Books

  • Extract string tables from BSA archives.
  • Parse top-level BOOK GRUP records.
  • Extract book metadata and localized text.
  • Generate the static website.

v1 - World locations

  • Parse REFR, VendorList, and Container records.
  • Resolve book locations through WRLD / CELL.
  • Generate the Tamriel map from LOD_LOWLEVEL data.

v1.5-experimental - Interiors

  • Generate maps for interiors and locations without terrain data.
  • Parse the minimum NIF data required for this.
  • Use Blender in headless mode for rendering.

v2 - Mods

  • Support custom load orders.
  • Support standard mods.
  • Support total conversions where the required data can be resolved.

v2.5 - Older games

  • Add support for older Elder Scrolls games.
  • Reuse the existing parsing and generation pipeline where possible.

Future

  • Evaluate support for ESO.

Non-goals

  • Runtime game integration.
  • In-game UI or plugins.
  • Editing game files.
  • Hosting a dynamic backend.
  • Reproducing the game engine's rendering.
  • Supporting every mod-specific format from the start.

Technical constraints

  • The output should be fully static.
  • Game data should be processed offline.
  • The generated site should not require the original game files at runtime.
  • Parsing should rely on the game data format rather than hardcoded book lists.
  • Language support should come from the game's string tables.
  • Location data should be derived from records rather than manually curated coordinates.
  • New games and mods should be addable without rewriting the whole pipeline.

This project does not distribute Skyrim game assets.

Users are expected to provide their own legally obtained game files.

The exported content is derived from those files and may contain copyrighted game text and data. Check the applicable game and mod licenses before redistributing generated output.

Credits

This project would not be possible without the work of the Elder Scrolls modding community.

In particular, thanks to:

  • UESP and their contributors
  • Mod authors and contributors who reverse-engineered and documented the game formats.
  • Everyone maintaining tools and documentation around the Elder Scrolls games.

Status

This project is experimental and under active development.

The current focus is the v0 book extraction pipeline. File formats and exported data should be considered subject to change.