Jump to content

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


sarbian

Recommended Posts

Just a quick question about MM capabilites...for example, if I wanted to add an electric generator (ModuleGenerator) to an existing command pod at a certain point in the tech tree...say a new node...could I write a MM patch that would do this? As if the part already had a generator that you had to unlock...

Link to comment
Share on other sites

23 hours ago, bsooner77 said:

Just a quick question about MM capabilites...for example, if I wanted to add an electric generator (ModuleGenerator) to an existing command pod at a certain point in the tech tree...say a new node...could I write a MM patch that would do this? As if the part already had a generator that you had to unlock...

I'm by no means an authority on this, but I have not seen any ability to do this as stated. MechJeb does something like this, but the patch it uses seems to change some internal variables at the different unlock levels and perhaps internally is hiding the extra parts that it adds at the different unlock levels? 

It might also be interesting to look at how the various tech tree mods do this like CTT. 

Sorry I'm not able to give better assistance! It's an intriguing problem and I hope you find a way to do it! I would love to know how to as well. 

Link to comment
Share on other sites

On 6/19/2016 at 0:42 PM, bsooner77 said:

Just a quick question about MM capabilites...for example, if I wanted to add an electric generator (ModuleGenerator) to an existing command pod at a certain point in the tech tree...say a new node...could I write a MM patch that would do this? As if the part already had a generator that you had to unlock...

This isn't possible with MM.  MM can only change what the parts look like when the game loads them, it can't do anything based on the tech tree.

Link to comment
Share on other sites

Thanks for the info.  I had this crazy idea about modding some of the engines I play with to use electricty but have really good ISP and I didn't want to make it too easy on myself.  

I ended up writing patches for the engines anyways...and a couple of patches for electric generators in a couple of parts.  I was inspired by the endurance mod but just wanted to see what I could build on my own, craft wise, if I had different sorts of engines with the same specs as the engines in that mod.  

I like to throw a little sci-fi science in my game every once in a while to liven things up. 

Link to comment
Share on other sites

A bit of an issue here... when I have MM enabled, I lose the KSP core tech tree; all the original KSP nodes vanish, leaving all the new ones added by mods floating in mid-air, so to speak. The mouseover tooltip also says "no text" on all of them.

As a workaround, I tried editing the modulemanager.techtree file, and copied all the nodes from the core game (gamedata/squad/resources/techtree.cfg) into it, but the modulemanager just overwrote them. Setting the techtree file to read-only after copying all the nodes into it just stopped the game from loading.

So yeah, basically when I have MM installed, it removes all the core KSP nodes, but adds the new ones from mods. Without it, I have all the core KSP nodes, but none of the new ones from mods. Not sure what to do. Here's the relevant bit from the game logs:

 

[LOG 09:25:10.544] Game Paused!
[ERR 09:25:10.652] No RDNode registered with id highPerformanceFuelSystems!

[ERR 09:25:10.652] No RDNode registered with id nuclearPropulsion!

[ERR 09:25:10.653] No RDNode registered with id nuclearPropulsion!

[ERR 09:25:10.653] No RDNode registered with id veryHeavyRocketry!

[ERR 09:25:10.654] No RDNode registered with id highPerformanceFuelSystems!

[ERR 09:25:10.654] No RDNode registered with id nanolathing!

[ERR 09:25:10.654] No RDNode registered with id metaMaterials!

[ERR 09:25:10.655] No RDNode registered with id actuators!

[ERR 09:25:10.655] No RDNode registered with id composites!

[ERR 09:25:10.656] No RDNode registered with id aerodynamicSystems!

[ERR 09:25:10.656] No RDNode registered with id aerospaceTech!

[ERR 09:25:10.656] No RDNode registered with id experimentalAerodynamics!

[ERR 09:25:10.657] No RDNode registered with id survivability!

[ERR 09:25:10.657] No RDNode registered with id commandModules!

[ERR 09:25:10.657] No RDNode registered with id experimentalScience!

