RealPlumes.cfg: FOR[RealPlume] causes issues with other mods
blowfishpro opened this issue ยท 6 comments
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).
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 :)
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.
FOR[RealPlume] shouldn't be affecting whether the patch applies, only when it applies. Is it possible some other patch is conflicting?
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.
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