Skip to content

Releases: OpenKotOR/PyKotor

Holocron Toolset v3.1.3 - Module Designer Hotfix

04 Apr 02:53

Choose a tag to compare

Bug Fixes

  • Fix Module Designer crash: Guard against \NoneType\ when _getLyt()\ or _getGit()\ returns \None, preventing the \AttributeError: 'NoneType' object has no attribute 'rooms'\ crash during rendering.
  • Fix app freeze on error: Wrap \paintGL\ rendering in try/except and pause the render loop on failure, preventing infinite error dialogs that made the application impossible to close (required PC restart).

Details

The Module Designer's OpenGL renderer could crash with a repeating error dialog when a module's LYT or GIT resource was missing or failed to load. The error occurred during \�uildCache()\ in the render loop, and because Qt calls \paintGL\ every frame, the exception would repeat indefinitely, blocking app closure.

Files Changed

  • \Libraries/PyKotorGL/src/pykotor/gl/scene.py\ - Null guards in \�uildCache()\
  • \Tools/HolocronToolset/src/toolset/gui/widgets/renderer/module.py\ - Exception handling in \paintGL()\

HoloPatcher 1.80

10 Dec 08:57

Choose a tag to compare

HoloPatcher 1.80 Pre-release
Pre-release

Release after v1.70 experiment. Removed cefpython3 and pypandoc integration. Clean separation of CLI and GUI functionality.


Migrated from: NickHugi/PyKotor#v1.80-patcher
Original published: 2025-10-31T21:51:17Z
Original author: @th3w1zard1

Note: Release date cannot be preserved via GitHub API. This release was recreated to maintain chronological order.

v1.1.0b1-kotordiff

10 Dec 08:57

Choose a tag to compare

Full Changelog: NickHugi/PyKotor@v1.0.0b1-kotordiff...v1.1.1-kotordiff


Migrated from: NickHugi/PyKotor#v1.1.0b1-kotordiff
Original published: 2025-10-08T03:33:52Z
Original author: @th3w1zard1

Note: Release date cannot be preserved via GitHub API. This release was recreated to maintain chronological order.

v3.1.2-toolset

10 Dec 08:57

Choose a tag to compare

What's New

  • Path editor now creates bidirectional links automatically, eliminating manual reciprocal edges and preventing zero-connection points.

Full Changelog: NickHugi/PyKotor@v3.1.1-toolset...v3.1.2-toolset


Migrated from: NickHugi/PyKotor#v3.1.2-toolset
Original published: 2025-09-07T18:34:46Z
Original author: @th3w1zard1

Note: Release date cannot be preserved via GitHub API. This release was recreated to maintain chronological order.

v1.0.0b1-kotordiff

10 Dec 08:57

Choose a tag to compare

First official release of KotorDiff on the github page, but plenty of features have been added since the last 0.7:

Main change:

  • Stop using embarrassing input text dialogs from the 70s, actually open the os's file/folder browser. (IFileOpenDialog on windows, zenity on linux, etc)
  • Use git-like diffing for standardized output.

Other changes:

  • Don't prompt for log path (still available in cli)
  • Print prog version on startup

Source code: https://github.com/NickHugi/PyKotor/releases/tag/v1.0.0b1-kotordiff


Migrated from: NickHugi/PyKotor#v1.0.0b1-kotordiff
Original published: 2024-08-30T08:40:28Z
Original author: @th3w1zard1
Original assets: 4 file(s) (not migrated - download from original release)

Note: Release date cannot be preserved via GitHub API. This release was recreated to maintain chronological order.

v1.0.0b1-guiconverter

10 Dec 08:57

Choose a tag to compare

First official release of GuiConverter on the github page:

Main change:

  • Stop using embarrassing input text dialogs from the 70s, actually open the os's file/folder browser. (IFileOpenDialog on windows, zenity on linux, etc)
  • Standardize the 'ALL' option in a way that makes sense. The previous implementation would rename the files by resolution, this will not subfolder the resolution name and dump the output files in there with original names.

