Jump to content

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


sarbian

Recommended Posts

30 minutes ago, TGApples said:

I suspect there may still be some issues with 4.0.1. When using Kerbalism I'm seeing the fuel cell placed in the wrong place in the tech tree. Works fine with 3.1.3.

Are the new tech nodes there?  Does this happen with a fresh save?  There might be some stuff stuck in the save if you saved while using MM 4.0.0

Link to comment
Share on other sites

MM 4.0.1 actually reduced the amount of patches and therefor the loading time...

That IS a good thing, buti'm wondering why/how it reduced the patches. isn't that going to break mods from working? or do some similar patches get combined all together?

 

Link to comment
Share on other sites

1 hour ago, dxeh said:

MM 4.0.1 actually reduced the amount of patches and therefor the loading time...

That IS a good thing, buti'm wondering why/how it reduced the patches. isn't that going to break mods from working? or do some similar patches get combined all together?

It shouldn't have changed the number of patches.  I didn't notice any significant changer in the number in my testing ... are you sure updating ModuleManager was the only thing you changed?  Would be easiest to figure out what's going on with logs from both before and after

Link to comment
Share on other sites

51 minutes ago, blowfish said:

It shouldn't have changed the number of patches.  I didn't notice any significant changer in the number in my testing ... are you sure updating ModuleManager was the only thing you changed?  Would be easiest to figure out what's going on with logs from both before and after

I remember seeing something on the (recent) code about not counting something unrelated as a patch (creating empty nodes? I forgot).

Link to comment
Share on other sites

1 hour ago, blowfish said:

It shouldn't have changed the number of patches.  I didn't notice any significant changer in the number in my testing ... are you sure updating ModuleManager was the only thing you changed?  Would be easiest to figure out what's going on with logs from both before and after

Oh, so this isn't an intended behaviour? :o

I'm down from 5549 patches to 3351 after upgrading from MM 3.1.1 to MM 4.0.1 on the same install. I thought that different patches applied to the same part may count as one patch now but this actually looks like an issue.

Now, I'm curious though and compared the configcache from MM 3.1.1 to 4.0.1. Unfortunately, 'name' and 'type' within the UrlConfig is no longer present in the config cache of MM 4.0.1 so it's kinda messy to compare (probably I just need a better diff tool...:rolleyes:) but I found a few missing entries for Kerbalism (missing scrubber, pressure control, LS-resources...). So far I can tell, that this patch is not applied when using MM 4.0.1:

Spoiler

