About This File
Please see http://github.com/th3w1zard1/KOTORModSync for the main repo.
Please report any bugs or problems you encounter. While I test this heavily, it's difficult to find any and all problems when incorporating 200+ mod's instructions across dozens of operating systems and platform combinations. If you happen to notice something odd or out of place, please report them.
KOTORModSync is a multi-mod installer for KOTOR games that makes it easier to install and manage mods.
I usually install the Reddit mod build every year or so. The process takes about an hour and it's repetitive moving files, running tslpatcher, deleting specific files, and occasionally renaming some files. The last time I installed the modbuild I made a mistake on a single different step, 3 times in a row. Most mistakes require a full restart from the beginning. This is tedious, so I decided to create an installer creator in C# to simplify the process.
Goals
Mod creators work really hard on their mods. It's the least we can do to install them and use them, right? However, who wants to reinstall to vanilla and spend several hours reinstalling mods, just to add 1 or 2 extra mods on top of it? Other mod managers I've tried were either too difficult to configure, require significant changes to a hard-to-understand configuration file, or only provided limited functionality for defining new mods. KOTOR mods definitely can have complex dependency relationships with each other in regard to compatibility, due to the nature and age of TSLPatcher.
Usage
If you are an end user just wanting to install some mods, simply load up the instruction files provided, choose the mods you want from the left list and any options, and press 'Start main install' Watch Xuul's tutorial video here: Effortless Modding with Kotor Mod Sync: The Ultimate Guide for Star Wars KOTOR Mods (youtube.com)
If you are a mod developer, this program contains a full-blown instruction editor that'll allow you to quickly create instructions for your mod and define its compatibility with other mods. See Dependencies/Restrictions and InstallBefore/InstallAfter explanation - Pastebin.com for more information. See the video tutorial here: Creating involved instructions for KOTORModSync - YouTube
Features
- Can install the https://kotor.neocities.org/ mod builds in about 20 minutes from a vanilla install.
- Supports TSLPatching on mac/linux without wine!
- Select the individual mods you want for an install - the dependencies and incompatibilities will automatically be chosen and sorted. This means end users don't have to worry about specific instructions regarding other mods in the list.
- All the compatibility steps are handled internally by KOTORModSync and the default instructions files provided here. An end user simply can select the mods they want to install in the left list, and any customizations if they like, and simply press 'Install All' to have everything installed automatically.
- This program has a built-in GUI editor and an installer packed into one. Modbuild creators can create instructions with little to no knowledge of the format and easily share them with end users. End users can install everything from the instruction file with a simple click of a button. Edit any instructions and verify the configuration with built-in tools.
- Some support to dry run an install.
- A flexible configuration editor and parser utilizing TOML syntax. This is very user-friendly and similar to INI which TSLPatcher already uses and most modders are used to.
- Create instructions files with complex dependency structures for multiple mods, and have end users install everything exactly according to the instructions created. No more manually copying/deleting files: KOTORModSync handles all of that for your end user.
Platforms
KOTORModSync is a cross-platform 32-bit and 64-bit .NET application. It is compatible with the following operating systems:
- Windows 7 and 8: Compatible if running .NET Framework 4.6.2 or higher.
- Windows 10 and 11: Fully compatible with any Windows release.
- Linux and Mac: Fully compatible - choose one of the two that match your operating system.
Users do not need to download any additional runtimes: everything is self-contained within the application.
Linux
You may need additional X11 libraries. In order to get this working on WSL, for example, I had to install the following packages:
sudo apt install libsm6 libice6 libx11-dev libfontconfig1 libx11-6 libx11-xcb1 libxau6 libxcb1 libxdmcp6 libxcb-xkb1 libxcb-render0 libxcb-shm0 libxcb-xfixes0 libxcb-util1 libxcb-xinerama0 libxcb-randr0 libxcb-image0 libxcb-keysyms1 libxcb-sync1 libxcb-xtest0
Then you can simply run in a terminal like this:
./KOTORModSync
If you run into problems with the Linux or Mac builds, please contact me and I'll try to get a fix ready for the next release.
Credit
Snigaroo
This man saved me a countless amount of hours. I'd still be struggling through game glitches and mod-specific instructions I didn't understand. Actually, I'd probably still be on Dantooine trying to determine why I'm getting visual glitches and crashes which he solved with the one-word message 'grass'.
Cortisol
Created HoloPatcher and the PyKotor library that KOTORModSync uses to patch mods. These projects are the main reason KOTORModSync can be supported on Mac/Linux. While the PyKotor/HoloPatcher projects have had some issues, this guy was more or less available for comment if I had questions on how I could fix any remaining problems myself.
JCarter426
There were so many KOTOR-specific things to learn, without his help I'd still be trying to deserialize encapsulated resource files. His time and patience were incredibly useful to the project and this project would be impossible without him.
Testers:
Lewok from r/KOTOR
Thank you for helping test that obnoxious UAC elevation problem legacy Windows apps like TSLPatcher have.
Other notable users
Fair-Strides
Provided the perl source code of TSLPatcher on GitHub, and generally maintained the TSLPatcher project in Stoffe's absence.
Stoffe
Creator of TSLPatcher
Thank you to the entire KOTOR modding community for what you do.
KOTORModSync - Official Documentation.txt
KOTOR1_Full.tomlKOTOR2_Full.toml
KOTOR1_Spoiler_Free.tomlKOTOR2_Spoiler_Free.toml
KOTOR1_Mobile_Full.tomlKOTOR2_Mobile_Full.toml
What's New in Version v0.9.1 See changelog
Released
v0.9.1
- Fixed/updated some UI things that were bothering me
- Speed optimizations by adding more multithreaded instructions.
v0.9.0
## What's Changed
* Add customization, update Avalonia, improve UI editor by @th3w1zard1 in https://github.com/th3w1zard1/KOTORModSync/pull/24
- Update UI to Avalonia 11
- Some mods had descriptions or mod website links that were cut off or nonexistent, I have manually gone by hand and fixed all the remaining ones in both k1 and k2.
- Each mod will now allow customizations, where each option can use the same restrictions/dependencies/install after/install before lists as a mod. Please see the instructions files provided for examples.
- Allow parsing of Namespaces.ini in the GUI editor, allows quick selection of a tslpatcher option in the instruction creator.
- Raw editor QOL changes: Will autodetect changes and prompt the user to avoid losing changes, and added other safeguards to ensure a smooth user experience overall.
- Editor will now auto-update when swapping between tabs
- Other fixes/QOL changes.
+ If a GUID doesn't correspond to a component (e.g. if you plan to add a component later and need to add a guid dependency), the instruction will respect that the component (mod/option) wasn't found, and won't run that instruction. Fixes the handmaiden/disciple same-gender romance mod.
+ Fix out-of-memory errors in the Output window.
+ GUI now won't hang during Execute or TSLPatcher actions
**Full Changelog**: https://github.com/th3w1zard1/KOTORModSync/compare/v0.8.4...v0.9.0
v0.8.4
- Fix critical issue with the `move` action caused by v0.8.3
v0.8.3
- Fix bug with Delete action erroring when files don't exist
- Fix problem with validators checking for null instead of an empty string.
- Fix ModLink problem in document generation.
- Fix issue with TSLRCM instruction not running correctly reported here: https://github.com/th3w1zard1/KOTORModSync/issues/19
- Set PyKotorCLI as default patcher.
v0.8.2
- Fix crash that could happen if a download link was an invalid URI in the instruction file
- Fix bug with pykotorcli on Linux/Mac where it'd always say 'missing package'
- 'ModLink' is now a list instead of a single string, and will now support multiple download links.
- When saving an instruction file, we don't save the empty keys anymore, resulting in a cleaner and smaller file.
- Default to Summary tab when click-loading a mod
- Refactor some serializers
**Full Changelog**: https://github.com/th3w1zard1/KOTORModSync/compare/v0.8.1...v0.8.2
v0.8.1
Forgot to upload source for v0.8.0 so i released v0.8.1 to get back on track. Whoops.
- Add 'Summary' tab
- Rename 'Install Selected Mod' to 'Test Install Single Mod' to reduce confusion on which install button to click.
v0.8.0
GUI enhancements.
## What's Changed
* Add a search box filter to the list of mods. by @th3w1zard1 in https://github.com/th3w1zard1/KOTORModSync/pull/20
Other fixes/additions:
- Fix issue where dependency comboboxes wouldn't work in the editor if the instructions file didn't have the lists included.
- Output Window now shows earlier log messages when opened or reopened.
- Output window now has a max size of 1000 lines, meaning it won't slow down during an install anymore.
- Editor will *finally* scroll to the size of your window, instead of hard-wrapping at 600 pixels.
- Added install indexes to the left list.
- Remove nested mods from the left list.
- Added a maximize button
- Aligned some ui things
- restyled the output window.
**Full Changelog**: https://github.com/th3w1zard1/KOTORModSync/compare/v0.7.2.01...v0.8.0
v0.7.2.01
- Fix bug with comboboxes not showing the full component list
- Fix UI glitch where clicking a combobox causes the whole window to move
v0.7.2
TSLPatcherCLI has been removed from the project in favor of PyKotor.
v0.7.1
- Improve UI by handling GUIDs internally. Allows users to quickly add any component to any dependency list through a dropdown, rather than manually typing out that horrible GUID.
- Fix bug with some styling that wouldn't change even after selecting a new theme
- Fix bug with some textboxes not updating immediately after changes were made (such as browsing source files using the directory browser)
- Improved logging
v0.6.2
Add CLI to reduce user input. Supports TSLPatcher and PyKotor.
v0.6.1
- Potentially fix Help I Mod Sync have a problem and I don't know what Is it! · Issue #11 · th3w1zard1/KOTORModSync (github.com)
- Fix problem with `DelDuplicate` action where it would only check for case-sensitive duplicates ( Many thanks to user Lewok2007 for finding this problem )
- Tweaked highlight color of the 'K1-style' theme
- Other small fixes and rephrased logging.
v0.6.0
This release focuses on allowing the user to choose the individual mods to be installed from the config. It automatically selects dependencies, and automatically deselects conflicts. We also define 'InstallBefore' and 'InstallAfter' keys that directly determine the order of install operations. Other minor bugfixes and UI improvements were added.
v0.5.03
Fix undocumented issue with ArchiveFactory library observed on the .NET Framework 4.6.2 version for win7. This issue affects the 'extract' action. If you experience this on another build (e.g. the net6 win10 or linux), this release will fix it.
- With version v0.9.1:
- Download