Source code: https://github.com/NickHugi/PyKotor/releases/tag/v1.0.0b1-guiconverter


Migrated from: NickHugi/PyKotor#v1.0.0b1-guiconverter
Original published: 2024-08-30T11:05:47Z
Original author: @th3w1zard1
Original assets: 4 file(s) (not migrated - download from original release)

Note: Release date cannot be preserved via GitHub API. This release was recreated to maintain chronological order.

v3.1.1-toolset

10 Dec 08:57

Choose a tag to compare

What's Changed

  • fix a DPI scaling issue preventing the module designer from registering clicks in the correct positions.
  • better handling of potential errors when loading the installation
  • 'check for updates' will now run on its own thread and callback the main thread upon completion.
  • Add experimental filesystem browser, to fix the problem where the toolset wouldn't show all available resources.
  • Expand the new 'Application' settings tab to allow for environment variables to be used.
  • DLG editor: Fix a nuanced bug with saving tsl variables in a k1 installation.
  • Fix case-insensitive pathing on linux/mac for the billionth time

Full Changelog: NickHugi/PyKotor@v3.1.0-toolset...v3.1.1-toolset


Migrated from: NickHugi/PyKotor#v3.1.1-toolset
Original published: 2024-08-24T06:54:51Z
Original author: @th3w1zard1
Original assets: 4 file(s) (not migrated - download from original release)

Note: Release date cannot be preserved via GitHub API. This release was recreated to maintain chronological order.

v1.70-patcher-beta1

10 Dec 08:57

Choose a tag to compare

v1.70-patcher-beta1 Pre-release
Pre-release

What's Changed:

  • Add kw args to Path.stat by @JoeNotCharles in NickHugi/PyKotor#107
  • Replace the main text area with an integrated webview control supporting more advanced styling/animations. uses cefpython3
  • with the aforementioned webview, add pypandoc to the app to convert RTF -> html (deprecated the rte format).
  • (possibly) get headless cli working
  • allow resizing of the main ui
  • everything else PyKotor has added since the last release.

the reason we skipped over v1.60 is because these new pip packages may not be compatible with everyone's hardware. More research needs to be done and various platforms must be tested.

This is NOT a release of the Toga UI. This is an integration of cefpython3's webview/browser directly into the original ui.

Full Changelog: NickHugi/PyKotor@v1.60-patcher-beta4...v1.70-patcher-beta1


Migrated from: NickHugi/PyKotor#v1.70-patcher-beta1
Original published: 2024-08-10T08:31:56Z
Original author: @th3w1zard1

Note: Release date cannot be preserved via GitHub API. This release was recreated to maintain chronological order.

v0.7.2-translator

10 Dec 08:57

Choose a tag to compare

What's Changed

  • handle an abort sequence that can happen when a TGA/TPC is corrupt, during conversion patches.
  • remove obscure features to reduce UI clutter and improve maintainability.
  • refactor internals
  • General performance improvements to core code.

Full Changelog: NickHugi/PyKotor@v0.7.0-translator...v0.7.2-translator


Migrated from: NickHugi/PyKotor#v0.7.2-translator
Original published: 2024-07-12T20:54:26Z
Original author: @th3w1zard1
Original assets: 4 file(s) (not migrated - download from original release)

Note: Release date cannot be preserved via GitHub API. This release was recreated to maintain chronological order.

v3.1.0-toolset

10 Dec 08:57

Choose a tag to compare

What's Changed

  • Add LTREditor to toolset by @th3w1zard1 in NickHugi/PyKotor#104
    LTR files are the name randomizers used in the character creator

  • Add option to download scripts from the Vanilla Script Source repository as an alternative to decompiling with nwnnsscomp

  • Since we've been getting complaints that pyqt5's opengl widget doesn't work on various platforms/setups, there is now an experimental tab in the Settings window. Please use these cautiously, and only if you need them and understand how they work.

  • Various numerous QOL updates

