TL;DR
Modpacks are able to define the version of the containing mods.With this info, you can resync your active mods to the specified mod versions
This suggestion is a follow-up of viewtopic.php?f=66&t=53696
and was sketched briefly here: viewtopic.php?p=529460#p529460
What ?
Introducing infos:Modpacks are mods, which have dependencies to the containing mods. With the help of those modpack mods, you are able to install the containing mods by just installing the modpack mod and the dependencies are installed automatically.
There is also a mod category for them: https://mods.factorio.com/tag/mod-packs?version=1.1
The suggestion consists of 2 solution approaches:
1.
You already can specify the fixed version of any containing mod in info.json via the usual mod dependency mechanism (https://wiki.factorio.com/Tutorial:Mod_ ... pendencies). f.e.:
Code: Select all
ScienceCostTweakerM = 1.1.1
If you have a newer version of the mods installed, you should also have the ability to revert the modpack to the original mod versions. F.e. via an additional button in Mods -> Manage screen for the modpack mod.
Note: the Modpack mod is red in this case, because the dependencies are not correct, because the fixed dependency is not fulfilled. However, the modpack mod does not need to be correct, because the containing mods work for themselves. Not sure, if something would have to be done here.
2.
If you have a savefile, you are already able to sync to the mod selection of the savefile. So the savefile can act as modpack, but it always installs the newest version or keeps the currently installed version, no matter if the version in the savefile is different.
Here, you should alternatively be able to resync all (or some) mods to the original versions of the savefile. This should not replace the current functionality, because you sometimes want the latest version and not the original version.
Additionally, as ssilk proposed, you could consider npm standards for “backward compatible bug fixes”, which can be installed safely instead of the original mod version. This would imply, that all mods had to follow those principle, which seems a bit unrealistic, but that could be established.
Why ?
If you have a big modpack with dozens or hundeds of mods, its very hard to distribute a working compilation. Often some mod changes, do some experimental changes or introduce a new bug and then the modpack is broken, if you install the latest versions.Seablock is a very popular example and the old big seablock forum thread viewtopic.php?f=190&t=43759 was full of problems, because people installed the pack with not matching versions of the mods.
Currently its easier to provide a big zip file of mods as modpack
It would be easier, if you could define all or some versions of the containing mods of a modpack and be able to revert the mods to its original versions.