[ERR 09:25:10.658] No RDNode registered with id scienceTech!

[ERR 09:25:10.658] No RDNode registered with id automation!

[ERR 09:25:10.659] No RDNode registered with id largeUnmanned!

[ERR 09:25:10.659] No RDNode registered with id ionPropulsion!

[ERR 09:25:10.659] No RDNode registered with id largeElectrics!

[ERR 09:25:10.660] No RDNode registered with id experimentalElectrics!

[ERR 09:25:10.660] No RDNode registered with id experimentalElectrics!

[ERR 09:25:10.661] No RDNode registered with id electrics!

[ERR 09:25:10.661] No RDNode registered with id basicScience!

[ERR 09:25:10.661] No RDNode registered with id basicScience!

[ERR 09:25:10.662] No RDNode registered with id highPerformanceFuelSystems!

[ERR 09:25:10.662] No RDNode registered with id veryHeavyRocketry!

[ERR 09:25:10.663] No RDNode registered with id metaMaterials!

[ERR 09:25:10.663] No RDNode registered with id highPerformanceFuelSystems!

[EXC 09:25:10.668] NullReferenceException: Object reference not set to an instance of an object
	KSP.UI.Screens.RDNode.DrawArrow (UnityEngine.Material mat)
	KSP.UI.Screens.RDNode.ShowArrows (Boolean show, UnityEngine.Material mat, .Parent[] list)
	KSP.UI.Screens.RDNode.InitializeArrows ()
	KSP.UI.Screens.RDNode.Setup ()
	KSP.UI.Screens.RDNode.Start ()
[EXC 09:25:10.670] NullReferenceException: Object reference not set to an instance of an object
	KSP.UI.Screens.RDNode.DrawArrow (UnityEngine.Material mat)
	KSP.UI.Screens.RDNode.ShowArrows (Boolean show, UnityEngine.Material mat, .Parent[] list)
	KSP.UI.Screens.RDNode.InitializeArrows ()
	KSP.UI.Screens.RDNode.Setup ()
	KSP.UI.Screens.RDNode.Start ()
[EXC 09:25:10.687] NullReferenceException: Object reference not set to an instance of an object
	KSP.UI.Screens.RDNode.DrawArrow (UnityEngine.Material mat)
	KSP.UI.Screens.RDNode.ShowArrows (Boolean show, UnityEngine.Material mat, .Parent[] list)
	KSP.UI.Screens.RDNode.InitializeArrows ()
	KSP.UI.Screens.RDNode.Setup ()
	KSP.UI.Screens.RDNode.DrawArrow (UnityEngine.Material mat)
	KSP.UI.Screens.RDNode.ShowArrows (Boolean show, UnityEngine.Material mat, .Parent[] list)
	KSP.UI.Screens.RDNode.InitializeArrows ()
	KSP.UI.Screens.RDNode.Setup ()
	KSP.UI.Screens.RDNode.DrawArrow (UnityEngine.Material mat)
	KSP.UI.Screens.RDNode.ShowArrows (Boolean show, UnityEngine.Material mat, .Parent[] list)
	KSP.UI.Screens.RDNode.InitializeArrows ()
	KSP.UI.Screens.RDNode.Setup ()
	KSP.UI.Screens.RDNode.DrawArrow (UnityEngine.Material mat)
	KSP.UI.Screens.RDNode.ShowArrows (Boolean show, UnityEngine.Material mat, .Parent[] list)
	KSP.UI.Screens.RDNode.InitializeArrows ()
	KSP.UI.Screens.RDNode.Setup ()
	KSP.UI.Screens.RDNode.Start ()
