Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[Feature Request] Possibility to CHECK if mod is active and/or DISABLE mod if some option is active. #97

Open
LaZar00 opened this issue Jun 23, 2022 · 6 comments
Labels
enhancement New feature or request help wanted Extra attention is needed priority/P2 only affects developers

Comments

@LaZar00
Copy link

LaZar00 commented Jun 23, 2022

I was asking if It could be possible to CHECK if a mod is active in Compatibilty section, and then Forbid or Request some features of the own mod to be active or inactive.

Let's say I want to Check if Ninostyle Chibis .IRO is installed and active. If it is not active, I would like to have active mandatory the Kaldarasha models mod, for example.

<Compatibility> 
<Setting>
<CheckActive ModID="05d57b82-b506-4097-aeb6-cca0062f2a43">Chibi Ninostyle</CheckActiveModID>
<MyID>modelsKaldarasha</MyId>
<Forbid>1</Forbid>  (or <Request>0</Request>
</Setting>
</Compatibility> 

With this, we could enable/disable options in our mod knowing if other mod is active or not.

We could do something similar by DISABLING a mod if some of the options of our mod is enabled or something:

<Compatibility>
	<Setting>
	  <MyID>MySettingVariable</MyID>
	  <MyValue>1</MyValue>
	  <Disable ModID>fae201ee-9fa5-4163-ab56-2b478111449d</ModID>
	</Setting>
</Compatibility>

But these are only suggestions.

I'm asking this because if one of the compatibility checks of our mod means that another mod needs to have an option with a precise value, BUT, that mod is not installed, the check is not performed and it is not useful.

@julianxhokaxhiu
Copy link
Member

julianxhokaxhiu commented Jul 23, 2022

Did you check if anything already implemented for Compatibility fits your needs? I think what you're asking is exactly <Forbid> and <Require>. LMK

@julianxhokaxhiu julianxhokaxhiu added the question Further information is requested label Jul 23, 2022
@LaZar00
Copy link
Author

LaZar00 commented Jul 23, 2022

I checked the <Forbid> and <Require>, and AFAIK they can not help to activate/deactivate all the mod by a specific option. You can use <Forbid> and <Require> for activate/deactivate another option of the mod, but not ALL the mod itself.

A sample of situations I found doing my mods that I don't know how to solve:

  • Let's say I need to check if a mod exists (60 FPS) to activate my own animations at 60FPS for new models I've done.
  • Or if it is enabled Ninostyle Chibis to deactivate my part of Models Fusion that use Chaos models.

Even more, we can use <Forbid> and <Require> but if the mod we are making the condition it is not installed or it is inactive, the condition has not effect. I expected to do the first situation with this but it is not possible.

I hope I explained well with my poor english.

Right now the solution I found for doing this is to add sections to my mod and leave the user activate or deactivate them without checking anything.

@julianxhokaxhiu julianxhokaxhiu added help wanted Extra attention is needed enhancement New feature or request and removed question Further information is requested labels Jul 29, 2022
@wturner859
Copy link

wturner859 commented Aug 12, 2022

I've thought about this same thing before because it currently makes it impossible for new mods to properly set compatibilities. It falls to the older mod to do...

What you're basically saying is: right now you can require and forbid settings in someone else's mod based on your mod's settings, but you can't require and forbid your own settings based on someone else's mod's settings...

The problem that could arise if it's enabled both ways is that you could end up in a deadlock between authors...

If you set one of your settings to turn off if my mod is enabled, what happens if I set your option to turn on when my mod is enabled?

I believe if anything, it should be completely reversed, not exchangeable... You should be able to require or forbid your own options based on other mods, instead the other way around (the way it currently is)

@julianxhokaxhiu julianxhokaxhiu added priority/P2 only affects developers and removed priority/P3 edge case labels Sep 27, 2022
@julianxhokaxhiu
Copy link
Member

julianxhokaxhiu commented Sep 27, 2022

Seems like more and more mods (and modders) require this. Priority raised to P2.

@chrcoluk
Copy link

chrcoluk commented Dec 15, 2022

I think Bonez suggestion is the way to go on this. But with communication given to mod developers prior, as there will need to be changes in mods to accommodate the changes.

@zaphod77
Copy link

What it seems yo can currently do.

  1. force setting in other mods if setting is on in you mod
  2. force other mods to be installed when you install your own mid.
  3. check for specific versions of other mods.

What you can't do

  1. place a dependency on a mod setting, saying you can only activate this setting if a supported mod is installed.
  2. read the settings of other mods and change your own options based on it.
  3. specify minimum or maximum versions required for dependencies.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request help wanted Extra attention is needed priority/P2 only affects developers
Projects
None yet
Development

No branches or pull requests

5 participants