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

Workspace packages

  • PyKotor publishes the pykotor package, exposes pykotor and pykotorcli console scripts, and declares bioware-kaitai-formats, defusedxml, kaitaistruct, and ply as core dependencies. [PyKotor pyproject.toml]
  • PyKotor implements installation discovery and resource search in pykotor.extract.installation, defines engine/resource typing in pykotor.resource.type, and keeps format readers and writers under pykotor.resource.formats. [pykotor.extract.installation, pykotor.resource.type, pykotor.resource.formats]
  • HoloPatcher publishes the holopatcher console script, depends on pykotor[encodings,updater], and describes itself as a faster, cross-platform alternative to TSLPatcher. [HoloPatcher pyproject.toml]
  • HoloPatcher routes install, uninstall, and validate requests 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-toolset application, standalone editor entry points such as are-editor, mdl-editor, utc-editor, tpc-editor, and twoda-editor, and standalone applications such as module-designer and indoor-builder. [Holocron Toolset pyproject.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 .erf are mapped to concrete editor classes and launcher names. [toolset.gui.editors.standalone]
  • KotorDiff publishes the kotordiff console script as a thin package over shared pykotor.diff_tool functionality. [KotorDiff pyproject.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 .ksy specifications are maintained in the upstream OpenKotOR/bioware-kaitai-formats repository; that split matches Kaitai Struct's own documented model, where .ksy specifications are compiled into language-specific parsers by the Kaitai compiler and loaded through target-language runtime libraries. [workspace bioware-kaitai-formats README, upstream OpenKotOR/bioware-kaitai-formats, Context7: Kaitai Struct overview]

Core reference pages

Learning paths

Workflow guides

Preserved source documents

Cross-reference: other tools and engines

See also