[EXC 09:25:10.694] NullReferenceException: Object reference not set to an instance of an object
	KSP.UI.Screens.RDNode.DrawArrow (UnityEngine.Material mat)
	KSP.UI.Screens.RDNode.ShowArrows (Boolean show, UnityEngine.Material mat, .Parent[] list)
	KSP.UI.Screens.RDNode.InitializeArrows ()
	KSP.UI.Screens.RDNode.Setup ()
	KSP.UI.Screens.RDNode.DrawArrow (UnityEngine.Material mat)
	KSP.UI.Screens.RDNode.ShowArrows (Boolean show, UnityEngine.Material mat, .Parent[] list)
	KSP.UI.Screens.RDNode.InitializeArrows ()
	KSP.UI.Screens.RDNode.Setup ()
	KSP.UI.Screens.RDNode.DrawArrow (UnityEngine.Material mat)
	KSP.UI.Screens.RDNode.ShowArrows (Boolean show, UnityEngine.Material mat, .Parent[] list)
	KSP.UI.Screens.RDNode.InitializeArrows ()
	KSP.UI.Screens.RDNode.Setup ()
	KSP.UI.Screens.RDNode.Start ()
[EXC 09:25:10.702] NullReferenceException: Object reference not set to an instance of an object
	KSP.UI.Screens.RDNode.DrawArrow (UnityEngine.Material mat)
	KSP.UI.Screens.RDNode.ShowArrows (Boolean show, UnityEngine.Material mat, .Parent[] list)
	KSP.UI.Screens.RDNode.InitializeArrows ()
	KSP.UI.Screens.RDNode.Setup ()
	KSP.UI.Screens.RDNode.DrawArrow (UnityEngine.Material mat)
	KSP.UI.Screens.RDNode.ShowArrows (Boolean show, UnityEngine.Material mat, .Parent[] list)
	KSP.UI.Screens.RDNode.InitializeArrows ()
	KSP.UI.Screens.RDNode.Setup ()
	KSP.UI.Screens.RDNode.DrawArrow (UnityEngine.Material mat)
	KSP.UI.Screens.RDNode.ShowArrows (Boolean show, UnityEngine.Material mat, .Parent[] list)
	KSP.UI.Screens.RDNode.InitializeArrows ()
	KSP.UI.Screens.RDNode.Setup ()
	KSP.UI.Screens.RDNode.DrawArrow (UnityEngine.Material mat)
	KSP.UI.Screens.RDNode.ShowArrows (Boolean show, UnityEngine.Material mat, .Parent[] list)
	KSP.UI.Screens.RDNode.InitializeArrows ()
	KSP.UI.Screens.RDNode.Setup ()
	KSP.UI.Screens.RDNode.DrawArrow (UnityEngine.Material mat)
	KSP.UI.Screens.RDNode.ShowArrows (Boolean show, UnityEngine.Material mat, .Parent[] list)
	KSP.UI.Screens.RDNode.InitializeArrows ()
	KSP.UI.Screens.RDNode.Setup ()
	KSP.UI.Screens.RDNode.Start ()
[EXC 09:25:10.708] NullReferenceException: Object reference not set to an instance of an object
	KSP.UI.Screens.RDNode.DrawArrow (UnityEngine.Material mat)
	KSP.UI.Screens.RDNode.ShowArrows (Boolean show, UnityEngine.Material mat, .Parent[] list)
	KSP.UI.Screens.RDNode.InitializeArrows ()
	KSP.UI.Screens.RDNode.Setup ()
	KSP.UI.Screens.RDNode.DrawArrow (UnityEngine.Material mat)
	KSP.UI.Screens.RDNode.ShowArrows (Boolean show, UnityEngine.Material mat, .Parent[] list)
	KSP.UI.Screens.RDNode.InitializeArrows ()
	KSP.UI.Screens.RDNode.Setup ()
	KSP.UI.Screens.RDNode.Start ()
[EXC 09:25:10.715] NullReferenceException: Object reference not set to an instance of an object
	KSP.UI.Screens.RDNode.DrawArrow (UnityEngine.Material mat)
	KSP.UI.Screens.RDNode.ShowArrows (Boolean show, UnityEngine.Material mat, .Parent[] list)
	KSP.UI.Screens.RDNode.InitializeArrows ()
	KSP.UI.Screens.RDNode.Setup ()
	KSP.UI.Screens.RDNode.Start ()
