Recommended Posts

HoloPatcher


HoloPatcher is replacement for the old TSLPatcher tool. HoloPatcher offers an alternative that makes installing mods faster and is backwards compatible with any previous mods using TSLPatcher.

For more inforrmation see:

HoloPatcher is open sourc and can be found on GitHub.

 


 

Share this post


Link to post
Share on other sites

Greetings,

Firstly, congrats with the release of the tool -- and much thanks for sharing it with the community.

Anyway, I wonder if it's possible for the patcher [in the future] to have something like #GetIntbyString# capability?

Basically it'd try to get a ROW/INT value inside a 2DA -- that instead of adding a new row it checks for a value and inject it to the script.

So let's say I have this script here --

Spoiler

void main()
{
	// variables
	string GetIntbyString = "lorem_ipsum";
	int nOld = #GetIntbyString#;
	int nPeragus = 11;
	int nNew = #2DAMEMORY1#;
	int nTelos = 20;
	
	int nParam1 = GetScriptParameter(1);
	switch(nParam1)
	{
		case 0:
			// retain the OLD value, based on the `Resource` label inside `ambientmusic.2DA`
			MusicBackgroundChangeDay(GetArea(OBJECT_SELF), nOld);
			MusicBackgroundChangeNight(GetArea(OBJECT_SELF), nOld);
			// AFTER 11 seconds, change the BGM back to Peragus'
			{
				DelayCommand(11.0, MusicBackgroundChangeDay(GetArea(OBJECT_SELF), nPeragus));
				DelayCommand(11.0, MusicBackgroundChangeNight(GetArea(OBJECT_SELF), nPeragus));
			}
			break;
		case 1:
			// This `case` is newly-added, which purpose is to patch a NEW value for another use-case
			MusicBackgroundChangeDay(GetArea(OBJECT_SELF), nNew);
			MusicBackgroundChangeNight(GetArea(OBJECT_SELF), nNew);
			// AFTER 21 seconds, change the BGM back to Telosian Base'
			{
				DelayCommand(21.0, MusicBackgroundChangeDay(GetArea(OBJECT_SELF), nTelos));
				DelayCommand(21.0, MusicBackgroundChangeNight(GetArea(OBJECT_SELF), nTelos));
			}
			break;
		default:
			break;
	}
}

-- hoped that gave you the picture, and sorry for any misleading caused by it.

The reason for it is to make it possible to update a script that contain old token/value, without having to add new rows to a 2DA.

Much thanks for considering this.

Share this post


Link to post
Share on other sites

Hi thanks for the great tool! I've used it together with KOTORModSync to install a mod list of 100+ mods on Linux with only one tiny hiccup.

Hen installing the mod New_Lightsaber_Blade_Model_TSL 1.0.0 (https://deadlystream.com/files/file/1847-new_lightsaber_blade_model_tsl/) I get the following error when installing the mod.
image.png.d2f894c71030ceeed0177b6d0dd3db82.png
 
Same issue if I try to install with HoloPatcher on it's own so it's not a KOTORModSync issue.

Oddly enough if I proceed the mod appears to install correctly anyways as far as I can tell.

I've looks through the ini files in the mod as I thought it might be an issue with windows newline characters but even if I remove those the issue persists.

Please let me know if there is a better place to submit a trouble report, I was unable to find a git repo for HoloPatcher.

Share this post


Link to post
Share on other sites
On 1/6/2024 at 12:18 PM, DarthParametric said:

It's part of PyKotor - https://github.com/NickHugi/PyKotor

Thanks, I submitted a pull request to fix the issue, that problem was that the info.rtf files are latin1 encoded instead of UTF-8 encoded.

Share this post


Link to post
Share on other sites

It's not working on Mac (OSX Sonoma 14.3.1) see error below. I have pointed the install directory to /Users/<username>/Library/Application Support/Steam/steamapps/common/swkotor, so it's correct. I have also given holopatcher full disk access so it's not a permission issue. Can you help please? 

Here is error log:

[Note] [22:25:42] Loading [Settings] section from ini...
[Note] [22:25:42] Loading [TLKList] patches from ini...
[Note] [22:25:42] Loading [InstallList] patches from ini...
[Note] [22:25:43] Loading [2DAList] patches from ini...
[Note] [22:25:43] Loading [GFFList] patches from ini...
[Note] [22:25:45] Loading [CompileList] patches from ini...
[Note] [22:25:45] [HACKList] section missing from ini.
[Note] [22:25:45] Loading [SSFList] patches from ini...
[Note] [22:25:45] The ConfigReader finished loading the INI
Traceback (most recent call last):
  File "__main__.py", line 1069, in begin_install_thread
  File "__main__.py", line 1156, in _execute_mod_install
  File "pykotor\tslpatcher\patcher.py", line 338, in install
RuntimeError: Chosen KOTOR directory is not a valid installation - cannot initialize ModInstaller.

[Error] [22:25:45] RuntimeError: Chosen KOTOR directory is not a valid installation - cannot initialize ModInstaller.
The installation was aborted with errors

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.