Home - OpenKotOR/PyKotor GitHub Wiki
Welcome to the PyKotor Wiki
PyKotor is an LGPL-3.0-or-later monorepo whose published Python packages include pykotor, holopatcher, holocrontoolset, and kotordiff. [PyKotor pyproject.toml, HoloPatcher pyproject.toml, Holocron Toolset pyproject.toml, KotorDiff pyproject.toml]
The Markdown pages in wiki/ are packaged into Holocron Toolset help output through package-data rules for toolset/help/wiki/**/*.md and matching MANIFEST.in includes, so this wiki is part of the shipped desktop toolchain rather than a website-only manual. [Holocron Toolset pyproject.toml, Holocron Toolset MANIFEST.in]
In-repo components
- PyKotor describes itself as a typed Python library for reading, modifying, and writing KotOR engine files, exposes
pykotorandpykotorcliconsole scripts, and depends onbioware-kaitai-formatspluskaitaistructas part of its format stack. [PyKotorpyproject.toml] - PyKotor organizes installation discovery and extraction in
pykotor.extract.installation, resource typing inpykotor.resource.type, and parser/writer implementations underpykotor.resource.formats. [pykotor.extract.installation,pykotor.resource.type,pykotor.resource.formats] - HoloPatcher is packaged as a cross-platform TSLPatcher-compatible installer with a
holopatcherconsole entry point, and its patching flow is implemented throughholopatcher.__main__plus the sharedpykotor.tslpatcher.reader,pykotor.tslpatcher.patcher, andpykotor.tslpatcher.writermodules. [HoloPatcherpyproject.toml,holopatcher.__main__,pykotor.tslpatcher.reader,pykotor.tslpatcher.patcher,pykotor.tslpatcher.writer] - Holocron Toolset is packaged as a PyQt-backed GUI application with script entry points for the full toolset, standalone editors such as
are-editor,mdl-editor,utc-editor, andtwoda-editor, and standalone applications such asmodule-designerandindoor-builder. [Holocron Toolsetpyproject.toml] - Holocron Toolset maps individual resource families to editor classes and file extensions in
toolset.gui.editors.standalone, which is why the wiki includes editor- and workflow-oriented pages in addition to file-format references. [toolset.gui.editors.standalone] - KotorDiff is packaged as a shim console tool over
pykotor.diff_tool, and the runtime application layer imports the diff engine, TSLPatcher data generator, and incremental writer from the shared PyKotor codebase. [KotorDiffpyproject.toml,pykotor.diff_tool.__init__,pykotor.diff_tool.app] - bioware-kaitai-formats is included in this workspace as an installable package of generated Python parsers, while its canonical
.ksyspecifications live in the upstreamOpenKotOR/bioware-kaitai-formatsrepository. [workspacebioware-kaitai-formatsREADME, upstreamOpenKotOR/bioware-kaitai-formats]
Source-backed adjacent projects
- xoreos is a multi-game Aurora/Odyssey engine reimplementation whose engine tree contains dedicated
kotor,kotor2, andkotorbasedirectories undersrc/engines/. [xoreos README,xoreos/src/engines,xoreos/src/engines/kotor,xoreos/src/engines/kotor2] - xoreos-tools is a separate tooling repository with converters and archive utilities such as
gff2xml,tlk2xml,convert2da,unerf,unrim,unkeybif,ncsdis, andncsdecomp, and those tools also appear as concrete source files in itssrc/tree. [xoreos-tools README,xoreos-tools/src] - xoreos-docs is a documentation repository that explicitly collects official BioWare documents, Torlack notes, and partial KotOR model specifications under
specs/, includingkotor_mdl.html. [xoreos-docs README,xoreos-docs/specs,xoreos-docs/specs/kotor_mdl.html] - reone is a focused KotOR and TSL engine project that states its goal as running both games end to end, and its source tree is split between application entry points such as
game,launcher, andtoolkitand libraries such asaudio,graphics,resource,scene,script, andsystem. [reone README,reone/src/apps,reone/src/libs] - KotOR.js describes itself as a TypeScript-based reimplementation of the Odyssey engine and states that the project also includes an early modding suite named KotOR Forge. [KotOR.js README]
- KotOR.js documents a source layout with Electron applications for
launcher,game,forge, anddebugger, a resource layer covering formats such as GFF, ERF, KEY, BIF, RIM, TLK, TPC, and 2DA, anodyssey/subsystem for MDL/MDX and walkmesh parsing, and annwscript/subsystem with separate K1 and K2 opcode definitions. [KotOR.jsPROJECT_STRUCTURE.md,KotOR.js/src/apps,KotOR.js/src/resource,KotOR.js/src/odyssey,KotOR.js/src/nwscript] - Kotor.NET is a multi-project C# solution that includes
Kotor.NET,Kotor.NET.Graphics,Kotor.NET.Patcher,Toolset,Toolset.Desktop,MapBuilder, andMapBuilder.Desktop. [Kotor.NET.sln] - Kotor.NET also carries a resource-type table spanning formats such as MDL, NSS, NCS, ARE, IFO, WOK, 2DA, TLK, GIT, UTC, DLG, UTP, JRL, SSF, LYT, VIS, RIM, PTH, LIP, TPC, MDX, and ERF, and its graphics layer includes a
KotorModelLoaderthat reads MDL/MDX mesh metadata and distinguishes TSL-specific node layouts. [Kotor.NET/Common/Data/ResourceType.cs,Kotor.NET.Graphics/KotorModelLoader.cs] - KotorBlender is a Blender add-on fork that now supports binary MDL import/export, LYT import/export, PTH import/export, lightmap baking, and minimap rendering through the
io_scene_kotorpackage. [kotorblender README,kotorblender/io_scene_kotor] - KOTORMax is a 3ds Max and GMax plugin for Odyssey MDL/MDX import/export, animation work, and related authoring utilities, and its public README states that it writes ASCII MDL files which must then be compiled separately by
mdlopsor a similar tool. [vendoredKOTORMaxREADME, vendoredKOTORMaxsource tree] - MDLOps identifies itself as a cross-platform compiler/decompiler for Odyssey engine model and walkmesh files, with support for binary-model version detection, multiple node types, and PWK/DWK/WOK processing. [vendored
mdlopsREADME] - KotorMCP is an MCP server built on top of PyKotor that exposes installation detection, installation loading, resource listing and description, archive reads, module inspection, reference tracing, and
kotor://resource URIs for passive context injection. [KotorMCP README,kotormcp/tools/installation.py,kotormcp/tools/discovery.py,kotormcp/tools/refs.py,kotormcp/mcp_resources.py] - SotOR is a Rust save editor for KotOR 1 and 2 that targets desktop platforms and the browser, uses a built-in game database, and explicitly positions itself as a modern alternative to KSE. [SotOR README]
- KotOR Savegame Editor and KotOR-Save-Editor are both Perl-based save editors in the KSE lineage, with one repository documenting a repackaged build with extra functionality and another tracking a v4.0 codebase for KotOR 1 and 2 saves. [
kotor-savegame-editorREADME, vendoredKotOR-Save-EditorREADME]
Page families
- Runtime and format reference: Concepts, Resource-Formats-and-Resolution, Container-Formats, 2DA-File-Format, GFF-File-Format, Audio-and-Localization-Formats, Texture-Formats, Level-Layout-Formats, MDL-MDX-File-Format, NCS-File-Format, NSS-File-Format, and LTR-File-Format.
- Installer and patch-data workflows: Installing-Mods-with-HoloPatcher, HoloPatcher, HoloPatcher-README-for-mod-developers, Explanations-on-HoloPatcher-Internal-Logic, KotorDiff-Integration, TSLPatcher-Data-Syntax, TSLPatcher-GFF-Syntax, TSLPatcher-Install-and-Hack-Syntax, and TSLPatcher's-Official-Readme.
- Toolset and editor workflows: Holocron-Toolset-Getting-Started, Holocron-Toolset-Core-Resources, Holocron-Toolset-Module-Resources, Holocron-Toolset-Module-Editor, Holocron-Toolset-Map-Builder, Indoor-Map-Builder-User-Guide, Indoor-Map-Builder-Implementation-Guide, and Qt-ItemView-Selection-and-RobustTableView.
- Reverse engineering and preserved-source material: reverse_engineering_findings, its archive pages, Bioware-Aurora-Core-Formats, Bioware-Aurora-Module-and-Area, Bioware-Aurora-Creature, Bioware-Aurora-Items-Economy-and-Narrative, Bioware-Aurora-Spatial-and-Interactive, and Bioware-Aurora-Conversation.