Modpacks with specific mod versions

Post your ideas and suggestions how to improve the game.

Moderator: ickputzdirwech

User avatar
jodokus31
Smart Inserter
Smart Inserter
Posts: 1621
Joined: Sun Feb 26, 2017 4:13 pm
Contact:

Modpacks with specific mod versions

Post by jodokus31 »

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 install the modpack mod, the specific version of the dependency mod should get installed instead of the newest version.

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.
User avatar
ssilk
Global Moderator
Global Moderator
Posts: 12889
Joined: Tue Apr 16, 2013 10:35 pm
Contact:

Re: Modpacks with specific mod versions

Post by ssilk »

Nice. Very good.

Sorry, I could have saying this earlier, but I thought pointing to the right direction should be enough.
From https://semver.org/
In the world of software management there exists a dreaded place called “dependency hell.” The bigger your system grows and the more packages you integrate into your software, the more likely you are to find yourself, one day, in this pit of despair.
:)


What this suggestion currently describes is only the very, very top of the iceberg. Because it cannot solve all conflicts. And it leaves some open questions (what if it doesn’t run, who will give the players support?). But I won’t address them all. But especially for modpacks such conflicts are foreseeable.

So first some showing some theoretical background. Sorry, I will come to my point later.

I already mentioned conflicts. If a mod is installed in a specific version, but another mod wants to have it in another version, then we have a conflict.

npm solves this conflict by installing both versions, because JavaScript is able to load libraries in different versions without such a conflict. In Factorio this is not possible. LUA itself could also run different libs, as JavaScript, but a mod can exists only once. There are several reasons why that makes sense.

So we can say: in the situation of a conflict we need human interaction. Which is ugly, because it leaves the problem to the player. Which can decide wrong. Even when he decides right, he just cannot really know, if the conflicting mods can really resolved in the way he does. So what we can say is: it’s better to not let the player decide what’s the right version. It’s much better to give that decision to the modder or in this case the mod-packer.


npm has also a second mechanism, that explains, under which circumstances a version can be automatically changed/updated, when there is a newer version available. This solves the conflict.

As consequence for Factorio we need to have a process, where it is decided what version will be installed. And it either ends in a
- conflict (for example when mod A has dependency to mod B v1.0.1 and mod C has dependency to mod b v1.0.0), which cannot be solved automatically. This needs human interaction to solve. This is what is more or less what’s described in this suggestion.
- Or (much better) it can be solved. For example mod A wants to have version “~1.0.1” and the “~” tells Factorio, that the everything equal or above 1.0.1 is ok. 1.0.999 is ok, but 1.1.1 is not. So if mod B has also such a range of versions, Factorio can use the latest version without conflicts.

There are lots of documentation about this version ranges. It’s explained a bit in that already linked document https://docs.npmjs.com/about-semantic-versioning -> “ Using semantic versioning to specify update types your package can accept”. What I also found is this: https://www.geeksforgeeks.org/introduct ... ersioning/

But there are surely much more, like the semver calculator.


So, what I would add to this suggestion is the introduction of semver into Factorio, because I think that could prevent version conflicts here in over 90% of all cases.
Cool suggestion: Eatable MOUSE-pointers.
Have you used the Advanced Search today?
Need help, question? FAQ - Wiki - Forum help
I still like small signatures...
User avatar
jodokus31
Smart Inserter
Smart Inserter
Posts: 1621
Joined: Sun Feb 26, 2017 4:13 pm
Contact:

Re: Modpacks with specific mod versions

Post by jodokus31 »

ssilk wrote: Fri Jan 01, 2021 11:28 am What this suggestion currently describes is only the very, very top of the iceberg. Because it cannot solve all conflicts.
Yes, I know. It's not a complete approach for solving the "dependency hell".
But, it rather tries to solve the use-case, where the "modpacker" exactly knows, which versions of the mods work together without problem.
If a user updates mods to newer versions, it should be possible and it also may work. But its not guaranteed to work any more from the modpacker's POV. If something is clashing, you should have the ability to rollback to the released mod versions of the mod pack.
I don't consider the case, where the modpacker packs mods, which are not compatible, because that's just a bug in the modpack.

Also, the modpack may not necessarily be a mod itself and the proposed mechanism should not necessarily be working for all other non-modpack mods.
ssilk wrote: Fri Jan 01, 2021 11:28 am So, what I would add to this suggestion is the introduction of semver into Factorio, because I think that could prevent version conflicts here in over 90% of all cases.
I mean, it sounds interesting and is a more sustainable solution, but it also sounds like very much effort.
User avatar
KiwiHawk
Filter Inserter
Filter Inserter
Posts: 270
Joined: Thu Jul 05, 2018 9:48 am
Contact:

Re: Modpacks with specific mod versions

Post by KiwiHawk »

I'm the current dev for Sea Block. Yes, something like this would be super helpful! It feels a bit broken that the easiest way of distributing the mod pack is a downloading a .zip from a third party site.

