From 9b9dfd1ac7b8f021dc1639a28e75fa634af2cbed Mon Sep 17 00:00:00 2001 From: Zash Date: Sun, 11 Jan 2026 15:51:00 +0100 Subject: [PATCH 1/2] Cyberpunk: add crash message with tips --- games/game_cyberpunk2077.py | 37 ++++++++++++++++++++++++++++++++++--- 1 file changed, 34 insertions(+), 3 deletions(-) diff --git a/games/game_cyberpunk2077.py b/games/game_cyberpunk2077.py index aad8864..051420e 100644 --- a/games/game_cyberpunk2077.py +++ b/games/game_cyberpunk2077.py @@ -233,9 +233,6 @@ class Cyberpunk2077Game(BasicGame): def init(self, organizer: mobase.IOrganizer) -> bool: super().init(organizer) - print("init") - print(f"{self.gameDirectory().absolutePath()=}") - print(f"{self._gamePath=}") self._register_feature(BasicLocalSavegames(self)) self._register_feature( BasicGameSaveGameInfo( @@ -259,6 +256,7 @@ def init(self, organizer: mobase.IOrganizer) -> bool: ), ) organizer.onAboutToRun(self._onAboutToRun) + organizer.onFinishedRun(self._onFinishedRun) organizer.onPluginSettingChanged(self._on_settings_changed) organizer.modList().onModInstalled(self._check_disable_crashreporter) organizer.onUserInterfaceInitialized(self._on_user_interface_initialized) @@ -431,6 +429,11 @@ def settings(self) -> list[mobase.PluginSetting]: ), True, ), + mobase.PluginSetting( + "crash_message", + ("Show a crash message as replacement of disabled CrashReporter"), + True, + ), mobase.PluginSetting( "show_rootbuilder_conversion", ( @@ -524,6 +527,34 @@ def _onAboutToRun(self, app_path_str: str, wd: QDir, args: str) -> bool: self._modlist_files.update_modlist("archive") return True + def _onFinishedRun(self, path: str, exit_code: int) -> None: + if not self._get_setting("crash_message"): + return + if path.endswith(self.binaryName()) and exit_code > 0: + crash_message = QMessageBox( + QMessageBox.Icon.Critical, + "Cyberpunk Crashed", + textwrap.dedent( + f""" + Cyberpunk crashed. Tips: + - disable mods (create backup of modlist or use new profile) + - clear overwrite or delete at least overwrite/r6/cache (to keep mod settings) + - check log files of CET/redscript/RED4ext (in overwrite) + - read [FAQ & Troubleshooting]({self.GameSupportURL}#faq--troubleshooting) + """ + ), + QMessageBox.StandardButton.Ok, + self._parentWidget, + ) + crash_message.setTextFormat(Qt.TextFormat.MarkdownText) + hide_cb = QCheckBox("&Do not show again*", crash_message) + hide_cb.setToolTip(f"Settings/Plugins/{self.name()}/crash_message") + crash_message.setCheckBox(hide_cb) + crash_message.open( # type: ignore + lambda: hide_cb.isChecked() + and self._set_setting("crash_message", False) + ) + def _check_redmod_result(self, result: tuple[bool, int]) -> bool: if result == (True, 0): return True From e4fbf38308a5df6dc236c7f6360f2ea77f80c5a7 Mon Sep 17 00:00:00 2001 From: Zash Date: Sun, 11 Jan 2026 15:56:52 +0100 Subject: [PATCH 2/2] Cyberpunk plugin version bump 3.0.1 --- games/game_cyberpunk2077.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/games/game_cyberpunk2077.py b/games/game_cyberpunk2077.py index 051420e..ab44b8b 100644 --- a/games/game_cyberpunk2077.py +++ b/games/game_cyberpunk2077.py @@ -200,7 +200,7 @@ def active_mod_paths(self, reverse: bool = False) -> Iterable[Path]: class Cyberpunk2077Game(BasicGame): Name = "Cyberpunk 2077 Support Plugin" Author = "6788, Zash" - Version = "3.0.0" + Version = "3.0.1" GameName = "Cyberpunk 2077" GameShortName = "cyberpunk2077"