[EXC 09:25:10.717] NullReferenceException: Object reference not set to an instance of an object
	KSP.UI.Screens.RDNode.DrawArrow (UnityEngine.Material mat)
	KSP.UI.Screens.RDNode.ShowArrows (Boolean show, UnityEngine.Material mat, .Parent[] list)
	KSP.UI.Screens.RDNode.InitializeArrows ()
	KSP.UI.Screens.RDNode.Setup ()
	KSP.UI.Screens.RDNode.Start ()
[EXC 09:25:10.721] NullReferenceException: Object reference not set to an instance of an object
	KSP.UI.Screens.RDNode.DrawArrow (UnityEngine.Material mat)
	KSP.UI.Screens.RDNode.ShowArrows (Boolean show, UnityEngine.Material mat, .Parent[] list)
	KSP.UI.Screens.RDNode.InitializeArrows ()
	KSP.UI.Screens.RDNode.Setup ()
	KSP.UI.Screens.RDNode.Start ()
[EXC 09:25:10.723] NullReferenceException: Object reference not set to an instance of an object
	KSP.UI.Screens.RDNode.DrawArrow (UnityEngine.Material mat)
	KSP.UI.Screens.RDNode.ShowArrows (Boolean show, UnityEngine.Material mat, .Parent[] list)
	KSP.UI.Screens.RDNode.InitializeArrows ()
	KSP.UI.Screens.RDNode.Setup ()
	KSP.UI.Screens.RDNode.Start ()
[EXC 09:25:10.725] NullReferenceException: Object reference not set to an instance of an object
	KSP.UI.Screens.RDNode.DrawArrow (UnityEngine.Material mat)
	KSP.UI.Screens.RDNode.ShowArrows (Boolean show, UnityEngine.Material mat, .Parent[] list)
	KSP.UI.Screens.RDNode.InitializeArrows ()
	KSP.UI.Screens.RDNode.Setup ()
	KSP.UI.Screens.RDNode.Start ()
[EXC 09:25:10.729] NullReferenceException: Object reference not set to an instance of an object
	KSP.UI.Screens.RDNode.DrawArrow (UnityEngine.Material mat)
	KSP.UI.Screens.RDNode.ShowArrows (Boolean show, UnityEngine.Material mat, .Parent[] list)
	KSP.UI.Screens.RDNode.InitializeArrows ()
	KSP.UI.Screens.RDNode.Setup ()
	KSP.UI.Screens.RDNode.Start ()
[EXC 09:25:10.731] NullReferenceException: Object reference not set to an instance of an object
	KSP.UI.Screens.RDNode.DrawArrow (UnityEngine.Material mat)
	KSP.UI.Screens.RDNode.ShowArrows (Boolean show, UnityEngine.Material mat, .Parent[] list)
	KSP.UI.Screens.RDNode.InitializeArrows ()
	KSP.UI.Screens.RDNode.Setup ()
	KSP.UI.Screens.RDNode.Start ()
[EXC 09:25:10.734] NullReferenceException: Object reference not set to an instance of an object
	KSP.UI.Screens.RDNode.DrawArrow (UnityEngine.Material mat)
	KSP.UI.Screens.RDNode.ShowArrows (Boolean show, UnityEngine.Material mat, .Parent[] list)
	KSP.UI.Screens.RDNode.InitializeArrows ()
	KSP.UI.Screens.RDNode.Setup ()
	KSP.UI.Screens.RDNode.Start ()
[EXC 09:25:10.737] NullReferenceException: Object reference not set to an instance of an object
	KSP.UI.Screens.RDNode.DrawArrow (UnityEngine.Material mat)
	KSP.UI.Screens.RDNode.ShowArrows (Boolean show, UnityEngine.Material mat, .Parent[] list)
	KSP.UI.Screens.RDNode.InitializeArrows ()
	KSP.UI.Screens.RDNode.Setup ()
	KSP.UI.Screens.RDNode.Start ()
