X2CommunityCore / X2WOTCCommunityHighlander

https://steamcommunity.com/workshop/filedetails/?id=1134256495
MIT License
60 stars 69 forks source link

Mod dependency checker: Is `IgnoreIncompatibleMods` a workable design? #967

Open robojumper opened 3 years ago

robojumper commented 3 years ago

524 introduced a mod dependency checker. Among other things, it includes a way for a mod (A) to list

another mod (B) as incompatible (+IncompatibleMods="B"), and also a way for a third mod (C) to silence any warnings from mods arising out of them listing B as incompatible (+IgnoreIncompatibleMods="B").

I have no idea if this is useful and don't know of any mods that use it. I suspect the design isn't workable and a use case that I had imagined (bridge mods) would look so badly in error popups that I suggested adding another feature (+RequireIfOtherModInstalled).

If you think you can make use of IgnoreIncompatibleMods, please tell us so we can discuss better ways for your use case -- or fix the documentation that says "lol no idea, here's an issue" with a link to this very issue.

Iridar commented 3 years ago

I'm reasonably sure RPGO makes use of it. It includes New Promotion Screen By Default, which is a requirement for many mods out there. However, since RPGO ships NPSBD , the NPSBD itself is incompatible with it. So this feature allows to mute the warnings the mod user would get for not having NPSBD itself active while playing with RPGO.

robojumper commented 3 years ago

That's the other way around, it uses IgnoreRequiredMods.

Iridar commented 3 years ago

Oh, right, I misread. This feature was probably added under assumption that people would mark mods as incompatible if the mods can be technically used together, but a certain aspect of it would be broken unless fixed by a third mod, e.g. how LWOTC / CI making everything single buildable breaks pretty much any mod that adds its own multi-tier weapons.

Since it doesn't seem to be happening (people DON'T mark their mods as incompatible with big overhauls), I don't see a use case for IgnoreIncompatibleMods.