-
Notifications
You must be signed in to change notification settings - Fork 6
Home
PyKotor is a source-available KotOR and TSL modding toolchain. It exists to make the ecosystem less fragmented: one place for file-format documentation, installer behavior, tool workflows, and implementation-backed reference material that can be improved by the community instead of disappearing into forum archaeology.
The documentation is organized around what you are trying to do, not around whichever executable or legacy tool you happened to open first. Start from the table below, then follow the deeper format and engine-reference pages when you need exact behavior.
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]
| 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 |
- PyKotor is the library and CLI foundation: parsers, writers, extraction helpers, automation commands, and format conversion.
- HoloPatcher is the safe installer layer for merge-sensitive resources like 2DA, TLK, and GFF.
- Holocron Toolset is the GUI editing layer for modules, resources, and area content.
- KotorDiff is the comparison layer for install state, emitted patch data, and regression checking.
That split is deliberate. The goal is not “use only PyKotor tools forever”; the goal is to make format knowledge and mod workflows portable across tools, while still giving you a modern stack when you want one.
-
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. [workspacebioware-kaitai-formatsREADME, upstreamOpenKotOR/bioware-kaitai-formats]
- Concepts explains resource resolution order, override behavior, BIF/KEY, MOD/ERF/RIM, ResRef, GFF, 2DA, and language IDs.
- Resource formats and resolution is the wiki index for extensions, resource type IDs, and format entry pages.
- Installing Mods with HoloPatcher is the player-facing install and troubleshooting guide.
- Mod Creation Best Practices is the author-facing compatibility and distribution guide.
- Reverse Engineering Findings is the technical reference hub for engine behavior that matters to tool authors and advanced modders.
- Wiki Conventions defines editorial rules for structure, evidence placement, preserved-source handling, and link style.
- 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 → the relevant archive or preserved-source page only when you need provenance
- Installing Mods with HoloPatcher for player-facing install and troubleshooting steps
- Mod Creation Best Practices for compatibility, packaging, and release discipline
- HoloPatcher README for Mod Developers for the modern patcher-authoring workflow
- TSLPatcher data syntax, TSLPatcher GFF syntax, and TSLPatcher install and hack syntax when you need exact INI section behavior
- The Bioware Aurora family preserves official BioWare Aurora Engine documentation: Core Formats, Module & Area, Creature, Items, Economy & Narrative, Spatial & Interactive, Conversation.
- TSLPatcher's Official Readme is the primary historical and technical source for TSLPatcher behavior.
PyKotor is one part of a larger KotOR tooling ecosystem. This section is a compact directory to adjacent projects, not an attempt to duplicate their documentation.
- xoreos is a C++ Aurora/Odyssey/Eclipse reimplementation with KotOR support.
- reone is a community-maintained modern C++ KotOR engine.
- KotOR.js is a TypeScript/WebGL engine implementation.
- NorthernLights and KotOR-Unity are Unity/.NET-based engine projects.
- xoreos-tools provides CLI extraction and conversion tools for Aurora-family formats.
- Kotor.NET, BioWare.NET, and Rakata are alternative format-parsing stacks.
- kotorblender, mdlops, tga2tpc, DLZ-Tool, and WalkmeshVisualizer cover common 3D and asset workflows.
- HoloLSP, nwscript-mode.el, and Vanilla_KOTOR_Script_Source are useful script-development references.
- KotorMCP exposes installation, archive, module, reference-tracing, and resource-oriented MCP tooling on top of PyKotor.
- ToolsetData is a source-backed kit-data repository used by toolset-adjacent workflows.
- xoreos-docs, bioware-kaitai-formats, and phaethon are useful cross-checks for format and archive behavior.
- HoloPatcher.NET, Kotor-Patch-Manager, KotORModSync, StarForge, and KotorModTools are adjacent modding tools.
- sotor, KSELinux, KotOR-Save-Editor, and kotor-savegame-editor cover save editing.
- SithCodec and SWKotOR-Audio-Encoder cover audio-focused workflows.
- K1_Community_Patch, TSL_Community_Patch, KOTOR-utils, KotOR-Bioware-Libs, kotor_combat_faq, and ds-kotor-modding-wiki are useful adjacent references.
- KOTORMax and HoloPazaak are related OpenKotOR-side projects.
Older communities still matter for release history, workflow pitfalls, and examples that never became formal documentation.
| Source | Why it matters | How to use it |
|---|---|---|
| DeadlyStream | Primary KotOR modding hub for releases, tutorials, tool discussions, and troubleshooting threads. | Use for workflow context, release history, and real-world modder reports; keep normative format semantics on this wiki. |
| KOTOR Community Portal | Community-maintained landing page for FAQs, troubleshooting links, and player-facing resource directories. | Use its FAQ and links pages for player support context and discovery. Exclude its mod-build recommendation lists when writing normative wiki guidance here. |
| LucasForums Container | Wayback-backed reconstruction of the original LucasForums communities. | Use for historical TSLPatcher, tool, and modding discussions when the wiki needs provenance or original author commentary. |
| LucasForums Archive | Alternate archive of Editing/Modding, Holowan Laboratories, and tutorial threads. | Use as historical support, especially when a thread is easier to cite or search here than in the container. |
| PCGamingWiki for KotOR and KotOR II | Player-facing path, launcher, widescreen, and install-layout guidance. | Use for player environment context only; cross-check binary or resource-system claims against Concepts, KEY File Format, and the relevant format pages. |
| r/kotor | Large active player and mod-user community with install guides, troubleshooting posts, and community-maintained build notes. | Use as workflow context and to discover common failure cases; do not treat Reddit posts as authoritative for file formats or engine behavior. |
| Holowan Laboratories / MixNMojo mirrors | Early KotOR modding discussion history. | Use when newer documentation does not preserve the original context for a tool, technique, or format note. |
| Other general forums | Current troubleshooting and installation chatter. | Use as workflow context or discovery paths, not as the primary source for file-format or engine behavior. |
- xoreos-docs preserves official BioWare specifications, Torlack reverse-engineered notes, and auxiliary format material used throughout Aurora-family reverse engineering.
- nwn-docs is helpful for older Aurora-family background where KotOR behavior inherits the same storage conventions.
- bioware-kaitai-formats provides Kaitai Struct specifications for many BioWare and KotOR formats and is useful for parser cross-checking.