[EXC 09:25:10.740] NullReferenceException: Object reference not set to an instance of an object
	KSP.UI.Screens.RDNode.DrawArrow (UnityEngine.Material mat)
	KSP.UI.Screens.RDNode.ShowArrows (Boolean show, UnityEngine.Material mat, .Parent[] list)
	KSP.UI.Screens.RDNode.InitializeArrows ()
	KSP.UI.Screens.RDNode.Setup ()
	KSP.UI.Screens.RDNode.Start ()
[EXC 09:25:10.744] NullReferenceException: Object reference not set to an instance of an object
	KSP.UI.Screens.RDNode.DrawArrow (UnityEngine.Material mat)
	KSP.UI.Screens.RDNode.ShowArrows (Boolean show, UnityEngine.Material mat, .Parent[] list)
	KSP.UI.Screens.RDNode.InitializeArrows ()
	KSP.UI.Screens.RDNode.Setup ()
	KSP.UI.Screens.RDNode.Start ()
[EXC 09:25:10.746] NullReferenceException: Object reference not set to an instance of an object
	KSP.UI.Screens.RDNode.DrawArrow (UnityEngine.Material mat)
	KSP.UI.Screens.RDNode.ShowArrows (Boolean show, UnityEngine.Material mat, .Parent[] list)
	KSP.UI.Screens.RDNode.InitializeArrows ()
	KSP.UI.Screens.RDNode.Setup ()
	KSP.UI.Screens.RDNode.Start ()
[EXC 09:25:10.748] NullReferenceException: Object reference not set to an instance of an object
	KSP.UI.Screens.RDNode.DrawArrow (UnityEngine.Material mat)
	KSP.UI.Screens.RDNode.ShowArrows (Boolean show, UnityEngine.Material mat, .Parent[] list)
	KSP.UI.Screens.RDNode.InitializeArrows ()
	KSP.UI.Screens.RDNode.Setup ()
	KSP.UI.Screens.RDNode.Start ()
[EXC 09:25:10.755] NullReferenceException: Object reference not set to an instance of an object
	KSP.UI.Screens.RDNode.DrawArrow (UnityEngine.Material mat)
	KSP.UI.Screens.RDNode.ShowArrows (Boolean show, UnityEngine.Material mat, .Parent[] list)
	KSP.UI.Screens.RDNode.InitializeArrows ()
	KSP.UI.Screens.RDNode.Setup ()
	KSP.UI.Screens.RDNode.Start ()
[EXC 09:25:10.758] NullReferenceException: Object reference not set to an instance of an object
	KSP.UI.Screens.RDNode.DrawArrow (UnityEngine.Material mat)
	KSP.UI.Screens.RDNode.ShowArrows (Boolean show, UnityEngine.Material mat, .Parent[] list)
	KSP.UI.Screens.RDNode.InitializeArrows ()
	KSP.UI.Screens.RDNode.Setup ()
	KSP.UI.Screens.RDNode.Start ()
[EXC 09:25:10.760] NullReferenceException: Object reference not set to an instance of an object
	KSP.UI.Screens.RDNode.DrawArrow (UnityEngine.Material mat)
	KSP.UI.Screens.RDNode.ShowArrows (Boolean show, UnityEngine.Material mat, .Parent[] list)
	KSP.UI.Screens.RDNode.InitializeArrows ()
	KSP.UI.Screens.RDNode.Setup ()
	KSP.UI.Screens.RDNode.Start ()
[EXC 09:25:10.763] NullReferenceException: Object reference not set to an instance of an object
	KSP.UI.Screens.RDNode.DrawArrow (UnityEngine.Material mat)
	KSP.UI.Screens.RDNode.ShowArrows (Boolean show, UnityEngine.Material mat, .Parent[] list)
	KSP.UI.Screens.RDNode.InitializeArrows ()
	KSP.UI.Screens.RDNode.Setup ()
	KSP.UI.Screens.RDNode.Start ()
[EXC 09:25:10.766] NullReferenceException: Object reference not set to an instance of an object
	KSP.UI.Screens.RDNode.DrawArrow (UnityEngine.Material mat)
	KSP.UI.Screens.RDNode.ShowArrows (Boolean show, UnityEngine.Material mat, .Parent[] list)
	KSP.UI.Screens.RDNode.InitializeArrows ()
	KSP.UI.Screens.RDNode.Setup ()
	KSP.UI.Screens.RDNode.Start ()
[EXC 09:25:10.769] NullReferenceException: Object reference not set to an instance of an object
	KSP.UI.Screens.RDNode.DrawArrow (UnityEngine.Material mat)
	KSP.UI.Screens.RDNode.ShowArrows (Boolean show, UnityEngine.Material mat, .Parent[] list)
	KSP.UI.Screens.RDNode.InitializeArrows ()
	KSP.UI.Screens.RDNode.Setup ()
	KSP.UI.Screens.RDNode.DrawArrow (UnityEngine.Material mat)
	KSP.UI.Screens.RDNode.ShowArrows (Boolean show, UnityEngine.Material mat, .Parent[] list)
	KSP.UI.Screens.RDNode.InitializeArrows ()
	KSP.UI.Screens.RDNode.Setup ()
	KSP.UI.Screens.RDNode.Start ()
[EXC 09:25:10.779] NullReferenceException: Object reference not set to an instance of an object
	KSP.UI.Screens.RDNode.DrawArrow (UnityEngine.Material mat)
	KSP.UI.Screens.RDNode.ShowArrows (Boolean show, UnityEngine.Material mat, .Parent[] list)
	KSP.UI.Screens.RDNode.InitializeArrows ()
	KSP.UI.Screens.RDNode.Setup ()
	KSP.UI.Screens.RDNode.Start ()
[EXC 09:25:10.781] NullReferenceException: Object reference not set to an instance of an object
	KSP.UI.Screens.RDNode.DrawArrow (UnityEngine.Material mat)
	KSP.UI.Screens.RDNode.ShowArrows (Boolean show, UnityEngine.Material mat, .Parent[] list)
	KSP.UI.Screens.RDNode.InitializeArrows ()
	KSP.UI.Screens.RDNode.Setup ()
	KSP.UI.Screens.RDNode.Start ()

 

Edited by Undecided
Link to comment
Share on other sites

What's the proper way to edit or deletes values within a specific module?  For example, editing thrust and ISP values for an engine, or removing the RESOURCE ElectricCharge usage rate from MODULE Command.

I had done it like this for the two listed examples:

@MODULE
    {
        @name = ModuleCommand
        @minimumCrew = 1
        -RESOURCE[ElectricCharge]
    }

This did not actually remove the electric charge usage for what is now a  manned pod.

 

@MODULE
    {
        @name = ModuleEnginesFX
        
        @maxThrust = 125
        
        @atmosphereCurve
        {
            @key = 0 345
        }
    }

This actually causes KSP to hang on this specifc part loading (the loading tips continue, but nothing else happens, have to Alt-F4 out), which is a cloned adapted stock engine.

Sorry if this is too newb, but I'm finally making my first foray into writing MM patches to mod my KSP. :)

 

Link to comment
Share on other sites

23 minutes ago, Laguna said:

This did not actually remove the electric charge usage for what is now a  manned pod.

Addressing a MODULE is be done by defining it as a parameter:

@MODULE[MyModule]
{
    <DO STUFF>
    .
    .
    .
}

The MODULE and RESOURCE blocks require curly brackets (examples below):

!MODULE[MyModule]{}

!RESOURCE[MyResource]{}

This is required for all edit types (additions, deletions, replacements).

24 minutes ago, Laguna said:

