Home - OpenKotOR/PyKotor GitHub Wiki
Welcome to the PyKotor Wiki
PyKotor is a monorepo that currently packages the pykotor, holopatcher, holocron-toolset, and kotordiff tools, and the wiki content shipped with Holocron Toolset is copied from the repo-root wiki/ tree during packaging rather than being maintained as a separate website-only documentation set. [PyKotor pyproject.toml, HoloPatcher pyproject.toml, Holocron Toolset pyproject.toml, KotorDiff pyproject.toml, Holocron Toolset setup.py]
The entry table below is therefore a routing layer over concrete package and wiki content that already exists in this repository: install and troubleshooting pages under the HoloPatcher docs, tool-start pages under the Holocron Toolset docs, format-reference pages under the resource-format docs, and deeper reverse-engineering material under the findings pages. [Holocron Toolset SOURCES.txt, PyKotor CLI_QUICKSTART.md]
This wiki is part of the shipped Holocron Toolset help payload rather than website-only prose: the Toolset build step copies the repo-root wiki/ directory into src/toolset/help/wiki, setuptools package-data includes help/wiki/**/*.md, MANIFEST.in includes the same tree for source distributions, and the generated source manifest lists concrete copied pages such as Home.md, 2DA-File-Format.md, and GFF-File-Format.md. [Holocron Toolset setup.py, Holocron Toolset pyproject.toml, Holocron Toolset MANIFEST.in, Holocron Toolset SOURCES.txt]
Start here
| If you need to... | Start here | Then read |
|---|---|---|
| Install or troubleshoot a mod | Installing Mods with HoloPatcher | Concepts, Mod Creation Best Practices |
| Author a patcher-based mod | HoloPatcher README for Mod Developers | TSLPatcher 2DAList Syntax Guide, TSLPatcher TLKList Syntax Guide, TSLPatcher GFFList Syntax Guide |
| Edit resources in a GUI | Holocron Toolset: Getting Started | Holocron Toolset: Core resources, Holocron Toolset: Module resources |
| Work headlessly or automate a workflow | CLI quickstart | KotorDiff Integration, Explanations on HoloPatcher Internal Logic |
| Understand why a file wins in-game | Concepts | Resource formats and resolution, KEY File Format |
| Look up a binary format or game resource type | Resource formats and resolution | The relevant format page for that extension |
Toolchain map
- PyKotor is the library and CLI layer: its package metadata exposes the
pykotorandpykotorclicommands, and its source tree contains the extract, resource-format, and diff-tool modules that the other packages build on. [PyKotorpyproject.toml,pykotor.extract,pykotor.resource.formats,pykotor.diff_tool] - HoloPatcher is the installer layer: its package metadata exposes the
holopatchercommand, and its entrypoint dispatchesinstall,uninstall, andvalidatethrough the CLI code path before attempting GUI startup. [HoloPatcherpyproject.toml,holopatcher.__main__] - Holocron Toolset is the GUI editing layer: its package metadata exposes the main
holocron-toolsetapplication plus standalone editor entry points, and its source tree contains editor, dialog, and renderer packages for module and resource editing. [Holocron Toolsetpyproject.toml,toolset/gui/editors,toolset/gui/dialogs,toolset/gui/widgets/renderer] - KotorDiff is the comparison layer: its package metadata exposes the
kotordiffcommand, and its runtime is a thin package wrapper over the sharedpykotor.diff_toolcode. [KotorDiffpyproject.toml,pykotor.diff_tool.app]
Workspace packages
- PyKotor publishes the
pykotorpackage, exposespykotorandpykotorcliconsole scripts, and declaresbioware-kaitai-formats,defusedxml,kaitaistruct, andplyas core dependencies. [PyKotorpyproject.toml] - PyKotor implements installation discovery and resource search in
pykotor.extract.installation, defines engine/resource typing inpykotor.resource.type, and keeps format readers and writers underpykotor.resource.formats. [pykotor.extract.installation,pykotor.resource.type,pykotor.resource.formats] - HoloPatcher publishes the
holopatcherconsole script, depends onpykotor[encodings,updater], and describes itself as a faster, cross-platform alternative to TSLPatcher. [HoloPatcherpyproject.toml] - HoloPatcher routes
install,uninstall, andvalidaterequests through its CLI path, otherwise attempts to launch the GUI application and falls back to a warning when GUI execution is unavailable. [holopatcher.__main__] - Holocron Toolset publishes the
holocron-toolsetapplication, standalone editor entry points such asare-editor,mdl-editor,utc-editor,tpc-editor, andtwoda-editor, and standalone applications such asmodule-designerandindoor-builder. [Holocron Toolsetpyproject.toml] - Holocron Toolset keeps its standalone editor registry in
toolset.gui.editors.standalone, where file extensions such as.2da,.utc,.dlg,.mdl,.mdx,.tlk,.tpc,.dds,.rim, and.erfare mapped to concrete editor classes and launcher names. [toolset.gui.editors.standalone] - KotorDiff publishes the
kotordiffconsole script as a thin package over sharedpykotor.diff_toolfunctionality. [KotorDiffpyproject.toml] - KotorDiff drives diff generation through
pykotor.diff_tool.app, which imports installation loading, GFF handling, resource typing, reference caches, TSLPatcher diff generation, and incremental writer support from the shared PyKotor codebase. [pykotor.diff_tool.app] - bioware-kaitai-formats is a workspace package of generated Python parsers, while the authoritative
.ksyspecifications are maintained in the upstreamOpenKotOR/bioware-kaitai-formatsrepository; that split matches Kaitai Struct's own documented model, where.ksyspecifications are compiled into language-specific parsers by the Kaitai compiler and loaded through target-language runtime libraries. [workspacebioware-kaitai-formatsREADME, upstreamOpenKotOR/bioware-kaitai-formats, Context7: Kaitai Struct overview]
Core reference pages
- Concepts
- Resource formats and resolution
- Installing Mods with HoloPatcher
- Mod Creation Best Practices
- Reverse Engineering Findings
Learning paths
- New player: Installing Mods with HoloPatcher -> Concepts -> Resource formats and resolution
- First mod author: HoloPatcher README for Mod Developers -> Mod Creation Best Practices -> TSLPatcher data syntax
- Tool author or contributor: Resource formats and resolution -> Reverse Engineering Findings
Workflow guides
- Installing Mods with HoloPatcher
- Mod Creation Best Practices
- HoloPatcher README for Mod Developers
- TSLPatcher data syntax
- TSLPatcher GFF syntax
- TSLPatcher install and hack syntax
Preserved source documents
- Bioware Aurora: Core Formats, Module & Area, Creature, Items, Economy & Narrative, Spatial & Interactive, Conversation
- TSLPatcher's Official Readme
Cross-reference: other tools and engines
- Engine reimplementations: xoreos keeps dedicated
kotor,kotor2,kotorbase, andodysseyengine directories; reone documents itself as a KotOR and TSL engine project in its README; and KotOR.js exposes launcher, game, forge, debugger, resource, and odyssey-engine trees directly in source. [xoreos/src/engines, reone README,KotOR.js/src/apps,KotOR.js/src/resource,KotOR.js/src/odyssey] - Format and archive stacks: xoreos-tools publishes CLI converters and extractors in its
src/tree, Kotor.NET ships a multi-project solution plus explicit resource-type and model-loading code, and xoreos-docs, phaethon, and bioware-kaitai-formats remain useful cross-check repositories for file-format and archive work. [xoreos-tools/src,Kotor.NET.sln,Kotor.NET/Common/Data/ResourceType.cs,Kotor.NET.Graphics/KotorModelLoader.cs,xoreos-docs/specs,phaethon/src/aurora/erffile.h, upstreamOpenKotOR/bioware-kaitai-formats] - OpenKotOR-side companion tools: KotorMCP's
src/kotormcp/tools/tree currently exposes archive, conversion, discovery, gamedata, installation, module, reference, script, walkmesh, and writing modules; ToolsetData currently publishes onlyavailable_kits.jsonplus akits/tree at the repository root; HoloPazaak ships a concretesrc/holopazaakpackage; and KOTORMax exposes its MaxScript entrypoint plus plugin, script, name, and conversion subtrees underKOTORMax/. [KotorMCP/src/kotormcp/tools,ToolsetDatarepository root,HoloPazaak/src/holopazaak,KOTORMax/KOTORMax] - Save-editor lineage and related asset tools: SotOR is a Rust save editor repository, the Fair-Strides KotOR-Save-Editor repository contains a
kse.plentry script plus packaged assets and distro folders, and kotorblender keeps its Blender add-on underio_scene_kotor. [SotOR README,SotOR/Cargo.toml,KotOR-Save-Editorrepository root,KotOR-Save-Editor/kse.pl,kotorblender/io_scene_kotor]