Discussion: Mod pack compiler

Started by kite1024, November 05, 2017, 05:57:13 PM

Previous topic - Next topic

kite1024

Hello,

I'm not from a modding background, but I enjoy playing this game with mods, and know some programming (mainly Java). What I personally dislike most about modding is trying to get everything working together and handling all the conflicts which can arise. When browsing the forums I see there have been several attempts at creating a mod manager for the game and I'm interested in giving it a go.

As far as I can tell there are a few main options:

Someone merges a modpack which is redistributed.
+ Easiest method, install one/several mods and play with perhaps some aligning.
- Not every mod owner likes his mods to be used in modpacks

You download all mods and merge everything yourself.
+ No-one can dislike this option exept you, full choice as to what mods to use.
- Conflicts
- Everyone does each modpack all over again, which costs a lot of time.

A program crawls over the XML files and lets you choose which mod you wish for each conflict.
+ Automation means all conflicts should be resolved afterwards
+ Can input many mods and output one merged mod with all stuff, as you've resolved the conflicts.
- You can't just share those as not all mod makers like this.
- So you'll have to do each mod pack over again.

Program above could output a 'changes file' containing which mod takes precedence above others
+ You can just download the individual mods and chances file and let the program merge
- All mods must be available in the requested versions.

I really liked the Rimworld Package Manager GitHub release function, but mods are hosted on nexus, dropbox, and several other locations. Making a own repo would just add to the complexity. As far as I see it would be least complex if everyone developed their mods on github with releases :) (Program could then just merge the mods for you with histories being available through GitHub).

What would make a mod pack compiler work within this community? What features would be necessary to be popular enough to be used?

Nightinggale

Quote from: kite1024 on November 05, 2017, 05:57:13 PMSomeone merges a modpack which is redistributed.
+ Easiest method, install one/several mods and play with perhaps some aligning.
- Not every mod owner likes his mods to be used in modpacks
Not everyone wants to use the same mods. Some mods are very popular with some people while other people won't use them.

Quote from: kite1024 on November 05, 2017, 05:57:13 PMYou download all mods and merge everything yourself.
+ No-one can dislike this option exept you, full choice as to what mods to use.
- Conflicts
- Everyone does each modpack all over again, which costs a lot of time.
That's like enabling multiple mods with the current system? Seems to be ok. Conflicts and load order can be an issue, but I wrote ModCheck to deal with that issue.

Quote from: kite1024 on November 05, 2017, 05:57:13 PMI really liked the Rimworld Package Manager GitHub release function, but mods are hosted on nexus, dropbox, and several other locations. Making a own repo would just add to the complexity. As far as I see it would be least complex if everyone developed their mods on github with releases :) (Program could then just merge the mods for you with histories being available through GitHub).
I too would like to see all mods on GitHub. However arguing about that here will not solve the issue as I suspect those who use other hosting are the least likely to read the forum, particularly this subforum.

Quote from: kite1024 on November 05, 2017, 05:57:13 PMWhat would make a mod pack compiler work within this community? What features would be necessary to be popular enough to be used?
What's the point with modpacks? RimWorld merges mods just fine. Just enable multiple in the mod menu. Having to pick each mod from say steam also mean you get an updated version and mods do update quite frequently. Keeping a modpack up to date is a nightmare in itself.

What we could use would be some detection of conflicts and informing the mod creators of such conflicts. Patching and Harmony can be used to solve quite a lot of conflicts. It's pointless to try to solve conflicts by merging mods. Use the tools already available.

If you would like to do something nice about conflicts, write a mod, which test stuff at startup and write errors if something fails. That way we will know what fails and in which mods.

ModCheck - boost your patch loading times and include patchmods in your main mod.

kite1024

Quote from: Nightinggale on November 05, 2017, 09:53:45 PM
Quote from: kite1024 on November 05, 2017, 05:57:13 PMSomeone merges a modpack which is redistributed.
+ Easiest method, install one/several mods and play with perhaps some aligning.
- Not every mod owner likes his mods to be used in modpacks
Not everyone wants to use the same mods. Some mods are very popular with some people while other people won't use them.

Quote from: kite1024 on November 05, 2017, 05:57:13 PMYou download all mods and merge everything yourself.
+ No-one can dislike this option exept you, full choice as to what mods to use.
- Conflicts
- Everyone does each modpack all over again, which costs a lot of time.
That's like enabling multiple mods with the current system? Seems to be ok. Conflicts and load order can be an issue, but I wrote ModCheck to deal with that issue.

Quote from: kite1024 on November 05, 2017, 05:57:13 PMI really liked the Rimworld Package Manager GitHub release function, but mods are hosted on nexus, dropbox, and several other locations. Making a own repo would just add to the complexity. As far as I see it would be least complex if everyone developed their mods on github with releases :) (Program could then just merge the mods for you with histories being available through GitHub).
I too would like to see all mods on GitHub. However arguing about that here will not solve the issue as I suspect those who use other hosting are the least likely to read the forum, particularly this subforum.

Quote from: kite1024 on November 05, 2017, 05:57:13 PMWhat would make a mod pack compiler work within this community? What features would be necessary to be popular enough to be used?
What's the point with modpacks? RimWorld merges mods just fine. Just enable multiple in the mod menu. Having to pick each mod from say steam also mean you get an updated version and mods do update quite frequently. Keeping a modpack up to date is a nightmare in itself.

What we could use would be some detection of conflicts and informing the mod creators of such conflicts. Patching and Harmony can be used to solve quite a lot of conflicts. It's pointless to try to solve conflicts by merging mods. Use the tools already available.

If you would like to do something nice about conflicts, write a mod, which test stuff at startup and write errors if something fails. That way we will know what fails and in which mods.
Thank you for your reply, I'll see if I can contribute in some other way then :)

RawCode

i hope you understand that if mod A does not work with mod B for any reason, no "mod manager" will be able to solve this problem and magically resolve conflicts?


Nightinggale

Quote from: RawCode on November 08, 2017, 04:00:06 AM
i hope you understand that if mod A does not work with mod B for any reason, no "mod manager" will be able to solve this problem and magically resolve conflicts?
I'm not 100% sure who you replied to, but to be clear about what I wrote I will say that ModCheck will not fix conflicts. It will inform the user that the mods in the mod list will not work as intended due to missing mods, mod load order or incompatible mods. The goal is to prevent a user from entering known incompatible setups and tell how to fix, if possible and there is no auto detection of conflicts. It's based on mod creators entering a list of known issues in their mod.

Some clever coding can at best identify conflicting mods, but I can't see a way to fix the conflicts automatically. The approach where you have modifications from two mods and you pick one is not a fix because the one you don't pick will most likely just break and you end up with one mod rather than having two merged. There is no alternative to manual work if you want to get two conflicting mods to play nicely together.

If you are referring to the first post, I agree that I can't really see any tool, which will solve conflicts. It will at best identify some incompatible mods automatically (which has been attempted with other tools), but what to do about them is no more advanced than ModCheck where the solution is to pick which one of the two conflicting mods you want to use.
ModCheck - boost your patch loading times and include patchmods in your main mod.