DazedNConfused- / CDDA-Game-Launcher

A Cataclysm: Dark Days Ahead launcher with additional features
MIT License
72 stars 11 forks source link

Updating doesn't restore manually added mods #34

Open helpfulchicken opened 2 years ago

helpfulchicken commented 2 years ago

Describe the bug If you have a 'cdda/mods/' folder, you can put your mods in it and they work. That's fine. But when you update the game with this launcher, that mods folder is not repopulated after the update. They get copied into the 'previous_version' folder, but don't get retrieved at the end of the update process.

To Reproduce Steps to reproduce the behavior:

  1. Start with an out of date cdda build
  2. Add some mods to a cdda/mods/ folder
  3. Update to a newer build
  4. See that the cdda/mods/ folder is now empty, and that they are in the cdda/previous_version/mods/ folder

Expected behavior The launcher should recognise that the cdda/mods/ folder needs repopulating. I understand that it would be hard to preserve modifications to the cdda/data/mods/ folder, but restoring an otherwise empty folder should be safe (nothing to conflict with).

Desktop:

DazedNConfused- commented 2 years ago

Now this is a good one alright.

On one hand I can adhere to the sentiment that restoring the mods folder is a chore that could very well be automated as part of the Launcher's update process. On the other hand however, this comes with the assumption that all mods for the previous version would still work flawlessly on the new one. Assumption that I would think proves to be false more often than not, even more so if playing on the experimental branch of the game. Moreover, this incompatibility could lead to increased in-game bugs/disruption and, on a more serious note, save corruption down the line; which as a gamer myself is completely unacceptable IMHO.

Now, checking mod/version compatibility is something that the Launcher understandably cannot do, and thus it falls upon the user to be careful with the modifications performed to the game. Not-restoring the mod's folder is probably not a "feature" as much as an oversight; but it is one that may ultimately be for the best, since it forces the user to manually refresh the mods instead of blindly trusting them to still work.

So to sum it up, I am torn on this one. I feel it's safer to make the User refresh the mods, even if in the end that just leads to copy-pasting the previous mod folder into the new one, because now that falls under the User's responsibility and not the Launcher's. Would love to hear the various opinions/stances the Launcher's users, I am sure, have on this matter.

helpfulchicken commented 2 years ago

I can live with the chore, the worst part is losing the mods entirely if I update twice, without restoring the mods, for any reason.

Regarding the concern of mods not working properly after an update, perhaps we could have the mods folder restored under a different name, like "previous_mods" or "mods_disabled"? This would at least be a clear place where the mods have ended up.

Or perhaps give the user a popup after updating, to notify them that the mods folder was not empty before the update, and that the user should inspect the previous_version folder to retrieve them? In the current state of things, the user has no idea why their mods (whether purely gameplay or tiles for mods) disappear seemly at random.

ZombieZilla commented 2 years ago

A way to designate files to be ignored would be nice, or even just moving them to a previous_mods directory, as I have made mods for my own personal use, popped them in there, updated and lost them entirely before.

DazedNConfused- commented 2 years ago

Indeed, having a previous_mods directory and dumping all of them in there seems like the best compromise. It would still be up to the user to restore the missing content (or update if needed); but the Launcher would at least be polite enough to leave everything in a tidy package for easy access.

It will probably need some sort of sub-directory schema though. Maybe timestamps or version numbers in the folders. Stable may not need anything but a single folder due to the infrequent releases, but Experimental is another story altogether.

Rewstyr commented 2 years ago

I just ran into this myself. What if we simply had an option, possibly a checkbox beside the 'Update' button itself, something like 'Migrate local mods' which would copy any mods that are not 'base' in the new version but existed in older version?

DazedNConfused- commented 2 years ago

@Rewstyr That is also a good option. In fact, it may be one of the better alternatives so far, since having this checkbox ticked or not implies direct acknowledgement from the user.

There may still be a place for the previous_mods folder for those cases where the checkbox is unchecked, so as to have an explicit place where all the old mods' contents are dumped.

Rewstyr commented 2 years ago

That sounds like a good solution:

ziroc commented 2 years ago

I ran into this issue recently. @Rewstyr 's solution sounds really good. Unfortunately I don't get along with Python...