gurrenm3 / BTD-Mod-Helper

A powerful and easy to use API for modding BTD6, BATTD, and other Ninja Kiwi games.
https://gurrenm3.github.io/BTD-Mod-Helper/
GNU General Public License v3.0
179 stars 120 forks source link

Game Shutdown After Installing Ascended Upgrades #115

Closed cyrus01337 closed 11 months ago

cyrus01337 commented 1 year ago

Unsure if this is a problem with this mod or Ascended Upgrades, upon installing it the game crashes. Upon restarting the game, the mod is installed.

This doesn't seem to be an issue with other mods and I was wondering what I could do to confirm this as it seems the terminal (for what I'm assuming is for Melon Loader to initialise prerequisites then hook into BTD6) also closes alongside the game, leaving no way to identify the issue (that I can see).

cyrus01337 commented 1 year ago

Have confirmed with the author of Ascended Upgrades, this is a problem with the mod helper.

Any direction that can be taken/details that can be provided in order to help contribute to a solution?

doombubbles commented 1 year ago

The most important thing needed for a solution is reproducibility. Crashing when downloading is something that's been an intermittent bug report since the functionality was added, and I've even seen it myself, but it always ends up working again the next couple dozen times afterwards. The crashes don't give any information likely because they're related to asynchronous methods and il2cpp doesn't have a great track record on those when it comes to clarity.

cyrus01337 commented 1 year ago

Thinking aloud, wondering if there is a way to wrap around il2cpp or perhaps hook into it so that (what I'm assuming is being used are) coroutines redirect their errors to stderr. I'm personally not familiar with the inner workings of C++ nor their many affiliated libs, but this is the approach I would try to take and if there is any way to either detect cleanup or react to crashes from a master process then that's also a door that may have yet to be opened.

Of course this is all speculation from a Python programmer, a lot of the work is done for me and so I would not blame anyone if they believed my proposed "solutions" are unideal/non-trivial to implement. :yum: