Jump to content

[1.8.x-1.12.x] Module Manager 4.2.3 (July 03th 2023) - Fireworks season


sarbian

Recommended Posts

1. The only exceptions to the "is it in GameData" rule are:

(a) if it's under a PluginData folder, the GameDatabase loader ignores it. That means the plugin has to load it manually, and you can't use MM to change it. (TACLS is an example)

(B) even if a cfg is in GameData and not under a PluginData folder, a plugin may directly load the CFG, rather than load it through GameDatabase. Thus while you can change the values with MM it doesn't matter, because the plugin loads the file fresh from the drive every time it wants it. Fine Print (for 0.25) was an example of this; Arsonide kindly corrected this for .90.

As to has/wildcard, there's a bug in .10 that Sarbian fixed for the next version that prevents it working. Eventually you will be able to do NODE[name],IDX:HAS[foo]

But only in that order with the ,* or ,idx before the :HAS.

Link to comment
Share on other sites

I managed to duplicate the bug here by installing some of the plugin I saw in the logs of those with the error. The problem is that it did not help at all... It seems something is corrupting some config node and AFAIK it is not MM since they are already corrupted in the NEED check, before MM does much.

The game ends up with node that look like that :


RESOURCE
{
name = Oxidizer
amount = 7920
= 7920
}

And obviously it is not good.

I also had a crash that make me think one of the mod is using a thread to access ConfigNode. I don't know which one yet and I can't just remove them one by one since I can't trigger the problem each time.

Here are the mod I used. If you also have those crash post your log so I can see if you use some of those mods and make my list shorter.

GameData\DDSLoader.dll

GameData\ModuleManager.dll

GameData\000_Toolbar\Toolbar.dll

GameData\000_USITools\DynamicTanks.dll

GameData\000_USITools\USITools.dll

GameData\Chatterer\Plugins\Chatterer.dll

GameData\Chatterer\Plugins\MiniAVC.dll

GameData\Contracts Window\ContractsWindow.dll

GameData\CrossFeedEnabler\Plugins\CrossFeedEnabler.dll

GameData\DMagic Orbital Science\Plugins\DMagic.dll

GameData\EditorExtensions\EditorExtensions.dll

GameData\Firespitter\Plugins\Firespitter.dll

GameData\Fusebox\Plugins\Fusebox.dll

GameData\GCMonitor\GCMonitor.dll

GameData\MechJeb2\Plugins\MechJeb2.dll

GameData\JSI\RasterPropMonitor\Plugins\RasterPropMonitor.dll

GameData\JSI\RasterPropMonitor\Plugins\MechJebRPM.dll

GameData\KAS\Plugins\KAS.dll

GameData\KerbalEngineer\KerbalEngineer.dll

GameData\KerbalEngineer\MiniAVC.dll

GameData\Kerbaltek\HyperEdit.dll

GameData\PreciseNode\plugins\PreciseNode.dll

GameData\ProceduralFairings\KSPAPIExtensions.dll

GameData\ProceduralFairings\ProceduralFairings.dll

GameData\RCSBuildAid\Plugins\RCSBuildAid.dll

GameData\RCSBuildAid\Plugins\RCSBuildAidToolbar.dll

GameData\Regolith\Regolith.dll

GameData\SCANsat\Plugins\SCANsat.dll

GameData\StageRecovery\StageRecovery.dll

GameData\StockBugFixModules\AnchoredDecouplerFix.dll

GameData\StockBugFixModules\ChuteQuickloadFixer.dll

GameData\StockBugFixModules\CrewRosterFreezeFix.dll

GameData\StockBugFixModules\EVAEjectionFix.dll

GameData\StockBugFixModules\KerbalDebrisFix.dll

GameData\StockBugFixModules\StickyLaunchPadFix.dll

GameData\StockBugFixModules\SymmetryActionFix.dll

GameData\Targetron\Plugins\Targetron.dll

