The problem
Knights of the Old Republic stores everything in closed binary formats. Dialogue trees, models, textures, save games, module layouts. None of it was documented by the people who made it, and the game is over twenty years old.
The community worked around that with folklore. Format knowledge lived in forum posts, half of which were wrong, and in a scattering of single-purpose editors that each understood one file type and disagreed with each other about the rest.
Constraints
- No official specification for any of it. Every format had to be worked out from the files themselves.
- Two games, with real differences between them, and mods that target either or both.
- The people who need this are modders, not systems programmers. A library that requires you to understand byte alignment has not solved anything.
- It has to run on Windows, macOS, and Linux, on x86 through arm64, because that is where the community actually is.
What I built
A Python library covering the KOTOR and TSL file formats, with a type-annotated API so an editor can tell you what a field is before you get it wrong.
On top of the library sits Holocron Toolset, a graphical application for the people who want to edit a module rather than write code against it. Both install without a build step, through uvx holocrontoolset, because the setup instructions were themselves a barrier.
The library requires Python 3.8 and up, and runs on all three desktop platforms.
Outcome
Format knowledge that used to be folklore is now executable. If the library parses a file, that is a claim you can check, and when it is wrong someone can file an issue against a specific line instead of arguing about what a wiki page meant.
The maintenance record is in the repository's own history: 6,492 commits of mine between 2023 and 2026, and 46 tagged releases across the library and the tools built on it, counted from git log and git tag as of August 2026.
Holocron Toolset and HoloPatcher both read formats through this library, so a format fix lands in every tool at once.