@PART[*]:HAS[#CrewCapacity[>0],!MODULE[KerbalSeat]]:NEEDS[ProfileDefault]:FOR[Kerbalism]
{
  MODULE
  {
    name = ProcessController
    resource = _Scrubber
    title = Scrubber
    capacity = #$/CrewCapacity$
    running = true
  }

  MODULE
  {
    name = ProcessController
    resource = _PressureControl
    title = Pressure control
    capacity = #$/CrewCapacity$
    running = true
  }

  MODULE
  {
    name = ProcessController
    resource = _AirPump
    title = Air Pump
    capacity = #$/CrewCapacity$
    running = true
  }

  MODULE
  {
    name = ProcessController
    resource = _HumidityController
    title = Humidity controller
    capacity = #$/CrewCapacity$
    running = true
  }

  MODULE
  {
    name = ProcessController
    resource = _WaterRecycler
    title = Water recycler
    capacity = #$/CrewCapacity$
    running = true
  }

  MODULE
  {
    name = ProcessController
    resource = _WasteProcessor
    title = Waste processor
    capacity = #$/CrewCapacity$
    running = true
  }

  MODULE
  {
    name = ProcessController
    resource = _MonopropFuelCell
    title = Monoprop+O2 fuel cell
    capacity = #$/CrewCapacity$
    running = false
  }

  @MODULE[ProcessController],*
  {
    @capacity *= 1.67
  }

  MODULE
  {
    name = Configure
    title = Pod
    slots = 2

    UPGRADES
    {
      UPGRADE
      {
        name__ = Upgrade-Slots
        techRequired__ = electronics
        slots = 0
      }
    }

    SETUP
    {
      name = Scrubber
      desc = A dual-bed vacuum-exposing regenerative scrubber that sequesters <b>CarbonDioxide</b> from the internal atmosphere.
      mass = 0.01
      cost = 250

      MODULE
      {
        type = ProcessController
        id_field = resource
        id_value = _Scrubber
      }
    }

    SETUP
    {
      name = Pressure Control
      desc = Use <b>Nitrogen</b> to maintain the internal atmosphere at a comfortable pressure.
      tech = engineering101
      mass = 0.01
      cost = 250

      MODULE
      {
        type = ProcessController
        id_field = resource
        id_value = _PressureControl
      }

      // Air pump always is add with pressureControl
      MODULE
      {
        type = ProcessController
        id_field = resource
        id_value = _AirPump
      }

      RESOURCE
      {
        name = Nitrogen
        amount = #$/CrewCapacity$
        maxAmount = #$/CrewCapacity$
        @amount *= 500
        @maxAmount *= 500
      }
    }

    SETUP
    {
      name = Humidity Controller
      desc = Reclaims <b>Water</b> out of the internal atmosphere to maintain humidity.
      tech = survivability
      mass = 0.015
      cost = 300


      MODULE
      {
        type = ProcessController
        id_field = resource
        id_value = _HumidityController
      }
    }

    SETUP
    {
      name = Water Recycler
      desc = Filter impurities out of <b>WasteWater</b>.
      tech = spaceExploration
      mass = 0.05
      cost = 500


      MODULE
      {
        type = ProcessController
        id_field = resource
        id_value = _WaterRecycler
      }

      RESOURCE
      {
        name = WasteWater
        amount = 0
        maxAmount = #$/CrewCapacity$
        @maxAmount *= 5
      }
    }

    SETUP
    {
      name = Waste Processor
      desc = Extract <b>Ammonia</b> out of decomposing organic <b>Waste</b>.
      tech = advExploration
      mass = 0.05
      cost = 500

      MODULE
      {
        type = ProcessController
        id_field = resource
        id_value = _WasteProcessor
      }

      RESOURCE
      {
        name = Waste
        amount = 0
        maxAmount = #$/CrewCapacity$
        @maxAmount *= 5
      }
    }

    SETUP
    {
      name = Monoprop Oxygen Fuel Cell
      desc = An emergency fuel cell that burns <b>MonoPropellant</b> and <b>Oxygen</b> gas, producing <b>Water</b> and <b>Nitrogen</b> gas as by-products.
      tech = advElectrics
      mass = 0.1
      cost = 1000

      MODULE
      {
        type = ProcessController
        id_field = resource
        id_value = _MonopropFuelCell
      }
    }
  }
}

 

But this is definitly not enough to decrease the patch number by 2000+...

If you want to take a look:

Output_log using MM 3.1.1: https://www.dropbox.com/s/ltcn5fwlu6xvnja/output_log(MM_3.1.1).txt?dl=0
Output_log using MM  4.0.1: https://www.dropbox.com/s/xls5htql6h4xhfp/output_log(MM_4.0.1).txt?dl=0
MM 4.0.1 log: https://www.dropbox.com/s/ttuvxltyqld6pds/ModuleManager(4.0.1)).log?dl=0

ConfigCache using MM 3.1.1: https://www.dropbox.com/s/dy3639ayeyx3xny/ModuleManager(3.1.1).ConfigCache?dl=0
ConfigCache using MM 4.0.1: https://www.dropbox.com/s/3tzta4onskst00g/ModuleManager(4.0.1).ConfigCache?dl=0

edit: Probably a Kerbalism specific issue because I just notices this:

MM 3.1.1:

Quote

Non-DLL mods added (:FOR[xxx]):
  ProfileDefault
  FeatureReliability
  FeatureDeploy
  FeatureSpaceWeather
  FeatureAutomation
  FeatureScience
  FeatureRadiation
  FeatureShielding
  FeatureLivingSpace
  FeatureComfort
  FeaturePoisoning
  FeaturePressure
  FeatureHumidity
  FeatureHabitat
  FeatureSupplies
  zzzzzz-B9PartSwitch
  Tourism
  00DeepSky
  zzzKerbalism
  NearFutureLaunchVehicles
  ProbesBeforeCrew
  StockVisualEnhancements


MM 4.0.1:

Quote

Non-DLL mods added (:FOR[xxx]):
  zzzzzz-B9PartSwitch
  Tourism
  00DeepSky
  zzzKerbalism
  NearFutureLaunchVehicles
  ProbesBeforeCrew
  StockVisualEnhancements

 

AFAIK, all the missing non-DLL mods are related to Kerbalism. Since Kerbalism uses .bin packages for different KSP versions, I have to gut feeling that these patches are within these packages and they aren't available for the new 'quick load' feature of MM :/

Edited by 4x4cheesecake
Link to comment
Share on other sites

24 minutes ago, 4x4cheesecake said:

Oh, so this isn't an intended behaviour? :o

I'm down from 5549 patches to 3351 after upgrading from MM 3.1.1 to MM 4.0.1 on the same install. I thought that different patches applied to the same part may count as one patch now but this actually looks like an issue.

Now, I'm curious though and compared the configcache from MM 3.1.1 to 4.0.1. Unfortunately, 'name' and 'type' within the UrlConfig is no longer present in the config cache of MM 4.0.1 so it's kinda messy to compare (probably I just need a better diff tool...:rolleyes:) but I found a few missing entries for Kerbalism (missing scrubber, pressure control, LS-resources...). So far I can tell, that this patch is not applied when using MM 4.0.1:

  Hide contents


@PART[*]:HAS[#CrewCapacity[>0],!MODULE[KerbalSeat]]:NEEDS[ProfileDefault]:FOR[Kerbalism]
{
  MODULE
  {
    name = ProcessController
    resource = _Scrubber
    title = Scrubber
    capacity = #$/CrewCapacity$
    running = true
  }

  MODULE
  {
    name = ProcessController
    resource = _PressureControl
    title = Pressure control
    capacity = #$/CrewCapacity$
    running = true
  }

  MODULE
  {
    name = ProcessController
    resource = _AirPump
    title = Air Pump
    capacity = #$/CrewCapacity$
    running = true
  }

  MODULE
  {
    name = ProcessController
    resource = _HumidityController
    title = Humidity controller
    capacity = #$/CrewCapacity$
    running = true
  }

  MODULE
  {
    name = ProcessController
    resource = _WaterRecycler
    title = Water recycler
    capacity = #$/CrewCapacity$
    running = true
  }

  MODULE
  {
    name = ProcessController
    resource = _WasteProcessor
    title = Waste processor
    capacity = #$/CrewCapacity$
    running = true
  }

  MODULE
  {
    name = ProcessController
    resource = _MonopropFuelCell
    title = Monoprop+O2 fuel cell
    capacity = #$/CrewCapacity$
    running = false
  }

  @MODULE[ProcessController],*
  {
    @capacity *= 1.67
  }

  MODULE
  {
    name = Configure
    title = Pod
    slots = 2

    UPGRADES
    {
      UPGRADE
      {
        name__ = Upgrade-Slots
        techRequired__ = electronics
        slots = 0
      }
    }

    SETUP
    {
      name = Scrubber
      desc = A dual-bed vacuum-exposing regenerative scrubber that sequesters <b>CarbonDioxide</b> from the internal atmosphere.
      mass = 0.01
      cost = 250

      MODULE
      {
        type = ProcessController
        id_field = resource
        id_value = _Scrubber
      }
    }

    SETUP
    {
      name = Pressure Control
      desc = Use <b>Nitrogen</b> to maintain the internal atmosphere at a comfortable pressure.
      tech = engineering101
      mass = 0.01
      cost = 250

      MODULE
      {
        type = ProcessController
        id_field = resource
        id_value = _PressureControl
      }

      // Air pump always is add with pressureControl
      MODULE
      {
        type = ProcessController
        id_field = resource
        id_value = _AirPump
      }

      RESOURCE
      {
        name = Nitrogen
        amount = #$/CrewCapacity$
        maxAmount = #$/CrewCapacity$
        @amount *= 500
        @maxAmount *= 500
      }
    }

    SETUP
    {
      name = Humidity Controller
      desc = Reclaims <b>Water</b> out of the internal atmosphere to maintain humidity.
      tech = survivability
      mass = 0.015
      cost = 300


      MODULE
      {
        type = ProcessController
        id_field = resource
        id_value = _HumidityController
      }
    }

    SETUP
    {
      name = Water Recycler
      desc = Filter impurities out of <b>WasteWater</b>.
      tech = spaceExploration
      mass = 0.05
      cost = 500


      MODULE
      {
        type = ProcessController
        id_field = resource
        id_value = _WaterRecycler
      }

      RESOURCE
      {
        name = WasteWater
        amount = 0
        maxAmount = #$/CrewCapacity$
        @maxAmount *= 5
      }
    }

    SETUP
    {
      name = Waste Processor
      desc = Extract <b>Ammonia</b> out of decomposing organic <b>Waste</b>.
      tech = advExploration
      mass = 0.05
      cost = 500

      MODULE
      {
        type = ProcessController
        id_field = resource
        id_value = _WasteProcessor
      }

      RESOURCE
      {
        name = Waste
        amount = 0
        maxAmount = #$/CrewCapacity$
        @maxAmount *= 5
      }
    }

    SETUP
    {
      name = Monoprop Oxygen Fuel Cell
      desc = An emergency fuel cell that burns <b>MonoPropellant</b> and <b>Oxygen</b> gas, producing <b>Water</b> and <b>Nitrogen</b> gas as by-products.
      tech = advElectrics
      mass = 0.1
      cost = 1000

      MODULE
      {
        type = ProcessController
        id_field = resource
        id_value = _MonopropFuelCell
      }
    }
  }
}

 

But this is definitly not enough to decrease the patch number by 2000+...

If you want to take a look:

Output_log using MM 3.1.1: https://www.dropbox.com/s/ltcn5fwlu6xvnja/output_log(MM_3.1.1).txt?dl=0
Output_log using MM  4.0.1: https://www.dropbox.com/s/xls5htql6h4xhfp/output_log(MM_4.0.1).txt?dl=0
MM 4.0.1 log: https://www.dropbox.com/s/ttuvxltyqld6pds/ModuleManager(4.0.1)).log?dl=0

ConfigCache using MM 3.1.1: https://www.dropbox.com/s/dy3639ayeyx3xny/ModuleManager(3.1.1).ConfigCache?dl=0
ConfigCache using MM 4.0.1: https://www.dropbox.com/s/3tzta4onskst00g/ModuleManager(4.0.1).ConfigCache?dl=0

 

Thanks!  It looks like something really screwy was going on in 3.1.1, this doesn't seem to exist

[ModuleManager] Applying update AntennaHelper/Localization/de_de/@Kerbalism:FOR[ProfileDefault] to Kerbalism/Settings/Kerbalism

So something weird is going on that's making it think that ProfileDefault exists when it doesn't.  I'll do a bit of digging and see if I can figure out what's going on.

Best to avoid using ModuleManager 4.0.x with Kerbalism for now.  I think it's related.

Link to comment
Share on other sites

Just now, blowfish said:

So something weird is going on that's making it think that ProfileDefault exists when it doesn't.  I'll do a bit of digging and see if I can figure out what's going on.

Much appreciated :)

In the last 30min, I tried to find any patch that actually contains ":FOR[ProfileDefault]" or any of the other non-DLL mods but I cannot find anything in the config files or the source code of Kerbalism :huh:

17 minutes ago, Tonka Crash said:

@4x4cheesecake I've used Beyond Compare for close to 20 years for file and directory tree differences. https://www.scootersoftware.com/  I use it almost daily to compare my KSP tree before and after updates. 

Thanks, I'll take a look at it :)

Link to comment
Share on other sites

@blowfish For testing purposes, I added this patch to my install to register the non-DLL mods from Kerbalism:

@PART[commandPod_1p5]:FOR[ProfileDefault] {}
@PART[commandPod_1p5]:FOR[FeatureReliability] {}
@PART[commandPod_1p5]:FOR[FeatureDeploy] {}
@PART[commandPod_1p5]:FOR[FeatureSpaceWeather] {}
@PART[commandPod_1p5]:FOR[FeatureAutomation] {}
@PART[commandPod_1p5]:FOR[FeatureScience] {}
@PART[commandPod_1p5]:FOR[FeatureRadiation] {}
@PART[commandPod_1p5]:FOR[FeatureShielding] {}
@PART[commandPod_1p5]:FOR[FeatureLivingSpace] {}
@PART[commandPod_1p5]:FOR[FeatureComfort] {}
@PART[commandPod_1p5]:FOR[FeaturePoisoning] {}
@PART[commandPod_1p5]:FOR[FeaturePressure] {}
@PART[commandPod_1p5]:FOR[FeatureHumidity] {}
@PART[commandPod_1p5]:FOR[FeatureHabitat] {}
@PART[commandPod_1p5]:FOR[FeatureSupplies] {}

I just picked a random part to do this, I just wanted to register the mods...

The result: I'm back to my previous patch count of 5549 patches, so I guess this is more like a quirk of Kerbalism and not an issue of MM?

edit: I just got the confirmation that Kerbalism injects the non-DLL mods via code, so I'm pretty sure now that this is not a MM issue ;)

Edited by 4x4cheesecake
Link to comment
Share on other sites

3 hours ago, 4x4cheesecake said:

In the last 30min, I tried to find any patch that actually contains ":FOR[ProfileDefault]" or any of the other non-DLL mods but I cannot find anything in the config files or the source code of Kerbalism

Try the Simplex Resources mod.  Change all the NEEDS Profilesimplex to ProfileDefault.  There are heaps in there.

Otherwise all the patches for ProfileDefault are in the default.cfg. The profile is only the first section supplies, rules and processes.  The rest of the .cfg file are the patches using ProfileDefault.

Link to comment
Share on other sites

6 hours ago, 4x4cheesecake said:

@blowfish For testing purposes, I added this patch to my install to register the non-DLL mods from Kerbalism:

Spoiler


@PART[commandPod_1p5]:FOR[ProfileDefault] {}
@PART[commandPod_1p5]:FOR[FeatureReliability] {}
@PART[commandPod_1p5]:FOR[FeatureDeploy] {}
@PART[commandPod_1p5]:FOR[FeatureSpaceWeather] {}
@PART[commandPod_1p5]:FOR[FeatureAutomation] {}
@PART[commandPod_1p5]:FOR[FeatureScience] {}
@PART[commandPod_1p5]:FOR[FeatureRadiation] {}
@PART[commandPod_1p5]:FOR[FeatureShielding] {}
@PART[commandPod_1p5]:FOR[FeatureLivingSpace] {}
@PART[commandPod_1p5]:FOR[FeatureComfort] {}
@PART[commandPod_1p5]:FOR[FeaturePoisoning] {}
@PART[commandPod_1p5]:FOR[FeaturePressure] {}
@PART[commandPod_1p5]:FOR[FeatureHumidity] {}
@PART[commandPod_1p5]:FOR[FeatureHabitat] {}
@PART[commandPod_1p5]:FOR[FeatureSupplies] {}

I just picked a random part to do this, I just wanted to register the mods...

The result: I'm back to my previous patch count of 5549 patches, so I guess this is more like a quirk of Kerbalism and not an issue of MM?

edit: I just got the confirmation that Kerbalism injects the non-DLL mods via code, so I'm pretty sure now that this is not a MM issue ;)

Based on my understanding of the issue that makes sense.  And yeah, it looks like Kerbalism was making some assumptions about when and how ModuleManager does things to get these feature toggles to work.  But I'm in contact with @N70 to hopefully come up with a better long term solution

Link to comment
Share on other sites

5 hours ago, theJesuit said:

Try the Simplex Resources mod.  Change all the NEEDS Profilesimplex to ProfileDefault.  There are heaps in there.

This would not change anything right now because 'ProfileDefault' is not registered as a mod so every patch which got :NEED[ProfileDefault] will not satisfy the requirement.

Link to comment
Share on other sites

1 minute ago, 4x4cheesecake said:

This would not change anything right now because 'ProfileDefault' is not registered as a mod

Yea. I learnt a while after posting from the Kerealism discord that Kerbalism code tricks MM into treating profiles as mods but that broke with MM 4.

One option to use kerbalism would then be to go through and remove the NEEDS ProfileDefault from the cfg.  But for ongoing stablity kerbalism withbothe profile mods, kerbalism needs to  get it sorted.

Peace.

Link to comment
Share on other sites

Stupid question: How do you stop another mod from loading its configs? 

 

Working on a tech tree integration, and the only way I've found to get it to work is to delete the tech tree of the mod I'm trying to replace. I'd like to not have to have the average user do that, so is there a way to stop that config from loading using a MM flag?

Link to comment
Share on other sites

53 minutes ago, theJesuit said:

:AFTER[CommunityTechTree]

might do it.

Maybe? What's weird is the exact same config works fine with it's only the two mods, but not when it's a whole bunch. I suspect Hide Empty Tech Tree nodes is the culprit (Since the tech tree gets massive) but then why would it show up on one install, but not another?

Link to comment
Share on other sites

11 minutes ago, theJesuit said:

There is a known issue with SIMPLEX Techtree.   I've never worried investigating it as even on a stock install the only nodes empty are right at the end.

Well...That answers a lot of questions. I'll go bug them.

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