This actually causes KSP to hang on this specifc part loading (the loading tips continue, but nothing else happens, have to Alt-F4 out), which is a cloned adapted stock engine.

You did not address the engine module and the ISP curve correctly. Right now the patch has absolutely no idea what key value to edit:

@MODULE[ModuleEnginesFX]
{
    @maxThrust = 125
        
    @atmosphereCurve
    {
        @key,0 = 0 345
    }
} 

I would strongly recommend reading the Module Manager Syntax wiki to get a hang of how MM operates and what it's capabilities/limitations are.

Do not worry about being "newb" and do not be afraid to ask questions. Everybody has to make a start somehow! :wink:

Link to comment
Share on other sites

@Phineas Freak

I thought 

@key = stuff

and 

@key,0 = stuff

 

were exactly the same.

I actually use that feature in many of my mods and they always have worked fine

 

EDIT: other than that, I totally agree with the fact that the handbook is a very usefull tool :wink:

Edited by Sigma88
Link to comment
Share on other sites

Just now, Phineas Freak said:

@Sigma88I have never seen a key edit without specifying the key "ID" and always thought that a key required a valid one. I may also be 100% wrong here so if anyone can confirm or deny my statements it would be excellent.

I am confirming my post :)

"key" is the same than any other parameter, like "maxThrust"

you did edit the maxthrust without any ID in your example

this is because the default ID is ,0

you can specify that you want to edit other ones, but you can omit ,0 because that's the default

 

unless something has changed since last time I tried

Link to comment
Share on other sites

@Sigma88Well, i have been using it for so long that i ignored that you can address a specific key with the same way as with a module/model/resource block...in this case, yes, the first ISP value will be the default and will get patched without an explicit reference.

It's nice to have some fellow users that can restart your brain every now and then. It really helps!

Link to comment
Share on other sites

On 6/23/2016 at 7:44 AM, Undecided said:

A bit of an issue here... when I have MM enabled, I lose the KSP core tech tree; all the original KSP nodes vanish, leaving all the new ones added by mods floating in mid-air, so to speak. The mouseover tooltip also says "no text" on all of them.

As a workaround, I tried editing the modulemanager.techtree file, and copied all the nodes from the core game (gamedata/squad/resources/techtree.cfg) into it, but the modulemanager just overwrote them. Setting the techtree file to read-only after copying all the nodes into it just stopped the game from loading.

So yeah, basically when I have MM installed, it removes all the core KSP nodes, but adds the new ones from mods. Without it, I have all the core KSP nodes, but none of the new ones from mods. Not sure what to do. Here's the relevant bit from the game logs:

Could you delete your ModuleManager.configcache, then load KSP and post KSP.log and ModuleManager.configcache?  This will help debug it.

Edited by blowfish
Link to comment
Share on other sites

Hi,

is there any way to change the orientation of a part with MM? I'm trying to take a sideways rcs model and convert it into an engine. 

5L58RJU.png

Edited by Tahib
Link to comment
Share on other sites

@sarbian

I'd like to merge some patches with the parts they are patching and end up with a final set of files, already patched.  This is for KW Rocketry Redux, I don't see the need to have old patches which by this time are essentially part of the mod.  

Even if I have to process one file at a time, it would be worth it.  Is there any easy way to do this;  something like a stand-alone module manager which can accept a patch(s) and apply them to an input file and write a new file?

thanks in advance

 

LGG

Link to comment
Share on other sites

2 minutes ago, linuxgurugamer said:

@sarbian

I'd like to merge some patches with the parts they are patching and end up with a final set of files, already patched.  This is for KW Rocketry Redux, I don't see the need to have old patches which by this time are essentially part of the mod.  

Even if I have to process one file at a time, it would be worth it.  Is there any easy way to do this;  something like a stand-alone module manager which can accept a patch(s) and apply them to an input file and write a new file?

thanks in advance

 

LGG

You could copy the content of the mm cache and use the final result as part files