One way around the dependency hell issue would be to treat mod packs differently from other mods:
  • Only allow one mod pack to be enabled at a time
  • Install each mod pack and it's dependencies to a separate subfolder in the regular mods folder
  • Mod versions specified by the pack should be automatically synced
  • Any other non specified mod can just update to the latest version, just like what happens now
Dev for Bob's mods, Angel's mods, Helmod, Sea Block, Circuit Processing, Science Cost Tweaker.

Buy me a coffee
User avatar
KiwiHawk
Filter Inserter
Filter Inserter
Posts: 270
Joined: Thu Jul 05, 2018 9:48 am
Contact:

Re: Modpacks with specific mod versions

Post by KiwiHawk »

Optional dependencies in a mod pack should also be handled differently. Ideally players should be able to enable the whole pack in one click. But for experienced players, if they wanted to swap out FNEI for Recipe Book (for example) then they should able to - while still be using the Sea Block mod pack.
Dev for Bob's mods, Angel's mods, Helmod, Sea Block, Circuit Processing, Science Cost Tweaker.

Buy me a coffee
Cicada3301
Manual Inserter
Manual Inserter
Posts: 2
Joined: Fri Jun 09, 2023 6:12 am
Contact:

Mod Folders to Allow For Easier Mod Management

Post by Cicada3301 »

TL;DR
Mod folders to allow players to easily enable, disable, and configure mods in groups & sets and to allow mod creators to create downloadable mod folders.

Explanation
When I am playing Factorio with large sets of mods, it can be quite difficult to manage them all & to ensure that I have the correct mods downloaded, this is where mod folders would be really helpful.

On the modders end; they'd be able to take a group of mods and put them all into a single 'folder' that can then be downloaded by users. That modder doesn't necessarily have to be the author of said mods, they should be able to put a group of mods into a single body that can then be downloaded as a bundle by a player.

On the players end; they'd be able to download a group of mods by downloading a single 'folder', as well as being able to make their own folders customised for themselves.

A mod should be able to be in multiple folders at once. If it is disabled in one folder on the player's end, then it's disabled in every folder on the player's end, if it's enabled in another, then it's enabled in every folder.

For example, a player may wish to download Bob's & Angel's but may also want a creative mod to give them more freedom.
The process would go as follows on the players end:
  • Download the 'Bobs & Angels' folder from the mod folder list
  • Drag the creative mod into that folder, which turns that folder into a customised folder
  • Enable all of the mods in the folder by clicking the checkbox next to the folder name

Another example. A player may wish to have their utility & QoL mods whilst also playing on Bob's & Angel's. This would go as follows:
  • Download the 'Bobs & Angels' folder from the mod folder list.
  • Download the 'QoL' folder from the mod folder list.
  • Create their own player folder & rename it (Bobs & Angels + QoL)
  • Drag all of the mods from 'Bobs & Angels' into the new player folder
  • Drag all of the mods from 'QoL' into the new player folder
  • Enable all of the mods in the new folder by clicking the checkbox next to the folder name

If the mod folder gets updated (dependant on whether or not the author of the mod folder wishes to push an update, or if they have it configured to auto-push upon mod updates), then the user will be prompted to allow the mod folder update & display a list of what mods in the mod folder are being updated.

Result
I think this would dramatically help with the player experience as it can be quite frustrating and/or time consuming to manually configure each individual mod & to manage dependencies.



This is my first post on this forum and any forum ever. Please forgive me if there are any formatting issues, grammatical error, or if I incorrectly followed guidelines. Sorry that I could not provide any images.
wobbycarly
Filter Inserter
Filter Inserter
Posts: 261
Joined: Tue Jan 29, 2019 4:00 am
Contact:

Re: Mod Folders to Allow For Easier Mod Management

Post by wobbycarly »