UI changes:

  • DPI scaling support. This required refactoring most if not all UIs to no longer use fixed sizes. please report any major alignment issues or bugs preventing you from using an editor/widget.
  • When an unexpected error occurs, a message box will now pop up automatically. The old behavior would log it without notifying the user.
  • Default text size increased and global application font set to Roboto
  • 9 brand new themes. Some of the themes do not play well with the above change (e.g. breeze) please report any you notice do not work on your platform. Highly recommend QDarkStyle or MaterialDark as a dark theme,
  • Any textbox that represents a filename/resref has been converted into a combobox that is pre-filled with available files and resources. This changes about 80 different textboxes across 9 different editors. This means you don't need to lookup in the Module for the correct scriptname to use, or worry about potential typos in your scriptname: simply utilize the filter box to find available entries. Additionally, right clicking this combobox will show you where that resource can be found in your Installation.
  • Brand new progress bars.
  • Since this release involved deeptesting various editors, also add detailed tooltips for editor fields not immediately obvious from the label.

DLG editor:

  • Completely new UI
  • Labels will now bold/italicize when a non-default value specified, to properly show the modifications of a dlg node from a default.
  • Fixed animations list incorrectly using values like 10040 in the editor instead of 40.
  • Copy/Paste support. Copies directly to the clipboard and even functions properly across multiple different editor windows.
  • Drag/Drop support. Supports dragging and dropping nodes from anywhere, even different editor windows.
  • Pinned Nodes list - allows you to quickly save node information for later use. e.g. if you want to modify that node and have a backup copy, or if you want a way to quickly jump back to that node.
  • Orphaned Nodes list. When the last link to a node is deleted, nodes will automatically appear here. This is done by hooking python's garbage collection and just checking whenever a node is cleaned up. This allows you to simply drag/drop a node in this list back into the original dlg.
  • Find References (experimental): Each dlg node will show a number badge in the bottom left, representing how many times it is linked to in the tree. This feature is still experimental, you'll notice this number increasing/decreasing based on how many nodes are expanded. Since it's possible to have an infinite amount of references (e.g. a circular reference where a child node references the top starterlist), this feature attempts to show you useful references that are not part of the same branch.
  • All nodes in the main tree will have icons next to them representing what kind of non-default information the node contains (e.g. if it has animation data, script, VO, etc).
  • Full settings support: customize text size/color, indentation, spacing, you name it.
  • DockPanels: Organized node information into 3 different dock panels:
    • File Globals: Represents changeable fields for the entire file.
    • Node Fields: Represents changeable fields for the selected node.
    • Bottom dockpanel: An extension of node fields with the most commonly edited fields.
      And since they're dockpanels, reorganize them however you like.

GITEditor/PTHEditor:

  • Mouse move rotations now only consider horizontal movements (standard) instead of vertical+horizontal (led to confusions)

Bug Fixes:

  • Fix an oversight that caused the main toolwindow to be non-resizeable.
  • Fix the TPC viewer showing/saving images upside-down.
  • Fix TPC viewer erroring when saved as PNG
  • Fix clone_module erroring due to missing VIS. It now will output a warning whenever some core module piece is missing.
  • Fix a major bug that could happen occasionally while extracting files to disk, causing nothing to be extracted.
  • Fix a non-lethal but annoying access violation when creating the Windows context menu.
  • Remove the 'check for updates' on startup, which caused toolset startup delays.
  • Remove 'MDL decompile' option in the main UI: it has been broken since its origin.
  • Fix 'Decompile TPC' and 'Extract TXI/Extract MDL textures' actions, broken in an older release awhile back.
  • Fix the ModelRenderer rotation not syncing up with the object after the camera has been moved.

Full Changelog: NickHugi/PyKotor@v3.0.0b9-toolset...v3.1.0-toolset


Migrated from: NickHugi/PyKotor#v3.1.0-toolset
Original published: 2024-07-06T08:36:23Z
Original author: @th3w1zard1
Original assets: 4 file(s) (not migrated - download from original release)

Note: Release date cannot be preserved via GitHub API. This release was recreated to maintain chronological order.