Jump to content

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


sarbian

Recommended Posts

Hey everyone, I only just learned what ModuleManager actually did today (How irresponsible of me, I know) and was experimenting with tweaking squad parts. Although, I'm having a strange issue I'm not sure how to fix. Of course it's probably something silly that I overlooked, as I pretty much just made a new .cfg and started dicking around in it. As a test I wanted to add a moduleCommand module to the Hitchhiker can, so I made a new squadPartModification.cfg file and inside I wrote out the following:


@PART [crewCabin]:Final
{
MODULE
{
name = ModuleCommand
minimumCrew = 1

RESOURCE
{
name = CarbonDioxide
rate = 0.010
}
RESOURCE
{
name = ElectricCharge
rate = 0.0027
}
}
RESOURCE
{
name = CarbonDioxide
amount = 1150
maxAmount = 1150
}
RESOURCE
{
name = ElectricCharge
amount = 100
maxAmount = 100
}
}

I should note that I added the CarbonDioxide resource seperately as my own playing around with resources. It was supposed to be something of a joke, Kerbals being plants, absorb CO2 as breathing gas. ANYWAYS, I wrote that out, saved it, and booted up KSP to find that literally every single part in the game had the "Command" module, minimum crew = 1, and consumed CO2 and ElectricCharge. Not entirely sure what's going on. On the bright side, the Crew Cabin now works as intended. :S

EDIT: I'M STUPID.... The space after @PART made it apply to literally everything that had a PART{} config file...

Edited by MarcRan17
Link to comment
Share on other sites

EDIT: I've determined now that EditorExtensions is crashing my game. It has nothing to do with ModuleManager. Disregard!

EDIT2: Also Texture Replacer and EVE are confirmed to not like each other in certain situations. Well then...

Edited by AlternNocturn
Link to comment
Share on other sites

with the today patch, module manager is locking the game from loading.

[Exception]: NullReferenceException: Object reference not set to an instance of an object

It came out 2 hours ago, not everyone lives in the same timezones or are on vacation

Link to comment
Share on other sites

It came out 2 hours ago, not everyone lives in the same timezones or are on vacation

For that matter, not giving everyone an actual week for some of the larger mods ( or in this case the singular mod that 95% of the KSP modding community depends on to not break everything ) is exceptionally unfair.

Link to comment
Share on other sites

Also there's the fact that you have no way of knowing if MM is causing the problem, since you did not check, and post the right log.

Cause the problem. Quit KSP (if it hasn't crashed). Upload your output log (NOT ksp.log) to dropbox or something.

Windows: KSP_win\KSP_Data\output_log.txt OR KSP_win64\KSP_x64_DATA\output_log.txt (depending on which used)

Mac OSX: Open Console, on the left side of the window there is a menu that says 'files'. Scroll down the list and find the Unity drop down, under Unity there will be Player.log Aka Files>~/Library/Logs>Unity>Player.log

Linux: ~/.config/unity3d/Squad/Kerbal\ Space\ Program/Player.log

Link to comment
Share on other sites

Hey, I'm back. So I'm having trouble writing a .cfg for command pods. I'm attempting to add a resource requirement to the command pods, but it's not quite working. For example, the Mark1-2Pod. I want to modify it's ModuleCommand module so that it requires not only at least one crew, but also a certain amount of ElectricCharge, Water, and CarbonDioxide over time. I've also added a small supply of these resources to the Pod. The Problem is, when I launch a vessel using the Mark 1-2 Command Pod, The context menu says that the vehicle is state: Not Enough CarbonDioxide/Water/ElectricCharge. It usually displays one of these three or flickers between them. The resources are present and they're all set to flowMode = ALL_VESSEL, so I can't figure out why the Pod seems to think that it's out of all the resources. Here's what I've got, I'm hoping someone could kindly point out what I've done wrong. Also, sorry for troubling you all, especially right when everything is so hectic, after the hot fix and all. Any Help is greatly appreciated.

@PART[Mark1-2Pod]
{
@MODULE[ModuleCommand]
{
RESOURCE
{
name = CarbonDioxide
rate = 0.015
}
RESOURCE
{
name = ElectricCharge
rate = 0.0030
}
RESOURCE
{
name = Water
rate = 0.0000348
}
}
RESOURCE
{
name = CarbonDioxide
amount = 480
maxAmount = 480
}
RESOURCE
{
name = Water
amount = 6
maxAmount = 6
}
}

Link to comment
Share on other sites

I want to play a game with only parts from a specific mod (in my case, the Steampunk parts from theVertical-Propulsion-Emporium).

Is there a way to disable all stock parts via ModuleManager? I would rather not go into GameData and delete the "Squad" directory, this might destroy my installation :confused:

I think this will do it....


@PART
[*]:NEEDS[Squad]
{
@TechRequired = DoesNotExist
@category = DoesNotExist
}

I know it will work in Career games as there is no such tech :P

Not sure about Sandbox....... that's what the category is for but I dont know if that will really do it.

Not even really awake right now. Woke up (sort of) almost an hour ago... going back to bed. I'm not even really sure who is typing this... I just see this pair of hands in front of me, glowing in the light of the monitor whose light hurts mine eyes....

Vision fading...... I know I'll be asleep before my body hits the matress....

Hey, I'm back. So I'm having trouble writing a .cfg for command pods. I'm attempting to add a resource requirement to the command pods, but it's not quite working. For example, the Mark1-2Pod. I want to modify it's ModuleCommand module so that it requires not only at least one crew, but also a certain amount of ElectricCharge, Water, and CarbonDioxide over time. I've also added a small supply of these resources to the Pod. The Problem is, when I launch a vessel using the Mark 1-2 Command Pod, The context menu says that the vehicle is state: Not Enough CarbonDioxide/Water/ElectricCharge. It usually displays one of these three or flickers between them. The resources are present and they're all set to flowMode = ALL_VESSEL, so I can't figure out why the Pod seems to think that it's out of all the resources. Here's what I've got, I'm hoping someone could kindly point out what I've done wrong. Also, sorry for troubling you all, especially right when everything is so hectic, after the hot fix and all. Any Help is greatly appreciated.

It's a Squad bug... not sure you can do anything about it. It's still controllable in spite of the messages, right?

Edited by Starwaster
Link to comment
Share on other sites

Hmm, I am definitely one of the people really interested in a Part Config Logger/Exporter. I'll check it out and see where it's ended up. It is interesting because I thought the in game Debug Part Database had the final configs but perhaps those are also the slimmed down versions. I'll remain optimistic that your custom build of Module Manager does what you were shooting for, exports the configs after Module Manager patches are applied.

I thought it would be really helpful. Others have brought up the idea also. And I noticed that no-one had done it yet, so here it is: a Part CFG Logger.

It exports the configs for every part (and resource and more) to files in your {KSP}/_CfgOutput directory. That's it. Nothing more. But I think it will be extremely useful when trying to get Module Manager files right. That's right, it exports the configs after MM patches are applied. It turned out to be really, really simple.

Code: https://github.com/taraniselsu/TacPartCfgLogger

Download: https://github.com/taraniselsu/TacPartCfgLogger/releases

Did not work as well as I wanted. See this post for another solution.

I will make a thread for it if there is enough interest.

KSP seems to be modifying the configs, possibly in the part loader, and it deletes a whole bunch of fields so they are no longer accessible. I have now hacked my export method into Module Manager as an alternative solution. I may have to ask that you incorporate my changes into the main MM build unless Squad fixes the part loader. I do not see another way to get it to work :(.

New version:

Code: https://github.com/taraniselsu/ModuleManager

Download: https://github.com/taraniselsu/ModuleManager/releases/tag/AddedCFGExport

Warning: do not use this version unless you know what you are doing. The maintainers of ModuleManager will not support this build in any way.

Link to comment
Share on other sites

Starwaster: That will disable all parts...NEEDS means "only apply this patch if the dll/folder/FOR named exists". Since Squad exists, that will be true always. :)

Crap. Well, talk to whoever was inhabiting my body while I slept.

Edit: actually, not sure that can be easily done in a single config snippet, sorry.....

Edited by Starwaster
Link to comment
Share on other sites

KSP seems to be modifying the configs, possibly in the part loader, and it deletes a whole bunch of fields so they are no longer accessible. I have now hacked my export method into Module Manager as an alternative solution. I may have to ask that you incorporate my changes into the main MM build unless Squad fixes the part loader. I do not see another way to get it to work :(.

New version:

Code: https://github.com/taraniselsu/ModuleManager

Download: https://github.com/taraniselsu/ModuleManager/releases/tag/AddedCFGExport

Warning: do not use this version unless you know what you are doing. The maintainers of ModuleManager will not support this build in any way.

Why did I miss this post :(

Edit : DLL and zip in the first post are now built for 0.24.2

No code change.

Edited by sarbian
Link to comment
Share on other sites

Crap. Well, talk to whoever was inhabiting my body while I slept.

Edit: actually, not sure that can be easily done in a single config snippet, sorry.....

With a little mucking about, it can be done. I can think of one way right off the bat that might work... okay, after some thinking I can actually think of two ways but one of them is not very well documented and I am unsure it is even really implemented. I'll start with that one.

So, in the original posting I noticed this:

- a special tag allow to exclude MM from processing a folder

If this is functional, and if anyone knows how to use this special tag, then you could use the already-posted method to remove the category and tech from all parts except the ones in the folder in which your desired parts are located.

However, since we don't have much information on this method, a second, more complicated, method is called for.

I'll start by removing access to all parts with:


@PART
[*]:FOR[Zmodthatwillrunlastbutbeforefinal]
{
@TechRequired = DoesNotExist
@category = DoesNotExist
}

If the mod name defined in the FOR attribute is far enough down the list in the way MM sorts them, then this will run after everything else, but before FINAL.

This allows it to override any other patches that run earlier in the process, while also allowing us to run the next set of patches to re-add the parts you want to allow.

this is where it gets complicated. You need to patch specifically either to each part individually, or to a set of parts with either a similar prefix (or similar first few letters) or a similar suffix that does not appear in any other stick or modded files.

You will also need to separate the patches between the categories and/or techs required so that you don't put every part into the same category.

This means diving into the configs and figuring out what goes where. We then have to re-apply those settings to those files.

Some examples:


@PART[partprefix*partsuffix]:Final
{
@TechRequired = techfromoriginalcfg
@category = categoryfromoriginalcfg
}

You'll need to have MM run a patch for each part, or for each set of parts if you can get MM to find them in wildcard-sets.

You'll also notice I run this in the FINAL pass. This lets you override your previous, custom modification.

Alternatively you could run it in a ":AFTER[]" pass to run it specifically after your custom mod so that any FINAL pass patches will not be interfered with if you're worried about that.

And now, I'm late for class so I better run. I also cannot claim that these will work out of the box because KSP is weird, and MM is really weird sometimes. Some assembly required to function!

Dang I'm good, eh?

Link to comment
Share on other sites

That is not going to work. There's nothing that stores the original values for techRequired/category so there's no way to reapply it later unless you have individual configurations for each part which for all practical purposes is not possible given the number of parts packs out there.

It makes no sense to blanket disable everything then go back and do everything but the thing you really wanted to target. The only practical method is a set of configs that targets each Squad part individually by name.

Link to comment
Share on other sites

Hmm, I am definitely one of the people really interested in a Part Config Logger/Exporter. I'll check it out and see where it's ended up. It is interesting because I thought the in game Debug Part Database had the final configs but perhaps those are also the slimmed down versions. I'll remain optimistic that your custom build of Module Manager does what you were shooting for, exports the configs after Module Manager patches are applied.

For what it's worth, I merged the code you created for Part Config Logger/Exporter into the 2.2.0 ModuleManager code and compiled myself a new MM .dll the other day and it seems to be working. I haven't done enough testing to be certain it's working 100% correctly but it's nice. Thank you, TaranisElsu, for making it!

Link to comment
Share on other sites

Hello fellow Kerbalnauts. I'll try to keep this short.

Just getting round to installing a ridiculous amount of mods and running x64 KSP on Win7 after running vanilla for a while waiting for certain mods to go through their revisions for compatibility. While I have not had any significant issues thus far (to be honest, I haven't really played as yet, just loaded up to menu and checked for parts in hangers) I suddenly thought to check the debug console to see if anything alarming stood out, when I found this...

[Exception]: InvalidProgramException: Assembly: ModuleManager.2.2.0 at location: D:\Steam\SteamApps\common\Kerbal Space Program\GameData\ModuleManager.2.2.0.dll is not in the expected assembly. Code has been copied and this will cause problems.

I removed all mod folders and left ModuleManager.dll by itself and this entry is still there. Is this a significant problem I should be worrying about? The last sentence makes me think so.

Here is an output.log if it is any use. Loaded to main menu, checked debug for entry, quit KSP. Completely vanilla with just ModuleManager in the GameData folder.

It may be nothing but I figured I would report it because googling only found a result for this line within code on github. Not being a programmer, I could not decipher much from there.

Cheers for all your hard work.

Link to comment
Share on other sites

It's a KSPAPIExtensions message. It's strange that MM trigger it should only display if a mod copied a specific part of KSPAPIExtensions code (or I m missing something). I can't acess your log form work but I ll have a look.

I hope it's just cosmetic, if not good catch.

Link to comment
Share on other sites

When looking closer at the log the only other clue for me is it relates to "SaveGameFixer". I did have old 0.23.5 saves that have never been opened in 0.24.x. These have since been removed and the exception still shows, though I'm not too surprised because I would expect save games to only be accessed/altered when loading them from within game.

If this does not show for you or anyone else, let me know if there is any further testing you would like me to do.

Link to comment
Share on other sites

When looking closer at the log the only other clue for me is it relates to "SaveGameFixer". I did have old 0.23.5 saves that have never been opened in 0.24.x. These have since been removed and the exception still shows, though I'm not too surprised because I would expect save games to only be accessed/altered when loading them from within game.

If this does not show for you or anyone else, let me know if there is any further testing you would like me to do.

savefile version has nothing to do with that or save game fixer.

savegamefixer is a (hopefully) obsolete part of MM that fixes problems resulting from a part in a save file having its PartModules in a different order than they existed in the part's prefab. It had all kinds of fun side effects ranging from 'none at all' to your ship hanging motionless in orbit because time refuses to advance.

Link to comment
Share on other sites

savefile version has nothing to do with that or save game fixer.

Yeah, I kinda figured that, I was just providing information based on what I have been doing on my end. The save file version and any format editing would hopefully be handled by the game when you try to load it, at least, that's how I would imagine it works.

Nice to know what this part of ModuleManager was designed for though. My system doesn't like something when it's initialising, clearly.

Link to comment
Share on other sites

Hi there, i tried to implemente sound for wheel from firespitter sound, so i created a wheelsound.cfg and tried to write code, but it don't work after many test, someone can help me ? here is a sample of code :

@PART[smallGearBay]:NEEDS[FIRESPITTER]

EFFECTS

{

brakes

{

AUDIO

{

channel = Ship

clip = Firespitter/Sounds/sound_brakes

volume = 0.0 0.0

volume = 1.0 0.8

pitch = 0.0 0.7

pitch = 1.0 1.0

loop = true

}

}

}

Link to comment
Share on other sites

Could any frequenter of this thread offer me some advice?

I have.. through a serious of unconnected events, seen fit to use KAS to make separatrons grabble so EVA kerbals can carry them around, and when necessary attach them to things (including kerbals themselves)

The problem is, that while a kerbal can activate a separatron that is attached to himself (and does so with maniacal enthusiasm) they cannot activate one that is attached to something else.

I`ve been trying to find a possible entry to a modulemanager cfg file that might make it possible for the kerbal to activate a sepmotor attached to a part. Does anyone have any insight into what might work?

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