Instead of "folders" (which sounds like it implies that users know what they're doing in their OS), having the ability to group mods within the in-game UI, or add personal tags, could be a good way to achieve a similar outcome.
User avatar
jodokus31
Smart Inserter
Smart Inserter
Posts: 1621
Joined: Sun Feb 26, 2017 4:13 pm
Contact:

Re: Mod Folders to Allow For Easier Mod Management

Post by jodokus31 »

There are already different approaches implemented:
- The easiest is to use sync mods on loading the save. There is a button to do so.
Screenshot_2023-06-09_12-19-44.png
Screenshot_2023-06-09_12-19-44.png (49.27 KiB) Viewed 2165 times

- On commandline, you have the option --mod-directory PATH, where you specifiy a different modfolder.
https://wiki.factorio.com/Command_line_parameters

- You can download a zip version of factorio and use multiple standalone installations per each modpack. This is the most secure method to ensure, you don't change anything in other modpacks.
Factorio base game size is like ~1.5GB, mods itself can also get large, lets assume 1 GB, plus save files, etc. Let's assume 3GB per installation. if you have 10 separate installations, which is like 30 GB, you have barely the storage usage of a single AAA game.
With todays storage capabilites it's not a huge deal.
FuryoftheStars
Smart Inserter
Smart Inserter
Posts: 2768
Joined: Tue Apr 25, 2017 2:01 pm
Contact:

Re: Mod Folders to Allow For Easier Mod Management

Post by FuryoftheStars »

This can also be accomplished by saving and using scripts to swap in and out different mod config files.

But the creating something to upload for others to download, sounds exactly like what mod packs are now.
My Mods: Classic Factorio Basic Oil Processing | Sulfur Production from Oils | Wood to Oil Processing | Infinite Resources - Normal Yield | Tree Saplings (Redux) | Alien Biomes Tweaked | Restrictions on Artificial Tiles | New Gear Girl & HR Graphics
Cicada3301
Manual Inserter
Manual Inserter
Posts: 2
Joined: Fri Jun 09, 2023 6:12 am
Contact:

Re: Mod Folders to Allow For Easier Mod Management

Post by Cicada3301 »

I understand that I may have worded my suggestion a bit finnick-ly.

I think it's silly to expect players to run scripts etc... Just to get mods packed together that were intended to be packed together. That's a bodge-job.
The casual player won't want to run scripts.

My suggestion has nothing to do with the OS or anything. It's purely in-game and should require no other interactivity outside of the Factorio game itself.
FuryoftheStars
Smart Inserter
Smart Inserter
Posts: 2768
Joined: Tue Apr 25, 2017 2:01 pm
Contact:

Re: Mod Folders to Allow For Easier Mod Management

Post by FuryoftheStars »

Cicada3301 wrote: Mon Jun 12, 2023 3:09 am I understand that I may have worded my suggestion a bit finnick-ly.

I think it's silly to expect players to run scripts etc... Just to get mods packed together that were intended to be packed together. That's a bodge-job.
The casual player won't want to run scripts.

My suggestion has nothing to do with the OS or anything. It's purely in-game and should require no other interactivity outside of the Factorio game itself.
FuryoftheStars wrote: Sun Jun 11, 2023 12:49 pm creating something to upload for others to download, sounds exactly like what mod packs are now.
My Mods: Classic Factorio Basic Oil Processing | Sulfur Production from Oils | Wood to Oil Processing | Infinite Resources - Normal Yield | Tree Saplings (Redux) | Alien Biomes Tweaked | Restrictions on Artificial Tiles | New Gear Girl & HR Graphics
User avatar
jodokus31
Smart Inserter
Smart Inserter
Posts: 1621
Joined: Sun Feb 26, 2017 4:13 pm
Contact:

Re: Mod Folders to Allow For Easier Mod Management

Post by jodokus31 »

BTW: These are similar suggestions:
viewtopic.php?f=66&t=53696

I think OP wants something UI supported, which is different to current "sync mods" function.
XaveTheBest
Manual Inserter
Manual Inserter
Posts: 1
Joined: Mon Dec 11, 2023 12:32 am
Contact:

Modpack Management

Post by XaveTheBest »

* TL;DR: A modpack management system where you can easily enable all the mods in a list.

A new tab in the mod manager called Modpacks or something like Mod Lists. You should be easily able to add/remove mods from your lists. This would make enabling a bunch of mods that you want to play with a lot easier. For example, I could make a SE+K2 modpack where I can just click "Enable All" and all of the mods would be enabled. You could also update all of the mods in the list so that you only need to update the mods you want to play with. This is similar to Terraria's tModLoader modpack manager.
https://forums.terraria.org/index.php?a ... pg.294013/

It's not a huge change, but it would be very convenient to be able to enable all of the mods I want to play with at the click of a button.
toprakkoyun
Burner Inserter
Burner Inserter
Posts: 13
Joined: Sat Apr 02, 2022 9:41 am
Contact:

Mod Folders With Mod Folders Whitin Them

Post by toprakkoyun »

TL;DR
In the mod portal, you can create Mod Folders that can contain multiple mods/mod folders and can be activated fully or patially depending on what kind of playthrough you are going for and also folders can share mods between them.

What ? and Why ?

For example,you can have SE mods folder that contains SE and mods that you want to use on an SE run and as you play, you can add/remove mods into/from the SE mod folder to further improve the experience. You can have mod folders inside of a mod folder to further increase its readibility and navigation.
For example, you can have QoL mod folder and inside of it, you can have train mods folder to store and easily navigate and/or actiavte train related mods and nothing else.
When one wants to start a new run with different overhaul mod than previous run, one can easily activate a related mod folder to match the desired set of mods and mod packs. I have outrageous number of mods as most of the players and adjustig or finding the mods that I want for my runs are very time consuming and tiresome especially when you realize you forgot to activate one or more mods before starting the run.
Koub
Global Moderator
Global Moderator
Posts: 7774
Joined: Fri May 30, 2014 8:54 am
Contact:

Re: Modpacks with specific mod versions

Post by Koub »

[Koub] Merged into older thread with same or very similar suggestion.
Koub - Please consider English is not my native language.
toprakkoyun
Burner Inserter
Burner Inserter
Posts: 13
Joined: Sat Apr 02, 2022 9:41 am
Contact:

Re: Modpacks with specific mod versions

Post by toprakkoyun »

Thank you I could not find another topic covering this. Sorry for the inconvenience
Post Reply

Return to “Ideas and Suggestions”