From 4a9fb7081b6e7976398f1cfd98a9bd422af00b9b Mon Sep 17 00:00:00 2001 From: Jonathan Feenstra <26406078+JonathanFeenstra@users.noreply.github.com> Date: Sun, 19 Apr 2026 22:30:31 +0200 Subject: [PATCH 1/3] [Baldur's Gate 3]: Fix UnicodeEncodeError when writing to mod settings --- games/baldursgate3/bg3_utils.py | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/games/baldursgate3/bg3_utils.py b/games/baldursgate3/bg3_utils.py index 958d173..79c8a7c 100644 --- a/games/baldursgate3/bg3_utils.py +++ b/games/baldursgate3/bg3_utils.py @@ -250,7 +250,8 @@ def retrieve_mod_metadata_in_new_thread(mod: mobase.IModInterface): if mod.name() in metadata ) + self._mod_settings_xml_end - ) + ), + encoding="utf-8", ) qInfo( f"backing up generated file {self.modsettings_path} to {self.modsettings_backup}, " From 3586bcd38554633f170a6be8eda3d6e0d3fbc740 Mon Sep 17 00:00:00 2001 From: Jonathan Feenstra <26406078+JonathanFeenstra@users.noreply.github.com> Date: Sun, 19 Apr 2026 22:59:15 +0200 Subject: [PATCH 2/3] [Baldur's Gate 3]: Fix ValueError due to assumption that MO2 is installed in home directory --- games/game_baldursgate3.py | 14 ++++---------- 1 file changed, 4 insertions(+), 10 deletions(-) diff --git a/games/game_baldursgate3.py b/games/game_baldursgate3.py index 4898696..6f1ff22 100644 --- a/games/game_baldursgate3.py +++ b/games/game_baldursgate3.py @@ -190,9 +190,7 @@ def _on_finished_run(self, exec_path: str, exit_code: int): moved: dict[str, str] = {} for path in self.utils.overwrite_path.rglob("*.log"): try: - moved[str(path.relative_to(Path.home()))] = str( - (self.utils.log_dir / path.name).relative_to(Path.home()) - ) + moved[str(path)] = str((self.utils.log_dir / path.name)) path.replace(self.utils.log_dir / path.name) except PermissionError as e: qDebug(str(e)) @@ -201,9 +199,7 @@ def _on_finished_run(self, exec_path: str, exit_code: int): if path.name == "log.txt": dest = self.utils.log_dir / f"{path.parent.name}-{path.name}" try: - moved[str(path.relative_to(Path.home()))] = str( - dest.relative_to(Path.home()) - ) + moved[str(path)] = str(dest) path.replace(dest) except PermissionError as e: qDebug(str(e)) @@ -230,10 +226,8 @@ def _on_finished_run(self, exec_path: str, exit_code: int): for folder in sorted(list(fdir.walk(top_down=False)))[:-1]: try: folder[0].rmdir() - removed.add(folder[0].relative_to(Path.home())) + removed.add(folder[0]) except OSError: pass if cat is not None and cat.isDebugEnabled() and len(removed) > 0: - qDebug( - f"cleaned empty dirs from {fdir.relative_to(Path.home())} {removed}" - ) + qDebug(f"cleaned empty dirs from {fdir} {removed}") From 539af2e32b3d59da05bafa2edf246ffb212b3d63 Mon Sep 17 00:00:00 2001 From: Jonathan Feenstra <26406078+JonathanFeenstra@users.noreply.github.com> Date: Sun, 19 Apr 2026 23:00:25 +0200 Subject: [PATCH 3/3] Format with black --- games/game_divinityoriginalsin.py | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/games/game_divinityoriginalsin.py b/games/game_divinityoriginalsin.py index 435846e..bf3feb9 100644 --- a/games/game_divinityoriginalsin.py +++ b/games/game_divinityoriginalsin.py @@ -32,8 +32,6 @@ class DivinityOriginalSinGame(BasicGame): def init(self, organizer: mobase.IOrganizer): super().init(organizer) self._register_feature( - BasicGameSaveGameInfo( - lambda s: s.with_suffix(".png") # Not confirmed - ) + BasicGameSaveGameInfo(lambda s: s.with_suffix(".png")) # Not confirmed ) return True