Skip to content
Projects

HoloPatcher

A cross-platform rewrite of TSLPatcher, the mod installer the KOTOR community depends on and nobody could maintain.

Maintained guideWritten
Role
Author and maintainer
Stack
Python, PyKotor
Read the source

The problem

Almost every KOTOR mod ships with TSLPatcher. It is the installer that merges a mod into an existing game directory without stomping on whatever else you already have, and the whole ecosystem is built on it.

It was also Windows-only, closed to changes in practice, and a black box when it failed.

So people kept trying to replace it. I watched several of them start a rewrite from scratch, get roughly halfway, decide it was not good enough, and delete the repository. Then the next person started over from nothing and hit the same wall in the same place.

Constraints

  • Existing mods cannot be asked to change. Compatibility with what modders already ship is the requirement, not a nice-to-have.
  • Mod authors are not developers. If installing a mod gets harder, the project has failed regardless of how clean the internals are.
  • It has to run where players are, which now includes macOS and Linux.

What I built

A rewrite in Python, built on PyKotor so the format handling is shared rather than reimplemented, and released publicly from the start.

Leaving it public from day one was deliberate, and it is the part I would defend hardest. A half-finished installer that anyone can pick up beats a private one that gets deleted at the eighty percent mark. That belief has its own page.

Outcome

The rewrite exists, it is maintained, and it did not get deleted at the halfway point. It installs mods packaged for TSLPatcher on macOS and Linux, which was not possible before.

One adoption number, because this one is sourced: the HoloPatcher release page on DeadlyStream shows 19,594 downloads as of August 2026. Full disclosure: that file page is hosted under the original author's account — I took over maintenance of the project, the hosting is theirs. The figure is the download counter on a public page anyone can go and check, which is the only kind of figure I will print.