Unless I misunderstand what you ask

Link to comment
Share on other sites

4 minutes ago, Sigma88 said:

You could copy the content of the mm cache and use the final result as part files

Unless I misunderstand what you ask

Problem with that is the cache is one huge file, and KW is lots of files.  It would be easier if I could process one file at a time.  Also, the syntax is slightly different in the cache file, and I would have to do lots of edits

 

Edited by linuxgurugamer
Link to comment
Share on other sites

@sarbian I would like to know why you would like to delist in ckan as well. This might break all of my mods. 

I don't want to go back to the days when every mod had a different copy of MM in it. :)

I don't know the history of the request and it's not listed in the PR, so maybe there's another way?

2 hours ago, linuxgurugamer said:

Problem with that is the cache is one huge file, and KW is lots of files.  It would be easier if I could process one file at a time.  Also, the syntax is slightly different in the cache file, and I would have to do lots of edits

 

If you have an install that just contains this mod (which it seems like every modern has a tuned copy of ksp with only QuickStart and a couple other mods), the cache shouldn't be too rough to split up. It will still be arranged by PART, but you will lose commentary. 

But as far as I know, no, there's no cli version of MM that would do this (but if there is I _really_ want to know!)

Edited by vosechu
Link to comment
Share on other sites

5 minutes ago, vosechu said:

@sarbian I would like to know why as well. This breaks all of my mods. 

I don't want to go back to the days when every mod had a different copy of MM in it. :)

I don't know the history of the request and it's not listed in the PR, so maybe there's another way?

If you have an install that just contains this mod (which it seems like every modern has a tuned copy of ksp with only QuickStart and a couple other mods), the cache shouldn't be too rough to split up. It will still be arranged by PART, but you will lose commentary. 

But as far as I know, no, there's no cli version of MM that would do this (but if there is I _really_ want to know!)

Why did you quote that post? It has nothing to do with Module Manager....? 

Link to comment
Share on other sites

8 minutes ago, vosechu said:

Let me try it out before worrying.

I'm trying to understand the significance of the thread and post you quoted from as to how it relates to any of your specific question to Sarbian your own post. Otherwise it's non sequitur. And try WHAT? What are you even talking about?

Link to comment
Share on other sites

1 minute ago, Starwaster said:

I'm trying to understand the significance of the thread and post you quoted from as to how it relates to any of your specific question to Sarbian your own post. Otherwise it's non sequitur. And try WHAT? What are you even talking about?

Oh, Jesus, I'm not sure how that quote even got used. I was trying to quote the thing about MM being delisted from ckan

Sorry, your confusion totally makes sense now. I wonder if I can still edit that old post? I'll try that. 

What I was trying to say was that since MM has been delisted (according to GitHub at least), I wanted to see if all of my mods broke because they couldn't find their dep. That's what I meant by trying it before worrying. 

I was able to edit my old post, so hopefully that will prevent future confusion. Really sorry about that!

Link to comment
Share on other sites

For people who are interested ( @sarbian feel free to include this), here is a small Bash shell script which will take the files which were dumped by MM when you "dump database to file", which will copy all the files to a new directory structure.  This script requires either Cygwin on Windows, or being run from a command line on either OSX or Linux:

#!/bin/bash

#
# Set the destdir to the destination directory where you want to create
# the new directory structure and copy the files
#
destdir=r:

for i in *.cfg; do
        IFS='.' read -r -a array <<<$i
        #echo $i
        n=${#array[@]}
        cnt=0
        p=$destdir
        d=$destdir
        for element in "${array[@]}"
        do
                cnt=$((cnt + 1))
                if [ $cnt -lt $((n - 2)) ]; then
                        d="$d/$element"
                fi
                if [ $cnt -lt $((n - 1)) ]; then
                        p="$p/$element"
                fi
        done
        #echo $d
        #echo "${p}.cfg"
        mkdir -p $d
        cp $i ${p}.cfg

done

 

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...