SSTU - Shadow Space Technologies Unlimited

SSTU - Shadow Space Technologies Unlimited

98.5k Downloads

RealPlumes.cfg: FOR[RealPlume] causes issues with other mods

blowfishpro opened this issue ยท 6 comments

commented

FOR[RealPlume] tells ModuleManager that RealPlume exists, so any other NEEDS[RealPlume] patches will be applied regardless of whether RealPlume is actually present.

Also FOR[RealPlume] and BEFORE[SSTU_ENGINES] are conflicting conditions. For both these reasons I recommend NEEDS[RealPlume] instead (and RealPlume requires SmokeScreen anyway, so I don't think there's any reason to check that).

commented

Good points all around, will update the default patches for the next release. I'm still learning new things with module manager all the time :)

commented

Hmm.. as soon as I remove the FOR[RealPlume] block, the stock-effects do not get properly removed.
Have changed them over to use :FOR[RealPlume]:NEEDS[RealPlume&!RealismOverhaul] -- as the 'FOR' lists are not counted as mods until after the unsatisfied needs nodes are deleted, this should fulfill all requirements. Will do a bit more testing with RP uninstalled just to make sure the FOR[RealPlume] block doesn't get added.

commented

FOR[RealPlume] shouldn't be affecting whether the patch applies, only when it applies. Is it possible some other patch is conflicting?

commented

I found the root cause of this -- its the 'effects remover' patch from real-plume (000_EFFECTS_Remover); it runs in an :AFTER[RealPlume] block, on any part that has a @plume defined. Thus, if you do not run your real-plumes adding effects somehow in or before the FOR[RealPlume] block, the stock effects do not get removed.

Perhaps adding the plumes in a BEFORE[RealPlume] block might work, I'm not sure if that will trigger the creation of the fake-FOR entry when RP is not present.

I'm also considering just PR'ing the plume configs to the Real Plumes Stock Configs repository, that way there will be no issues of them being present without RP.

commented

using the following definition:

:NEEDS[RealPlume&!RealismOverhaul]:BEFORE[RealPlume]

works as far as removing stock effects and adding the plumes
Additionally, it does not trigger the creation of a FOR[RealPlume] block, though I have not tested it yet alongside RO.
(Log excerpt, no realplumes blocks present)

[LOG 23:28:44.791] [ModuleManager] :BEFORE[MODULEMANAGER.2.6.13] pass
[LOG 23:28:44.808] [ModuleManager] :FOR[MODULEMANAGER.2.6.13] pass
[LOG 23:28:44.824] [ModuleManager] :AFTER[MODULEMANAGER.2.6.13] pass
[LOG 23:28:44.841] [ModuleManager] :BEFORE[RCSBUILDAID] pass
[LOG 23:28:44.858] [ModuleManager] :FOR[RCSBUILDAID] pass
[LOG 23:28:44.874] [ModuleManager] :AFTER[RCSBUILDAID] pass
[LOG 23:28:44.891] [ModuleManager] :BEFORE[RCSBUILDAIDTOOLBAR] pass
[LOG 23:28:44.907] [ModuleManager] :FOR[RCSBUILDAIDTOOLBAR] pass
[LOG 23:28:44.924] [ModuleManager] :AFTER[RCSBUILDAIDTOOLBAR] pass
[LOG 23:28:44.941] [ModuleManager] :BEFORE[RCSTEST] pass
[LOG 23:28:44.957] [ModuleManager] :FOR[RCSTEST] pass
[LOG 23:28:44.974] [ModuleManager] :AFTER[RCSTEST] pass
[LOG 23:28:44.991] [ModuleManager] :BEFORE[SQUAD] pass
[LOG 23:28:45.007] [ModuleManager] :FOR[SQUAD] pass
[LOG 23:28:45.024] [ModuleManager] :AFTER[SQUAD] pass
[LOG 23:28:45.041] [ModuleManager] :BEFORE[SSTU] pass
[LOG 23:28:45.058] [ModuleManager] :FOR[SSTU] pass

Will likely be going with this unless I can find any problems or better methods

commented

Makes sense to me! And yeah, BEFORE and AFTER should be fine - it's only FOR that MM treats as special.