GameData\TextureReplacer\Plugins\TextureReplacer.dll

GameData\TriggerTech\KerbalAlarmClock\KerbalAlarmClock.dll

GameData\TriggerTech\KSPAlternateResourcePanel\KSPAlternateResourcePanel.dll

GameData\TriggerTech\TransferWindowPlanner\TransferWindowPlanner.dll

GameData\UmbraSpaceIndustries\Karbonite\Karbonite.dll

GameData\UmbraSpaceIndustries\Kolonization\KolonyTools.dll

GameData\UniversalStorage\MiniAVC.dll

GameData\UniversalStorage\Plugins\AdvancedAnimator.dll

Edit: I managed to trigger a related bug without MM, so I am quite sure it is one of those mods.

Edited by sarbian
Link to comment
Share on other sites

I'm not experiencing the problem that I know of but I can tell you what mods I don't have in that list (it's a short list).

Fusebox

precisenode

stage recovery

targetron

transferwindowplanner

advancedanimator

universal storage mini-avc

there are a couple of Firespitters in the wild right now and so I couldn't tell you if I have the same version.

Link to comment
Share on other sites

Question: I am trying to modify a ModuleEngineFX module of an engine, but the atmospheric/velocity curves confuses me. Would something like this work, if I want to modify existing values after the first number in keys(the keys exist and I don't want to add more, I just want to change the ISP for different velocity and atmospheric level)?

@MODULE[ModuleEnginesFX]
{
@atmosphereCurve
{
@key = 0 360
@key = 0.1 390
@key = 1 500
}
@velocityCurve
{
@key = 0 0.7 0 0
@key = 500 0.9 0 0
@key = 1000 1 0 0
@key = 3000 0.8 0 0
}
}

Link to comment
Share on other sites

If you keep the same number of key then you need to specify the key number.

@MODULE[ModuleEnginesFX]
{
@atmosphereCurve
{
@key,0 = 0 360
@key,1 = 0.1 390
@key,2 = 1 500
}
@velocityCurve
{
@key,0 = 0 0.7 0 0
@key,1 = 500 0.9 0 0
@key,2 = 1000 1 0 0
@key,3 = 3000 0.8 0 0
}
}

If you need to change the number of keys then the best way is to delete them and recreate them.

@MODULE[ModuleEnginesFX]
{
@atmosphereCurve
{
!key,* = delete
key = 0 360
key = 0.1 390
key = 1 500
}
@velocityCurve
{
!key,* = delete
key = 0 0.7 0 0
key = 500 0.9 0 0
key = 1000 1 0 0
key = 3000 0.8 0 0
}
}

Link to comment
Share on other sites

Here's my list.

\GameData\ModuleManager.2.5.11.dll

\GameData\ShowFPS.dll

\GameData\000_Toolbar\Toolbar.dll

\GameData\000_USITools\DynamicTanks.dll

\GameData\000_USITools\USITools.dll

\GameData\Chatterer\Plugins\Chatterer.dll

\GameData\Chatterer\Plugins\MiniAVC.dll

\GameData\Contracts Window\ContractsWindow.dll

\GameData\CrossFeedEnabler\Plugins\CrossFeedEnabler.dll

\GameData\DDSLoader\DDSLoader.dll

\GameData\DMagic Orbital Science\Plugins\DMagic.dll

\GameData\EditorExtensions\EditorExtensions.dll

\GameData\EnvironmentalVisualEnhancements\Plugins\Clouds.dll

\GameData\EnvironmentalVisualEnhancements\Plugins\Geometry.dll

\GameData\EnvironmentalVisualEnhancements\Plugins\OverlayMgr.dll

\GameData\EnvironmentalVisualEnhancements\Plugins\Terrain.dll

\GameData\FerramAerospaceResearch\Plugins\FerramAerospaceResearch.dll

\GameData\FerramAerospaceResearch\Plugins\ferramGraph.dll

\GameData\FerramAerospaceResearch\Plugins\Scale_Redist.dll

\GameData\Firespitter\Plugins\Firespitter.dll

\GameData\Fusebox\Plugins\Fusebox.dll

\GameData\InFlightWaypoints\InFlightWaypoints.dll

\GameData\JSI\RasterPropMonitor\Plugins\MechJebRPM.dll

\GameData\JSI\RasterPropMonitor\Plugins\RasterPropMonitor.dll

\GameData\Kaboom\plugins\Kaboom.dll

\GameData\KAS\Plugins\KAS.dll

\GameData\KerbalEngineer\KerbalEngineer.dll

\GameData\KerbalEngineer\MiniAVC.dll

\GameData\KineTechAnimation\Plugins\KineTechAnimation.dll

\GameData\Kiwa\Plugins\ShipListMod.dll

\GameData\Klockheed_Martian_Gimbal\Plugins\km_Gimbal.dll

\GameData\MechJeb2\Plugins\MechJeb2.dll

\GameData\Nereid\FinalFrontier\Plugins\FinalFrontier.dll

\GameData\PartAngleDisplay\PartAngleDisplay.dll

\GameData\PreciseNode\plugins\PreciseNode.dll

\GameData\ProceduralFairings\KSPAPIExtensions.dll

\GameData\ProceduralFairings\ProceduralFairings.dll

\GameData\QuickSearch\Plugins\QuickSearch.dll

\GameData\RCSBuildAid\Plugins\RCSBuildAid.dll

\GameData\RCSBuildAid\Plugins\RCSBuildAidToolbar.dll

\GameData\Regolith\Regolith.dll

\GameData\ResGen\ResGen.dll

\GameData\S.A.V.E\Plugins\S.A.V.E.dll

\GameData\SCANsat\Plugins\SCANsat.dll

\GameData\SmokeScreen\SmokeScreen.dll

\GameData\StageRecovery\StageRecovery.dll

\GameData\StockBugFixModules\AnchoredDecouplerFix.dll

\GameData\StockBugFixModules\ChuteQuickloadFixer.dll

\GameData\StockBugFixModules\CrewRosterFreezeFix.dll

\GameData\StockBugFixModules\EVAEjectionFix.dll

\GameData\StockBugFixModules\KerbalDebrisFix.dll

\GameData\TechManager\TechManager.dll

\GameData\TextureReplacer\Plugins\TextureReplacer.dll

\GameData\TriggerTech\KerbalAlarmClock\KerbalAlarmClock.dll

\GameData\TriggerTech\KSPAlternateResourcePanel\KSPAlternateResourcePanel.dll

\GameData\TriggerTech\TransferWindowPlanner\TransferWindowPlanner.dll

\GameData\UmbraSpaceIndustries\Karbonite\Karbonite.dll

\GameData\UmbraSpaceIndustries\Kolonization\KolonyTools.dll

\GameData\UniversalStorage\MiniAVC.dll

\GameData\UniversalStorage\Plugins\AdvancedAnimator.dll

\GameData\VerneTech\FieldScientistPack\VT_FSPack.dll

\GameData\Virgin Kalactic\VirginGeneric.dll

What's your Firespitter version? Mine is 7.0.5511 from MKS/OKS/Karbonite and frankly, if I recall correctly, the problems started more or less after updating said mods... because the previously bundled firespitter.dll messed up fsFuelSwitch module on stock tanks (in my case coming from Atomic Age); namely it reset the resources on every launch/vessel swap. Didn't think of it until after I read the post about the borky RESOURCE node.

Edit: got this while running .12

[ModuleManager] Exception while checking needs : Squad/Parts/Engine/liquidEngineLV-T45/liquidEngineLV-T45/liquidEngine2 with a type of PARTline 7
System.NullReferenceException: Object reference not set to an instance of an object

at (wrapper stelemref) object:stelemref (object,intptr,object)

at ModuleManager.MMPatchLoader.CheckNeeds (.ConfigNode subMod, System.String url, System.Collections.Generic.List`1 path) [0x00000] in <filename unknown>:0

at ModuleManager.MMPatchLoader.CheckNeeds (System.Collections.Generic.List`1 excludePaths) [0x00000] in <filename unknown>:0

(Filename: C:/BuildAgent/work/d63dfc6385190b60/artifacts/StandalonePlayerGenerated/UnityEngineDebug.cpp Line: 49)

NullReferenceException: Object reference not set to an instance of an object
at (wrapper stelemref) object:stelemref (object,intptr,object)

at System.Text.StringBuilder.AppendFormat (System.String format, System.Object arg0, System.Object arg1, System.Object arg2) [0x00000] in <filename unknown>:0

at ModuleManager.MMPatchLoader.PrettyConfig (.ConfigNode node, System.Text.StringBuilder& sb, System.String indent) [0x00000] in <filename unknown>:0

at ModuleManager.MMPatchLoader.PrettyConfig (.UrlConfig config) [0x00000] in <filename unknown>:0

at ModuleManager.MMPatchLoader.CheckNeeds (System.Collections.Generic.List`1 excludePaths) [0x00000] in <filename unknown>:0

at ModuleManager.MMPatchLoader+<ProcessPatch>c__Iterator0.MoveNext () [0x00000] in <filename unknown>:0

(Filename: Line: -1)

Edit 2: Now KSP hangs every time, each time on a different part. I assume since this involves (to my knowledge) a parsing error, this behavior is to be expected?

Edited by Zorbaq
Link to comment
Share on other sites

I'm not so sure the issue with stock tank values resetting using the Atomic Age MM patch is a firespitter problem. The AA patch added a FS fuel switch module without also deleting the pre-defined resource amounts in the stock tanks. I don't think that is how the FS fuel switch module is intended to be used. Look at any of the mod parts which use the fuel switch module (like B9), they don't separately define the resource nodes for resources handled by the fuel switch module.

Link to comment
Share on other sites

I'm not so sure the issue with stock tank values resetting using the Atomic Age MM patch is a firespitter problem. The AA patch added a FS fuel switch module without also deleting the pre-defined resource amounts in the stock tanks. I don't think that is how the FS fuel switch module is intended to be used. Look at any of the mod parts which use the fuel switch module (like B9), they don't separately define the resource nodes for resources handled by the fuel switch module.

Aha, you are correct :) It was indeed so, I forgot I had to tweak AA's patch myself to get it working.

Link to comment
Share on other sites

Edit 2: Now KSP hangs every time, each time on a different part. I assume since this involves (to my knowledge) a parsing error, this behavior is to be expected?

Yes, that's the bug I m tracking. When you upgraded MM it deleted the cache on first use so now you get the bug. As I said I don't think it's a MM bug, MM just make it more obvious.

Link to comment
Share on other sites

Yes, that's the bug I m tracking. When you upgraded MM it deleted the cache on first use so now you get the bug. As I said I don't think it's a MM bug, MM just make it more obvious.

Alright, thank you kindly for all your help sarbian, with .12 now it should be fairly simple to pinpoint the offending mod via simple elimination.

Link to comment
Share on other sites

Y'know, this "hanging" business reminds me of an odd behavior I've discovered when my computer has been running a long time without a reboot. KSP will load, but each and every file will take 10x the time to load. I haven't read all the discussion, but at the top of this page, in a quote, I read something that sounded like this. Make sure your problem isn't due to a computer that isn't getting its beauty rest.

Link to comment
Share on other sites

I spent a while testing stuff and I can't find the source. I don't get it when TextureReplacer is not here but there is nothing in it that should create that problem, so it may just trigger the bug easier. It's a pain to test since it does not crash each time for me.

I tried to add some code so MM wait until TR finish doing anything before starting but I still had the Exception/freeze.

I also added some code to detect the problem and the result is just insane : value.name.Length = -1 for some node values... No node has that at the game start and some have it when MM starts its work.

Link to comment
Share on other sites

Found it :)


[TR.Loader] Generated mipmaps & compressed UmbraSpaceIndustries/Karbonite/Parts/KA_Tank_125_01/blank_a [2x2 DXT5 -> DXT1]

(Filename: C:/BuildAgent/work/d63dfc6385190b60/artifacts/StandalonePlayerGenerated/UnityEngineDebug.cpp Line: 49)

d3d: failed to create 2D texture id=3623 w=2 h=2 mips=3 d3dfmt=21 [invalid call]

After that line the base is corrupted. My guess is that the texture is too small (2x2 png), that trigger a bad D3D call that is not properly caught and it corrupt part of the memory.

Link to comment
Share on other sites

Most impressive find!

Indeed I have no ATM installed, most of my textures are dds-ified (DDS4KSP). But how would installing ATM help? Isn't the texture simply too small for DXT compression by any of the methods (dds4ksp, atm, tr)?

Link to comment
Share on other sites

Most impressive find!

Indeed I have no ATM installed, most of my textures are dds-ified (DDS4KSP). But how would installing ATM help? Isn't the texture simply too small for DXT compression by any of the methods (dds4ksp, atm, tr)?

Because TR disables its compression and mipmap function when ATM is installed. So this error shouldn't occur with ATM installed. I also assume you are not using forceopengl to run KSP as I wouldn't expect a D3D call to be made in such a case (but I could be completely wrong).

I'm using DDS textures, have ATM and TR installed, and the USI mod mentioned in sarbian's post and have not had this problem. However I'm also using forceopengl.

Link to comment
Share on other sites

I seem to not understand how to use MM to change mods settings, if anyone can help, that would be awesome.

This is the content of a settings.cfg from the mod KerbalMass:

KerbalMass_Settings
{
// A Kerbal's mass in game units (metric tons).
// Can't be 0 or less.
// default: KerbalMass = 0.09375
KerbalMass = 0.09375

// If the default part mass (as seen in the part description in the editor)
// already contains the mass of a full crew.
// default: DefaultPartMassIncludesKerbalMass = False
DefaultPartMassIncludesKerbalMass = False
}

I seem to be unable to address the "KerbalMass_Settings" since it does not contain a "name = whatever".

How should my MM.cfg file look like, to change the "KerbalMass = 0.09375" to eg 0.04?

Thank you very much for your help.

Link to comment
Share on other sites

I seem to not understand how to use MM to change mods settings, if anyone can help, that would be awesome.

This is the content of a settings.cfg from the mod KerbalMass:

KerbalMass_Settings
{
// A Kerbal's mass in game units (metric tons).
// Can't be 0 or less.
// default: KerbalMass = 0.09375
KerbalMass = 0.09375

// If the default part mass (as seen in the part description in the editor)
// already contains the mass of a full crew.
// default: DefaultPartMassIncludesKerbalMass = False
DefaultPartMassIncludesKerbalMass = False
}

I seem to be unable to address the "KerbalMass_Settings" since it does not contain a "name = whatever".

How should my MM.cfg file look like, to change the "KerbalMass = 0.09375" to eg 0.04?

Thank you very much for your help.

If it's reasonable to assume there will only ever be one KerbalMass_Settings, then its my understanding that this should work:


@[COLOR=#333333]KerbalMass_Settings
[/COLOR]{
@[COLOR=#333333]KerbalMass = 0.04[/COLOR]
}

EDIT: Can't test it at the moment, but the documentation on the first page implies that you can only match in one of "7 ways" quoted there, in which case you may need to change above to:



@[COLOR=#333333]KerbalMass_Settings,*
[/COLOR]{
@[COLOR=#333333]KerbalMass = 0.04[/COLOR]
}

Edited by nightingale
Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Create New...