Jump to content

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


sarbian

Recommended Posts

28 minutes ago, toric5 said:

i would like to edit every key, regardless of the numbers. this is for engines ISP curves, whitch usually have 3 or 4 keys.

Unfortunately there's no general way to edit float curves that way.  You have to know whether it has tangents to begin with.

Edited by blowfish
Link to comment
Share on other sites

1 hour ago, blowfish said:

 

I think it actually is.  You'd want


@key,*[1, ] *= 1.1

Since you want to edit every key, then edit the item at index 1 (separated by spaces).  The shape of the curve would get messed up if tangents (3rd and 4th values) are specified though

@blowfish I feel like I've read the documentation of MM 100 times over, but have never come across this (or I've been blind). But is there a resource where this is documented that you know of?

Link to comment
Share on other sites

50 minutes ago, blowfish said:

Unfortunately there's no general way to edit float curves that way.  You have to know whether it has tangents to begin with.

actually, this is possible to do, but it's a tad complicated so unless it's truly necessary I would avoid it

Link to comment
Share on other sites

1 hour ago, Warezcrawler said:

@blowfish I feel like I've read the documentation of MM 100 times over, but have never come across this (or I've been blind). But is there a resource where this is documented that you know of?

I looked earlier and didn't find anything.  I could swear it was documented somewhere though...

51 minutes ago, Sigma88 said:

actually, this is possible to do, but it's a tad complicated so unless it's truly necessary I would avoid it

Out of curiosity, how would you do this?  At least without giving errors when MM looks for the 3rd and 4th values but doesn't find them?

Link to comment
Share on other sites

Just now, blowfish said:

Out of curiosity, how would you do this?  At least without giving errors when MM looks for the 3rd and 4th values but doesn't find them?

it depends on how paranoid thorough you want to be with your code

the base idea is:    you append " 0 0 X" at the end of each key, then do the math you want, then remove " 0 0 X" from the end of each key

Link to comment
Share on other sites

29 minutes ago, blowfish said:

I looked earlier and didn't find anything.  I could swear it was documented somewhere though...

It s in the changelog. (I know, the doc is a mess...)

Version 2.6.14/15/16

  • @key,* = xxx applies to all presents key value
  • @key[1] += 1 will apply the math to the 2nd component in a comma separated vector.  "key = 0,1,0,1" will be " key = 0,2,0,1"

  • @key[*] += 1 will add 1 to all elements of the vector.  "key = 1,2,3,4" will be changed to "key = 2,3,4,5"

  • @key,*[1, ] += 1 will do it on all the key

Link to comment
Share on other sites

2 hours ago, Sigma88 said:

actually, this is possible to do, but it's a tad complicated so unless it's truly necessary I would avoid it

every engine ive looked at has 3 entries for the atmospherecurve.

and for multiplying the curve, if i multiply everything by 1.1, than any point in the curve will be 1.1 higher than it was perviously, right? or will the slope change? (with 3 keys)

Link to comment
Share on other sites

39 minutes ago, toric5 said:

every engine ive looked at has 3 entries for the atmospherecurve.

and for multiplying the curve, if i multiply everything by 1.1, than any point in the curve will be 1.1 higher than it was perviously, right? or will the slope change? (with 3 keys)

What do you mean 3 entries?  It should either be x y or x y iTan oTan (2 or 4).  If you just multiply y, you won't get the shape you want, you need to multiply the tangents too, since they control the slope.

Edited by blowfish
Link to comment
Share on other sites

If you're looking for an example of an atmo curve with tangents, the aerospike has the most complicated one that I know of:

		atmosphereCurve
		{
			key = 0 340 -50 -73.71224
			key = 1 290 -21.23404 -21.23404
			key = 5 230 -10.54119 -10.54119
			key = 10 170 -13.59091 -13.59091
			key = 20 0.001
		}

 

Link to comment
Share on other sites

16 hours ago, nathan1 said:

If you're looking for an example of an atmo curve with tangents, the aerospike has the most complicated one that I know of:


		atmosphereCurve
		{
			key = 0 340 -50 -73.71224
			key = 1 290 -21.23404 -21.23404
			key = 5 230 -10.54119 -10.54119
			key = 10 170 -13.59091 -13.59091
			key = 20 0.001
		}

 

i see. what would i do to keep the shape of the curve the same? as i said, i want to either make it so that at any given altitude, the engine has 15 pecent (or any other value.) more ISP. failing that, i want it so that it has 15% more vac ISP, not caring too mutch about what it does to the curve, as long as nothing too strange happens to it. (read: as long as it doesn't have a dip anywhere.)

Link to comment
Share on other sites

16 minutes ago, toric5 said:

i see. what would i do to keep the shape of the curve the same? as i said, i want to either make it so that at any given altitude, the engine has 15 pecent (or any other value.) more ISP. failing that, i want it so that it has 15% more vac ISP, not caring too mutch about what it does to the curve, as long as nothing too strange happens to it. (read: as long as it doesn't have a dip anywhere.)

if you multiply the first term by a certain number, you need to divide the third and fourth term by the same number

if you multiply the second term by a certain number, you need to multiply the third and fourth term by the same number

Link to comment
Share on other sites

on a second note, this time something that is actually documented, i have this peice of code:

@PART[*]:HAS[@Module[ModuleDockingNode]:HAS[~snapRotation[True]]]:FINAL
{
	@MODULE[ModuleDockingNode]
	{
		%captureMinRollDot = .999
		%snapRotation = True
		%snapOffset = 45
        %acquireForce = 2
        %acquireTorque = 2
        %acquireTorqueRoll = 
	}
}

this *should* add a 45 degree snap to any docking port that has no angle snap, correct? (MM wiki says ~ is the NOT version of #.)

however, it is apparent that it is not being applied to any docking ports, both by looking at the MM cache and game play testing.

8 minutes ago, Sigma88 said:

if you multiply the first term by a certain number, you need to divide the third and fourth term by the same number

if you multiply the second term by a certain number, you need to multiply the third and fourth term by the same number

so i would multiply the second term for ISP, as the first term is the atmospheric pressure. ok. do you know if MM will shoot errors if the terms do not exist? (if the curve on one of the targeted configs does not have tangents?) (other than the rediculosly complicated way you hinted at?) if so, i can just assume that most engines dont, and manually patch engines that do have tangents.

 

and also, can i multiply every key by the same constant in a genral form, so it works regardless of the number of keys?

 

if it helps, im trying to complete the reqested improvements to this pull request.

Edited by toric5
Link to comment
Share on other sites

10 minutes ago, toric5 said:

on a second note, this time something that is actually documented, i have this peice of code:


@PART[*]:HAS[@Module[ModuleDockingNode]:HAS[~snapRotation[True]]]:FINAL
{
	@MODULE[ModuleDockingNode]
	{
		%captureMinRollDot = .999
		%snapRotation = True
		%snapOffset = 45
        %acquireForce = 2
        %acquireTorque = 2
        %acquireTorqueRoll = 
	}
}

this *should* add a 45 degree snap to any docking port that has no angle snap, correct? (MM wiki says ~ is the NOT version of #.)

however, it is apparent that it is not being applied to any docking ports, both by looking at the MM cache and game play testing.

try this one

@PART:FINAL
{
	@MODULE[ModuleDockingNode]:HAS[~snapRotation[True]]
	{
		%captureMinRollDot = 0.999
		%snapRotation = True
		%snapOffset = 45
		%acquireForce = 2
		%acquireTorque = 2
	}
}

keep in mind that KSP is not case sensitive about "True" but MM is

so for KSP true = True, but for MM true != True

also, your acquireTorqueRoll doesn't have a value so I removed it

Edited by Sigma88
Link to comment
Share on other sites

Just now, Sigma88 said:

try this one


@PART:FINAL
{
	@MODULE[ModuleDockingNode]:HAS[~snapRotation[True]]
	{
		%captureMinRollDot = .999
		%snapRotation = True
		%snapOffset = 45
		%acquireForce = 2
		%acquireTorque = 2
	}
}

keep in mind that KSP is not case sensitive about "True" but MM is

so for KSP true = True, but for MM true != True

also, your acquireTorqueRoll doesn't have a value so I removed it

so that will just try to do this to most parts, and fail (gracefully?) on most parts?

also, the aqquire roll part was meant to have a value of 2, must have borked something.

 

trying this one now.

Link to comment
Share on other sites

Just now, toric5 said:

so that will just try to do this to most parts, and fail (gracefully?) on most parts?

also, the aqquire roll part was meant to have a value of 2, must have borked something.

 

trying this one now.

depends on what you consider "trying to do this" and "fail"

your code would have gone through all the parts, checked if they had a certain node, checked if that node had a certain value, and then applied the changes only if all the conditions were met

frontloading :HAS checks has proven to be a bit unreliable for me in the past, so whenever I can I will avoid doing that

I doubt the difference in computing power is relevant (there was a discussion some time ago, which I initiated, and the conclusion was that the difference would most likely be irrelevant in the grand scheme of KSP loading times)

 

Link to comment
Share on other sites

Heyho, I need some help please in writing a patch config - I've been looking through the documentation, but haven't found what I am looking for.  Google also isn't pointing me to the answer either!

I am wanting to change the ISRU config to need Ore, with my own resource, HydrateOre.  Can someone please point me in the right direction?!

What I think I am stuck with is the Input_Resource node has no 'name' associated with it - only ResourceName = Ore.  Is there a straight forward way of changing the whole thing?

Peace.

Link to comment
Share on other sites

1 hour ago, theJesuit said:

Heyho, I need some help please in writing a patch config - I've been looking through the documentation, but haven't found what I am looking for.  Google also isn't pointing me to the answer either!

I am wanting to change the ISRU config to need Ore, with my own resource, HydrateOre.  Can someone please point me in the right direction?!

What I think I am stuck with is the Input_Resource node has no 'name' associated with it - only ResourceName = Ore.  Is there a straight forward way of changing the whole thing?

Peace.

I don't remember the structure of the nodes in question, but once you can get inside of the node you just need to do:

@ResourceName = HydrateOre


if you can post the ISRU config I can give you the whole patch

Link to comment
Share on other sites

EDIT - copy and paste and then forum issues @Sigma88 so the post is rewritten 

Spoiler

ISRU Config:

PART
{
name = ISRU
module = Part
author = RoverDude

mesh = ISRU.mu
scale = 1
rescaleFactor = 1

node_stack_top = 0.0, 1.5, 0.0, 0.0, 1.0, 0.0, 2
node_stack_bottom = 0.0, -1.5, 0.0, 0.0, -1.0, 0.0, 2

TechRequired = advScienceTech
entryCost = 24000
cost = 8000
category = Utility
subcategory = 0
title = Convert-O-Tron 250
manufacturer = Kerbodyne
description = This mobile processing plant can take raw materials containing even trace amounts of oxygen and hydrogen, and crack them into useful fuel products.  When operated by a skilled engineer, you will be able to operate with better efficiency.  These modules operate best at their ideal operating temperatures, and features auto-shutdown in the event of excessive overheating.  Radiators can be used to help manage excessive heat.
attachRules = 1,1,1,0,0

// --- standard part parameters ---
mass = 4.25
dragModelType = default
maximum_drag = 0.2
minimum_drag = 0.2
angularDrag = 2
crashTolerance = 7
maxTemp = 2000 // = 3500
bulkheadProfiles = size2, srf
tags = conver isru mine )mining (ore process resource
    MODULE
    {
        name = ModuleOverheatDisplay
    }

    MODULE
    {
         name = ModuleResourceConverter
         ConverterName = Lf+Ox
         StartActionName = Start ISRU [Lf+Ox]
         StopActionName = Stop ISRU [Lf+Ox]     
        AutoShutdown = true
        TemperatureModifier
        {
            key = 0 100000
            key = 750 50000
            key = 1000 10000
            key = 1250 500    
            key = 2000 50    
            key = 4000 0
        }                
        GeneratesHeat = true
        DefaultShutoffTemp = .8
        ThermalEfficiency 
        {
            key = 0 0 0 0
            key = 500 0.1 0 0
            key = 1000 1.0 0 0
            key = 1250 0.1 0 0
            key = 3000 0 0 0 
        }


        UseSpecialistBonus = true
        SpecialistEfficiencyFactor = 0.2
        SpecialistBonusBase = 0.05
        ExperienceEffect = ConverterSkill
        EfficiencyBonus = 1

         
         INPUT_RESOURCE
         {
            ResourceName = Ore
            Ratio = 0.5
            FlowMode = STAGE_PRIORITY_FLOW
           }
         INPUT_RESOURCE
         {
            ResourceName = ElectricCharge
            Ratio = 30
         }
         OUTPUT_RESOURCE
         {
            ResourceName = LiquidFuel
            Ratio = 0.45
            DumpExcess = false
            FlowMode = STAGE_PRIORITY_FLOW
         }
         OUTPUT_RESOURCE
         {
            ResourceName = Oxidizer
            Ratio = 0.55
            DumpExcess = false
            FlowMode = STAGE_PRIORITY_FLOW
         }
    }

    MODULE
    {
         name = ModuleResourceConverter
         ConverterName = Monoprop
         StartActionName = Start ISRU [Monoprop]
         StopActionName = Stop ISRU [Monoprop]
        AutoShutdown = true
        TemperatureModifier
        {
            key = 0 100000
            key = 750 50000
            key = 1000 10000
            key = 1250 500    
            key = 2000 50    
            key = 4000 0
        }                
        GeneratesHeat = true
        DefaultShutoffTemp = .8
        ThermalEfficiency 
        {
            key = 0 0 0 0
            key = 500 0.1 0 0
            key = 1000 1.0 0 0
            key = 1250 0.1 0 0
            key = 3000 0 0 0 
        }

        UseSpecialistBonus = true
        SpecialistEfficiencyFactor = 0.2
        SpecialistBonusBase = 0.05
        ExperienceEffect = ConverterSkill
        EfficiencyBonus = 1

         
         INPUT_RESOURCE
         {
            ResourceName = Ore
            Ratio = 0.5
         }
         INPUT_RESOURCE
         {
            ResourceName = ElectricCharge
            Ratio = 30
         }
         OUTPUT_RESOURCE
         {
            ResourceName = MonoPropellant
            Ratio = 1
            DumpExcess = false
         }
    }


    MODULE
    {
         name = ModuleResourceConverter
         ConverterName = LiquidFuel
         StartActionName = Start ISRU [LqdFuel]
         StopActionName = Stop ISRU [LqdFuel]
        AutoShutdown = true
        TemperatureModifier
        {
            key = 0 100000
            key = 750 50000
            key = 1000 10000
            key = 1250 500    
            key = 2000 50    
            key = 4000 0
        }                
        GeneratesHeat = true
        DefaultShutoffTemp = .8
        ThermalEfficiency 
        {
            key = 0 0 0 0
            key = 500 0.1 0 0
            key = 1000 1.0 0 0
            key = 1250 0.1 0 0
            key = 3000 0 0 0 
        }
        
        UseSpecialistBonus = true
        SpecialistEfficiencyFactor = 0.2
        SpecialistBonusBase = 0.05
        ExperienceEffect = ConverterSkill
        EfficiencyBonus = 1

         
         INPUT_RESOURCE
         {
            ResourceName = Ore
            Ratio = 0.45
            FlowMode = STAGE_PRIORITY_FLOW
           }
         INPUT_RESOURCE
         {
            ResourceName = ElectricCharge
            Ratio = 30
         }
         OUTPUT_RESOURCE
         {
            ResourceName = LiquidFuel
            Ratio = 0.9
            DumpExcess = false
            FlowMode = STAGE_PRIORITY_FLOW
         }
    }

    
    MODULE
    {
         name = ModuleResourceConverter
         ConverterName = Oxidizer
         StartActionName = Start ISRU [Ox]
         StopActionName = Stop ISRU [Ox]
        AutoShutdown = true
        TemperatureModifier
        {
            key = 0 100000
            key = 750 50000
            key = 1000 10000
            key = 1250 500    
            key = 2000 50    
            key = 4000 0
        }                
        GeneratesHeat = true
        DefaultShutoffTemp = .8
        ThermalEfficiency 
        {
            key = 0 0 0 0
            key = 500 0.1 0 0
            key = 1000 1.0 0 0
            key = 1250 0.1 0 0
            key = 3000 0 0 0 
        }

        UseSpecialistBonus = true
        SpecialistEfficiencyFactor = 0.2
        SpecialistBonusBase = 0.05
        ExperienceEffect = ConverterSkill

        EfficiencyBonus = 1

         
         INPUT_RESOURCE
         {
            ResourceName = Ore
            Ratio = 0.55
            FlowMode = STAGE_PRIORITY_FLOW
           }
         INPUT_RESOURCE
         {
            ResourceName = ElectricCharge
            Ratio = 30
         }
         OUTPUT_RESOURCE
         {
            ResourceName = Oxidizer
            Ratio = 1.1
            DumpExcess = false
            FlowMode = STAGE_PRIORITY_FLOW
         }
    }
    
    MODULE
    {
        name = ModuleAnimationGroup
        deployAnimationName = 
        activeAnimationName = ProcessorLarge_running
        moduleType = Converter
        autoDeploy = true
    }
    

    MODULE
    {
        name = ModuleCoreHeat
        CoreTempGoal = 1000                    //Internal temp goal - we don't transfer till we hit this point
        CoreToPartRatio = 0.1                //Scale back cooling if the part is this % of core temp
        CoreTempGoalAdjustment = 0            //Dynamic goal adjustment
        CoreEnergyMultiplier = 0.1            //What percentage of our core energy do we transfer to the part
        HeatRadiantMultiplier = 0.05        //If the core is hotter, how much heat radiates?
        CoolingRadiantMultiplier = 0        //If the core is colder, how much radiates?
        HeatTransferMultiplier = 0            //If the part is hotter, how much heat transfers in?
        CoolantTransferMultiplier = 0.01    //If the part is colder, how much of our energy can we transfer?
        radiatorCoolingFactor = 1            //How much energy we pull from core with an active radiator?  >= 1
        radiatorHeatingFactor = 0.01        //How much energy we push to the active radiator
        MaxCalculationWarp = 1000            //Based on how dramatic the changes are, this is the max rate of change
        CoreShutdownTemp = 4000                //At what core temperature do we shut down all generators on this part?
        MaxCoolant = 500                    //Maximum amount of radiator capacity we can consume - 50 = 1 small
    }

}
 

Thanks for this, I spent a couple of hours last night and most of my free time today on it.

Peace.

Edited by theJesuit
Copy and Paste issues, then forum issues
Link to comment
Share on other sites

1 hour ago, theJesuit said:
  Reveal hidden contents


	MODULE
	{
		name = ModuleOverheatDisplay
	}

	MODULE
	{
		 name = ModuleResourceConverter
		 ConverterName = Lf+Ox
		 StartActionName = Start ISRU [Lf+Ox]
		 StopActionName = Stop ISRU [Lf+Ox]	 
		AutoShutdown = true
		TemperatureModifier
		{
			key = 0 100000
			key = 750 50000
			key = 1000 10000
			key = 1250 500	
			key = 2000 50	
			key = 4000 0
		}				
		GeneratesHeat = true
		DefaultShutoffTemp = .8
		ThermalEfficiency 
		{
			key = 0 0 0 0
			key = 500 0.1 0 0
			key = 1000 1.0 0 0
			key = 1250 0.1 0 0
			key = 3000 0 0 0 
		}


		UseSpecialistBonus = true
		SpecialistEfficiencyFactor = 0.2
		SpecialistBonusBase = 0.05
		ExperienceEffect = ConverterSkill
		EfficiencyBonus = 1

		 
		 INPUT_RESOURCE
		 {
			ResourceName = Ore
			Ratio = 0.5
			FlowMode = STAGE_PRIORITY_FLOW
  		 }
		 INPUT_RESOURCE
		 {
			ResourceName = ElectricCharge
			Ratio = 30
		 }
		 OUTPUT_RESOURCE
		 {
			ResourceName = LiquidFuel
			Ratio = 0.45
			DumpExcess = false
			FlowMode = STAGE_PRIORITY_FLOW
		 }
		 OUTPUT_RESOURCE
		 {
			ResourceName = Oxidizer
			Ratio = 0.55
			DumpExcess = false
			FlowMode = STAGE_PRIORITY_FLOW
		 }
	}

	MODULE
	{
		 name = ModuleResourceConverter
		 ConverterName = Monoprop
		 StartActionName = Start ISRU [Monoprop]
		 StopActionName = Stop ISRU [Monoprop]
		AutoShutdown = true
		TemperatureModifier
		{
			key = 0 100000
			key = 750 50000
			key = 1000 10000
			key = 1250 500	
			key = 2000 50	
			key = 4000 0
		}				
		GeneratesHeat = true
		DefaultShutoffTemp = .8
		ThermalEfficiency 
		{
			key = 0 0 0 0
			key = 500 0.1 0 0
			key = 1000 1.0 0 0
			key = 1250 0.1 0 0
			key = 3000 0 0 0 
		}

		UseSpecialistBonus = true
		SpecialistEfficiencyFactor = 0.2
		SpecialistBonusBase = 0.05
		ExperienceEffect = ConverterSkill
		EfficiencyBonus = 1

		 
		 INPUT_RESOURCE
		 {
			ResourceName = Ore
			Ratio = 0.5
		 }
		 INPUT_RESOURCE
		 {
			ResourceName = ElectricCharge
			Ratio = 30
		 }
		 OUTPUT_RESOURCE
		 {
			ResourceName = MonoPropellant
			Ratio = 1
			DumpExcess = false
		 }
	}


	MODULE
	{
		 name = ModuleResourceConverter
		 ConverterName = LiquidFuel
		 StartActionName = Start ISRU [LqdFuel]
		 StopActionName = Stop ISRU [LqdFuel]
		AutoShutdown = true
		TemperatureModifier
		{
			key = 0 100000
			key = 750 50000
			key = 1000 10000
			key = 1250 500	
			key = 2000 50	
			key = 4000 0
		}				
		GeneratesHeat = true
		DefaultShutoffTemp = .8
		ThermalEfficiency 
		{
			key = 0 0 0 0
			key = 500 0.1 0 0
			key = 1000 1.0 0 0
			key = 1250 0.1 0 0
			key = 3000 0 0 0 
		}
		
		UseSpecialistBonus = true
		SpecialistEfficiencyFactor = 0.2
		SpecialistBonusBase = 0.05
		ExperienceEffect = ConverterSkill
		EfficiencyBonus = 1

		 
		 INPUT_RESOURCE
		 {
			ResourceName = Ore
			Ratio = 0.45
			FlowMode = STAGE_PRIORITY_FLOW
  		 }
		 INPUT_RESOURCE
		 {
			ResourceName = ElectricCharge
			Ratio = 30
		 }
		 OUTPUT_RESOURCE
		 {
			ResourceName = LiquidFuel
			Ratio = 0.9
			DumpExcess = false
			FlowMode = STAGE_PRIORITY_FLOW
		 }
	}

	
	MODULE
	{
		 name = ModuleResourceConverter
		 ConverterName = Oxidizer
		 StartActionName = Start ISRU [Ox]
		 StopActionName = Stop ISRU [Ox]
		AutoShutdown = true
		TemperatureModifier
		{
			key = 0 100000
			key = 750 50000
			key = 1000 10000
			key = 1250 500	
			key = 2000 50	
			key = 4000 0
		}				
		GeneratesHeat = true
		DefaultShutoffTemp = .8
		ThermalEfficiency 
		{
			key = 0 0 0 0
			key = 500 0.1 0 0
			key = 1000 1.0 0 0
			key = 1250 0.1 0 0
			key = 3000 0 0 0 
		}

		UseSpecialistBonus = true
		SpecialistEfficiencyFactor = 0.2
		SpecialistBonusBase = 0.05
		ExperienceEffect = ConverterSkill

		EfficiencyBonus = 1

		 
		 INPUT_RESOURCE
		 {
			ResourceName = Ore
			Ratio = 0.55
			FlowMode = STAGE_PRIORITY_FLOW
  		 }
		 INPUT_RESOURCE
		 {
			ResourceName = ElectricCharge
			Ratio = 30
		 }
		 OUTPUT_RESOURCE
		 {
			ResourceName = Oxidizer
			Ratio = 1.1
			DumpExcess = false
			FlowMode = STAGE_PRIORITY_FLOW
		 }
	}
	
	MODULE
	{
		name = ModuleAnimationGroup
		deployAnimationName = 
		activeAnimationName = ProcessorLarge_running
		moduleType = Converter
		autoDeploy = true
	}
	

	MODULE
	{
		name = ModuleCoreHeat
		CoreTempGoal = 1000					//Internal temp goal - we don't transfer till we hit this point
		CoreToPartRatio = 0.1				//Scale back cooling if the part is this % of core temp
		CoreTempGoalAdjustment = 0			//Dynamic goal adjustment
		CoreEnergyMultiplier = 0.1			//What percentage of our core energy do we transfer to the part
		HeatRadiantMultiplier = 0.05		//If the core is hotter, how much heat radiates?
		CoolingRadiantMultiplier = 0		//If the core is colder, how much radiates?
		HeatTransferMultiplier = 0			//If the part is hotter, how much heat transfers in?
		CoolantTransferMultiplier = 0.01	//If the part is colder, how much of our energy can we transfer?
		radiatorCoolingFactor = 1			//How much energy we pull from core with an active radiator?  >= 1
		radiatorHeatingFactor = 0.01		//How much energy we push to the active radiator
		MaxCalculationWarp = 1000			//Based on how dramatic the changes are, this is the max rate of change
		CoreShutdownTemp = 4000				//At what core temperature do we shut down all generators on this part?
		MaxCoolant = 500					//Maximum amount of radiator capacity we can consume - 50 = 1 small
	}

}

 

Code in spoiler :)

Thanks for such a quick reply.  This has taken up all today's free time in trying to sort such a SMALL thing!

 

Peace.

If you want to edit all parts that have a "ModuleResourceConverter" and change all "INPUT_RESOURCE" from ResourceName = Ore to ResourceName = HydrateOre this is the patch you want to use:

@PART:FINAL
{
	@MODULE:HAS[#name[ModuleResourceConverter]]
	{
		@INPUT_RESOURCE:HAS[#ResourceName[Ore]]
		{
			@ResourceName = HydrateOre
		}
	}
}

 

I'm assuming you are doing this for your own game, hence the :FINAL

if you are making a mod, don't use :FINAL

Edited by Sigma88
Link to comment
Share on other sites

1 minute ago, Sigma88 said:

If you want to edit all parts that have a "ModuleResourceConverter" and change all "INPUT_RESOURCE" from ResourceName = Ore to ResourceName = HydrateOre this is the patch you want to use:


@PART:FINAL
{
	@MODULE:HAS[#name[ModuleResourceConverter]]
	{
		@INPUT_RESOURCE:HAS[#ResourceName[Ore]]
		{
			@ResourceName = HydrateOre
		}
	}
}

 

Thank you so much!  This has been a mission!

Peace.

Link to comment
Share on other sites

2 hours ago, theJesuit said:

Heyho, I need some help please in writing a patch config - I've been looking through the documentation, but haven't found what I am looking for.  Google also isn't pointing me to the answer either!

I am wanting to change the ISRU config to need Ore, with my own resource, HydrateOre.  Can someone please point me in the right direction?!

What I think I am stuck with is the Input_Resource node has no 'name' associated with it - only ResourceName = Ore.  Is there a straight forward way of changing the whole thing?

Peace.

something like this, part of an MM I have for MKS

@PART[MKS_Processor*]:AFTER[MKS]
{
	@MODULE[ModuleResourceConverter]:HAS[#ConverterName[Fertilizer?G?]]
	{
		@ConverterName = Fertilizer
		@INPUT_RESOURCE:HAS[#ResourceName[Gypsum]]
		{
			@ResourceName = Ore
		}
	}
}

It is the HAS[] arguments that are important for modding nodes without names. That or reference to the instance on the nodes you want to target.

Link to comment
Share on other sites

This thread is quite old. Please consider starting a new thread rather than reviving this one.

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