KerbMav Posted July 31, 2017 Share Posted July 31, 2017 (edited) 1 hour ago, HebaruSan said: I'd like my patch to be loaded after RealSolarSystem, if it's installed, otherwise after Kopernicus. (Kopernicus uses parent-milliradius units for certain values, so it's simple to fit them to different scales.) Is there a concise way to manage multiple dependencies, some of which are optional? Put your mod into a folder with a zzz infront in the beginning of the game, it will load last regardless which other mods are installed. If there are parts of your mod that require another mod or shall only be loaded if another mod is installed, add a :NEEDS[other mod] to your patches. Edited July 31, 2017 by KerbMav Quote Link to comment Share on other sites More sharing options...
Starwaster Posted July 31, 2017 Share Posted July 31, 2017 1 hour ago, KerbMav said: Put your mod into a folder with a zzz infront in the beginning of the game, it will load last regardless which other mods are installed. If there are parts of your mod that require another mod or shall only be loaded if another mod is installed, add a :NEEDS[other mod] to your patches. Except for other mods that are zzzSomething... Quote Link to comment Share on other sites More sharing options...
Gordon Dry Posted August 2, 2017 Share Posted August 2, 2017 I don't understand the logic of references to variables. This will not work: @PART[*]:HAS[@MODULE[ModuleFuelTanks],#CrewCapacity[>0],!Resource[ElectricCharge],!TANK[ElectricCharge]]:NEEDS[TacLifeSupport,modularFuelTanks|RealFuels,!RealismOverhaul]:FINAL { @MODULE[ModuleFuelTanks] { @type = LifeSupportAll TANK { name = ElectricCharge amount = 100 @amount *= #$/CrewCapacity$ @amount += 200 maxAmount = #$amount$ utilization = 1000 fillable = true } volume = #$/MODULE[ModuleFuelTanks]/TANK[ElectricCharge]/maxAmount$ } } The problematic one is: Quote volume = #$/MODULE[ModuleFuelTanks]/TANK[ElectricCharge]/maxAmount$ This is only one block of many that follow, later ones got "volume +=" ofc First I tried it with volume = #$/TANK[ElectricCharge]/maxAmount$ because my idea was the reference is relative. But it didn't work, so I thought the reference is absolute to the PART. Then I checked again what https://github.com/sarbian/ModuleManager/wiki/Module-Manager-Syntax says to Variables: Quote //This would return 'RE-M3 "Mainsail" Liquid Engine': @title = #$@PART[liquidEngine1-2]/title$ //This would return the mass of the current part: @MODULE[ModuleEngines] { @PROPELLANT[LiquidFuel] { @mass = #$../../mass$ } } So I tried it with @PART[*]:HAS[@MODULE[ModuleFuelTanks],#CrewCapacity[>0],!Resource[ElectricCharge],!TANK[ElectricCharge]]:NEEDS[TacLifeSupport,modularFuelTanks|RealFuels,!RealismOverhaul]:FINAL { @MODULE[ModuleFuelTanks] { @type = LifeSupportAll TANK { name = ElectricCharge amount = 100 @amount *= #$/CrewCapacity$ @amount += 200 maxAmount = #$amount$ utilization = 1000 fillable = true } volume = #$TANK[ElectricCharge]/maxAmount$ } } because I thought the leading / was the problem and it is relative - and still no avail ... Quote Link to comment Share on other sites More sharing options...
KerbMav Posted August 2, 2017 Share Posted August 2, 2017 (edited) 21 minutes ago, Gordon Dry said: Take a look at this example, I have a feeling it might help. https://github.com/sarbian/ModuleManager/blob/master/Tests/ValueCreate.cfg volume = #$TANK[ElectricCharge]/maxAmount$ Well, it at least tells us, that your last version should work ... Are you adding or changing those values? (Just to be sure.) Edited August 2, 2017 by KerbMav Quote Link to comment Share on other sites More sharing options...
Gordon Dry Posted August 2, 2017 Share Posted August 2, 2017 if I am right then this is the mentioned "problematic one" without the leading / Quote Link to comment Share on other sites More sharing options...
KerbMav Posted August 2, 2017 Share Posted August 2, 2017 1 minute ago, Gordon Dry said: if I am right then this is the mentioned "problematic one" without the leading / Yeah, I copied the example, changed it to yours - and tadaa ... was the same. Are you missing a @ at some values maybe? Quote Link to comment Share on other sites More sharing options...
Gordon Dry Posted August 2, 2017 Share Posted August 2, 2017 (edited) 14 minutes ago, KerbMav said: Are you missing a @ at some values maybe? yes, that specific one was wrong, I recognized it after submitting the post ... I checked the whole file but it should™ all be okay ... @KerbMav darn, now I even get more MM errors ... This is the whole config in question: @TANK_DEFINITION[LifeSupportAll]:HAS[!TANK[ReservePower]]:NEEDS[AmpYear,modularFuelTanks|RealFuels,!RealismOverhaul]:FINAL { TANK { name = ReservePower mass = 0.00289 utilization = 1000 fillable = True amount = 0.0 maxAmount = 0.0 note = (pressurized) } } @PART[*]:HAS[@MODULE[ModuleFuelTanks],#CrewCapacity[>0],@Resource[ElectricCharge],!TANK[ElectricCharge]]:NEEDS[TacLifeSupport,modularFuelTanks|RealFuels,!RealismOverhaul]:FINAL { @MODULE[ModuleFuelTanks] { @type = LifeSupportAll @volume = #$/RESOURCE[ElectricCharge]/maxAmount$ TANK { name = ElectricCharge amount = #$/RESOURCE[ElectricCharge]/maxAmount$ maxAmount = #$/RESOURCE[ElectricCharge]/maxAmount$ utilization = 1000 fillable = true } } !RESOURCE[ElectricCharge] {} } @PART[*]:HAS[@MODULE[ModuleFuelTanks],#CrewCapacity[>0],!Resource[ElectricCharge],!TANK[ElectricCharge]]:NEEDS[TacLifeSupport,modularFuelTanks|RealFuels,!RealismOverhaul]:FINAL { @MODULE[ModuleFuelTanks] { @type = LifeSupportAll TANK { name = ElectricCharge amount = 100 @amount *= #$/CrewCapacity$ @amount += 200 maxAmount = #$amount$ utilization = 1000 fillable = true } @volume = #$MODULE[ModuleFuelTanks]/TANK[ElectricCharge]/maxAmount$ } } @PART[*]:HAS[@MODULE[ModuleFuelTanks],#CrewCapacity[>0],!Resource[ElectricCharge],@TANK[ElectricCharge]]:NEEDS[TacLifeSupport,modularFuelTanks|RealFuels,!RealismOverhaul]:FINAL { @MODULE[ModuleFuelTanks] { @type = LifeSupportAll @TANK[ElectricCharge] { @amount = 100 @amount *= #$/CrewCapacity$ @amount += 200 @maxAmount = #$amount$ @utilization = 1000 @fillable = true } @volume = #$MODULE[ModuleFuelTanks]/TANK[ElectricCharge]/maxAmount$ } } @PART[*]:HAS[@MODULE[ModuleFuelTanks],#CrewCapacity[>0],@Resource[ElectricCharge],@TANK[ElectricCharge]]:NEEDS[TacLifeSupport,modularFuelTanks|RealFuels,!RealismOverhaul]:FINAL { @MODULE[ModuleFuelTanks] { @type = LifeSupportAll @volume = #$/RESOURCE[ElectricCharge]/maxAmount$ @TANK[ElectricCharge] { @amount = #$/RESOURCE[ElectricCharge]/maxAmount$ @maxAmount = #$/RESOURCE[ElectricCharge]/maxAmount$ @utilization = 1000 @fillable = true } } !RESOURCE[ElectricCharge] {} } @PART[*]:HAS[!MODULE[ModuleFuelTanks],#CrewCapacity[>0],@Resource[ElectricCharge]]:NEEDS[TacLifeSupport,modularFuelTanks|RealFuels,!RealismOverhaul]:FINAL { MODULE { name = ModuleFuelTanks type = LifeSupportAll volume = #$/RESOURCE[ElectricCharge]/maxAmount$ TANK { name = ElectricCharge amount = #$/RESOURCE[ElectricCharge]/maxAmount$ maxAmount = #$/RESOURCE[ElectricCharge]/maxAmount$ utilization = 1000 fillable = true } } !RESOURCE[ElectricCharge] {} } @PART[*]:HAS[!MODULE[ModuleFuelTanks],#CrewCapacity[>0],!Resource[ElectricCharge]]:NEEDS[TacLifeSupport,modularFuelTanks|RealFuels,!RealismOverhaul]:FINAL { MODULE { name = ModuleFuelTanks type = LifeSupportAll TANK { name = ElectricCharge amount = 100 @amount *= #$/CrewCapacity$ @amount += 200 maxAmount = #$amount$ utilization = 1000 fillable = true } volume = #$MODULE[ModuleFuelTanks]/TANK[ElectricCharge]/maxAmount$ } } @PART[*]:HAS[@MODULE[ModuleFuelTanks],#CrewCapacity[>0],@Resource[Food],!TANK[Food]]:NEEDS[TacLifeSupport,modularFuelTanks|RealFuels,!RealismOverhaul]:FINAL { @MODULE[ModuleFuelTanks] { @type = LifeSupportAll @volume += #$/RESOURCE[Food]/maxAmount$ TANK { name = Food amount = #$/RESOURCE[Food]/maxAmount$ maxAmount = #$/RESOURCE[Food]/maxAmount$ fillable = true } } !RESOURCE[Food] {} } @PART[*]:HAS[@MODULE[ModuleFuelTanks],#CrewCapacity[>0],!Resource[Food],!TANK[Food]]:NEEDS[TacLifeSupport,modularFuelTanks|RealFuels,!RealismOverhaul]:FINAL { @MODULE[ModuleFuelTanks] { @type = LifeSupportAll TANK { name = Food amount = 1.46267 @amount *= #$/CrewCapacity$ @amount *= 3 maxAmount = #$amount$ fillable = true } @volume += #$MODULE[ModuleFuelTanks]/TANK[Food]/maxAmount$ } } @PART[*]:HAS[@MODULE[ModuleFuelTanks],#CrewCapacity[>0],!Resource[Food],@TANK[Food]]:NEEDS[TacLifeSupport,modularFuelTanks|RealFuels,!RealismOverhaul]:FINAL { @MODULE[ModuleFuelTanks] { @type = LifeSupportAll @TANK[Food] { @amount = 1.46267 @amount *= #$/CrewCapacity$ @amount *= 3 @maxAmount = #$amount$ @fillable = true } @volume += #$MODULE[ModuleFuelTanks]/TANK[Food]/maxAmount$ } } @PART[*]:HAS[@MODULE[ModuleFuelTanks],#CrewCapacity[>0],@Resource[Food],@TANK[Food]]:NEEDS[TacLifeSupport,modularFuelTanks|RealFuels,!RealismOverhaul]:FINAL { @MODULE[ModuleFuelTanks] { @type = LifeSupportAll @volume += #$/RESOURCE[Food]/maxAmount$ TANK { name = Food amount = #$/RESOURCE[Food]/maxAmount$ maxAmount = #$/RESOURCE[Food]/maxAmount$ fillable = true } } !RESOURCE[Food] {} } @PART[*]:HAS[@MODULE[ModuleFuelTanks],#CrewCapacity[>0],@Resource[Water],!TANK[Water]]:NEEDS[TacLifeSupport,modularFuelTanks|RealFuels,!RealismOverhaul]:FINAL { @MODULE[ModuleFuelTanks] { @type = LifeSupportAll @volume += #$/RESOURCE[Water]/maxAmount$ TANK { name = Water amount = #$/RESOURCE[Water]/maxAmount$ maxAmount = #$/RESOURCE[Water]/maxAmount$ fillable = true } } !RESOURCE[Water] {} } @PART[*]:HAS[@MODULE[ModuleFuelTanks],#CrewCapacity[>0],!Resource[Water],!TANK[Water]]:NEEDS[TacLifeSupport,modularFuelTanks|RealFuels,!RealismOverhaul]:FINAL { @MODULE[ModuleFuelTanks] { @type = LifeSupportAll TANK { name = Water amount = 0.96667 @amount *= #$/CrewCapacity$ @amount *= 3 maxAmount = #$amount$ fillable = true } @volume += #$MODULE[ModuleFuelTanks]/TANK[Water]/maxAmount$ } } @PART[*]:HAS[@MODULE[ModuleFuelTanks],#CrewCapacity[>0],!Resource[Water],@TANK[Water]]:NEEDS[TacLifeSupport,modularFuelTanks|RealFuels,!RealismOverhaul]:FINAL { @MODULE[ModuleFuelTanks] { @type = LifeSupportAll @TANK[Water] { @amount = 0.96667 @amount *= #$/CrewCapacity$ @amount *= 3 @maxAmount = #$amount$ @fillable = true } @volume += #$MODULE[ModuleFuelTanks]/TANK[Water]/maxAmount$ } } @PART[*]:HAS[@MODULE[ModuleFuelTanks],#CrewCapacity[>0],@Resource[Water],@TANK[Water]]:NEEDS[TacLifeSupport,modularFuelTanks|RealFuels,!RealismOverhaul]:FINAL { @MODULE[ModuleFuelTanks] { @type = LifeSupportAll @volume += #$/RESOURCE[Water]/maxAmount$ TANK { name = Water amount = #$/RESOURCE[Water]/maxAmount$ maxAmount = #$/RESOURCE[Water]/maxAmount$ fillable = true } } !RESOURCE[Water] {} } @PART[*]:HAS[@MODULE[ModuleFuelTanks],#CrewCapacity[>0],@Resource[Oxygen],!TANK[Oxygen]]:NEEDS[TacLifeSupport,modularFuelTanks|RealFuels,!RealismOverhaul]:FINAL { @MODULE[ModuleFuelTanks] { @type = LifeSupportAll @volume += #$/RESOURCE[Oxygen]/maxAmount$ TANK { name = Oxygen amount = #$/RESOURCE[Oxygen]/maxAmount$ maxAmount = #$/RESOURCE[Oxygen]/maxAmount$ utilization = 200 note = (pressurized) fillable = true } } !RESOURCE[Oxygen] {} } @PART[*]:HAS[@MODULE[ModuleFuelTanks],#CrewCapacity[>0],!Resource[Oxygen],!TANK[Oxygen]]:NEEDS[TacLifeSupport,modularFuelTanks|RealFuels,!RealismOverhaul]:FINAL { @MODULE[ModuleFuelTanks] { @type = LifeSupportAll TANK { name = Oxygen amount = 148.05067 @amount *= #$/CrewCapacity$ @amount *= 3 maxAmount = #$amount$ utilization = 200 note = (pressurized) fillable = true } @volume += #$MODULE[ModuleFuelTanks]/TANK[Oxygen]/maxAmount$ } } @PART[*]:HAS[@MODULE[ModuleFuelTanks],#CrewCapacity[>0],!Resource[Oxygen],@TANK[Oxygen]]:NEEDS[TacLifeSupport,modularFuelTanks|RealFuels,!RealismOverhaul]:FINAL { @MODULE[ModuleFuelTanks] { @type = LifeSupportAll @TANK[Oxygen] { @amount = 148.05067 @amount *= #$/CrewCapacity$ @amount *= 3 @maxAmount = #$amount$ @utilization = 200 @note = (pressurized) @fillable = true } @volume += #$MODULE[ModuleFuelTanks]/TANK[Oxygen]/maxAmount$ } } @PART[*]:HAS[@MODULE[ModuleFuelTanks],#CrewCapacity[>0],@Resource[Oxygen],@TANK[Oxygen]]:NEEDS[TacLifeSupport,modularFuelTanks|RealFuels,!RealismOverhaul]:FINAL { @MODULE[ModuleFuelTanks] { @type = LifeSupportAll @volume += #$/RESOURCE[Oxygen]/maxAmount$ TANK { name = Oxygen amount = #$/RESOURCE[Oxygen]/maxAmount$ maxAmount = #$/RESOURCE[Oxygen]/maxAmount$ utilization = 200 note = (pressurized) fillable = true } } !RESOURCE[Oxygen] {} } @PART[*]:HAS[@MODULE[ModuleFuelTanks],#CrewCapacity[>0],@Resource[Waste],!TANK[Waste]]:NEEDS[TacLifeSupport,modularFuelTanks|RealFuels,!RealismOverhaul]:FINAL { @MODULE[ModuleFuelTanks] { @type = LifeSupportAll @volume += #$/RESOURCE[Waste]/maxAmount$ TANK { name = Waste amount = 0 maxAmount = #$/RESOURCE[Waste]/maxAmount$ fillable = true } } !RESOURCE[Waste] {} } @PART[*]:HAS[@MODULE[ModuleFuelTanks],#CrewCapacity[>0],!Resource[Waste],!TANK[Waste]]:NEEDS[TacLifeSupport,modularFuelTanks|RealFuels,!RealismOverhaul]:FINAL { @MODULE[ModuleFuelTanks] { @type = LifeSupportAll TANK { name = Waste amount = 0 maxAmount = 0.13333 @maxamount *= #$/CrewCapacity$ @maxamount *= 3 fillable = true } @volume += #$MODULE[ModuleFuelTanks]/TANK[Waste]/maxAmount$ } } @PART[*]:HAS[@MODULE[ModuleFuelTanks],#CrewCapacity[>0],!Resource[Waste],@TANK[Waste]]:NEEDS[TacLifeSupport,modularFuelTanks|RealFuels,!RealismOverhaul]:FINAL { @MODULE[ModuleFuelTanks] { @type = LifeSupportAll @TANK[Waste] { @amount = 0 @maxAmount = 0.13333 @maxamount *= #$/CrewCapacity$ @maxamount *= 3 @fillable = true } @volume += #$MODULE[ModuleFuelTanks]/TANK[Waste]/maxAmount$ } } @PART[*]:HAS[@MODULE[ModuleFuelTanks],#CrewCapacity[>0],@Resource[Waste],@TANK[Waste]]:NEEDS[TacLifeSupport,modularFuelTanks|RealFuels,!RealismOverhaul]:FINAL { @MODULE[ModuleFuelTanks] { @type = LifeSupportAll @volume += #$/RESOURCE[Waste]/maxAmount$ TANK { name = Waste amount = #$/RESOURCE[Waste]/maxAmount$ maxAmount = #$/RESOURCE[Waste]/maxAmount$ fillable = true } } !RESOURCE[Waste] {} } @PART[*]:HAS[@MODULE[ModuleFuelTanks],#CrewCapacity[>0],@Resource[WasteWater],!TANK[WasteWater]]:NEEDS[TacLifeSupport,modularFuelTanks|RealFuels,!RealismOverhaul]:FINAL { @MODULE[ModuleFuelTanks] { @type = LifeSupportAll @volume += #$/RESOURCE[WasteWater]/maxAmount$ TANK { name = WasteWater amount = 0 maxAmount = #$/RESOURCE[WasteWater]/maxAmount$ fillable = true } } !RESOURCE[WasteWater] {} } @PART[*]:HAS[@MODULE[ModuleFuelTanks],#CrewCapacity[>0],!Resource[WasteWater],!TANK[WasteWater]]:NEEDS[TacLifeSupport,modularFuelTanks|RealFuels,!RealismOverhaul]:FINAL { @MODULE[ModuleFuelTanks] { @type = LifeSupportAll TANK { name = WasteWater amount = 0 maxAmount = 1.232 @maxamount *= #$/CrewCapacity$ @maxamount *= 3 fillable = true } @volume += #$MODULE[ModuleFuelTanks]/TANK[WasteWater]/maxAmount$ } } @PART[*]:HAS[@MODULE[ModuleFuelTanks],#CrewCapacity[>0],!Resource[WasteWater],@TANK[WasteWater]]:NEEDS[TacLifeSupport,modularFuelTanks|RealFuels,!RealismOverhaul]:FINAL { @MODULE[ModuleFuelTanks] { @type = LifeSupportAll @TANK[WasteWater] { @amount = 0 @maxAmount = 1.232 @maxamount *= #$/CrewCapacity$ @maxamount *= 3 @fillable = true } @volume += #$MODULE[ModuleFuelTanks]/TANK[WasteWater]/maxAmount$ } } @PART[*]:HAS[@MODULE[ModuleFuelTanks],#CrewCapacity[>0],@Resource[WasteWater],@TANK[WasteWater]]:NEEDS[TacLifeSupport,modularFuelTanks|RealFuels,!RealismOverhaul]:FINAL { @MODULE[ModuleFuelTanks] { @type = LifeSupportAll @volume += #$/RESOURCE[WasteWater]/maxAmount$ TANK { name = WasteWater amount = #$/RESOURCE[WasteWater]/maxAmount$ maxAmount = #$/RESOURCE[WasteWater]/maxAmount$ fillable = true } } !RESOURCE[WasteWater] {} } @PART[*]:HAS[@MODULE[ModuleFuelTanks],#CrewCapacity[>0],@Resource[CarbonDioxide],!TANK[CarbonDioxide]]:NEEDS[TacLifeSupport,modularFuelTanks|RealFuels,!RealismOverhaul]:FINAL { @MODULE[ModuleFuelTanks] { @type = LifeSupportAll @volume += #$/RESOURCE[CarbonDioxide]/maxAmount$ TANK { name = CarbonDioxide amount = #$/RESOURCE[CarbonDioxide]/maxAmount$ maxAmount = #$/RESOURCE[CarbonDioxide]/maxAmount$ utilization = 200 note = (pressurized) fillable = true } } !RESOURCE[CarbonDioxide] {} } @PART[*]:HAS[@MODULE[ModuleFuelTanks],#CrewCapacity[>0],!Resource[CarbonDioxide],!TANK[CarbonDioxide]]:NEEDS[TacLifeSupport,modularFuelTanks|RealFuels,!RealismOverhaul]:FINAL { @MODULE[ModuleFuelTanks] { @type = LifeSupportAll TANK { name = CarbonDioxide amount = 0 maxAmount = 127.884 @maxamount *= #$/CrewCapacity$ @maxamount *= 3 utilization = 200 note = (pressurized) fillable = true } @volume += #$MODULE[ModuleFuelTanks]/TANK[CarbonDioxide]/maxAmount$ } } @PART[*]:HAS[@MODULE[ModuleFuelTanks],#CrewCapacity[>0],!Resource[CarbonDioxide],@TANK[CarbonDioxide]]:NEEDS[TacLifeSupport,modularFuelTanks|RealFuels,!RealismOverhaul]:FINAL { @MODULE[ModuleFuelTanks] { @type = LifeSupportAll @TANK[CarbonDioxide] { @amount = 0 @maxAmount = 127.884 @maxamount *= #$/CrewCapacity$ @maxamount *= 3 @fillable = true } @volume += #$MODULE[ModuleFuelTanks]/TANK[CarbonDioxide]/maxAmount$ } } @PART[*]:HAS[@MODULE[ModuleFuelTanks],#CrewCapacity[>0],@Resource[CarbonDioxide],@TANK[CarbonDioxide]]:NEEDS[TacLifeSupport,modularFuelTanks|RealFuels,!RealismOverhaul]:FINAL { @MODULE[ModuleFuelTanks] { @type = LifeSupportAll @volume += #$/RESOURCE[CarbonDioxide]/maxAmount$ TANK { name = CarbonDioxide amount = #$/RESOURCE[CarbonDioxide]/maxAmount$ maxAmount = #$/RESOURCE[CarbonDioxide]/maxAmount$ utilization = 200 note = (pressurized) fillable = true } } !RESOURCE[CarbonDioxide] {} } @PART[*]:HAS[@MODULE[ModuleFuelTanks],#CrewCapacity[>0],@Resource[ReservePower],!TANK[ReservePower]]:NEEDS[TacLifeSupport,modularFuelTanks|RealFuels,!RealismOverhaul]:FINAL { @MODULE[ModuleFuelTanks] { @type = LifeSupportAll @volume += #$/RESOURCE[ReservePower]/maxAmount$ TANK { name = ReservePower amount = #$/RESOURCE[ReservePower]/maxAmount$ maxAmount = #$/RESOURCE[ReservePower]/maxAmount$ utilization = 1000 fillable = true } } !RESOURCE[ReservePower] {} } @PART[*]:HAS[@MODULE[ModuleFuelTanks],#CrewCapacity[>0],!Resource[ReservePower],!TANK[ReservePower]]:NEEDS[TacLifeSupport,modularFuelTanks|RealFuels,!RealismOverhaul]:FINAL { @MODULE[ModuleFuelTanks] { @type = LifeSupportAll TANK { name = ReservePower amount = 80 maxAmount = #$amount$ utilization = 1000 fillable = true } @volume += #$MODULE[ModuleFuelTanks]/TANK[ReservePower]/maxAmount$ } } @PART[*]:HAS[@MODULE[ModuleFuelTanks],#CrewCapacity[>0],!Resource[ReservePower],@TANK[ReservePower]]:NEEDS[TacLifeSupport,modularFuelTanks|RealFuels,!RealismOverhaul]:FINAL { @MODULE[ModuleFuelTanks] { @type = LifeSupportAll @TANK[ReservePower] { @amount = 80 @maxAmount = #$amount$ @utilization = 1000 @fillable = true } @volume += #$MODULE[ModuleFuelTanks]/TANK[ReservePower]/maxAmount$ } } @PART[*]:HAS[@MODULE[ModuleFuelTanks],#CrewCapacity[>0],@Resource[ReservePower],@TANK[ReservePower]]:NEEDS[TacLifeSupport,modularFuelTanks|RealFuels,!RealismOverhaul]:FINAL { @MODULE[ModuleFuelTanks] { @type = LifeSupportAll @volume += #$/RESOURCE[ReservePower]/maxAmount$ @TANK[ReservePower] { @amount = #$/RESOURCE[ReservePower]/maxAmount$ @maxAmount = #$/RESOURCE[ReservePower]/maxAmount$ @utilization = 1000 @fillable = true } } !RESOURCE[ReservePower] {} } The kind of error is obviously always the same: Quote [ModuleManager] Error - Cannot parse variable search when editing key volume = .... I really would like to achieve a working TAC-LS into MFT/RF integration optional patch for folks who don't want empty resource tanks for LifeSupport, but pre-filled from either the stock resource values by other patches or estimated default values by amount of crew members ... Edited August 2, 2017 by Gordon Dry Quote Link to comment Share on other sites More sharing options...
KerbMav Posted August 2, 2017 Share Posted August 2, 2017 (edited) @Gordon Dry @PART[*]:HAS[@MODULE[ModuleFuelTanks],#CrewCapacity[>0],!Resource[ReservePower],@TANK[ReservePower]]:NEEDS[TacLifeSupport,modularFuelTanks|RealFuels,!RealismOverhaul]:FINAL { @MODULE[ModuleFuelTanks] { @type = LifeSupportAll @TANK[ReservePower] { @amount = 80 @maxAmount = #$amount$ @utilization = 1000 @fillable = true } @volume += #$TANK[ReservePower]/maxAmount$ } } I thought we established that we do not need to reference the MODULE in which we are looking? It is like in DOS, while in \games you only use cd ksp, not cd games\ksp. You are doing this several times in your patch. If I am right, than you had it right and were only missing the @ before volume = ... Edited August 2, 2017 by KerbMav Quote Link to comment Share on other sites More sharing options...
KerbMav Posted August 2, 2017 Share Posted August 2, 2017 @Gordon Dry But now I have one for you, because this does not seem to work ... @PART[*]:HAS[@MODULE[*]:HAS[#experimentID[atmosphereAnalysis|temperatureScan|gravityScan|barometerScan|seismicScan|scopeScan]]] { @MODULE[*]:HAS[#experimentID[atmosphereAnalysis|temperatureScan|gravityScan|barometerScan|seismicScan|scopeScan]] { @xmitDataScalar = 1.0 } } Quote Link to comment Share on other sites More sharing options...
Gordon Dry Posted August 2, 2017 Share Posted August 2, 2017 (edited) Let me finish solve my mess first, okay? Edit: I found a couple more flaws (not errors), now I'm just going through because I just had another idea (yes, I know). Edited August 2, 2017 by Gordon Dry Quote Link to comment Share on other sites More sharing options...
Gordon Dry Posted August 2, 2017 Share Posted August 2, 2017 17 minutes ago, KerbMav said: But now I have one for you Perhaps you don't need double HAS, when it's in PART you don't need it in MODULE anymore? Quote Link to comment Share on other sites More sharing options...
Gordon Dry Posted August 2, 2017 Share Posted August 2, 2017 (edited) It's still not working properly, but "only" when !Resource[abcxyz],!TANK[abcxyz] the line @volume += #$/TANK[abcxyz]/maxAmount$ throws the error. That line is after the closing bracket of the new created TANK, so what's the issue? The actual config: @TANK_DEFINITION[LifeSupportAll]:HAS[!TANK[ReservePower]]:NEEDS[AmpYear,modularFuelTanks|RealFuels,!RealismOverhaul]:FINAL { TANK { name = ReservePower mass = 0.00289 utilization = 1000 fillable = True amount = 0.0 maxAmount = 0.0 note = (pressurized) } } @PART[*]:HAS[@MODULE[ModuleFuelTanks],#CrewCapacity[>0],@Resource[ElectricCharge],!TANK[ElectricCharge]]:NEEDS[TacLifeSupport,modularFuelTanks|RealFuels,!RealismOverhaul]:FINAL { @MODULE[ModuleFuelTanks] { @type = LifeSupportAll TANK { name = ElectricCharge amount = #$/RESOURCE[ElectricCharge]/maxAmount$ @amount *= #$/mass$ maxAmount = #$amount$ utilization = 1000 fillable = true } @volume = #$/TANK[ElectricCharge]/maxAmount$ } !RESOURCE[ElectricCharge] {} } @PART[*]:HAS[@MODULE[ModuleFuelTanks],#CrewCapacity[>0],!Resource[ElectricCharge],!TANK[ElectricCharge]]:NEEDS[TacLifeSupport,modularFuelTanks|RealFuels,!RealismOverhaul]:FINAL { @MODULE[ModuleFuelTanks] { @type = LifeSupportAll TANK { name = ElectricCharge amount = 100 @amount *= #$/CrewCapacity$ @amount *= #$/mass$ @amount += 200 maxAmount = #$amount$ utilization = 1000 fillable = true } @volume = #$/TANK[ElectricCharge]/maxAmount$ } } @PART[*]:HAS[@MODULE[ModuleFuelTanks],#CrewCapacity[>0],!Resource[ElectricCharge],@TANK[ElectricCharge]]:NEEDS[TacLifeSupport,modularFuelTanks|RealFuels,!RealismOverhaul]:FINAL { @MODULE[ModuleFuelTanks] { @type = LifeSupportAll @TANK[ElectricCharge] { @amount = 100 @amount *= #$/CrewCapacity$ @amount *= #$/mass$ @amount += 200 @maxAmount = #$amount$ @utilization = 1000 @fillable = true } @volume = #$/TANK[ElectricCharge]/maxAmount$ } } @PART[*]:HAS[@MODULE[ModuleFuelTanks],#CrewCapacity[>0],@Resource[ElectricCharge],@TANK[ElectricCharge]]:NEEDS[TacLifeSupport,modularFuelTanks|RealFuels,!RealismOverhaul]:FINAL { @MODULE[ModuleFuelTanks] { @type = LifeSupportAll @TANK[ElectricCharge] { @amount = #$/RESOURCE[ElectricCharge]/maxAmount$ @amount *= #$/mass$ @maxAmount = #$amount$ @utilization = 1000 @fillable = true } @volume = #$/TANK[ElectricCharge]/maxAmount$ } !RESOURCE[ElectricCharge] {} } @PART[*]:HAS[!MODULE[ModuleFuelTanks],#CrewCapacity[>0],@Resource[ElectricCharge]]:NEEDS[TacLifeSupport,modularFuelTanks|RealFuels,!RealismOverhaul]:FINAL { MODULE { name = ModuleFuelTanks type = LifeSupportAll TANK { name = ElectricCharge amount = #$/RESOURCE[ElectricCharge]/maxAmount$ @amount *= #$/mass$ maxAmount = #$amount$ utilization = 1000 fillable = true } volume = #$/TANK[ElectricCharge]/maxAmount$ } !RESOURCE[ElectricCharge] {} } @PART[*]:HAS[!MODULE[ModuleFuelTanks],#CrewCapacity[>0],!Resource[ElectricCharge]]:NEEDS[TacLifeSupport,modularFuelTanks|RealFuels,!RealismOverhaul]:FINAL { MODULE { name = ModuleFuelTanks type = LifeSupportAll TANK { name = ElectricCharge amount = 100 @amount *= #$/CrewCapacity$ @amount *= #$/mass$ @amount += 200 maxAmount = #$amount$ utilization = 1000 fillable = true } volume = #$/TANK[ElectricCharge]/maxAmount$ } } @PART[*]:HAS[@MODULE[ModuleFuelTanks],#CrewCapacity[>0],@Resource[Food],!TANK[Food]]:NEEDS[TacLifeSupport,modularFuelTanks|RealFuels,!RealismOverhaul]:FINAL { @MODULE[ModuleFuelTanks] { @type = LifeSupportAll TANK { name = Food amount = #$/RESOURCE[Food]/maxAmount$ @amount *= #$/mass$ maxAmount = #$amount$ fillable = true } @volume += #$/TANK[Food]/maxAmount$ } !RESOURCE[Food] {} } @PART[*]:HAS[@MODULE[ModuleFuelTanks],#CrewCapacity[>0],!Resource[Food],!TANK[Food]]:NEEDS[TacLifeSupport,modularFuelTanks|RealFuels,!RealismOverhaul]:FINAL { @MODULE[ModuleFuelTanks] { @type = LifeSupportAll TANK { name = Food amount = 1.46267 @amount *= #$/CrewCapacity$ @amount *= 3 @amount *= #$/mass$ maxAmount = #$amount$ fillable = true } @volume += #$/TANK[Food]/maxAmount$ } } @PART[*]:HAS[@MODULE[ModuleFuelTanks],#CrewCapacity[>0],!Resource[Food],@TANK[Food]]:NEEDS[TacLifeSupport,modularFuelTanks|RealFuels,!RealismOverhaul]:FINAL { @MODULE[ModuleFuelTanks] { @type = LifeSupportAll @TANK[Food] { @amount = 1.46267 @amount *= #$/CrewCapacity$ @amount *= 3 @amount *= #$/mass$ @maxAmount = #$amount$ @fillable = true } @volume += #$/TANK[Food]/maxAmount$ } } @PART[*]:HAS[@MODULE[ModuleFuelTanks],#CrewCapacity[>0],@Resource[Food],@TANK[Food]]:NEEDS[TacLifeSupport,modularFuelTanks|RealFuels,!RealismOverhaul]:FINAL { @MODULE[ModuleFuelTanks] { @type = LifeSupportAll @TANK[Food] { @amount = #$/RESOURCE[Food]/maxAmount$ @amount *= #$/mass$ @maxAmount = #$amount$ @fillable = true } @volume += #$/TANK[Food]/maxAmount$ } !RESOURCE[Food] {} } @PART[*]:HAS[@MODULE[ModuleFuelTanks],#CrewCapacity[>0],@Resource[Water],!TANK[Water]]:NEEDS[TacLifeSupport,modularFuelTanks|RealFuels,!RealismOverhaul]:FINAL { @MODULE[ModuleFuelTanks] { @type = LifeSupportAll TANK { name = Water amount = #$/RESOURCE[Water]/maxAmount$ @amount *= #$/mass$ maxAmount = #$amount$ fillable = true } @volume += #$/TANK[Water]/maxAmount$ } !RESOURCE[Water] {} } @PART[*]:HAS[@MODULE[ModuleFuelTanks],#CrewCapacity[>0],!Resource[Water],!TANK[Water]]:NEEDS[TacLifeSupport,modularFuelTanks|RealFuels,!RealismOverhaul]:FINAL { @MODULE[ModuleFuelTanks] { @type = LifeSupportAll TANK { name = Water amount = 0.96667 @amount *= #$/CrewCapacity$ @amount *= 3 @amount *= #$/mass$ maxAmount = #$amount$ fillable = true } @volume += #$/TANK[Water]/maxAmount$ } } @PART[*]:HAS[@MODULE[ModuleFuelTanks],#CrewCapacity[>0],!Resource[Water],@TANK[Water]]:NEEDS[TacLifeSupport,modularFuelTanks|RealFuels,!RealismOverhaul]:FINAL { @MODULE[ModuleFuelTanks] { @type = LifeSupportAll @TANK[Water] { @amount = 0.96667 @amount *= #$/CrewCapacity$ @amount *= 3 @amount *= #$/mass$ @maxAmount = #$amount$ @fillable = true } @volume += #$/TANK[Water]/maxAmount$ } } @PART[*]:HAS[@MODULE[ModuleFuelTanks],#CrewCapacity[>0],@Resource[Water],@TANK[Water]]:NEEDS[TacLifeSupport,modularFuelTanks|RealFuels,!RealismOverhaul]:FINAL { @MODULE[ModuleFuelTanks] { @type = LifeSupportAll TANK { name = Water amount = #$/RESOURCE[Water]/maxAmount$ @amount *= #$/mass$ maxAmount = #$amount$ fillable = true } @volume += #$/TANK[Water]/maxAmount$ } !RESOURCE[Water] {} } @PART[*]:HAS[@MODULE[ModuleFuelTanks],#CrewCapacity[>0],@Resource[Oxygen],!TANK[Oxygen]]:NEEDS[TacLifeSupport,modularFuelTanks|RealFuels,!RealismOverhaul]:FINAL { @MODULE[ModuleFuelTanks] { @type = LifeSupportAll TANK { name = Oxygen amount = #$/RESOURCE[Oxygen]/maxAmount$ @amount *= #$/mass$ maxAmount = #$amount$ utilization = 200 note = (pressurized) fillable = true } @volume += #$/TANK[Oxygen]/maxAmount$ } !RESOURCE[Oxygen] {} } @PART[*]:HAS[@MODULE[ModuleFuelTanks],#CrewCapacity[>0],!Resource[Oxygen],!TANK[Oxygen]]:NEEDS[TacLifeSupport,modularFuelTanks|RealFuels,!RealismOverhaul]:FINAL { @MODULE[ModuleFuelTanks] { @type = LifeSupportAll TANK { name = Oxygen amount = 148.05067 @amount *= #$/CrewCapacity$ @amount *= 3 @amount *= #$/mass$ maxAmount = #$amount$ utilization = 200 note = (pressurized) fillable = true } @volume += #$/TANK[Oxygen]/maxAmount$ } } @PART[*]:HAS[@MODULE[ModuleFuelTanks],#CrewCapacity[>0],!Resource[Oxygen],@TANK[Oxygen]]:NEEDS[TacLifeSupport,modularFuelTanks|RealFuels,!RealismOverhaul]:FINAL { @MODULE[ModuleFuelTanks] { @type = LifeSupportAll @TANK[Oxygen] { @amount = 148.05067 @amount *= #$/CrewCapacity$ @amount *= 3 @amount *= #$/mass$ @maxAmount = #$amount$ @utilization = 200 @note = (pressurized) @fillable = true } @volume += #$/TANK[Oxygen]/maxAmount$ } } @PART[*]:HAS[@MODULE[ModuleFuelTanks],#CrewCapacity[>0],@Resource[Oxygen],@TANK[Oxygen]]:NEEDS[TacLifeSupport,modularFuelTanks|RealFuels,!RealismOverhaul]:FINAL { @MODULE[ModuleFuelTanks] { @type = LifeSupportAll TANK { name = Oxygen amount = #$/RESOURCE[Oxygen]/maxAmount$ @amount *= #$/mass$ maxAmount = #$amount$ utilization = 200 note = (pressurized) fillable = true } @volume += #$/TANK[Oxygen]/maxAmount$ } !RESOURCE[Oxygen] {} } @PART[*]:HAS[@MODULE[ModuleFuelTanks],#CrewCapacity[>0],@Resource[Waste],!TANK[Waste]]:NEEDS[TacLifeSupport,modularFuelTanks|RealFuels,!RealismOverhaul]:FINAL { @MODULE[ModuleFuelTanks] { @type = LifeSupportAll TANK { name = Waste amount = 0 maxAmount = #$/RESOURCE[Waste]/maxAmount$ @maxAmount *= #$/mass$ fillable = true } @volume += #$/TANK[Waste]/maxAmount$ } !RESOURCE[Waste] {} } @PART[*]:HAS[@MODULE[ModuleFuelTanks],#CrewCapacity[>0],!Resource[Waste],!TANK[Waste]]:NEEDS[TacLifeSupport,modularFuelTanks|RealFuels,!RealismOverhaul]:FINAL { @MODULE[ModuleFuelTanks] { @type = LifeSupportAll TANK { name = Waste amount = 0 maxAmount = 0.13333 @maxamount *= #$/CrewCapacity$ @maxamount *= 3 @maxAmount *= #$/mass$ fillable = true } @volume += #$/TANK[Waste]/maxAmount$ } } @PART[*]:HAS[@MODULE[ModuleFuelTanks],#CrewCapacity[>0],!Resource[Waste],@TANK[Waste]]:NEEDS[TacLifeSupport,modularFuelTanks|RealFuels,!RealismOverhaul]:FINAL { @MODULE[ModuleFuelTanks] { @type = LifeSupportAll @TANK[Waste] { @amount = 0 @maxAmount = 0.13333 @maxamount *= #$/CrewCapacity$ @maxamount *= 3 @maxAmount *= #$/mass$ @fillable = true } @volume += #$/TANK[Waste]/maxAmount$ } } @PART[*]:HAS[@MODULE[ModuleFuelTanks],#CrewCapacity[>0],@Resource[Waste],@TANK[Waste]]:NEEDS[TacLifeSupport,modularFuelTanks|RealFuels,!RealismOverhaul]:FINAL { @MODULE[ModuleFuelTanks] { @type = LifeSupportAll TANK { name = Waste amount = 0 maxAmount = #$/RESOURCE[Waste]/maxAmount$ @maxAmount *= #$/mass$ fillable = true } @volume += #$/TANK[Waste]/maxAmount$ } !RESOURCE[Waste] {} } @PART[*]:HAS[@MODULE[ModuleFuelTanks],#CrewCapacity[>0],@Resource[WasteWater],!TANK[WasteWater]]:NEEDS[TacLifeSupport,modularFuelTanks|RealFuels,!RealismOverhaul]:FINAL { @MODULE[ModuleFuelTanks] { @type = LifeSupportAll TANK { name = WasteWater amount = 0 maxAmount = #$/RESOURCE[WasteWater]/maxAmount$ @maxAmount *= #$/mass$ fillable = true } @volume += #$/TANK[WasteWater]/maxAmount$ } !RESOURCE[WasteWater] {} } @PART[*]:HAS[@MODULE[ModuleFuelTanks],#CrewCapacity[>0],!Resource[WasteWater],!TANK[WasteWater]]:NEEDS[TacLifeSupport,modularFuelTanks|RealFuels,!RealismOverhaul]:FINAL { @MODULE[ModuleFuelTanks] { @type = LifeSupportAll TANK { name = WasteWater amount = 0 maxAmount = 1.232 @maxamount *= #$/CrewCapacity$ @maxamount *= 3 @maxAmount *= #$/mass$ fillable = true } @volume += #$/TANK[WasteWater]/maxAmount$ } } @PART[*]:HAS[@MODULE[ModuleFuelTanks],#CrewCapacity[>0],!Resource[WasteWater],@TANK[WasteWater]]:NEEDS[TacLifeSupport,modularFuelTanks|RealFuels,!RealismOverhaul]:FINAL { @MODULE[ModuleFuelTanks] { @type = LifeSupportAll @TANK[WasteWater] { @amount = 0 @maxAmount = 1.232 @maxamount *= #$/CrewCapacity$ @maxamount *= 3 @maxAmount *= #$/mass$ @fillable = true } @volume += #$/TANK[WasteWater]/maxAmount$ } } @PART[*]:HAS[@MODULE[ModuleFuelTanks],#CrewCapacity[>0],@Resource[WasteWater],@TANK[WasteWater]]:NEEDS[TacLifeSupport,modularFuelTanks|RealFuels,!RealismOverhaul]:FINAL { @MODULE[ModuleFuelTanks] { @type = LifeSupportAll TANK { name = WasteWater amount = 0 maxAmount = #$/RESOURCE[WasteWater]/maxAmount$ @maxAmount *= #$/mass$ fillable = true } @volume += #$/TANK[WasteWater]/maxAmount$ } !RESOURCE[WasteWater] {} } @PART[*]:HAS[@MODULE[ModuleFuelTanks],#CrewCapacity[>0],@Resource[CarbonDioxide],!TANK[CarbonDioxide]]:NEEDS[TacLifeSupport,modularFuelTanks|RealFuels,!RealismOverhaul]:FINAL { @MODULE[ModuleFuelTanks] { @type = LifeSupportAll TANK { name = CarbonDioxide amount = 0 maxAmount = #$/RESOURCE[CarbonDioxide]/maxAmount$ @maxAmount *= #$/mass$ utilization = 200 note = (pressurized) fillable = true } @volume += #$/TANK[CarbonDioxide]/maxAmount$ } !RESOURCE[CarbonDioxide] {} } @PART[*]:HAS[@MODULE[ModuleFuelTanks],#CrewCapacity[>0],!Resource[CarbonDioxide],!TANK[CarbonDioxide]]:NEEDS[TacLifeSupport,modularFuelTanks|RealFuels,!RealismOverhaul]:FINAL { @MODULE[ModuleFuelTanks] { @type = LifeSupportAll TANK { name = CarbonDioxide amount = 0 maxAmount = 127.884 @maxamount *= #$/CrewCapacity$ @maxamount *= 3 @maxAmount *= #$/mass$ utilization = 200 note = (pressurized) fillable = true } @volume += #$/TANK[CarbonDioxide]/maxAmount$ } } @PART[*]:HAS[@MODULE[ModuleFuelTanks],#CrewCapacity[>0],!Resource[CarbonDioxide],@TANK[CarbonDioxide]]:NEEDS[TacLifeSupport,modularFuelTanks|RealFuels,!RealismOverhaul]:FINAL { @MODULE[ModuleFuelTanks] { @type = LifeSupportAll @TANK[CarbonDioxide] { @amount = 0 @maxAmount = 127.884 @maxamount *= #$/CrewCapacity$ @maxamount *= 3 @maxAmount *= #$/mass$ @fillable = true } @volume += #$/TANK[CarbonDioxide]/maxAmount$ } } @PART[*]:HAS[@MODULE[ModuleFuelTanks],#CrewCapacity[>0],@Resource[CarbonDioxide],@TANK[CarbonDioxide]]:NEEDS[TacLifeSupport,modularFuelTanks|RealFuels,!RealismOverhaul]:FINAL { @MODULE[ModuleFuelTanks] { @type = LifeSupportAll TANK { name = CarbonDioxide amount = 0 maxAmount = #$/RESOURCE[CarbonDioxide]/maxAmount$ @maxAmount *= #$/mass$ utilization = 200 note = (pressurized) fillable = true } @volume += #$/TANK[CarbonDioxide]/maxAmount$ } !RESOURCE[CarbonDioxide] {} } @PART[*]:HAS[@MODULE[ModuleFuelTanks],#CrewCapacity[>0],@Resource[ReservePower],!TANK[ReservePower]]:NEEDS[TacLifeSupport,modularFuelTanks|RealFuels,!RealismOverhaul]:FINAL { @MODULE[ModuleFuelTanks] { @type = LifeSupportAll TANK { name = ReservePower amount = #$/RESOURCE[ReservePower]/maxAmount$ maxAmount = #$/RESOURCE[ReservePower]/maxAmount$ @maxAmount *= #$/mass$ utilization = 1000 fillable = true } @volume += #$/TANK[ReservePower]/maxAmount$ } !RESOURCE[ReservePower] {} } @PART[*]:HAS[@MODULE[ModuleFuelTanks],#CrewCapacity[>0],!Resource[ReservePower],!TANK[ReservePower]]:NEEDS[TacLifeSupport,modularFuelTanks|RealFuels,!RealismOverhaul]:FINAL { @MODULE[ModuleFuelTanks] { @type = LifeSupportAll TANK { name = ReservePower amount = 80 maxAmount = #$amount$ @maxAmount *= #$/mass$ utilization = 1000 fillable = true } @volume += #$/TANK[ReservePower]/maxAmount$ } } @PART[*]:HAS[@MODULE[ModuleFuelTanks],#CrewCapacity[>0],!Resource[ReservePower],@TANK[ReservePower]]:NEEDS[TacLifeSupport,modularFuelTanks|RealFuels,!RealismOverhaul]:FINAL { @MODULE[ModuleFuelTanks] { @type = LifeSupportAll @TANK[ReservePower] { @amount = 80 @maxAmount = #$amount$ @maxAmount *= #$/mass$ @utilization = 1000 @fillable = true } @volume += #$/TANK[ReservePower]/maxAmount$ } } @PART[*]:HAS[@MODULE[ModuleFuelTanks],#CrewCapacity[>0],@Resource[ReservePower],@TANK[ReservePower]]:NEEDS[TacLifeSupport,modularFuelTanks|RealFuels,!RealismOverhaul]:FINAL { @MODULE[ModuleFuelTanks] { @type = LifeSupportAll @TANK[ReservePower] { @amount = #$/RESOURCE[ReservePower]/maxAmount$ @maxAmount = #$/RESOURCE[ReservePower]/maxAmount$ @maxAmount *= #$/mass$ @utilization = 1000 @fillable = true } @volume += #$/TANK[ReservePower]/maxAmount$ } !RESOURCE[ReservePower] {} } Edit: oh wait, I hope I got it - I remembered something that came into my mind earlier - before I changed some order logic ... I guess I simply forgot something. Edited August 2, 2017 by Gordon Dry Quote Link to comment Share on other sites More sharing options...
Gordon Dry Posted August 2, 2017 Share Posted August 2, 2017 (edited) Darn, I really forgot something, but that was not the issue ... I checked the forums (using Google because forum search sucks) to especially search for Quote [ModuleManager] Error - Cannot parse variable search and finally found a clue: Quote @PART[*]:HAS[!MODULE[ModuleAeroReentry],#leaveTemp[*]]:FINAL { MODULE { name = ModuleAeroReentry leaveTemp = #$../leaveTemp$ } // Causing errors in Module Manager because it deletes leaveTemp BEFORE accessing it above. //!leaveTemp = DELETE } It seems that MM thinks, the line is above the TANK, not below, and tries to do it first...darn Edited August 2, 2017 by Gordon Dry Quote Link to comment Share on other sites More sharing options...
blowfish Posted August 3, 2017 Share Posted August 3, 2017 54 minutes ago, Gordon Dry said: Darn, I really forgot something, but that was not the issue ... I checked the forums (using Google because forum search sucks) to especially search for and finally found a clue: It seems that MM thinks, the line is above the TANK, not below, and tries to do it first...darn All values are processed before nodes. Nothing MM can do about this, it has to do with the way KSP keeps track of things. You'd need to make them separate patches. Quote Link to comment Share on other sites More sharing options...
Gordon Dry Posted August 3, 2017 Share Posted August 3, 2017 (edited) I will test this one when I'm back, have to sleep now: @TANK_DEFINITION[LifeSupportAll]:HAS[!TANK[ReservePower]]:NEEDS[TacLifeSupport,AmpYear,modularFuelTanks|RealFuels,!RealismOverhaul]:FOR[zzz_GD_TACLSMFTRF_0] { TANK { name = ReservePower mass = 0.00289 utilization = 1000 fillable = True amount = 0.0 maxAmount = 0.0 note = (pressurized) } } @TANK_DEFINITION[LifeSupportAll]:HAS[!TANK[ElectricCharge]]:NEEDS[TacLifeSupport,modularFuelTanks|RealFuels,!RealismOverhaul]:FOR[zzz_GD_TACLSMFTRF_0] { TANK { name = ElectricCharge mass = 0.01264 utilization = 1000 fillable = True amount = 0.0 maxAmount = 0.0 note = (pressurized) } } @PART[*]:HAS[@MODULE[ModuleFuelTanks],#CrewCapacity[>0],@Resource[ElectricCharge],!TANK[ElectricCharge]]:NEEDS[TacLifeSupport,modularFuelTanks|RealFuels,!RealismOverhaul]:FOR[zzz_GD_TACLSMFTRF_1] { @MODULE[ModuleFuelTanks] { @type = LifeSupportAll TANK { name = ElectricCharge amount = #$/RESOURCE[ElectricCharge]/maxAmount$ @amount *= #$/mass$ maxAmount = #$amount$ utilization = 1000 fillable = true } } !RESOURCE[ElectricCharge] {} } @PART[*]:HAS[@MODULE[ModuleFuelTanks],#CrewCapacity[>0],!Resource[ElectricCharge],!TANK[ElectricCharge]]:NEEDS[TacLifeSupport,modularFuelTanks|RealFuels,!RealismOverhaul]:FOR[zzz_GD_TACLSMFTRF_1] { @MODULE[ModuleFuelTanks] { @type = LifeSupportAll TANK { name = ElectricCharge amount = 100 @amount *= #$/CrewCapacity$ @amount *= #$/mass$ @amount += 200 maxAmount = #$amount$ utilization = 1000 fillable = true } } } @PART[*]:HAS[@MODULE[ModuleFuelTanks],#CrewCapacity[>0],!Resource[ElectricCharge],@TANK[ElectricCharge],!MODULE[ModuleFuelTanks]/TANK[ElectricCharge]/maxAmount[>0]]:NEEDS[TacLifeSupport,modularFuelTanks|RealFuels,!RealismOverhaul]:FOR[zzz_GD_TACLSMFTRF_1] { @MODULE[ModuleFuelTanks] { @type = LifeSupportAll @TANK[ElectricCharge] { @amount = 100 @amount *= #$/CrewCapacity$ @amount *= #$/mass$ @amount += 200 @maxAmount = #$amount$ @utilization = 1000 @fillable = true } } } @PART[*]:HAS[@MODULE[ModuleFuelTanks],#CrewCapacity[>0],@Resource[ElectricCharge],@TANK[ElectricCharge]]:NEEDS[TacLifeSupport,modularFuelTanks|RealFuels,!RealismOverhaul]:FOR[zzz_GD_TACLSMFTRF_1] { @MODULE[ModuleFuelTanks] { @type = LifeSupportAll @TANK[ElectricCharge] { @amount = #$/RESOURCE[ElectricCharge]/maxAmount$ @amount *= #$/mass$ @maxAmount = #$amount$ @utilization = 1000 @fillable = true } } !RESOURCE[ElectricCharge] {} } @PART[*]:HAS[!MODULE[ModuleFuelTanks],#CrewCapacity[>0],@Resource[ElectricCharge]]:NEEDS[TacLifeSupport,modularFuelTanks|RealFuels,!RealismOverhaul]:FOR[zzz_GD_TACLSMFTRF_2] { MODULE { name = ModuleFuelTanks type = LifeSupportAll TANK { name = ElectricCharge amount = #$/RESOURCE[ElectricCharge]/maxAmount$ @amount *= #$/mass$ maxAmount = #$amount$ utilization = 1000 fillable = true } } !RESOURCE[ElectricCharge] {} } @PART[*]:HAS[!MODULE[ModuleFuelTanks],#CrewCapacity[>0],!Resource[ElectricCharge]]:NEEDS[TacLifeSupport,modularFuelTanks|RealFuels,!RealismOverhaul]:FOR[zzz_GD_TACLSMFTRF_2] { MODULE { name = ModuleFuelTanks type = LifeSupportAll TANK { name = ElectricCharge amount = 100 @amount *= #$/CrewCapacity$ @amount *= #$/mass$ @amount += 200 maxAmount = #$amount$ utilization = 1000 fillable = true } } } @PART[*]:HAS[@MODULE[ModuleFuelTanks],#CrewCapacity[>0],@TANK[ElectricCharge]]:NEEDS[TacLifeSupport,modularFuelTanks|RealFuels,!RealismOverhaul]:AFTER[zzz_GD_TACLSMFTRF_2] { @MODULE[ModuleFuelTanks] { @type = LifeSupportAll @volume = #$/TANK[ElectricCharge]/maxAmount$ } } @PART[*]:HAS[@MODULE[ModuleFuelTanks],#CrewCapacity[>0],@Resource[Food],!TANK[Food]]:NEEDS[TacLifeSupport,modularFuelTanks|RealFuels,!RealismOverhaul]:FOR[zzz_GD_TACLSMFTRF_3] { @MODULE[ModuleFuelTanks] { @type = LifeSupportAll TANK { name = Food amount = #$/RESOURCE[Food]/maxAmount$ @amount *= #$/mass$ maxAmount = #$amount$ fillable = true } } !RESOURCE[Food] {} } @PART[*]:HAS[@MODULE[ModuleFuelTanks],#CrewCapacity[>0],!Resource[Food],!TANK[Food]]:NEEDS[TacLifeSupport,modularFuelTanks|RealFuels,!RealismOverhaul]:FOR[zzz_GD_TACLSMFTRF_3] { @MODULE[ModuleFuelTanks] { @type = LifeSupportAll TANK { name = Food amount = 1.46267 @amount *= #$/CrewCapacity$ @amount *= 3 @amount *= #$/mass$ maxAmount = #$amount$ fillable = true } } } @PART[*]:HAS[@MODULE[ModuleFuelTanks],#CrewCapacity[>0],!Resource[Food],@TANK[Food],!MODULE[ModuleFuelTanks]/TANK[Food]/maxAmount[>0]]:NEEDS[TacLifeSupport,modularFuelTanks|RealFuels,!RealismOverhaul]:FOR[zzz_GD_TACLSMFTRF_3] { @MODULE[ModuleFuelTanks] { @type = LifeSupportAll @TANK[Food] { @amount = 1.46267 @amount *= #$/CrewCapacity$ @amount *= 3 @amount *= #$/mass$ @maxAmount = #$amount$ @fillable = true } } } @PART[*]:HAS[@MODULE[ModuleFuelTanks],#CrewCapacity[>0],@Resource[Food],@TANK[Food]]:NEEDS[TacLifeSupport,modularFuelTanks|RealFuels,!RealismOverhaul]:FOR[zzz_GD_TACLSMFTRF_3] { @MODULE[ModuleFuelTanks] { @type = LifeSupportAll @TANK[Food] { @amount = #$/RESOURCE[Food]/maxAmount$ @amount *= #$/mass$ @maxAmount = #$amount$ @fillable = true } @volume += #$/TANK[Food]/maxAmount$ } !RESOURCE[Food] {} } @PART[*]:HAS[@MODULE[ModuleFuelTanks],#CrewCapacity[>0],@TANK[Food]]:NEEDS[TacLifeSupport,modularFuelTanks|RealFuels,!RealismOverhaul]:AFTER[zzz_GD_TACLSMFTRF_3] { @MODULE[ModuleFuelTanks] { @type = LifeSupportAll @volume += #$/TANK[Food]/maxAmount$ } } @PART[*]:HAS[@MODULE[ModuleFuelTanks],#CrewCapacity[>0],@Resource[Water],!TANK[Water]]:NEEDS[TacLifeSupport,modularFuelTanks|RealFuels,!RealismOverhaul]:FOR[zzz_GD_TACLSMFTRF_4] { @MODULE[ModuleFuelTanks] { @type = LifeSupportAll TANK { name = Water amount = #$/RESOURCE[Water]/maxAmount$ @amount *= #$/mass$ maxAmount = #$amount$ fillable = true } } !RESOURCE[Water] {} } @PART[*]:HAS[@MODULE[ModuleFuelTanks],#CrewCapacity[>0],!Resource[Water],!TANK[Water]]:NEEDS[TacLifeSupport,modularFuelTanks|RealFuels,!RealismOverhaul]:FOR[zzz_GD_TACLSMFTRF_4] { @MODULE[ModuleFuelTanks] { @type = LifeSupportAll TANK { name = Water amount = 0.96667 @amount *= #$/CrewCapacity$ @amount *= 3 @amount *= #$/mass$ maxAmount = #$amount$ fillable = true } } } @PART[*]:HAS[@MODULE[ModuleFuelTanks],#CrewCapacity[>0],!Resource[Water],@TANK[Water],!MODULE[ModuleFuelTanks]/TANK[Water]/maxAmount[>0]]:NEEDS[TacLifeSupport,modularFuelTanks|RealFuels,!RealismOverhaul]:FOR[zzz_GD_TACLSMFTRF_4] { @MODULE[ModuleFuelTanks] { @type = LifeSupportAll @TANK[Water] { @amount = 0.96667 @amount *= #$/CrewCapacity$ @amount *= 3 @amount *= #$/mass$ @maxAmount = #$amount$ @fillable = true } } } @PART[*]:HAS[@MODULE[ModuleFuelTanks],#CrewCapacity[>0],@Resource[Water],@TANK[Water]]:NEEDS[TacLifeSupport,modularFuelTanks|RealFuels,!RealismOverhaul]:FOR[zzz_GD_TACLSMFTRF_4] { @MODULE[ModuleFuelTanks] { @type = LifeSupportAll TANK { name = Water amount = #$/RESOURCE[Water]/maxAmount$ @amount *= #$/mass$ maxAmount = #$amount$ fillable = true } } !RESOURCE[Water] {} } @PART[*]:HAS[@MODULE[ModuleFuelTanks],#CrewCapacity[>0],@TANK[Water]]:NEEDS[TacLifeSupport,modularFuelTanks|RealFuels,!RealismOverhaul]:AFTER[zzz_GD_TACLSMFTRF_4] { @MODULE[ModuleFuelTanks] { @type = LifeSupportAll @volume += #$/TANK[Water]/maxAmount$ } } @PART[*]:HAS[@MODULE[ModuleFuelTanks],#CrewCapacity[>0],@Resource[Oxygen],!TANK[Oxygen]]:NEEDS[TacLifeSupport,modularFuelTanks|RealFuels,!RealismOverhaul]:FOR[zzz_GD_TACLSMFTRF_5] { @MODULE[ModuleFuelTanks] { @type = LifeSupportAll TANK { name = Oxygen amount = #$/RESOURCE[Oxygen]/maxAmount$ @amount *= #$/mass$ maxAmount = #$amount$ utilization = 200 note = (pressurized) fillable = true } } !RESOURCE[Oxygen] {} } @PART[*]:HAS[@MODULE[ModuleFuelTanks],#CrewCapacity[>0],!Resource[Oxygen],!TANK[Oxygen]]:NEEDS[TacLifeSupport,modularFuelTanks|RealFuels,!RealismOverhaul]:FOR[zzz_GD_TACLSMFTRF_5] { @MODULE[ModuleFuelTanks] { @type = LifeSupportAll TANK { name = Oxygen amount = 148.05067 @amount *= #$/CrewCapacity$ @amount *= 3 @amount *= #$/mass$ maxAmount = #$amount$ utilization = 200 note = (pressurized) fillable = true } } } @PART[*]:HAS[@MODULE[ModuleFuelTanks],#CrewCapacity[>0],!Resource[Oxygen],@TANK[Oxygen],!MODULE[ModuleFuelTanks]/TANK[Oxygen]/maxAmount[>0]]:NEEDS[TacLifeSupport,modularFuelTanks|RealFuels,!RealismOverhaul]:FOR[zzz_GD_TACLSMFTRF_5] { @MODULE[ModuleFuelTanks] { @type = LifeSupportAll @TANK[Oxygen] { @amount = 148.05067 @amount *= #$/CrewCapacity$ @amount *= 3 @amount *= #$/mass$ @maxAmount = #$amount$ @utilization = 200 @note = (pressurized) @fillable = true } } } @PART[*]:HAS[@MODULE[ModuleFuelTanks],#CrewCapacity[>0],@Resource[Oxygen],@TANK[Oxygen]]:NEEDS[TacLifeSupport,modularFuelTanks|RealFuels,!RealismOverhaul]:FOR[zzz_GD_TACLSMFTRF_5] { @MODULE[ModuleFuelTanks] { @type = LifeSupportAll TANK { name = Oxygen amount = #$/RESOURCE[Oxygen]/maxAmount$ @amount *= #$/mass$ maxAmount = #$amount$ utilization = 200 note = (pressurized) fillable = true } } !RESOURCE[Oxygen] {} } @PART[*]:HAS[@MODULE[ModuleFuelTanks],#CrewCapacity[>0],@TANK[Oxygen]]:NEEDS[TacLifeSupport,modularFuelTanks|RealFuels,!RealismOverhaul]:AFTER[zzz_GD_TACLSMFTRF_5] { @MODULE[ModuleFuelTanks] { @type = LifeSupportAll @volume += #$/TANK[Oxygen]/maxAmount$ } } @PART[*]:HAS[@MODULE[ModuleFuelTanks],#CrewCapacity[>0],@Resource[Waste],!TANK[Waste]]:NEEDS[TacLifeSupport,modularFuelTanks|RealFuels,!RealismOverhaul]:FOR[zzz_GD_TACLSMFTRF_6] { @MODULE[ModuleFuelTanks] { @type = LifeSupportAll TANK { name = Waste amount = 0 maxAmount = #$/RESOURCE[Waste]/maxAmount$ @maxAmount *= #$/mass$ fillable = true } } !RESOURCE[Waste] {} } @PART[*]:HAS[@MODULE[ModuleFuelTanks],#CrewCapacity[>0],!Resource[Waste],!TANK[Waste]]:NEEDS[TacLifeSupport,modularFuelTanks|RealFuels,!RealismOverhaul]:FOR[zzz_GD_TACLSMFTRF_6] { @MODULE[ModuleFuelTanks] { @type = LifeSupportAll TANK { name = Waste amount = 0 maxAmount = 0.13333 @maxamount *= #$/CrewCapacity$ @maxamount *= 3 @maxAmount *= #$/mass$ fillable = true } } } @PART[*]:HAS[@MODULE[ModuleFuelTanks],#CrewCapacity[>0],!Resource[Waste],@TANK[Waste],!MODULE[ModuleFuelTanks]/TANK[Waste]/maxAmount[>0]]:NEEDS[TacLifeSupport,modularFuelTanks|RealFuels,!RealismOverhaul]:FOR[zzz_GD_TACLSMFTRF_6] { @MODULE[ModuleFuelTanks] { @type = LifeSupportAll @TANK[Waste] { @amount = 0 @maxAmount = 0.13333 @maxamount *= #$/CrewCapacity$ @maxamount *= 3 @maxAmount *= #$/mass$ @fillable = true } } } @PART[*]:HAS[@MODULE[ModuleFuelTanks],#CrewCapacity[>0],@Resource[Waste],@TANK[Waste]]:NEEDS[TacLifeSupport,modularFuelTanks|RealFuels,!RealismOverhaul]:FOR[zzz_GD_TACLSMFTRF_6] { @MODULE[ModuleFuelTanks] { @type = LifeSupportAll TANK { name = Waste amount = 0 maxAmount = #$/RESOURCE[Waste]/maxAmount$ @maxAmount *= #$/mass$ fillable = true } } !RESOURCE[Waste] {} } @PART[*]:HAS[@MODULE[ModuleFuelTanks],#CrewCapacity[>0],@TANK[Waste]]:NEEDS[TacLifeSupport,modularFuelTanks|RealFuels,!RealismOverhaul]:AFTER[zzz_GD_TACLSMFTRF_6] { @MODULE[ModuleFuelTanks] { @type = LifeSupportAll @volume += #$/TANK[Waste]/maxAmount$ } } @PART[*]:HAS[@MODULE[ModuleFuelTanks],#CrewCapacity[>0],@Resource[WasteWater],!TANK[WasteWater]]:NEEDS[TacLifeSupport,modularFuelTanks|RealFuels,!RealismOverhaul]:FOR[zzz_GD_TACLSMFTRF_7] { @MODULE[ModuleFuelTanks] { @type = LifeSupportAll TANK { name = WasteWater amount = 0 maxAmount = #$/RESOURCE[WasteWater]/maxAmount$ @maxAmount *= #$/mass$ fillable = true } } !RESOURCE[WasteWater] {} } @PART[*]:HAS[@MODULE[ModuleFuelTanks],#CrewCapacity[>0],!Resource[WasteWater],!TANK[WasteWater]]:NEEDS[TacLifeSupport,modularFuelTanks|RealFuels,!RealismOverhaul]:FOR[zzz_GD_TACLSMFTRF_7] { @MODULE[ModuleFuelTanks] { @type = LifeSupportAll TANK { name = WasteWater amount = 0 maxAmount = 1.232 @maxamount *= #$/CrewCapacity$ @maxamount *= 3 @maxAmount *= #$/mass$ fillable = true } } } @PART[*]:HAS[@MODULE[ModuleFuelTanks],#CrewCapacity[>0],!Resource[WasteWater],@TANK[WasteWater],!MODULE[ModuleFuelTanks]/TANK[WasteWater]/maxAmount[>0]]:NEEDS[TacLifeSupport,modularFuelTanks|RealFuels,!RealismOverhaul]:FOR[zzz_GD_TACLSMFTRF_7] { @MODULE[ModuleFuelTanks] { @type = LifeSupportAll @TANK[WasteWater] { @amount = 0 @maxAmount = 1.232 @maxamount *= #$/CrewCapacity$ @maxamount *= 3 @maxAmount *= #$/mass$ @fillable = true } } } @PART[*]:HAS[@MODULE[ModuleFuelTanks],#CrewCapacity[>0],@Resource[WasteWater],@TANK[WasteWater]]:NEEDS[TacLifeSupport,modularFuelTanks|RealFuels,!RealismOverhaul]:FOR[zzz_GD_TACLSMFTRF_7] { @MODULE[ModuleFuelTanks] { @type = LifeSupportAll TANK { name = WasteWater amount = 0 maxAmount = #$/RESOURCE[WasteWater]/maxAmount$ @maxAmount *= #$/mass$ fillable = true } @volume += #$/TANK[WasteWater]/maxAmount$ } } @PART[*]:HAS[@MODULE[ModuleFuelTanks],#CrewCapacity[>0],@TANK[WasteWater]]:NEEDS[TacLifeSupport,modularFuelTanks|RealFuels,!RealismOverhaul]:AFTER[zzz_GD_TACLSMFTRF_7] { @MODULE[ModuleFuelTanks] { @type = LifeSupportAll @volume += #$/TANK[WasteWater]/maxAmount$ } } @PART[*]:HAS[@MODULE[ModuleFuelTanks],#CrewCapacity[>0],@Resource[CarbonDioxide],!TANK[CarbonDioxide]]:NEEDS[TacLifeSupport,modularFuelTanks|RealFuels,!RealismOverhaul]:FOR[zzz_GD_TACLSMFTRF_8] { @MODULE[ModuleFuelTanks] { @type = LifeSupportAll TANK { name = CarbonDioxide amount = 0 maxAmount = #$/RESOURCE[CarbonDioxide]/maxAmount$ @maxAmount *= #$/mass$ utilization = 200 note = (pressurized) fillable = true } } !RESOURCE[CarbonDioxide] {} } @PART[*]:HAS[@MODULE[ModuleFuelTanks],#CrewCapacity[>0],!Resource[CarbonDioxide],!TANK[CarbonDioxide]]:NEEDS[TacLifeSupport,modularFuelTanks|RealFuels,!RealismOverhaul]:FOR[zzz_GD_TACLSMFTRF_8] { @MODULE[ModuleFuelTanks] { @type = LifeSupportAll TANK { name = CarbonDioxide amount = 0 maxAmount = 127.884 @maxamount *= #$/CrewCapacity$ @maxamount *= 3 @maxAmount *= #$/mass$ utilization = 200 note = (pressurized) fillable = true } } } @PART[*]:HAS[@MODULE[ModuleFuelTanks],#CrewCapacity[>0],!Resource[CarbonDioxide],@TANK[CarbonDioxide],!MODULE[ModuleFuelTanks]/TANK[CarbonDioxide]/maxAmount[>0]]:NEEDS[TacLifeSupport,modularFuelTanks|RealFuels,!RealismOverhaul]:FOR[zzz_GD_TACLSMFTRF_8] { @MODULE[ModuleFuelTanks] { @type = LifeSupportAll @TANK[CarbonDioxide] { @amount = 0 @maxAmount = 127.884 @maxamount *= #$/CrewCapacity$ @maxamount *= 3 @maxAmount *= #$/mass$ @fillable = true } } } @PART[*]:HAS[@MODULE[ModuleFuelTanks],#CrewCapacity[>0],@Resource[CarbonDioxide],@TANK[CarbonDioxide]]:NEEDS[TacLifeSupport,modularFuelTanks|RealFuels,!RealismOverhaul]:FOR[zzz_GD_TACLSMFTRF_8] { @MODULE[ModuleFuelTanks] { @type = LifeSupportAll TANK { name = CarbonDioxide amount = 0 maxAmount = #$/RESOURCE[CarbonDioxide]/maxAmount$ @maxAmount *= #$/mass$ utilization = 200 note = (pressurized) fillable = true } } !RESOURCE[CarbonDioxide] {} } @PART[*]:HAS[@MODULE[ModuleFuelTanks],#CrewCapacity[>0],@TANK[CarbonDioxide]]:NEEDS[TacLifeSupport,modularFuelTanks|RealFuels,!RealismOverhaul]:AFTER[zzz_GD_TACLSMFTRF_8] { @MODULE[ModuleFuelTanks] { @type = LifeSupportAll @volume += #$/TANK[CarbonDioxide]/maxAmount$ } } @PART[*]:HAS[@MODULE[ModuleFuelTanks],#CrewCapacity[>0],@Resource[ReservePower],!TANK[ReservePower]]:NEEDS[TacLifeSupport,modularFuelTanks|RealFuels,!RealismOverhaul]:FOR[zzz_GD_TACLSMFTRF_9] { @MODULE[ModuleFuelTanks] { @type = LifeSupportAll TANK { name = ReservePower amount = #$/RESOURCE[ReservePower]/maxAmount$ maxAmount = #$/RESOURCE[ReservePower]/maxAmount$ @maxAmount *= #$/mass$ utilization = 1000 fillable = true } } !RESOURCE[ReservePower] {} } @PART[*]:HAS[@MODULE[ModuleFuelTanks],#CrewCapacity[>0],!Resource[ReservePower],!TANK[ReservePower]]:NEEDS[TacLifeSupport,modularFuelTanks|RealFuels,!RealismOverhaul]:FOR[zzz_GD_TACLSMFTRF_9] { @MODULE[ModuleFuelTanks] { @type = LifeSupportAll TANK { name = ReservePower amount = 80 maxAmount = #$amount$ @maxAmount *= #$/mass$ utilization = 1000 fillable = true } } } @PART[*]:HAS[@MODULE[ModuleFuelTanks],#CrewCapacity[>0],!Resource[ReservePower],@TANK[ReservePower],!MODULE[ModuleFuelTanks]/TANK[ReservePower]/maxAmount[>0]]:NEEDS[TacLifeSupport,modularFuelTanks|RealFuels,!RealismOverhaul]:FOR[zzz_GD_TACLSMFTRF_9] { @MODULE[ModuleFuelTanks] { @type = LifeSupportAll @TANK[ReservePower] { @amount = 80 @maxAmount = #$amount$ @maxAmount *= #$/mass$ @utilization = 1000 @fillable = true } } } @PART[*]:HAS[@MODULE[ModuleFuelTanks],#CrewCapacity[>0],@Resource[ReservePower],@TANK[ReservePower]]:NEEDS[TacLifeSupport,modularFuelTanks|RealFuels,!RealismOverhaul]:FOR[zzz_GD_TACLSMFTRF_9] { @MODULE[ModuleFuelTanks] { @type = LifeSupportAll @TANK[ReservePower] { @amount = #$/RESOURCE[ReservePower]/maxAmount$ @maxAmount = #$/RESOURCE[ReservePower]/maxAmount$ @maxAmount *= #$/mass$ @utilization = 1000 @fillable = true } } !RESOURCE[ReservePower] {} } @PART[*]:HAS[@MODULE[ModuleFuelTanks],#CrewCapacity[>0],@TANK[ReservePower]]:NEEDS[TacLifeSupport,modularFuelTanks|RealFuels,!RealismOverhaul]:AFTER[zzz_GD_TACLSMFTRF_9] { @MODULE[ModuleFuelTanks] { @type = LifeSupportAll @volume += #$/TANK[ReservePower]/maxAmount$ } } Edit: one more change ... Edited August 3, 2017 by Gordon Dry Quote Link to comment Share on other sites More sharing options...
KerbMav Posted August 3, 2017 Share Posted August 3, 2017 (edited) 6 hours ago, blowfish said: All values are processed before nodes. Nothing MM can do about this, it has to do with the way KSP keeps track of things. You'd need to make them separate patches. Oh ... *learning intensifies* 8 hours ago, Gordon Dry said: Perhaps you don't need double HAS, when it's in PART you don't need it in MODULE anymore? Spoiler @PART[*]:HAS[@MODULE[*]:HAS[#experimentID[atmosphereAnalysis|temperatureScan|gravityScan|barometerScan|seismicScan|scopeScan]]] { @MODULE[*]:HAS[#experimentID[atmosphereAnalysis|temperatureScan|gravityScan|barometerScan|seismicScan|scopeScan]] { @xmitDataScalar = 1.0 } } Intention is to change xmitDataScalar for certain experiments wherever they are hiding. "Find every part that has a MODULE with one of these IDs" I am pretty sure it has to be this way - it worked when I targeted specific parts, but some mods reuse the experiments in their own MODULEs, so I had to include those cases somehow. Edited August 3, 2017 by KerbMav Quote Link to comment Share on other sites More sharing options...
KerbMav Posted August 3, 2017 Share Posted August 3, 2017 (edited) @Gordon Dry You have @PART[*]:HAS[@MODULE[ModuleFuelTanks],#CrewCapacity[>0],@TANK[ReservePower]]:NEEDS[TacLifeSupport,modularFuelTanks|RealFuels,!RealismOverhaul]:AFTER[zzz_GD_TACLSMFTRF_9] { @MODULE[ModuleFuelTanks] { @type = LifeSupportAll @volume += #$/TANK[ReservePower]/maxAmount$ } } which makes it look for a part that has PART[*] { CrewCapacity = x>0 MODULE[ModuleFuelTanks] {} TANK[ReservePower] {} } but what you seem to want it to look for is (if I read this correctly) PART[*] { CrewCapacity = x>0 MODULE[ModuleFuelTanks] { TANK[ReservePower] {} } } so you should have some HAS in it somewhere? @PART[*]:HAS[@MODULE[ModuleFuelTanks]:HAS[@TANK[ReservePower]],#CrewCapacity[>0],@TANK[ReservePower]]:NEEDS[TacLifeSupport,modularFuelTanks|RealFuels,!RealismOverhaul]:AFTER[zzz_GD_TACLSMFTRF_9] { @MODULE[ModuleFuelTanks]:HAS[#type[LifeSupportAll]] { // moved this line up into HAS @type = LifeSupportAll @volume += #$/TANK[ReservePower]/maxAmount$ } } Not to sure about what I did to the @PART part, please check before testing! Edited August 3, 2017 by KerbMav Quote Link to comment Share on other sites More sharing options...
Gordon Dry Posted August 3, 2017 Share Posted August 3, 2017 (edited) I switched from ModuleFuelTanks type = LifeSupportAll to type = ServiceModule I did that because the crewed parts are no "LifeSupport-Containers" the TAC-LS resources are already in ElectricCharge is already in (which I wanted to include whatsoever) I only have to add ReservePower (when AmpYear is present) other resources like RCS propellant can be preserved I'm proceeding, but still got one type of line which creates errors, but only in the lines that have :AFTER at the end. This is the actual patch: @TANK_DEFINITION[ServiceModule]:HAS[!TANK[ReservePower]]:NEEDS[TacLifeSupport,AmpYear]:NEEDS[modularFuelTanks|RealFuels]:BEFORE[ZZZZ_GD_TACLSMFTRF_0] { TANK { name = ReservePower mass = 0.00289 utilization = 1000 fillable = True amount = 0.0 maxAmount = 0.0 note = (pressurized) } } @PART[*]:HAS[@MODULE[ModuleFuelTanks],#CrewCapacity[>0]]:NEEDS[TacLifeSupport]:NEEDS[modularFuelTanks|RealFuels]:FOR[ZZZZ_GD_TACLSMFTRF_0] { !MODULE[ModuleFuelTanks]:HAS[#type[LifeSupportAll]] { } MODULE:HAS[~type[ServiceModule]] { name = ModuleFuelTanks type = ServiceModule basemass = -1 volume = 0 } } @PART[*]:HAS[@MODULE[ModuleFuelTanks],#CrewCapacity[>0],!Resource[ElectricCharge]]:NEEDS[TacLifeSupport]:NEEDS[modularFuelTanks|RealFuels]:BEFORE[ZZZZ_GD_TACLSMFTRF_1] { @MODULE[ModuleFuelTanks]:HAS[#type[ServiceModule]] { @TANK[ElectricCharge] { @amount = 100 @amount *= #$/CrewCapacity$ @amount *= #$/mass$ @amount += 200 @maxAmount = #$amount$ @utilization = 1000 @fillable = true } } } @PART[*]:HAS[@MODULE[ModuleFuelTanks],#CrewCapacity[>0],@Resource[ElectricCharge]]:NEEDS[TacLifeSupport]:NEEDS[modularFuelTanks|RealFuels]:FOR[ZZZZ_GD_TACLSMFTRF_1] { @MODULE[ModuleFuelTanks]:HAS[#type[ServiceModule]] { @TANK[ElectricCharge] { @amount = #$/RESOURCE[ElectricCharge]/maxAmount$ @amount *= #$/mass$ @maxAmount = #$amount$ @utilization = 1000 @fillable = true } } } @PART[*]:HAS[@MODULE[ModuleFuelTanks],#CrewCapacity[>0],@Resource[ElectricCharge]]:NEEDS[TacLifeSupport]:NEEDS[modularFuelTanks|RealFuels]:AFTER[ZZZZ_GD_TACLSMFTRF_1] { !RESOURCE[ElectricCharge] {} @MODULE[ModuleFuelTanks]:HAS[#type[ServiceModule] { @volume += #$/TANK[ElectricCharge]/maxAmount$ } } @PART[*]:HAS[@MODULE[ModuleFuelTanks],#CrewCapacity[>0],!Resource[Food]]:NEEDS[TacLifeSupport]:NEEDS[modularFuelTanks|RealFuels]:BEFORE[ZZZZ_GD_TACLSMFTRF_2] { @MODULE[ModuleFuelTanks]:HAS[#type[ServiceModule]] { @TANK[Food] { @amount = 1.46267 @amount *= #$/CrewCapacity$ @amount *= 3 @amount *= #$/mass$ @maxAmount = #$amount$ @fillable = true } } } @PART[*]:HAS[@MODULE[ModuleFuelTanks],#CrewCapacity[>0],@Resource[Food]]:NEEDS[TacLifeSupport]:NEEDS[modularFuelTanks|RealFuels]:FOR[ZZZZ_GD_TACLSMFTRF_2] { @MODULE[ModuleFuelTanks]:HAS[#type[ServiceModule]] { @TANK[Food] { @amount = #$/RESOURCE[Food]/maxAmount$ @amount *= #$/mass$ @maxAmount = #$amount$ @fillable = true } } } @PART[*]:HAS[@MODULE[ModuleFuelTanks],#CrewCapacity[>0],@RESOURCE[Food]]:NEEDS[TacLifeSupport]:NEEDS[modularFuelTanks|RealFuels]:AFTER[ZZZZ_GD_TACLSMFTRF_2] { !RESOURCE[Food] {} @MODULE[ModuleFuelTanks]:HAS[#type[ServiceModule]] { @volume += #$/TANK[Food]/maxAmount$ } } @PART[*]:HAS[@MODULE[ModuleFuelTanks],#CrewCapacity[>0],!Resource[Water]]:NEEDS[TacLifeSupport]:NEEDS[modularFuelTanks|RealFuels]:BEFORE[ZZZZ_GD_TACLSMFTRF_3] { @MODULE[ModuleFuelTanks]:HAS[#type[ServiceModule]] { @TANK[Water] { @amount = 0.96667 @amount *= #$/CrewCapacity$ @amount *= 3 @amount *= #$/mass$ @maxAmount = #$amount$ @fillable = true } } } @PART[*]:HAS[@MODULE[ModuleFuelTanks],#CrewCapacity[>0],@Resource[Water]]:NEEDS[TacLifeSupport]:NEEDS[modularFuelTanks|RealFuels]:FOR[ZZZZ_GD_TACLSMFTRF_3] { @MODULE[ModuleFuelTanks]:HAS[#type[ServiceModule]] { @TANK[Water] { @amount = #$/RESOURCE[Water]/maxAmount$ @amount *= #$/mass$ @maxAmount = #$amount$ @fillable = true } } } @PART[*]:HAS[@MODULE[ModuleFuelTanks],#CrewCapacity[>0],@RESOURCE[Water]]:NEEDS[TacLifeSupport]:NEEDS[modularFuelTanks|RealFuels]:AFTER[ZZZZ_GD_TACLSMFTRF_3] { !RESOURCE[Water] {} @MODULE[ModuleFuelTanks]:HAS[#type[ServiceModule]] { @volume += #$/TANK[Water]/maxAmount$ } } @PART[*]:HAS[@MODULE[ModuleFuelTanks],#CrewCapacity[>0],!Resource[Oxygen]]:NEEDS[TacLifeSupport]:NEEDS[modularFuelTanks|RealFuels]:BEFORE[ZZZZ_GD_TACLSMFTRF_4] { @MODULE[ModuleFuelTanks]:HAS[#type[ServiceModule]] { @TANK[Oxygen] { @amount = 148.05067 @amount *= #$/CrewCapacity$ @amount *= 3 @amount *= #$/mass$ @maxAmount = #$amount$ @utilization = 221.1347 @note = (pressurized) @fillable = true } } } @PART[*]:HAS[@MODULE[ModuleFuelTanks],#CrewCapacity[>0],@Resource[Oxygen]]:NEEDS[TacLifeSupport]:NEEDS[modularFuelTanks|RealFuels]:FOR[ZZZZ_GD_TACLSMFTRF_4] { @MODULE[ModuleFuelTanks]:HAS[#type[ServiceModule]] { @TANK[Oxygen] { @amount = #$/RESOURCE[Oxygen]/maxAmount$ @amount *= #$/mass$ @maxAmount = #$amount$ @utilization = 221.1347 @note = (pressurized) @fillable = true } } } @PART[*]:HAS[@MODULE[ModuleFuelTanks],#CrewCapacity[>0],@RESOURCE[Oxygen]]:NEEDS[TacLifeSupport]:NEEDS[modularFuelTanks|RealFuels]:AFTER[ZZZZ_GD_TACLSMFTRF_4] { !RESOURCE[Oxygen] {} @MODULE[ModuleFuelTanks]:HAS[#type[ServiceModule]] { @volume += #$/TANK[Oxygen]/maxAmount$ } } @PART[*]:HAS[@MODULE[ModuleFuelTanks],#CrewCapacity[>0],!Resource[Waste]]:NEEDS[TacLifeSupport]:NEEDS[modularFuelTanks|RealFuels]:BEFORE[ZZZZ_GD_TACLSMFTRF_5] { @MODULE[ModuleFuelTanks]:HAS[#type[ServiceModule]] { @TANK[Waste] { @amount = 0 @maxAmount = 0.13333 @maxamount *= #$/CrewCapacity$ @maxamount *= 3 @maxAmount *= #$/mass$ @fillable = false } } } @PART[*]:HAS[@MODULE[ModuleFuelTanks],#CrewCapacity[>0],@Resource[Waste]]:NEEDS[TacLifeSupport]:NEEDS[modularFuelTanks|RealFuels]:FOR[ZZZZ_GD_TACLSMFTRF_5] { @MODULE[ModuleFuelTanks]:HAS[#type[ServiceModule]] { @TANK[Waste] { @amount = #$/RESOURCE[Waste]/maxAmount$ @amount *= #$/mass$ @maxAmount = #$amount$ @fillable = false } } } @PART[*]:HAS[@MODULE[ModuleFuelTanks],#CrewCapacity[>0],@RESOURCE[Waste]]:NEEDS[TacLifeSupport]:NEEDS[modularFuelTanks|RealFuels]:AFTER[ZZZZ_GD_TACLSMFTRF_5] { !RESOURCE[Waste] {} @MODULE[ModuleFuelTanks]:HAS[#type[ServiceModule]] { @volume += #$/TANK[Waste]/maxAmount$ } } @PART[*]:HAS[@MODULE[ModuleFuelTanks],#CrewCapacity[>0],!Resource[WasteWater]]:NEEDS[TacLifeSupport]:NEEDS[modularFuelTanks|RealFuels]:BEFORE[ZZZZ_GD_TACLSMFTRF_6] { @MODULE[ModuleFuelTanks]:HAS[#type[ServiceModule]] { @TANK[WasteWater] { @amount = 0 @maxAmount = 1.232 @maxamount *= #$/CrewCapacity$ @maxamount *= 3 @maxAmount *= #$/mass$ @fillable = false } } } @PART[*]:HAS[@MODULE[ModuleFuelTanks],#CrewCapacity[>0],@Resource[WasteWater]]:NEEDS[TacLifeSupport]:NEEDS[modularFuelTanks|RealFuels]:FOR[ZZZZ_GD_TACLSMFTRF_6] { @MODULE[ModuleFuelTanks]:HAS[#type[ServiceModule]] { @TANK[WasteWater] { @amount = #$/RESOURCE[WasteWater]/maxAmount$ @amount *= #$/mass$ @maxAmount = #$amount$ @fillable = false } } } @PART[*]:HAS[@MODULE[ModuleFuelTanks],#CrewCapacity[>0],@RESOURCE[WasteWater]]:NEEDS[TacLifeSupport]:NEEDS[modularFuelTanks|RealFuels]:AFTER[ZZZZ_GD_TACLSMFTRF_6] { !RESOURCE[WasteWater] {} @MODULE[ModuleFuelTanks]:HAS[#type[ServiceModule]] { @volume += #$/TANK[WasteWater]/maxAmount$ } } @PART[*]:HAS[@MODULE[ModuleFuelTanks],#CrewCapacity[>0],!Resource[CarbonDioxide]]:NEEDS[TacLifeSupport]:NEEDS[modularFuelTanks|RealFuels]:BEFORE[ZZZZ_GD_TACLSMFTRF_7] { @MODULE[ModuleFuelTanks]:HAS[#type[ServiceModule]] { @TANK[CarbonDioxide] { @amount = 0 @maxAmount = 127.884 @maxamount *= #$/CrewCapacity$ @maxamount *= 3 @maxAmount *= #$/mass$ @utilization = 476.2173 @note = (pressurized) @fillable = false } } } @PART[*]:HAS[@MODULE[ModuleFuelTanks],#CrewCapacity[>0],@Resource[CarbonDioxide]]:NEEDS[TacLifeSupport]:NEEDS[modularFuelTanks|RealFuels]:FOR[ZZZZ_GD_TACLSMFTRF_7] { @MODULE[ModuleFuelTanks]:HAS[#type[ServiceModule]] { @TANK[CarbonDioxide] { @amount = 0 @maxAmount = #$/RESOURCE[CarbonDioxide]/maxAmount$ @maxAmount *= #$/mass$ @utilization = 476.2173 @note = (pressurized) @fillable = false } } } @PART[*]:HAS[@MODULE[ModuleFuelTanks],#CrewCapacity[>0],@RESOURCE[CarbonDioxide]]:NEEDS[TacLifeSupport]:NEEDS[modularFuelTanks|RealFuels]:AFTER[ZZZZ_GD_TACLSMFTRF_7] { !RESOURCE[CarbonDioxide] {} @MODULE[ModuleFuelTanks]:HAS[#type[ServiceModule]] { @volume += #$/TANK[CarbonDioxide]/maxAmount$ } } @PART[*]:HAS[@MODULE[ModuleFuelTanks],#CrewCapacity[>0],@Resource[ReservePower]]:NEEDS[TacLifeSupport]:NEEDS[modularFuelTanks|RealFuels]:BEFORE[ZZZZ_GD_TACLSMFTRF_8] { @MODULE[ModuleFuelTanks]:HAS[#type[ServiceModule]] { TANK { name = ReservePower amount = #$/RESOURCE[ReservePower]/maxAmount$ maxAmount = #$/RESOURCE[ReservePower]/maxAmount$ @maxAmount *= #$/mass$ utilization = 1000 fillable = true } } } @PART[*]:HAS[@MODULE[ModuleFuelTanks],#CrewCapacity[>0],!Resource[ReservePower]]:NEEDS[TacLifeSupport,AmpYear]:NEEDS[modularFuelTanks|RealFuels]:FOR[ZZZZ_GD_TACLSMFTRF_8] { @MODULE[ModuleFuelTanks]:HAS[#type[ServiceModule]] { TANK { name = ReservePower amount = 80 maxAmount = #$amount$ @maxAmount *= #$/mass$ utilization = 1000 fillable = true } } } @PART[*]:HAS[@MODULE[ModuleFuelTanks],#CrewCapacity[>0],@RESOURCE[ReservePower]]:NEEDS[TacLifeSupport,AmpYear]:NEEDS[modularFuelTanks|RealFuels]:AFTER[ZZZZ_GD_TACLSMFTRF_8] { !RESOURCE[ReservePower] {} @MODULE[ModuleFuelTanks]:HAS[#type[ServiceModule]] { @volume += #$/TANK[ReservePower]/maxAmount$ } } It creates this kind of errors: [ModuleManager] :AFTER[ZZZZ_GD_TACLSMFTRF_2] pass (Filename: C:/buildslave/unity/build/artifacts/generated/common/runtime/UnityEngineDebugBindings.gen.cpp Line: 42) [ModuleManager] Applying node ThunderAerospace/TacLifeSupportMFT/MM_AddResourcesMFT_filled/@PART[*]:HAS[@MODULE[ModuleFuelTanks],#CrewCapacity[>0],@RESOURCE[Food]]:NEEDS[modularFuelTanks|RealFuels]:AFTER[ZZZZ_GD_TACLSMFTRF_2] to Bluedog_DB/Parts/Apollo/bluedog_Apollo_Block2_Capsule/bluedog_Apollo_Block2_Capsule (Filename: C:/buildslave/unity/build/artifacts/generated/common/runtime/UnityEngineDebugBindings.gen.cpp Line: 42) [ModuleManager] Error - Cannot parse variable search when editing key volume = #$/TANK[Food]/maxAmount$ (Filename: C:/buildslave/unity/build/artifacts/generated/common/runtime/UnityEngineDebugBindings.gen.cpp Line: 42) [ModuleManager] Applying node ThunderAerospace/TacLifeSupportMFT/MM_AddResourcesMFT_filled/@PART[*]:HAS[@MODULE[ModuleFuelTanks],#CrewCapacity[>0],@RESOURCE[Food]]:NEEDS[modularFuelTanks|RealFuels]:AFTER[ZZZZ_GD_TACLSMFTRF_2] to Bluedog_DB/Parts/Apollo/bluedog_Apollo_Block3_Capsule/bluedog_Apollo_Block3_Capsule (Filename: C:/buildslave/unity/build/artifacts/generated/common/runtime/UnityEngineDebugBindings.gen.cpp Line: 42) [ModuleManager] Error - Cannot parse variable search when editing key volume = #$/TANK[Food]/maxAmount$ (Filename: C:/buildslave/unity/build/artifacts/generated/common/runtime/UnityEngineDebugBindings.gen.cpp Line: 42) [ModuleManager] Applying node ThunderAerospace/TacLifeSupportMFT/MM_AddResourcesMFT_filled/@PART[*]:HAS[@MODULE[ModuleFuelTanks],#CrewCapacity[>0],@RESOURCE[Food]]:NEEDS[modularFuelTanks|RealFuels]:AFTER[ZZZZ_GD_TACLSMFTRF_2] to Bluedog_DB/Parts/Apollo/bluedog_LEM_Ascent_Cockpit/bluedog_LEM_Ascent_Cockpit (Filename: C:/buildslave/unity/build/artifacts/generated/common/runtime/UnityEngineDebugBindings.gen.cpp Line: 42) [ModuleManager] Error - Cannot parse variable search when editing key volume = #$/TANK[Food]/maxAmount$ (Filename: C:/buildslave/unity/build/artifacts/generated/common/runtime/UnityEngineDebugBindings.gen.cpp Line: 42) [ModuleManager] Applying node ThunderAerospace/TacLifeSupportMFT/MM_AddResourcesMFT_filled/@PART[*]:HAS[@MODULE[ModuleFuelTanks],#CrewCapacity[>0],@RESOURCE[Food]]:NEEDS[modularFuelTanks|RealFuels]:AFTER[ZZZZ_GD_TACLSMFTRF_2] to Bluedog_DB/Parts/Gemini/_Gemini_Crew_A/bluedog_Gemini_Crew_A (Filename: C:/buildslave/unity/build/artifacts/generated/common/runtime/UnityEngineDebugBindings.gen.cpp Line: 42) [ModuleManager] Error - Cannot parse variable search when editing key volume = #$/TANK[Food]/maxAmount$ (Filename: C:/buildslave/unity/build/artifacts/generated/common/runtime/UnityEngineDebugBindings.gen.cpp Line: 42) [ModuleManager] Applying node ThunderAerospace/TacLifeSupportMFT/MM_AddResourcesMFT_filled/@PART[*]:HAS[@MODULE[ModuleFuelTanks],#CrewCapacity[>0],@RESOURCE[Food]]:NEEDS[modularFuelTanks|RealFuels]:AFTER[ZZZZ_GD_TACLSMFTRF_2] to Bluedog_DB/Parts/Gemini/_Gemini_Crew_B/bluedog_Gemini_Crew_B (Filename: C:/buildslave/unity/build/artifacts/generated/common/runtime/UnityEngineDebugBindings.gen.cpp Line: 42) [ModuleManager] Error - Cannot parse variable search when editing key volume = #$/TANK[Food]/maxAmount$ (Filename: C:/buildslave/unity/build/artifacts/generated/common/runtime/UnityEngineDebugBindings.gen.cpp Line: 42) [ModuleManager] Applying node ThunderAerospace/TacLifeSupportMFT/MM_AddResourcesMFT_filled/@PART[*]:HAS[@MODULE[ModuleFuelTanks],#CrewCapacity[>0],@RESOURCE[Food]]:NEEDS[modularFuelTanks|RealFuels]:AFTER[ZZZZ_GD_TACLSMFTRF_2] to Bluedog_DB/Parts/Mercury/bluedog_mercuryPod/bluedog_mercuryPod (Filename: C:/buildslave/unity/build/artifacts/generated/common/runtime/UnityEngineDebugBindings.gen.cpp Line: 42) [ModuleManager] Error - Cannot parse variable search when editing key volume = #$/TANK[Food]/maxAmount$ (Filename: C:/buildslave/unity/build/artifacts/generated/common/runtime/UnityEngineDebugBindings.gen.cpp Line: 42) [ModuleManager] Applying node ThunderAerospace/TacLifeSupportMFT/MM_AddResourcesMFT_filled/@PART[*]:HAS[@MODULE[ModuleFuelTanks],#CrewCapacity[>0],@RESOURCE[Food]]:NEEDS[modularFuelTanks|RealFuels]:AFTER[ZZZZ_GD_TACLSMFTRF_2] to OPT/Parts/main/i_4m_cockpit_isp/i_4m_cockpit_isp (Filename: C:/buildslave/unity/build/artifacts/generated/common/runtime/UnityEngineDebugBindings.gen.cpp Line: 42) [ModuleManager] Error - Cannot parse variable search when editing key volume = #$/TANK[Food]/maxAmount$ (Filename: C:/buildslave/unity/build/artifacts/generated/common/runtime/UnityEngineDebugBindings.gen.cpp Line: 42) [ModuleManager] Applying node ThunderAerospace/TacLifeSupportMFT/MM_AddResourcesMFT_filled/@PART[*]:HAS[@MODULE[ModuleFuelTanks],#CrewCapacity[>0],@RESOURCE[Food]]:NEEDS[modularFuelTanks|RealFuels]:AFTER[ZZZZ_GD_TACLSMFTRF_2] to OPT/Parts/main/i_5m_cockpit/phoenix_cockpit (Filename: C:/buildslave/unity/build/artifacts/generated/common/runtime/UnityEngineDebugBindings.gen.cpp Line: 42) [ModuleManager] Error - Cannot parse variable search when editing key volume = #$/TANK[Food]/maxAmount$ (Filename: C:/buildslave/unity/build/artifacts/generated/common/runtime/UnityEngineDebugBindings.gen.cpp Line: 42) [ModuleManager] Applying node ThunderAerospace/TacLifeSupportMFT/MM_AddResourcesMFT_filled/@PART[*]:HAS[@MODULE[ModuleFuelTanks],#CrewCapacity[>0],@RESOURCE[Food]]:NEEDS[modularFuelTanks|RealFuels]:AFTER[ZZZZ_GD_TACLSMFTRF_2] to OPT/Parts/main/i_5m_cockpit_ils/ils_cockpitv2 (Filename: C:/buildslave/unity/build/artifacts/generated/common/runtime/UnityEngineDebugBindings.gen.cpp Line: 42) [ModuleManager] Error - Cannot parse variable search when editing key volume = #$/TANK[Food]/maxAmount$ (Filename: C:/buildslave/unity/build/artifacts/generated/common/runtime/UnityEngineDebugBindings.gen.cpp Line: 42) [ModuleManager] Applying node ThunderAerospace/TacLifeSupportMFT/MM_AddResourcesMFT_filled/@PART[*]:HAS[@MODULE[ModuleFuelTanks],#CrewCapacity[>0],@RESOURCE[Food]]:NEEDS[modularFuelTanks|RealFuels]:AFTER[ZZZZ_GD_TACLSMFTRF_2] to OPT/Parts/main/j_6m_cockpit/j_6m_cockpit (Filename: C:/buildslave/unity/build/artifacts/generated/common/runtime/UnityEngineDebugBindings.gen.cpp Line: 42) [ModuleManager] Error - Cannot parse variable search when editing key volume = #$/TANK[Food]/maxAmount$ (Filename: C:/buildslave/unity/build/artifacts/generated/common/runtime/UnityEngineDebugBindings.gen.cpp Line: 42) [ModuleManager] Applying node ThunderAerospace/TacLifeSupportMFT/MM_AddResourcesMFT_filled/@PART[*]:HAS[@MODULE[ModuleFuelTanks],#CrewCapacity[>0],@RESOURCE[Food]]:NEEDS[modularFuelTanks|RealFuels]:AFTER[ZZZZ_GD_TACLSMFTRF_2] to OPT/Parts/main/j_7m_cockpit/j_cockpitv2 (Filename: C:/buildslave/unity/build/artifacts/generated/common/runtime/UnityEngineDebugBindings.gen.cpp Line: 42) [ModuleManager] Error - Cannot parse variable search when editing key volume = #$/TANK[Food]/maxAmount$ (Filename: C:/buildslave/unity/build/artifacts/generated/common/runtime/UnityEngineDebugBindings.gen.cpp Line: 42) [ModuleManager] Applying node ThunderAerospace/TacLifeSupportMFT/MM_AddResourcesMFT_filled/@PART[*]:HAS[@MODULE[ModuleFuelTanks],#CrewCapacity[>0],@RESOURCE[Food]]:NEEDS[modularFuelTanks|RealFuels]:AFTER[ZZZZ_GD_TACLSMFTRF_2] to OPT/Parts/main/j_7m_cockpit_qs/j_cockpit_qs (Filename: C:/buildslave/unity/build/artifacts/generated/common/runtime/UnityEngineDebugBindings.gen.cpp Line: 42) [ModuleManager] Error - Cannot parse variable search when editing key volume = #$/TANK[Food]/maxAmount$ (Filename: C:/buildslave/unity/build/artifacts/generated/common/runtime/UnityEngineDebugBindings.gen.cpp Line: 42) [ModuleManager] Applying node ThunderAerospace/TacLifeSupportMFT/MM_AddResourcesMFT_filled/@PART[*]:HAS[@MODULE[ModuleFuelTanks],#CrewCapacity[>0],@RESOURCE[Food]]:NEEDS[modularFuelTanks|RealFuels]:AFTER[ZZZZ_GD_TACLSMFTRF_2] to OPT/Parts/main/j_7m_cockpit_qs_noIntake/j_cockpit_qs_no_intake (Filename: C:/buildslave/unity/build/artifacts/generated/common/runtime/UnityEngineDebugBindings.gen.cpp Line: 42) [ModuleManager] Error - Cannot parse variable search when editing key volume = #$/TANK[Food]/maxAmount$ (Filename: C:/buildslave/unity/build/artifacts/generated/common/runtime/UnityEngineDebugBindings.gen.cpp Line: 42) [ModuleManager] Applying node ThunderAerospace/TacLifeSupportMFT/MM_AddResourcesMFT_filled/@PART[*]:HAS[@MODULE[ModuleFuelTanks],#CrewCapacity[>0],@RESOURCE[Food]]:NEEDS[modularFuelTanks|RealFuels]:AFTER[ZZZZ_GD_TACLSMFTRF_2] to OPT/Parts/main/k_10m_cockpit/k_10m_cockpit (Filename: C:/buildslave/unity/build/artifacts/generated/common/runtime/UnityEngineDebugBindings.gen.cpp Line: 42) [ModuleManager] Error - Cannot parse variable search when editing key volume = #$/TANK[Food]/maxAmount$ (Filename: C:/buildslave/unity/build/artifacts/generated/common/runtime/UnityEngineDebugBindings.gen.cpp Line: 42) etc. This is only the [Food] section, it also does this for Water, Oxygen, Waste, WasteWater, CarbonDioxide and also ReservePower, which I add as TANK when AmpYear is present. But it does not throw this error with ElectricCharge ... It's kinda Déjà-vu - again this type of line is the culprit: @volume += #$/TANK[Food]/maxAmount$ I'm rotating ... Edited August 3, 2017 by Gordon Dry Quote Link to comment Share on other sites More sharing options...
KerbMav Posted August 3, 2017 Share Posted August 3, 2017 1 hour ago, Gordon Dry said: It's kinda Déjà-vu - again this type of line is the culprit: @volume += #$/TANK[Food]/maxAmount$ I'm rotating ... No extra / as I remember? @volume += #$TANK[Food]/maxAmount$ Quote Link to comment Share on other sites More sharing options...
Gordon Dry Posted August 3, 2017 Share Posted August 3, 2017 (edited) I also tried that but testing various possibilities perhaps there is a combination where I have missed it ... It was especially because ElectricCharge was not the case... But perhaps I did not take the possibility into account that EC was properly patched into MFT/RF tanks and deleted as stock resource by other patches before. Edit: Well, for today I have no MM errors in it the first time, but that means nothing - last night I had several runs without errors but the patch still was for the bucket ... Edited August 3, 2017 by Gordon Dry Quote Link to comment Share on other sites More sharing options...
Gordon Dry Posted August 3, 2017 Share Posted August 3, 2017 (edited) I nearly got it. No MM errors and most crewable parts are well. Crewable parts without ModuleCommand are perfect as it seems... but then I see many got 0 (zero) volume in ModuleFuelTanks Crewable parts with ModuleCommand got still the stock resources ElectricCharge and ReservePower (AmpYear) left, dunno why. Some crewable parts with ModuleCommand got double TANK entries for the TAC-LS resources and ElectricCharge ... Hmpf. Here is the config: @TANK_DEFINITION[ServiceModule]:HAS[!TANK[ReservePower]]:NEEDS[TacLifeSupport,AmpYear,modularFuelTanks|RealFuels]:BEFORE[ZZZZ_GD_TACLSMFTRF_0] { TANK { name = ReservePower mass = 0.00289 utilization = 1000 fillable = True amount = 0.0 maxAmount = 0.0 note = (pressurized) } } @PART[*]:HAS[@MODULE[ModuleFuelTanks],#CrewCapacity[>0]]:NEEDS[TacLifeSupport,modularFuelTanks|RealFuels]:BEFORE[ZZZZ_GD_TACLSMFTRF_0] { !MODULE[ModuleFuelTanks]:HAS[#type[LifeSupportAll]] { } !RESOURCE[LiquidFuel] {} !RESOURCE[Oxidizer] {} } @PART[*]:HAS[!MODULE[ModuleFuelTanks],#CrewCapacity[>0]]:NEEDS[TacLifeSupport,modularFuelTanks|RealFuels]:FOR[ZZZZ_GD_TACLSMFTRF_0] { MODULE { name = ModuleFuelTanks type = ServiceModule basemass = -1 volume = 0 } } //@PART[*]:HAS[@MODULE[ModuleFuelTanks],#CrewCapacity[>0]]:NEEDS[TacLifeSupport,modularFuelTanks|RealFuels]:FOR[ZZZZ_GD_TACLSMFTRF_0] //{ // @MODULE[ModuleFuelTanks] // { // @type = ServiceModule // } //} @PART[*]:HAS[@MODULE[ModuleFuelTanks],#CrewCapacity[>0],!Resource[ElectricCharge]]:NEEDS[TacLifeSupport,modularFuelTanks|RealFuels]:BEFORE[ZZZZ_GD_TACLSMFTRF_1] { @MODULE[ModuleFuelTanks]:HAS[@TANK[ElectricCharge]] { %TANK[ElectricCharge] { %amount = 100 @amount *= #$/CrewCapacity$ @amount *= #$/mass$ @amount += 200 %maxAmount = #$amount$ %utilization = 1000 %fillable = true } } } @PART[*]:HAS[@MODULE[ModuleFuelTanks],#CrewCapacity[>0],!Resource[ElectricCharge]]:NEEDS[TacLifeSupport,modularFuelTanks|RealFuels]:FOR[ZZZZ_GD_TACLSMFTRF_1] { @MODULE[ModuleFuelTanks]:HAS[!TANK[ElectricCharge]] { TANK { name = ElectricCharge amount = 100 @amount *= #$/CrewCapacity$ @amount *= #$/mass$ @amount += 200 maxAmount = #$amount$ utilization = 1000 fillable = true } } } @PART[*]:HAS[@MODULE[ModuleFuelTanks],#CrewCapacity[>0],@Resource[ElectricCharge]]:NEEDS[TacLifeSupport,modularFuelTanks|RealFuels]:BEFORE[ZZZZ_GD_TACLSMFTRF_1] { @MODULE[ModuleFuelTanks]:HAS[@TANK[ElectricCharge]] { %TANK[ElectricCharge] { %amount = #$/RESOURCE[ElectricCharge]/maxAmount$ @amount *= #$/mass$ %maxAmount = #$amount$ %utilization = 1000 %fillable = true } } } @PART[*]:HAS[@MODULE[ModuleFuelTanks],#CrewCapacity[>0],@Resource[ElectricCharge]]:NEEDS[TacLifeSupport,modularFuelTanks|RealFuels]:FOR[ZZZZ_GD_TACLSMFTRF_1] { @MODULE[ModuleFuelTanks]:HAS[!TANK[ElectricCharge]] { TANK { name = ElectricCharge amount = #$/RESOURCE[ElectricCharge]/maxAmount$ @amount *= #$/mass$ maxAmount = #$amount$ utilization = 1000 fillable = true } } } @PART[*]:HAS[@MODULE[ModuleFuelTanks],#CrewCapacity[>0],@Resource[ElectricCharge]]:NEEDS[TacLifeSupport,modularFuelTanks|RealFuels]:FINAL { !RESOURCE[ElectricCharge] {} @MODULE[ModuleFuelTanks] { @volume += #$TANK[ElectricCharge]/maxAmount$ } } @PART[*]:HAS[@MODULE[ModuleFuelTanks],#CrewCapacity[>0],!Resource[Food]]:NEEDS[TacLifeSupport,modularFuelTanks|RealFuels]:BEFORE[ZZZZ_GD_TACLSMFTRF_2] { @MODULE[ModuleFuelTanks]:HAS[@TANK[Food]] { %TANK[Food] { %amount = 1.46267 @amount *= #$/CrewCapacity$ @amount *= 3 @amount *= #$/mass$ %maxAmount = #$amount$ %fillable = true } } } @PART[*]:HAS[@MODULE[ModuleFuelTanks],#CrewCapacity[>0],!Resource[Food]]:NEEDS[TacLifeSupport,modularFuelTanks|RealFuels]:FOR[ZZZZ_GD_TACLSMFTRF_2] { @MODULE[ModuleFuelTanks]:HAS[!TANK[Food]] { TANK { name = Food amount = 1.46267 @amount *= #$/CrewCapacity$ @amount *= 3 @amount *= #$/mass$ maxAmount = #$amount$ fillable = true } } } @PART[*]:HAS[@MODULE[ModuleFuelTanks],#CrewCapacity[>0],@Resource[Food]]:NEEDS[TacLifeSupport,modularFuelTanks|RealFuels]:BEFORE[ZZZZ_GD_TACLSMFTRF_2] { @MODULE[ModuleFuelTanks]:HAS[@TANK[Food]] { %TANK[Food] { %amount = #$/RESOURCE[Food]/maxAmount$ @amount *= #$/mass$ %maxAmount = #$amount$ %fillable = true } } } @PART[*]:HAS[@MODULE[ModuleFuelTanks],#CrewCapacity[>0],@Resource[Food]]:NEEDS[TacLifeSupport,modularFuelTanks|RealFuels]:FOR[ZZZZ_GD_TACLSMFTRF_2] { @MODULE[ModuleFuelTanks]:HAS[!TANK[Food]] { TANK { name = Food amount = #$/RESOURCE[Food]/maxAmount$ @amount *= #$/mass$ maxAmount = #$amount$ fillable = true } } } @PART[*]:HAS[@MODULE[ModuleFuelTanks],#CrewCapacity[>0],@RESOURCE[Food]]:NEEDS[TacLifeSupport,modularFuelTanks|RealFuels]:FINAL { !RESOURCE[Food] {} @MODULE[ModuleFuelTanks] { @volume += #$TANK[Food]/maxAmount$ } } @PART[*]:HAS[@MODULE[ModuleFuelTanks],#CrewCapacity[>0],!Resource[Water]]:NEEDS[TacLifeSupport,modularFuelTanks|RealFuels]:BEFORE[ZZZZ_GD_TACLSMFTRF_3] { @MODULE[ModuleFuelTanks]:HAS[@TANK[Water]] { %TANK[Water] { %amount = 0.96667 @amount *= #$/CrewCapacity$ @amount *= 3 @amount *= #$/mass$ %maxAmount = #$amount$ %fillable = true } } } @PART[*]:HAS[@MODULE[ModuleFuelTanks],#CrewCapacity[>0],!Resource[Water]]:NEEDS[TacLifeSupport,modularFuelTanks|RealFuels]:FOR[ZZZZ_GD_TACLSMFTRF_3] { @MODULE[ModuleFuelTanks]:HAS[!TANK[Water]] { TANK { name = Water amount = 0.96667 @amount *= #$/CrewCapacity$ @amount *= 3 @amount *= #$/mass$ maxAmount = #$amount$ fillable = true } } } @PART[*]:HAS[@MODULE[ModuleFuelTanks],#CrewCapacity[>0],@Resource[Water]]:NEEDS[TacLifeSupport,modularFuelTanks|RealFuels]:BEFORE[ZZZZ_GD_TACLSMFTRF_3] { @MODULE[ModuleFuelTanks]:HAS[@TANK[Water]] { %TANK[Water] { %amount = #$/RESOURCE[Water]/maxAmount$ @amount *= #$/mass$ %maxAmount = #$amount$ %fillable = true } } } @PART[*]:HAS[@MODULE[ModuleFuelTanks],#CrewCapacity[>0],@Resource[Water]]:NEEDS[TacLifeSupport,modularFuelTanks|RealFuels]:FOR[ZZZZ_GD_TACLSMFTRF_3] { @MODULE[ModuleFuelTanks]:HAS[!TANK[Water]] { TANK { name = Water amount = #$/RESOURCE[Water]/maxAmount$ @amount *= #$/mass$ maxAmount = #$amount$ fillable = true } } } @PART[*]:HAS[@MODULE[ModuleFuelTanks],#CrewCapacity[>0],@RESOURCE[Water]]:NEEDS[TacLifeSupport,modularFuelTanks|RealFuels]:FINAL { !RESOURCE[Water] {} @MODULE[ModuleFuelTanks] { @volume += #$TANK[Water]/maxAmount$ } } @PART[*]:HAS[@MODULE[ModuleFuelTanks],#CrewCapacity[>0],!Resource[Oxygen]]:NEEDS[TacLifeSupport,modularFuelTanks|RealFuels]:BEFORE[ZZZZ_GD_TACLSMFTRF_4] { @MODULE[ModuleFuelTanks]:HAS[@TANK[Oxygen]] { %TANK[Oxygen] { %amount = 148.05067 @amount *= #$/CrewCapacity$ @amount *= 3 @amount *= #$/mass$ %maxAmount = #$amount$ %utilization = 221.1347 %note = (pressurized) %fillable = true } } } @PART[*]:HAS[@MODULE[ModuleFuelTanks],#CrewCapacity[>0],!Resource[Oxygen]]:NEEDS[TacLifeSupport,modularFuelTanks|RealFuels]:FOR[ZZZZ_GD_TACLSMFTRF_4] { @MODULE[ModuleFuelTanks]:HAS[!TANK[Oxygen]] { TANK { name = Oxygen amount = 148.05067 @amount *= #$/CrewCapacity$ @amount *= 3 @amount *= #$/mass$ maxAmount = #$amount$ utilization = 221.1347 note = (pressurized) fillable = true } } } @PART[*]:HAS[@MODULE[ModuleFuelTanks],#CrewCapacity[>0],@Resource[Oxygen]]:NEEDS[TacLifeSupport,modularFuelTanks|RealFuels]:BEFORE[ZZZZ_GD_TACLSMFTRF_4] { @MODULE[ModuleFuelTanks]:HAS[@TANK[Oxygen]] { %TANK[Oxygen] { %amount = #$/RESOURCE[Oxygen]/maxAmount$ @amount *= #$/mass$ %maxAmount = #$amount$ %utilization = 221.1347 %note = (pressurized) %fillable = true } } } @PART[*]:HAS[@MODULE[ModuleFuelTanks],#CrewCapacity[>0],@Resource[Oxygen]]:NEEDS[TacLifeSupport,modularFuelTanks|RealFuels]:FOR[ZZZZ_GD_TACLSMFTRF_4] { @MODULE[ModuleFuelTanks]:HAS[!TANK[Oxygen]] { TANK { name = Oxygen amount = #$/RESOURCE[Oxygen]/maxAmount$ @amount *= #$/mass$ maxAmount = #$amount$ utilization = 221.1347 note = (pressurized) fillable = true } } } @PART[*]:HAS[@MODULE[ModuleFuelTanks],#CrewCapacity[>0],@RESOURCE[Oxygen]]:NEEDS[TacLifeSupport,modularFuelTanks|RealFuels]:FINAL { !RESOURCE[Oxygen] {} @MODULE[ModuleFuelTanks] { @volume += #$TANK[Oxygen]/maxAmount$ } } @PART[*]:HAS[@MODULE[ModuleFuelTanks],#CrewCapacity[>0],!Resource[Waste]]:NEEDS[TacLifeSupport,modularFuelTanks|RealFuels]:BEFORE[ZZZZ_GD_TACLSMFTRF_5] { @MODULE[ModuleFuelTanks]:HAS[@TANK[Waste]] { %TANK[Waste] { %amount = 0 %maxAmount = 0.13333 @maxamount *= #$/CrewCapacity$ @maxamount *= 3 @maxAmount *= #$/mass$ %fillable = false } } } @PART[*]:HAS[@MODULE[ModuleFuelTanks],#CrewCapacity[>0],!Resource[Waste]]:NEEDS[TacLifeSupport,modularFuelTanks|RealFuels]:FOR[ZZZZ_GD_TACLSMFTRF_5] { @MODULE[ModuleFuelTanks]:HAS[!TANK[Waste]] { TANK { name = Waste amount = 0 maxAmount = 0.13333 @maxamount *= #$/CrewCapacity$ @maxamount *= 3 @maxAmount *= #$/mass$ fillable = false } } } @PART[*]:HAS[@MODULE[ModuleFuelTanks],#CrewCapacity[>0],@Resource[Waste]]:NEEDS[TacLifeSupport,modularFuelTanks|RealFuels]:BEFORE[ZZZZ_GD_TACLSMFTRF_5] { @MODULE[ModuleFuelTanks]:HAS[@TANK[Waste]] { %TANK[Waste] { %amount = #$/RESOURCE[Waste]/maxAmount$ @amount *= #$/mass$ %maxAmount = #$amount$ %fillable = false } } } @PART[*]:HAS[@MODULE[ModuleFuelTanks],#CrewCapacity[>0],@Resource[Waste]]:NEEDS[TacLifeSupport,modularFuelTanks|RealFuels]:FOR[ZZZZ_GD_TACLSMFTRF_5] { @MODULE[ModuleFuelTanks]:HAS[!TANK[Waste]] { TANK { name = Waste amount = #$/RESOURCE[Waste]/maxAmount$ @amount *= #$/mass$ maxAmount = #$amount$ fillable = false } } } @PART[*]:HAS[@MODULE[ModuleFuelTanks],#CrewCapacity[>0],@RESOURCE[Waste]]:NEEDS[TacLifeSupport,modularFuelTanks|RealFuels]:FINAL { !RESOURCE[Waste] {} @MODULE[ModuleFuelTanks] { @volume += #$TANK[Waste]/maxAmount$ } } @PART[*]:HAS[@MODULE[ModuleFuelTanks],#CrewCapacity[>0],!Resource[WasteWater]]:NEEDS[TacLifeSupport,modularFuelTanks|RealFuels]:BEFORE[ZZZZ_GD_TACLSMFTRF_6] { @MODULE[ModuleFuelTanks]:HAS[@TANK[WasteWater]] { %TANK[WasteWater] { %amount = 0 %maxAmount = 1.232 @maxamount *= #$/CrewCapacity$ @maxamount *= 3 @maxAmount *= #$/mass$ %fillable = false } } } @PART[*]:HAS[@MODULE[ModuleFuelTanks],#CrewCapacity[>0],!Resource[WasteWater]]:NEEDS[TacLifeSupport,modularFuelTanks|RealFuels]:FOR[ZZZZ_GD_TACLSMFTRF_6] { @MODULE[ModuleFuelTanks]:HAS[!TANK[WasteWater]] { TANK { name = WasteWater amount = 0 maxAmount = 1.232 @maxamount *= #$/CrewCapacity$ @maxamount *= 3 @maxAmount *= #$/mass$ fillable = false } } } @PART[*]:HAS[@MODULE[ModuleFuelTanks],#CrewCapacity[>0],@Resource[WasteWater]]:NEEDS[TacLifeSupport,modularFuelTanks|RealFuels]:BEFORE[ZZZZ_GD_TACLSMFTRF_6] { @MODULE[ModuleFuelTanks]:HAS[@TANK[WasteWater]] { %TANK[WasteWater] { %amount = #$/RESOURCE[WasteWater]/maxAmount$ @amount *= #$/mass$ %maxAmount = #$amount$ %fillable = false } } } @PART[*]:HAS[@MODULE[ModuleFuelTanks],#CrewCapacity[>0],@Resource[WasteWater]]:NEEDS[TacLifeSupport,modularFuelTanks|RealFuels]:FOR[ZZZZ_GD_TACLSMFTRF_6] { @MODULE[ModuleFuelTanks]:HAS[!TANK[WasteWater]] { TANK { name = WasteWater amount = #$/RESOURCE[WasteWater]/maxAmount$ @amount *= #$/mass$ maxAmount = #$amount$ fillable = false } } } @PART[*]:HAS[@MODULE[ModuleFuelTanks],#CrewCapacity[>0],@RESOURCE[WasteWater]]:NEEDS[TacLifeSupport,modularFuelTanks|RealFuels]:FINAL { !RESOURCE[WasteWater] {} @MODULE[ModuleFuelTanks] { @volume += #$TANK[WasteWater]/maxAmount$ } } @PART[*]:HAS[@MODULE[ModuleFuelTanks],#CrewCapacity[>0],!Resource[CarbonDioxide]]:NEEDS[TacLifeSupport,modularFuelTanks|RealFuels]:BEFORE[ZZZZ_GD_TACLSMFTRF_7] { @MODULE[ModuleFuelTanks]:HAS[@TANK[CarbonDioxide]] { %TANK[CarbonDioxide] { %amount = 0 %maxAmount = 127.884 @maxamount *= #$/CrewCapacity$ @maxamount *= 3 @maxAmount *= #$/mass$ %utilization = 476.2173 %note = (pressurized) %fillable = false } } } @PART[*]:HAS[@MODULE[ModuleFuelTanks],#CrewCapacity[>0],!Resource[CarbonDioxide]]:NEEDS[TacLifeSupport,modularFuelTanks|RealFuels]:FOR[ZZZZ_GD_TACLSMFTRF_7] { @MODULE[ModuleFuelTanks]:HAS[!TANK[CarbonDioxide]] { TANK { name = CarbonDioxide amount = 0 maxAmount = 127.884 @maxamount *= #$/CrewCapacity$ @maxamount *= 3 @maxAmount *= #$/mass$ utilization = 476.2173 note = (pressurized) fillable = false } } } @PART[*]:HAS[@MODULE[ModuleFuelTanks],#CrewCapacity[>0],@Resource[CarbonDioxide]]:NEEDS[TacLifeSupport,modularFuelTanks|RealFuels]:BEFORE[ZZZZ_GD_TACLSMFTRF_7] { @MODULE[ModuleFuelTanks]:HAS[@TANK[CarbonDioxide]] { %TANK[CarbonDioxide] { %amount = 0 %maxAmount = #$/RESOURCE[CarbonDioxide]/maxAmount$ @maxAmount *= #$/mass$ %utilization = 476.2173 %note = (pressurized) %fillable = false } } } @PART[*]:HAS[@MODULE[ModuleFuelTanks],#CrewCapacity[>0],@Resource[CarbonDioxide]]:NEEDS[TacLifeSupport,modularFuelTanks|RealFuels]:FOR[ZZZZ_GD_TACLSMFTRF_7] { @MODULE[ModuleFuelTanks]:HAS[!TANK[CarbonDioxide]] { TANK { name = CarbonDioxide amount = 0 maxAmount = #$/RESOURCE[CarbonDioxide]/maxAmount$ @maxAmount *= #$/mass$ utilization = 476.2173 note = (pressurized) fillable = false } } } @PART[*]:HAS[@MODULE[ModuleFuelTanks],#CrewCapacity[>0],@RESOURCE[CarbonDioxide]]:NEEDS[TacLifeSupport,modularFuelTanks|RealFuels]:FINAL { !RESOURCE[CarbonDioxide] {} @MODULE[ModuleFuelTanks] { @volume += #$TANK[CarbonDioxide]/maxAmount$ } } @PART[*]:HAS[@MODULE[ModuleFuelTanks],#CrewCapacity[>0],!Resource[ReservePower]]:NEEDS[AmpYear,TacLifeSupport,modularFuelTanks|RealFuels]:BEFORE[ZZZZ_GD_TACLSMFTRF_8] { @MODULE[ModuleFuelTanks]:HAS[@TANK[ReservePower]] { %TANK[ReservePower] { %amount = 80 %maxAmount = #$amount$ %utilization = 1000 %fillable = true } } } @PART[*]:HAS[@MODULE[ModuleFuelTanks],#CrewCapacity[>0],!Resource[ReservePower]]:NEEDS[AmpYear,TacLifeSupport,modularFuelTanks|RealFuels]:FOR[ZZZZ_GD_TACLSMFTRF_8] { @MODULE[ModuleFuelTanks]:HAS[!TANK[ReservePower]] { TANK { name = ReservePower amount = 80 maxAmount = #$amount$ utilization = 1000 fillable = true } } } @PART[*]:HAS[@MODULE[ModuleFuelTanks],#CrewCapacity[>0],@Resource[ReservePower]]:NEEDS[AmpYear,TacLifeSupport,modularFuelTanks|RealFuels]:BEFORE[ZZZZ_GD_TACLSMFTRF_8] { @MODULE[ModuleFuelTanks]:HAS[@TANK[ReservePower]] { %TANK[ReservePower] { %amount = #$/RESOURCE[ReservePower]/maxAmount$ %maxAmount = #$amount$ %utilization = 1000 %fillable = true } } } @PART[*]:HAS[@MODULE[ModuleFuelTanks],#CrewCapacity[>0],@Resource[ReservePower]]:NEEDS[AmpYear,TacLifeSupport,modularFuelTanks|RealFuels]:FOR[ZZZZ_GD_TACLSMFTRF_8] { @MODULE[ModuleFuelTanks]:HAS[!TANK[ReservePower]] { TANK { name = ReservePower amount = #$/RESOURCE[ReservePower]/maxAmount$ maxAmount = #$amount$ utilization = 1000 fillable = true } } } @PART[*]:HAS[@MODULE[ModuleFuelTanks],#CrewCapacity[>0]]:NEEDS[AmpYear,TacLifeSupport,RealismOverhaul,modularFuelTanks|RealFuels]:BEFORE[ZZZZ_GD_TACLSMFTRF_8] { @MODULE[ModuleFuelTanks]:HAS[@TANK[ReservePower]] { %TANK[ReservePower] { %amount = 1000 %maxAmount = #$amount$ %utilization = 1000 %fillable = true } } } @PART[*]:HAS[@MODULE[ModuleFuelTanks],#CrewCapacity[>0]]:NEEDS[AmpYear,TacLifeSupport,RealismOverhaul,modularFuelTanks|RealFuels]:FOR[ZZZZ_GD_TACLSMFTRF_8] { @MODULE[ModuleFuelTanks]:HAS[!TANK[ReservePower]] { TANK { name = ReservePower amount = 1000 maxAmount = #$amount$ utilization = 1000 fillable = true } } } @PART[*]:HAS[@MODULE[ModuleFuelTanks],#CrewCapacity[>0],@Resource[ReservePower]]:NEEDS[TacLifeSupport,modularFuelTanks|RealFuels]:FINAL { !RESOURCE[ReservePower] {} @MODULE[ModuleFuelTanks] { @volume += #$TANK[ReservePower]/maxAmount$ } } Edit: I guess I found the culprit for double TANK entries, this patch adds the TAC-LS resources plus Hydrazine after my patch: GameData\RealFuels-Stockalike\Fuel_Conversions.cfg These lines (95-213): // If we already have an MFT in the part (i.e. with TACLS) then add volume and change to a ServiceModule tank @PART[*]:HAS[@MODULE[ModuleCommand],@RESOURCE[MonoPropellant],@RESOURCE[ElectricCharge],@MODULE[ModuleFuelTanks],#CrewCapacity[*],~CrewCapacity[0]]:NEEDS[RealFuels,TacLifeSupport]:Final { @MODULE[ModuleFuelTanks] { @volume *= 0.2 // drops the volume to 1/5th for proper addition of stock resources @volume += #$/RESOURCE[MonoPropellant]/maxAmount$ // searches for previous amount of MonoPropellant to use as volume @volume *= 5 // multiplies by 5 @volume += 3 // Adds fudge room for the electric charge !temp = DELETE // Removes the temp value @type = ServiceModule // this is best type to use for RCS tanks, also can hold LS resources %basemass = -1 TANK { name = ElectricCharge amount = full maxAmount = #$/RESOURCE[ElectricCharge]/maxAmount$ utilization = 1000 } TANK { name = Hydrazine amount = full maxAmount = #$/RESOURCE[MonoPropellant]/maxAmount$ @maxAmount *= 5 } TANK { name = Food amount = full maxAmount = 1.097 @maxAmount *= #$/CrewCapacity$ } TANK { name = Water amount = full maxAmount = 0.725 @maxAmount *= #$/CrewCapacity$ } TANK { name = Oxygen amount = full maxAmount = 111.038 @maxAmount *= #$/CrewCapacity$ utilization = 221.1347 note = (pressurized) } TANK { name = Waste amount = 0.0 maxAmount = 0.1 @maxAmount *= #$/CrewCapacity$ fillable = false } TANK { name = WasteWater amount = 0.0 maxAmount = 0.924 @maxAmount *= #$/CrewCapacity$ fillable = false } TANK { name = CarbonDioxide amount = 0.0 maxAmount = 95.913 @maxAmount *= #$/CrewCapacity$ utilization = 476.2173 note = (pressurized) fillable = false } } !RESOURCE[MonoPropellant] // removes old MonoPropellant resources { } !RESOURCE[ElectricCharge] // removes old ElectricCharge resources { } } // If we don't have a MFT yet (i.e. no TACLS), make one @PART[*]:HAS[@MODULE[ModuleCommand],@RESOURCE[MonoPropellant],@RESOURCE[ElectricCharge],!MODULE[ModuleFuelTanks]]:NEEDS[RealFuels]:Final { MODULE { name = ModuleFuelTanks volume = 0 // creates a blank volume for utilization @volume += #$/RESOURCE[ElectricCharge]/maxAmount$ // searches for electric charge @volume *= 0.0002 // RF has charge at 1000 units per liter (gets multiplied later) @volume += #$/RESOURCE[MonoPropellant]/maxAmount$ // searches for previous amount of MonoPropellant to use as volume @volume *= 5 // multiplies by 5 type = ServiceModule // this is best type to use for RCS tanks, also can hold LS resources basemass = -1 TANK { name = ElectricCharge amount = full maxAmount = #$/RESOURCE[ElectricCharge]/maxAmount$ utilization = 1000 } TANK { name = Hydrazine amount = full maxAmount = #$/RESOURCE[MonoPropellant]/maxAmount$ @maxAmount *= 5 } } !RESOURCE[MonoPropellant] // removes old MonoPropellant resources { } !RESOURCE[ElectricCharge] // removes old ElectricCharge resources { } } I have to remove them from the patch (special archive subfolder for the changed version created). Now I still have to fight the volume = 0 issue. I guess it's okay if I can't solve the remaining strock resources issue - I will see. Edited August 4, 2017 by Gordon Dry Quote Link to comment Share on other sites More sharing options...
Gordon Dry Posted August 4, 2017 Share Posted August 4, 2017 (edited) This is it for now, I need to sleep: @TANK_DEFINITION[ServiceModule]:HAS[!TANK[ReservePower]]:NEEDS[TacLifeSupport,AmpYear,modularFuelTanks|RealFuels]:BEFORE[ZZZZ_GD_TACLSMFTRF_0] { TANK { name = ReservePower mass = 0.00289 utilization = 1000 fillable = True amount = 0.0 maxAmount = 0.0 note = (pressurized) } } @PART[*]:HAS[@MODULE[ModuleFuelTanks],#CrewCapacity[>0]]:NEEDS[TacLifeSupport,modularFuelTanks|RealFuels]:BEFORE[ZZZZ_GD_TACLSMFTRF_0] { !MODULE[ModuleFuelTanks]:HAS[#type[LifeSupportAll]] { } } @PART[*]:HAS[!MODULE[ModuleFuelTanks],#CrewCapacity[>0]]:NEEDS[TacLifeSupport,modularFuelTanks|RealFuels]:FOR[ZZZZ_GD_TACLSMFTRF_0] { MODULE { name = ModuleFuelTanks type = ServiceModule // basemass = -1 volume = 0 } } @PART[*]:HAS[@MODULE[ModuleFuelTanks],#CrewCapacity[>0]]:NEEDS[TacLifeSupport,modularFuelTanks|RealFuels]:FINAL { !RESOURCE[LiquidFuel] {} !RESOURCE[Oxidizer] {} !RESOURCE[MonoPropellant] {} } @PART[*]:HAS[@MODULE[ModuleFuelTanks],#CrewCapacity[>0],!Resource[ElectricCharge]]:NEEDS[TacLifeSupport,modularFuelTanks|RealFuels]:BEFORE[ZZZZ_GD_TACLSMFTRF_1] { @MODULE[ModuleFuelTanks]:HAS[@TANK[ElectricCharge]] { %TANK[ElectricCharge] { %mass = 0.00289 %amount = 100 @amount *= #$/CrewCapacity$ @amount *= #$/mass$ @amount += 200 %maxAmount = #$amount$ %utilization = 1000 %fillable = true } } } @PART[*]:HAS[@MODULE[ModuleFuelTanks],#CrewCapacity[>0],!Resource[ElectricCharge]]:NEEDS[TacLifeSupport,modularFuelTanks|RealFuels]:BEFORE[ZZZZ_GD_TACLSMFTRF_1] { @MODULE[ModuleFuelTanks]:HAS[!TANK[ElectricCharge]] { TANK { name = ElectricCharge mass = 0.00289 amount = 100 @amount *= #$/CrewCapacity$ @amount *= #$/mass$ @amount += 200 maxAmount = #$amount$ utilization = 1000 fillable = true } } } @PART[*]:HAS[@MODULE[ModuleFuelTanks],#CrewCapacity[>0],@Resource[ElectricCharge]]:NEEDS[TacLifeSupport,modularFuelTanks|RealFuels]:FOR[ZZZZ_GD_TACLSMFTRF_1] { @MODULE[ModuleFuelTanks]:HAS[@TANK[ElectricCharge]] { %TANK[ElectricCharge] { %mass = 0.00289 %amount = #$/RESOURCE[ElectricCharge]/maxAmount$ @amount *= #$/mass$ %maxAmount = #$amount$ %utilization = 1000 %fillable = true } } } @PART[*]:HAS[@MODULE[ModuleFuelTanks],#CrewCapacity[>0],@Resource[ElectricCharge]]:NEEDS[TacLifeSupport,modularFuelTanks|RealFuels]:FOR[ZZZZ_GD_TACLSMFTRF_1] { @MODULE[ModuleFuelTanks]:HAS[!TANK[ElectricCharge]] { TANK { name = ElectricCharge mass = 0.00289 amount = #$/RESOURCE[ElectricCharge]/maxAmount$ @amount *= #$/mass$ maxAmount = #$amount$ utilization = 1000 fillable = true } } } @PART[*]:HAS[@MODULE[ModuleFuelTanks],#CrewCapacity[>0]]:NEEDS[TacLifeSupport,modularFuelTanks|RealFuels]:FINAL { !RESOURCE[ElectricCharge] {} @MODULE[ModuleFuelTanks] { @volume += #$TANK[ElectricCharge]/maxAmount$ } } @PART[*]:HAS[@MODULE[ModuleFuelTanks],#CrewCapacity[>0],!Resource[Food]]:NEEDS[TacLifeSupport,modularFuelTanks|RealFuels]:BEFORE[ZZZZ_GD_TACLSMFTRF_2] { @MODULE[ModuleFuelTanks]:HAS[@TANK[Food]] { %TANK[Food] { %mass = 0.00001 %amount = 1.46267 @amount *= #$/CrewCapacity$ @amount *= 3 @amount *= #$/mass$ %maxAmount = #$amount$ %fillable = true } } } @PART[*]:HAS[@MODULE[ModuleFuelTanks],#CrewCapacity[>0],!Resource[Food]]:NEEDS[TacLifeSupport,modularFuelTanks|RealFuels]:BEFORE[ZZZZ_GD_TACLSMFTRF_2] { @MODULE[ModuleFuelTanks]:HAS[!TANK[Food]] { TANK { name = Food mass = 0.00001 amount = 1.46267 @amount *= #$/CrewCapacity$ @amount *= 3 @amount *= #$/mass$ maxAmount = #$amount$ fillable = true } } } @PART[*]:HAS[@MODULE[ModuleFuelTanks],#CrewCapacity[>0],@Resource[Food]]:NEEDS[TacLifeSupport,modularFuelTanks|RealFuels]:FOR[ZZZZ_GD_TACLSMFTRF_2] { @MODULE[ModuleFuelTanks]:HAS[@TANK[Food]] { %TANK[Food] { %mass = 0.00001 %amount = #$/RESOURCE[Food]/maxAmount$ @amount *= #$/mass$ %maxAmount = #$amount$ %fillable = true } } } @PART[*]:HAS[@MODULE[ModuleFuelTanks],#CrewCapacity[>0],@Resource[Food]]:NEEDS[TacLifeSupport,modularFuelTanks|RealFuels]:FOR[ZZZZ_GD_TACLSMFTRF_2] { @MODULE[ModuleFuelTanks]:HAS[!TANK[Food]] { TANK { name = Food mass = 0.00001 amount = #$/RESOURCE[Food]/maxAmount$ @amount *= #$/mass$ maxAmount = #$amount$ fillable = true } } } @PART[*]:HAS[@MODULE[ModuleFuelTanks],#CrewCapacity[>0]]:NEEDS[TacLifeSupport,modularFuelTanks|RealFuels]:FINAL { !RESOURCE[Food] {} @MODULE[ModuleFuelTanks] { @volume += #$TANK[Food]/maxAmount$ } } @PART[*]:HAS[@MODULE[ModuleFuelTanks],#CrewCapacity[>0],!Resource[Water]]:NEEDS[TacLifeSupport,modularFuelTanks|RealFuels]:BEFORE[ZZZZ_GD_TACLSMFTRF_3] { @MODULE[ModuleFuelTanks]:HAS[@TANK[Water]] { %TANK[Water] { %mass = 0.00001 %amount = 0.96667 @amount *= #$/CrewCapacity$ @amount *= 3 @amount *= #$/mass$ %maxAmount = #$amount$ %fillable = true } } } @PART[*]:HAS[@MODULE[ModuleFuelTanks],#CrewCapacity[>0],!Resource[Water]]:NEEDS[TacLifeSupport,modularFuelTanks|RealFuels]:BEFORE[ZZZZ_GD_TACLSMFTRF_3] { @MODULE[ModuleFuelTanks]:HAS[!TANK[Water]] { TANK { name = Water mass = 0.00001 amount = 0.96667 @amount *= #$/CrewCapacity$ @amount *= 3 @amount *= #$/mass$ maxAmount = #$amount$ fillable = true } } } @PART[*]:HAS[@MODULE[ModuleFuelTanks],#CrewCapacity[>0],@Resource[Water]]:NEEDS[TacLifeSupport,modularFuelTanks|RealFuels]:FOR[ZZZZ_GD_TACLSMFTRF_3] { @MODULE[ModuleFuelTanks]:HAS[@TANK[Water]] { %TANK[Water] { %mass = 0.00001 %amount = #$/RESOURCE[Water]/maxAmount$ @amount *= #$/mass$ %maxAmount = #$amount$ %fillable = true } } } @PART[*]:HAS[@MODULE[ModuleFuelTanks],#CrewCapacity[>0],@Resource[Water]]:NEEDS[TacLifeSupport,modularFuelTanks|RealFuels]:FOR[ZZZZ_GD_TACLSMFTRF_3] { @MODULE[ModuleFuelTanks]:HAS[!TANK[Water]] { TANK { name = Water mass = 0.00001 amount = #$/RESOURCE[Water]/maxAmount$ @amount *= #$/mass$ maxAmount = #$amount$ fillable = true } } } @PART[*]:HAS[@MODULE[ModuleFuelTanks],#CrewCapacity[>0]]:NEEDS[TacLifeSupport,modularFuelTanks|RealFuels]:FINAL { !RESOURCE[Water] {} @MODULE[ModuleFuelTanks] { @volume += #$TANK[Water]/maxAmount$ } } @PART[*]:HAS[@MODULE[ModuleFuelTanks],#CrewCapacity[>0],!Resource[Oxygen]]:NEEDS[TacLifeSupport,modularFuelTanks|RealFuels]:BEFORE[ZZZZ_GD_TACLSMFTRF_4] { @MODULE[ModuleFuelTanks]:HAS[@TANK[Oxygen]] { %TANK[Oxygen] { %mass = 0.00003 %amount = 148.05067 @amount *= #$/CrewCapacity$ @amount *= 3 @amount *= #$/mass$ %maxAmount = #$amount$ %utilization = 221.1347 %note = (pressurized) %fillable = true } } } @PART[*]:HAS[@MODULE[ModuleFuelTanks],#CrewCapacity[>0],!Resource[Oxygen]]:NEEDS[TacLifeSupport,modularFuelTanks|RealFuels]:BEFORE[ZZZZ_GD_TACLSMFTRF_4] { @MODULE[ModuleFuelTanks]:HAS[!TANK[Oxygen]] { TANK { name = Oxygen mass = 0.00003 amount = 148.05067 @amount *= #$/CrewCapacity$ @amount *= 3 @amount *= #$/mass$ maxAmount = #$amount$ utilization = 221.1347 note = (pressurized) fillable = true } } } @PART[*]:HAS[@MODULE[ModuleFuelTanks],#CrewCapacity[>0],@Resource[Oxygen]]:NEEDS[TacLifeSupport,modularFuelTanks|RealFuels]:FOR[ZZZZ_GD_TACLSMFTRF_4] { @MODULE[ModuleFuelTanks]:HAS[@TANK[Oxygen]] { %TANK[Oxygen] { %mass = 0.00003 %amount = #$/RESOURCE[Oxygen]/maxAmount$ @amount *= #$/mass$ %maxAmount = #$amount$ %utilization = 221.1347 %note = (pressurized) %fillable = true } } } @PART[*]:HAS[@MODULE[ModuleFuelTanks],#CrewCapacity[>0],@Resource[Oxygen]]:NEEDS[TacLifeSupport,modularFuelTanks|RealFuels]:FOR[ZZZZ_GD_TACLSMFTRF_4] { @MODULE[ModuleFuelTanks]:HAS[!TANK[Oxygen]] { TANK { name = Oxygen mass = 0.00003 amount = #$/RESOURCE[Oxygen]/maxAmount$ @amount *= #$/mass$ maxAmount = #$amount$ utilization = 221.1347 note = (pressurized) fillable = true } } } @PART[*]:HAS[@MODULE[ModuleFuelTanks],#CrewCapacity[>0]]:NEEDS[TacLifeSupport,modularFuelTanks|RealFuels]:FINAL { !RESOURCE[Oxygen] {} @MODULE[ModuleFuelTanks] { @volume += #$TANK[Oxygen]/maxAmount$ } } @PART[*]:HAS[@MODULE[ModuleFuelTanks],#CrewCapacity[>0],!Resource[Waste]]:NEEDS[TacLifeSupport,modularFuelTanks|RealFuels]:BEFORE[ZZZZ_GD_TACLSMFTRF_5] { @MODULE[ModuleFuelTanks]:HAS[@TANK[Waste]] { %TANK[Waste] { %mass = 0.00001 %amount = 0 %maxAmount = 0.13333 @maxamount *= #$/CrewCapacity$ @maxamount *= 3 @maxAmount *= #$/mass$ %fillable = false } } } @PART[*]:HAS[@MODULE[ModuleFuelTanks],#CrewCapacity[>0],!Resource[Waste]]:NEEDS[TacLifeSupport,modularFuelTanks|RealFuels]:BEFORE[ZZZZ_GD_TACLSMFTRF_5] { @MODULE[ModuleFuelTanks]:HAS[!TANK[Waste]] { TANK { name = Waste mass = 0.00001 amount = 0 maxAmount = 0.13333 @maxamount *= #$/CrewCapacity$ @maxamount *= 3 @maxAmount *= #$/mass$ fillable = false } } } @PART[*]:HAS[@MODULE[ModuleFuelTanks],#CrewCapacity[>0],@Resource[Waste]]:NEEDS[TacLifeSupport,modularFuelTanks|RealFuels]:FOR[ZZZZ_GD_TACLSMFTRF_5] { @MODULE[ModuleFuelTanks]:HAS[@TANK[Waste]] { %TANK[Waste] { %mass = 0.00001 %amount = #$/RESOURCE[Waste]/maxAmount$ @amount *= #$/mass$ %maxAmount = #$amount$ %fillable = false } } } @PART[*]:HAS[@MODULE[ModuleFuelTanks],#CrewCapacity[>0],@Resource[Waste]]:NEEDS[TacLifeSupport,modularFuelTanks|RealFuels]:FOR[ZZZZ_GD_TACLSMFTRF_5] { @MODULE[ModuleFuelTanks]:HAS[!TANK[Waste]] { TANK { name = Waste mass = 0.00001 amount = #$/RESOURCE[Waste]/maxAmount$ @amount *= #$/mass$ maxAmount = #$amount$ fillable = false } } } @PART[*]:HAS[@MODULE[ModuleFuelTanks],#CrewCapacity[>0]]:NEEDS[TacLifeSupport,modularFuelTanks|RealFuels]:FINAL { !RESOURCE[Waste] {} @MODULE[ModuleFuelTanks] { @volume += #$TANK[Waste]/maxAmount$ } } @PART[*]:HAS[@MODULE[ModuleFuelTanks],#CrewCapacity[>0],!Resource[WasteWater]]:NEEDS[TacLifeSupport,modularFuelTanks|RealFuels]:BEFORE[ZZZZ_GD_TACLSMFTRF_6] { @MODULE[ModuleFuelTanks]:HAS[@TANK[WasteWater]] { %TANK[WasteWater] { %mass = 0.00001 %amount = 0 %maxAmount = 1.232 @maxamount *= #$/CrewCapacity$ @maxamount *= 3 @maxAmount *= #$/mass$ %fillable = false } } } @PART[*]:HAS[@MODULE[ModuleFuelTanks],#CrewCapacity[>0],!Resource[WasteWater]]:NEEDS[TacLifeSupport,modularFuelTanks|RealFuels]:BEFORE[ZZZZ_GD_TACLSMFTRF_6] { @MODULE[ModuleFuelTanks]:HAS[!TANK[WasteWater]] { TANK { name = WasteWater mass = 0.00001 amount = 0 maxAmount = 1.232 @maxamount *= #$/CrewCapacity$ @maxamount *= 3 @maxAmount *= #$/mass$ fillable = false } } } @PART[*]:HAS[@MODULE[ModuleFuelTanks],#CrewCapacity[>0],@Resource[WasteWater]]:NEEDS[TacLifeSupport,modularFuelTanks|RealFuels]:FOR[ZZZZ_GD_TACLSMFTRF_6] { @MODULE[ModuleFuelTanks]:HAS[@TANK[WasteWater]] { %TANK[WasteWater] { %mass = 0.00001 %amount = #$/RESOURCE[WasteWater]/maxAmount$ @amount *= #$/mass$ %maxAmount = #$amount$ %fillable = false } } } @PART[*]:HAS[@MODULE[ModuleFuelTanks],#CrewCapacity[>0],@Resource[WasteWater]]:NEEDS[TacLifeSupport,modularFuelTanks|RealFuels]:FOR[ZZZZ_GD_TACLSMFTRF_6] { @MODULE[ModuleFuelTanks]:HAS[!TANK[WasteWater]] { TANK { name = WasteWater mass = 0.00001 amount = #$/RESOURCE[WasteWater]/maxAmount$ @amount *= #$/mass$ maxAmount = #$amount$ fillable = false } } } @PART[*]:HAS[@MODULE[ModuleFuelTanks],#CrewCapacity[>0]]:NEEDS[TacLifeSupport,modularFuelTanks|RealFuels]:FINAL { !RESOURCE[WasteWater] {} @MODULE[ModuleFuelTanks] { @volume += #$TANK[WasteWater]/maxAmount$ } } @PART[*]:HAS[@MODULE[ModuleFuelTanks],#CrewCapacity[>0],!Resource[CarbonDioxide]]:NEEDS[TacLifeSupport,modularFuelTanks|RealFuels]:BEFORE[ZZZZ_GD_TACLSMFTRF_7] { @MODULE[ModuleFuelTanks]:HAS[@TANK[CarbonDioxide]] { %TANK[CarbonDioxide] { %mass = 0.00003 %amount = 0 %maxAmount = 127.884 @maxamount *= #$/CrewCapacity$ @maxamount *= 3 @maxAmount *= #$/mass$ %utilization = 476.2173 %note = (pressurized) %fillable = false } } } @PART[*]:HAS[@MODULE[ModuleFuelTanks],#CrewCapacity[>0],!Resource[CarbonDioxide]]:NEEDS[TacLifeSupport,modularFuelTanks|RealFuels]:BEFORE[ZZZZ_GD_TACLSMFTRF_7] { @MODULE[ModuleFuelTanks]:HAS[!TANK[CarbonDioxide]] { TANK { name = CarbonDioxide mass = 0.00003 amount = 0 maxAmount = 127.884 @maxamount *= #$/CrewCapacity$ @maxamount *= 3 @maxAmount *= #$/mass$ utilization = 476.2173 note = (pressurized) fillable = false } } } @PART[*]:HAS[@MODULE[ModuleFuelTanks],#CrewCapacity[>0],@Resource[CarbonDioxide]]:NEEDS[TacLifeSupport,modularFuelTanks|RealFuels]:FOR[ZZZZ_GD_TACLSMFTRF_7] { @MODULE[ModuleFuelTanks]:HAS[@TANK[CarbonDioxide]] { %TANK[CarbonDioxide] { %mass = 0.00003 %amount = 0 %maxAmount = #$/RESOURCE[CarbonDioxide]/maxAmount$ @maxAmount *= #$/mass$ %utilization = 476.2173 %note = (pressurized) %fillable = false } } } @PART[*]:HAS[@MODULE[ModuleFuelTanks],#CrewCapacity[>0],@Resource[CarbonDioxide]]:NEEDS[TacLifeSupport,modularFuelTanks|RealFuels]:FOR[ZZZZ_GD_TACLSMFTRF_7] { @MODULE[ModuleFuelTanks]:HAS[!TANK[CarbonDioxide]] { TANK { name = CarbonDioxide mass = 0.00003 amount = 0 maxAmount = #$/RESOURCE[CarbonDioxide]/maxAmount$ @maxAmount *= #$/mass$ utilization = 476.2173 note = (pressurized) fillable = false } } } @PART[*]:HAS[@MODULE[ModuleFuelTanks],#CrewCapacity[>0]]:NEEDS[TacLifeSupport,modularFuelTanks|RealFuels]:FINAL { !RESOURCE[CarbonDioxide] {} @MODULE[ModuleFuelTanks] { @volume += #$TANK[CarbonDioxide]/maxAmount$ } } @PART[*]:HAS[@MODULE[ModuleFuelTanks],#CrewCapacity[>0],!Resource[ReservePower]]:NEEDS[AmpYear,TacLifeSupport,modularFuelTanks|RealFuels]:BEFORE[ZZZZ_GD_TACLSMFTRF_8] { @MODULE[ModuleFuelTanks]:HAS[@TANK[ReservePower]] { %TANK[ReservePower] { %mass = 0.00289 %amount = 80 @amount *= #$/mass$ %maxAmount = #$amount$ %utilization = 1000 %fillable = true } } } @PART[*]:HAS[@MODULE[ModuleFuelTanks],#CrewCapacity[>0],!Resource[ReservePower]]:NEEDS[AmpYear,TacLifeSupport,modularFuelTanks|RealFuels]:BEFORE[ZZZZ_GD_TACLSMFTRF_8] { @MODULE[ModuleFuelTanks]:HAS[!TANK[ReservePower]] { TANK { name = ReservePower mass = 0.00289 amount = 80 @amount *= #$/mass$ maxAmount = #$amount$ utilization = 1000 fillable = true } } } @PART[*]:HAS[@MODULE[ModuleFuelTanks],#CrewCapacity[>0],@Resource[ReservePower]]:NEEDS[AmpYear,TacLifeSupport,modularFuelTanks|RealFuels]:FOR[ZZZZ_GD_TACLSMFTRF_8] { @MODULE[ModuleFuelTanks]:HAS[@TANK[ReservePower]] { %TANK[ReservePower] { %mass = 0.00289 %amount = #$/RESOURCE[ReservePower]/maxAmount$ @amount *= #$/mass$ %maxAmount = #$amount$ %utilization = 1000 %fillable = true } } } @PART[*]:HAS[@MODULE[ModuleFuelTanks],#CrewCapacity[>0],@Resource[ReservePower]]:NEEDS[AmpYear,TacLifeSupport,modularFuelTanks|RealFuels]:FOR[ZZZZ_GD_TACLSMFTRF_8] { @MODULE[ModuleFuelTanks]:HAS[!TANK[ReservePower]] { TANK { name = ReservePower mass = 0.00289 amount = #$/RESOURCE[ReservePower]/maxAmount$ @amount *= #$/mass$ maxAmount = #$amount$ utilization = 1000 fillable = true } } } @PART[*]:HAS[@MODULE[ModuleFuelTanks],#CrewCapacity[>0]]:NEEDS[AmpYear,TacLifeSupport,RealismOverhaul,modularFuelTanks|RealFuels]:BEFORE[ZZZZ_GD_TACLSMFTRF_9] { @MODULE[ModuleFuelTanks]:HAS[@TANK[ReservePower]] { %TANK[ReservePower] { %mass = 0.00289 %amount = 1000 @amount *= #$/mass$ %maxAmount = #$amount$ %utilization = 1000 %fillable = true } } } @PART[*]:HAS[@MODULE[ModuleFuelTanks],#CrewCapacity[>0]]:NEEDS[AmpYear,TacLifeSupport,RealismOverhaul,modularFuelTanks|RealFuels]:FOR[ZZZZ_GD_TACLSMFTRF_9] { @MODULE[ModuleFuelTanks]:HAS[!TANK[ReservePower]] { TANK { name = ReservePower mass = 0.00289 amount = 1000 @amount *= #$/mass$ maxAmount = #$amount$ utilization = 1000 fillable = true } } } @PART[*]:HAS[@MODULE[ModuleFuelTanks],#CrewCapacity[>0]]:NEEDS[TacLifeSupport,modularFuelTanks|RealFuels]:FINAL { !RESOURCE[ReservePower] {} @MODULE[ModuleFuelTanks] { @volume += #$TANK[ReservePower]/maxAmount$ @volume *= 1.3 } } Edit: I don't get it, I thought / was told that after adding a TANK to ModuleFuelTanks I should remove the stock resource entry... But now I don't get the resources to be shown in VAB. This is a part of the ModuleManager.ConfigCache: UrlConfig { name = bluedog_Apollo_Block2_Capsule type = PART parentUrl = Bluedog_DB/Parts/Apollo/bluedog_Apollo_Block2_Capsule url = Bluedog_DB/Parts/Apollo/bluedog_Apollo_Block2_Capsule/bluedog_Apollo_Block2_Capsule PART { name = bluedog_Apollo_Block2_Capsule module = Part author = CobaltWolf scale = 1 rescaleFactor = 1 node_stack_bottom = 0.0, -0.716, 0.0, 0.0, -1.0, 0.0, 2 node_stack_top = 0.0, 0.432, 0.0, 0.0, 1.0, 0.0, 1 CoPOffset = 0.0, 0.6, 0.0 CenterOfBuoyancy = 0.0, 0.8, 0.0 CenterOfDisplacement = 0.0, -0.3, 0.0 buoyancyUseSine = False buoyancy = 2.75 CoLOffset = 0.0, -0.45, 0.0 TechRequired = commandModules entryCost = 57000 cost = 19000 category = Pods title = Apollo Block II Command Pod subcategory = 0 manufacturer = Bluedog Design Bureau description = Despite a... questionable track record during testing, this capsule is perhaps the pinnacle of our manned design program. While the Mercury and the Gemini were essentially test vehicles, the Apollo is a real operational craft. Includes attitude control thrusters for reentry. Originally developed to be the orbiter segment of our Munar landing operations, a variety of upgrades and specialized components are being developed, and should become available in the near future. TAC-LS 15 days life support added. attachRules = 1,0,1,1,0 mass = 3.18518518518518 dragModelType = default maximum_drag = 0.20 minimum_drag = 0.15 angularDrag = 2 crashTolerance = 45 maxTemp = 1400 skinMaxTemp = 2400 vesselType = Ship CrewCapacity = 3 bulkheadProfiles = size2, size1 tags = capsule cmg control ?eva fly gyro ?iva moment pilot react rocket space stab steer torque Kane Apollo block ?1 ?2 ?3 ?i ?ii ?iii MODEL { model = Bluedog_DB/Parts/Apollo/bluedog_Apollo_Block2_Capsule } INTERNAL { name = bdbKP0110internalRPM offset = 0.0, 0.0, 0.13 } MODULE { name = ModuleCommand minimumCrew = 1 } MODULE { name = ModuleReactionWheel PitchTorque = 15 YawTorque = 15 RollTorque = 15 RESOURCE { name = ElectricCharge rate = 1.2 } } MODULE { name = ModuleScienceExperiment experimentID = crewReport experimentActionName = Crew Report resetActionName = Discard Crew Report reviewActionName = Review Report useStaging = False useActionGroups = True hideUIwhenUnavailable = True rerunnable = True xmitDataScalar = 1.0 usageReqMaskInternal = 5 usageReqMaskExternal = -1 } MODULE { name = ModuleScienceContainer reviewActionName = Review Stored Data storeActionName = Store Experiments evaOnlyStorage = True storageRange = 2.0 } MODULE { name = ModuleAnimateGeneric animationName = bluedog_Apollo_Capsule_light startEventGUIName = Lights On endEventGUIName = Lights Off actionGUIName = Toggle Lights defaultActionGroup = Light } MODULE { name = ModuleConductionMultiplier modifiedConductionFactor = 0.003 convectionFluxThreshold = 3000 } MODULE { name = ModuleDataTransmitter antennaType = INTERNAL packetInterval = 1.0 packetSize = 2 packetResourceCost = 12.0 requiredResource = ElectricCharge antennaPower = 5000 optimumRange = 2500 packetFloor = .1 packetCeiling = 5 } MODULE { name = ModuleProbeControlPoint minimumCrew = 2 multiHop = False } EFFECTS { running { AUDIO_MULTI { channel = Ship transformName = rcsTransform clip = sound_rocket_mini volume = 0.0 0 volume = 0.1 0 volume = 0.5 0.0175 volume = 1.0 0.07 pitch = 0.0 0.75 pitch = 1.0 1.5 loop = true } MODEL_MULTI_PARTICLE { modelName = Squad/FX/Monoprop_small transformName = rcsTransform emission = 0.0 0 emission = 0.1 0 emission = 1.0 0.7 speed = 0.0 0.56 speed = 1.0 0.7 localRotation = -90, 0, 0 } } } MODULE { name = ModuleRCSFX stagingEnabled = False thrusterTransformName = rcsTransform thrusterPower = 0.557407407407407 resourceFlowMode = STAGE_PRIORITY_FLOW runningEffectName = running rcsEnabled = False enableX = false enableY = false enableZ = false enableRoll = true enablePitch = true enableYaw = true engineID = RCS plumeToKeep = running atmosphereCurve { key = 0 240 key = 1 100 key = 4 0.001 } PROPELLANT { name = MMH ratio = 1.6477 } PROPELLANT { name = NTO ratio = 2.37 } } MODULE { name = ModuleLogisticsConsumer } MODULE { name = ModuleConnectedLivingSpace passable = true } MODULE { name = RasterPropMonitorComputer } MODULE { name = ModuleEngineConfigs type = ModuleRCS configuration = MMH+NTO CONFIG { name = MMH+NTO thrusterPower = 0.7 PROPELLANT { name = MMH ratio = 1.6477 } PROPELLANT { name = NTO ratio = 2.37 } atmosphereCurve { key = 0 240 key = 1 100 } } CONFIG { name = Aerozine50+NTO thrusterPower = 0.7 PROPELLANT { name = Aerozine50 ratio = 1.6111 } PROPELLANT { name = NTO ratio = 1.6 } atmosphereCurve { key = 0 240 key = 1 100 } } CONFIG { name = Hydrazine thrusterPower = 0.56 PROPELLANT { name = Hydrazine ratio = 1 } atmosphereCurve { key = 0 230 key = 1 100 } } CONFIG { name = Nitrogen thrusterPower = 0.28 PROPELLANT { name = Nitrogen ratio = 1 } atmosphereCurve { key = 0 120 key = 1 100 } } } MODULE { name = ModuleFuelTanks volume = 8366.55782059257 type = ServiceModule basemass = -1 TANK { name = MMH amount = full maxAmount = 20.5055131% } TANK { name = NTO amount = full maxAmount = 29.4944869% } TANK { name = ElectricCharge amount = 1155.55555555555 maxAmount = 1155.55555555555 utilization = 1000 fillable = true } TANK { name = Food amount = 41.9298733333333 maxAmount = 41.9298733333333 fillable = true } TANK { name = Water amount = 27.7112066666666 maxAmount = 27.7112066666666 fillable = true } TANK { name = Oxygen amount = 4244.11920666666 maxAmount = 4244.11920666666 utilization = 221.1347 note = (pressurized) fillable = true } TANK { name = CarbonDioxide amount = 0 maxAmount = 407.334222222222 utilization = 476.2173 note = (pressurized) fillable = false } TANK { name = Waste amount = 0 maxAmount = 0.42468074074074 fillable = false } TANK { name = WasteWater amount = 0 maxAmount = 3.92414814814814 fillable = false } TANK { name = ReservePower amount = 254.814814814814 maxAmount = 254.814814814814 utilization = 1000 fillable = true } } MODULE { name = CNConstellationModule } MODULE { name = CNConstellationAntennaModule } MODULE { name = AYCrewPart } MODULE { name = AYPart } MODULE { name = ModuleTankActionLock } MODULE { name = ModuleTankActionLock } MODULE { name = USI_ModuleRecycleablePart Menu = Disassemble Part ResourceName = MaterialKits Efficiency = .5 } MODULE { name = ModuleScienceContainer reviewActionName = Review Stored Data storeActionName = Store Experiments evaOnlyStorage = True storageRange = 1.3 canBeTransferredToInVessel = True canTransferInVessel = True showStatus = True } MODULE { name = ModuleSAS SASServiceLevel = 3 } MODULE { name = GPOSpeedPump _pumpLevel = 8 } MODULE { name = SCANRPMStorage } MODULE { name = LifeSupportModule } MODULE { name = ModuleTCA } MODULE { name = TCAEngineInfo } MODULE { name = TrajectoriesVesselSettings } MODULE { name = MechJebCore MechJebLocalSettings { MechJebModuleCustomWindowEditor { unlockTechs = start } MechJebModuleSmartASS { unlockTechs = start } MechJebModuleManeuverPlanner { unlockTechs = start } MechJebModuleNodeEditor { unlockTechs = start } MechJebModuleTranslatron { unlockTechs = start } MechJebModuleWarpHelper { unlockTechs = start } MechJebModuleAttitudeAdjustment { unlockTechs = start } MechJebModuleThrustWindow { unlockTechs = start } MechJebModuleRCSBalancerWindow { unlockTechs = start } MechJebModuleRoverWindow { unlockTechs = start } MechJebModuleAscentGuidance { unlockTechs = start } MechJebModuleLandingGuidance { unlockTechs = start } MechJebModuleSpaceplaneGuidance { unlockTechs = start } MechJebModuleDockingGuidance { unlockTechs = start } MechJebModuleRendezvousAutopilotWindow { unlockTechs = start } MechJebModuleRendezvousGuidance { unlockTechs = start } } } MODULE { name = BuildEngineer } MODULE { name = FlightEngineer } MODULE { name = ModuleKrEjectPilot ejectionForce = 100 baseCost = 666 baseMass = 0.1 maxUses = 3 deployedDrag = 30 minAirPressureToOpen = 0.04 semiDeployedFraction = 0.25 semiDeployedHeight = 1.25 deployTime = 0.33 deployHeight = 200 Soundfile = VanguardTechnologies/Sounds/ejectionSound Volume = 1 } } } And this is how it looks like in the VAB: I will remove the !RESOURCE[abcxyz] {} instances then ... The log:https://www.dropbox.com/s/k3vu6xp062p7fb4/2017-08-04-1 KSP.log.zip?dl=1 Edited August 4, 2017 by Gordon Dry ...and I found something else Quote Link to comment Share on other sites More sharing options...
Gordon Dry Posted August 4, 2017 Share Posted August 4, 2017 Oh man, I guess there is either a serious bug in RealFuels or in ModuleManager. As seen in my previous post deleting the stock resources after adding the RF tanks with !RESOURCE[abcxyz] {} does work, but the tanks / context menu show no resources then. After commenting these lines out and using this patch: @TANK_DEFINITION[ServiceModule]:HAS[!TANK[ReservePower]]:NEEDS[TacLifeSupport,AmpYear,modularFuelTanks|RealFuels,!RealismOverhaul]:FINAL { TANK { name = ReservePower mass = 0.00289 utilization = 1000 fillable = True amount = 0.0 maxAmount = 0.0 note = (pressurized) } } @PART[*]:HAS[@MODULE[ModuleFuelTanks],#CrewCapacity[>0]]:NEEDS[TacLifeSupport,modularFuelTanks|RealFuels,!RealismOverhaul]:FINAL { !MODULE[ModuleFuelTanks]:HAS[#type[LifeSupportAll]] { } } @PART[*]:HAS[!MODULE[ModuleFuelTanks],#CrewCapacity[>0]]:NEEDS[TacLifeSupport,modularFuelTanks|RealFuels,!RealismOverhaul]:FINAL { MODULE { name = ModuleFuelTanks type = ServiceModule // basemass = -1 volume = 0 } } @PART[*]:HAS[@MODULE[ModuleFuelTanks],#CrewCapacity[>0],!Resource[ElectricCharge]]:NEEDS[TacLifeSupport,modularFuelTanks|RealFuels,!RealismOverhaul]:FINAL { @MODULE[ModuleFuelTanks]:HAS[@TANK[ElectricCharge]] { %TANK[ElectricCharge] { %mass = 0.00289 %amount = 100 @amount *= #$/CrewCapacity$ @amount *= #$/mass$ @amount += 200 %maxAmount = #$amount$ %utilization = 1000 %fillable = true } } } @PART[*]:HAS[@MODULE[ModuleFuelTanks],#CrewCapacity[>0],!Resource[ElectricCharge]]:NEEDS[TacLifeSupport,modularFuelTanks|RealFuels,!RealismOverhaul]:FINAL { @MODULE[ModuleFuelTanks]:HAS[!TANK[ElectricCharge]] { TANK { name = ElectricCharge mass = 0.00289 amount = 100 @amount *= #$/CrewCapacity$ @amount *= #$/mass$ @amount += 200 maxAmount = #$amount$ utilization = 1000 fillable = true } } } @PART[*]:HAS[@MODULE[ModuleFuelTanks],#CrewCapacity[>0],@Resource[ElectricCharge]]:NEEDS[TacLifeSupport,modularFuelTanks|RealFuels,!RealismOverhaul]:FINAL { @MODULE[ModuleFuelTanks]:HAS[@TANK[ElectricCharge]] { %TANK[ElectricCharge] { %mass = 0.00289 %amount = #$/RESOURCE[ElectricCharge]/maxAmount$ @amount *= #$/mass$ %maxAmount = #$amount$ %utilization = 1000 %fillable = true } } } @PART[*]:HAS[@MODULE[ModuleFuelTanks],#CrewCapacity[>0],@Resource[ElectricCharge]]:NEEDS[TacLifeSupport,modularFuelTanks|RealFuels,!RealismOverhaul]:FINAL { @MODULE[ModuleFuelTanks]:HAS[!TANK[ElectricCharge]] { TANK { name = ElectricCharge mass = 0.00289 amount = #$/RESOURCE[ElectricCharge]/maxAmount$ @amount *= #$/mass$ maxAmount = #$amount$ utilization = 1000 fillable = true } } } @PART[*]:HAS[@MODULE[ModuleFuelTanks],#CrewCapacity[>0]]:NEEDS[TacLifeSupport,modularFuelTanks|RealFuels,!RealismOverhaul]:FINAL { // !RESOURCE[ElectricCharge] {} @MODULE[ModuleFuelTanks] { @volume += #$TANK[ElectricCharge]/maxAmount$ } } @PART[*]:HAS[@MODULE[ModuleFuelTanks],#CrewCapacity[>0],!Resource[Food]]:NEEDS[TacLifeSupport,modularFuelTanks|RealFuels,!RealismOverhaul]:FINAL { @MODULE[ModuleFuelTanks]:HAS[@TANK[Food]] { %TANK[Food] { %mass = 0.00001 %amount = 1.46267 @amount *= #$/CrewCapacity$ @amount *= 3 @amount *= #$/mass$ %maxAmount = #$amount$ %fillable = true } } } @PART[*]:HAS[@MODULE[ModuleFuelTanks],#CrewCapacity[>0],!Resource[Food]]:NEEDS[TacLifeSupport,modularFuelTanks|RealFuels,!RealismOverhaul]:FINAL { @MODULE[ModuleFuelTanks]:HAS[!TANK[Food]] { TANK { name = Food mass = 0.00001 amount = 1.46267 @amount *= #$/CrewCapacity$ @amount *= 3 @amount *= #$/mass$ maxAmount = #$amount$ fillable = true } } } @PART[*]:HAS[@MODULE[ModuleFuelTanks],#CrewCapacity[>0],@Resource[Food]]:NEEDS[TacLifeSupport,modularFuelTanks|RealFuels,!RealismOverhaul]:FINAL { @MODULE[ModuleFuelTanks]:HAS[@TANK[Food]] { %TANK[Food] { %mass = 0.00001 %amount = #$/RESOURCE[Food]/maxAmount$ @amount *= #$/mass$ %maxAmount = #$amount$ %fillable = true } } } @PART[*]:HAS[@MODULE[ModuleFuelTanks],#CrewCapacity[>0],@Resource[Food]]:NEEDS[TacLifeSupport,modularFuelTanks|RealFuels,!RealismOverhaul]:FINAL { @MODULE[ModuleFuelTanks]:HAS[!TANK[Food]] { TANK { name = Food mass = 0.00001 amount = #$/RESOURCE[Food]/maxAmount$ @amount *= #$/mass$ maxAmount = #$amount$ fillable = true } } } @PART[*]:HAS[@MODULE[ModuleFuelTanks],#CrewCapacity[>0]]:NEEDS[TacLifeSupport,modularFuelTanks|RealFuels,!RealismOverhaul]:FINAL { // !RESOURCE[Food] {} @MODULE[ModuleFuelTanks] { @volume += #$TANK[Food]/maxAmount$ } } @PART[*]:HAS[@MODULE[ModuleFuelTanks],#CrewCapacity[>0],!Resource[Water]]:NEEDS[TacLifeSupport,modularFuelTanks|RealFuels,!RealismOverhaul]:FINAL { @MODULE[ModuleFuelTanks]:HAS[@TANK[Water]] { %TANK[Water] { %mass = 0.00001 %amount = 0.96667 @amount *= #$/CrewCapacity$ @amount *= 3 @amount *= #$/mass$ %maxAmount = #$amount$ %fillable = true } } } @PART[*]:HAS[@MODULE[ModuleFuelTanks],#CrewCapacity[>0],!Resource[Water]]:NEEDS[TacLifeSupport,modularFuelTanks|RealFuels,!RealismOverhaul]:FINAL { @MODULE[ModuleFuelTanks]:HAS[!TANK[Water]] { TANK { name = Water mass = 0.00001 amount = 0.96667 @amount *= #$/CrewCapacity$ @amount *= 3 @amount *= #$/mass$ maxAmount = #$amount$ fillable = true } } } @PART[*]:HAS[@MODULE[ModuleFuelTanks],#CrewCapacity[>0],@Resource[Water]]:NEEDS[TacLifeSupport,modularFuelTanks|RealFuels,!RealismOverhaul]:FINAL { @MODULE[ModuleFuelTanks]:HAS[@TANK[Water]] { %TANK[Water] { %mass = 0.00001 %amount = #$/RESOURCE[Water]/maxAmount$ @amount *= #$/mass$ %maxAmount = #$amount$ %fillable = true } } } @PART[*]:HAS[@MODULE[ModuleFuelTanks],#CrewCapacity[>0],@Resource[Water]]:NEEDS[TacLifeSupport,modularFuelTanks|RealFuels,!RealismOverhaul]:FINAL { @MODULE[ModuleFuelTanks]:HAS[!TANK[Water]] { TANK { name = Water mass = 0.00001 amount = #$/RESOURCE[Water]/maxAmount$ @amount *= #$/mass$ maxAmount = #$amount$ fillable = true } } } @PART[*]:HAS[@MODULE[ModuleFuelTanks],#CrewCapacity[>0]]:NEEDS[TacLifeSupport,modularFuelTanks|RealFuels,!RealismOverhaul]:FINAL { // !RESOURCE[Water] {} @MODULE[ModuleFuelTanks] { @volume += #$TANK[Water]/maxAmount$ } } @PART[*]:HAS[@MODULE[ModuleFuelTanks],#CrewCapacity[>0],!Resource[Oxygen]]:NEEDS[TacLifeSupport,modularFuelTanks|RealFuels,!RealismOverhaul]:FINAL { @MODULE[ModuleFuelTanks]:HAS[@TANK[Oxygen]] { %TANK[Oxygen] { %mass = 0.00003 %amount = 148.05067 @amount *= #$/CrewCapacity$ @amount *= 3 @amount *= #$/mass$ %maxAmount = #$amount$ %utilization = 221.1347 %note = (pressurized) %fillable = true } } } @PART[*]:HAS[@MODULE[ModuleFuelTanks],#CrewCapacity[>0],!Resource[Oxygen]]:NEEDS[TacLifeSupport,modularFuelTanks|RealFuels,!RealismOverhaul]:FINAL { @MODULE[ModuleFuelTanks]:HAS[!TANK[Oxygen]] { TANK { name = Oxygen mass = 0.00003 amount = 148.05067 @amount *= #$/CrewCapacity$ @amount *= 3 @amount *= #$/mass$ maxAmount = #$amount$ utilization = 221.1347 note = (pressurized) fillable = true } } } @PART[*]:HAS[@MODULE[ModuleFuelTanks],#CrewCapacity[>0],@Resource[Oxygen]]:NEEDS[TacLifeSupport,modularFuelTanks|RealFuels,!RealismOverhaul]:FINAL { @MODULE[ModuleFuelTanks]:HAS[@TANK[Oxygen]] { %TANK[Oxygen] { %mass = 0.00003 %amount = #$/RESOURCE[Oxygen]/maxAmount$ @amount *= #$/mass$ %maxAmount = #$amount$ %utilization = 221.1347 %note = (pressurized) %fillable = true } } } @PART[*]:HAS[@MODULE[ModuleFuelTanks],#CrewCapacity[>0],@Resource[Oxygen]]:NEEDS[TacLifeSupport,modularFuelTanks|RealFuels,!RealismOverhaul]:FINAL { @MODULE[ModuleFuelTanks]:HAS[!TANK[Oxygen]] { TANK { name = Oxygen mass = 0.00003 amount = #$/RESOURCE[Oxygen]/maxAmount$ @amount *= #$/mass$ maxAmount = #$amount$ utilization = 221.1347 note = (pressurized) fillable = true } } } @PART[*]:HAS[@MODULE[ModuleFuelTanks],#CrewCapacity[>0]]:NEEDS[TacLifeSupport,modularFuelTanks|RealFuels,!RealismOverhaul]:FINAL { // !RESOURCE[Oxygen] {} @MODULE[ModuleFuelTanks] { @volume += #$TANK[Oxygen]/maxAmount$ } } @PART[*]:HAS[@MODULE[ModuleFuelTanks],#CrewCapacity[>0],!Resource[Waste]]:NEEDS[TacLifeSupport,modularFuelTanks|RealFuels,!RealismOverhaul]:FINAL { @MODULE[ModuleFuelTanks]:HAS[@TANK[Waste]] { %TANK[Waste] { %mass = 0.00001 %amount = 0 %maxAmount = 0.13333 @maxamount *= #$/CrewCapacity$ @maxamount *= 3 @maxAmount *= #$/mass$ %fillable = false } } } @PART[*]:HAS[@MODULE[ModuleFuelTanks],#CrewCapacity[>0],!Resource[Waste]]:NEEDS[TacLifeSupport,modularFuelTanks|RealFuels,!RealismOverhaul]:FINAL { @MODULE[ModuleFuelTanks]:HAS[!TANK[Waste]] { TANK { name = Waste mass = 0.00001 amount = 0 maxAmount = 0.13333 @maxamount *= #$/CrewCapacity$ @maxamount *= 3 @maxAmount *= #$/mass$ fillable = false } } } @PART[*]:HAS[@MODULE[ModuleFuelTanks],#CrewCapacity[>0],@Resource[Waste]]:NEEDS[TacLifeSupport,modularFuelTanks|RealFuels,!RealismOverhaul]:FINAL { @MODULE[ModuleFuelTanks]:HAS[@TANK[Waste]] { %TANK[Waste] { %mass = 0.00001 %amount = #$/RESOURCE[Waste]/maxAmount$ @amount *= #$/mass$ %maxAmount = #$amount$ %fillable = false } } } @PART[*]:HAS[@MODULE[ModuleFuelTanks],#CrewCapacity[>0],@Resource[Waste]]:NEEDS[TacLifeSupport,modularFuelTanks|RealFuels,!RealismOverhaul]:FINAL { @MODULE[ModuleFuelTanks]:HAS[!TANK[Waste]] { TANK { name = Waste mass = 0.00001 amount = #$/RESOURCE[Waste]/maxAmount$ @amount *= #$/mass$ maxAmount = #$amount$ fillable = false } } } @PART[*]:HAS[@MODULE[ModuleFuelTanks],#CrewCapacity[>0]]:NEEDS[TacLifeSupport,modularFuelTanks|RealFuels,!RealismOverhaul]:FINAL { // !RESOURCE[Waste] {} @MODULE[ModuleFuelTanks] { @volume += #$TANK[Waste]/maxAmount$ } } @PART[*]:HAS[@MODULE[ModuleFuelTanks],#CrewCapacity[>0],!Resource[WasteWater]]:NEEDS[TacLifeSupport,modularFuelTanks|RealFuels,!RealismOverhaul]:FINAL { @MODULE[ModuleFuelTanks]:HAS[@TANK[WasteWater]] { %TANK[WasteWater] { %mass = 0.00001 %amount = 0 %maxAmount = 1.232 @maxamount *= #$/CrewCapacity$ @maxamount *= 3 @maxAmount *= #$/mass$ %fillable = false } } } @PART[*]:HAS[@MODULE[ModuleFuelTanks],#CrewCapacity[>0],!Resource[WasteWater]]:NEEDS[TacLifeSupport,modularFuelTanks|RealFuels,!RealismOverhaul]:FINAL { @MODULE[ModuleFuelTanks]:HAS[!TANK[WasteWater]] { TANK { name = WasteWater mass = 0.00001 amount = 0 maxAmount = 1.232 @maxamount *= #$/CrewCapacity$ @maxamount *= 3 @maxAmount *= #$/mass$ fillable = false } } } @PART[*]:HAS[@MODULE[ModuleFuelTanks],#CrewCapacity[>0],@Resource[WasteWater]]:NEEDS[TacLifeSupport,modularFuelTanks|RealFuels,!RealismOverhaul]:FINAL { @MODULE[ModuleFuelTanks]:HAS[@TANK[WasteWater]] { %TANK[WasteWater] { %mass = 0.00001 %amount = #$/RESOURCE[WasteWater]/maxAmount$ @amount *= #$/mass$ %maxAmount = #$amount$ %fillable = false } } } @PART[*]:HAS[@MODULE[ModuleFuelTanks],#CrewCapacity[>0],@Resource[WasteWater]]:NEEDS[TacLifeSupport,modularFuelTanks|RealFuels,!RealismOverhaul]:FINAL { @MODULE[ModuleFuelTanks]:HAS[!TANK[WasteWater]] { TANK { name = WasteWater mass = 0.00001 amount = #$/RESOURCE[WasteWater]/maxAmount$ @amount *= #$/mass$ maxAmount = #$amount$ fillable = false } } } @PART[*]:HAS[@MODULE[ModuleFuelTanks],#CrewCapacity[>0]]:NEEDS[TacLifeSupport,modularFuelTanks|RealFuels,!RealismOverhaul]:FINAL { // !RESOURCE[WasteWater] {} @MODULE[ModuleFuelTanks] { @volume += #$TANK[WasteWater]/maxAmount$ } } @PART[*]:HAS[@MODULE[ModuleFuelTanks],#CrewCapacity[>0],!Resource[CarbonDioxide]]:NEEDS[TacLifeSupport,modularFuelTanks|RealFuels,!RealismOverhaul]:FINAL { @MODULE[ModuleFuelTanks]:HAS[@TANK[CarbonDioxide]] { %TANK[CarbonDioxide] { %mass = 0.00003 %amount = 0 %maxAmount = 127.884 @maxamount *= #$/CrewCapacity$ @maxamount *= 3 @maxAmount *= #$/mass$ %utilization = 476.2173 %note = (pressurized) %fillable = false } } } @PART[*]:HAS[@MODULE[ModuleFuelTanks],#CrewCapacity[>0],!Resource[CarbonDioxide]]:NEEDS[TacLifeSupport,modularFuelTanks|RealFuels,!RealismOverhaul]:FINAL { @MODULE[ModuleFuelTanks]:HAS[!TANK[CarbonDioxide]] { TANK { name = CarbonDioxide mass = 0.00003 amount = 0 maxAmount = 127.884 @maxamount *= #$/CrewCapacity$ @maxamount *= 3 @maxAmount *= #$/mass$ utilization = 476.2173 note = (pressurized) fillable = false } } } @PART[*]:HAS[@MODULE[ModuleFuelTanks],#CrewCapacity[>0],@Resource[CarbonDioxide]]:NEEDS[TacLifeSupport,modularFuelTanks|RealFuels,!RealismOverhaul]:FINAL { @MODULE[ModuleFuelTanks]:HAS[@TANK[CarbonDioxide]] { %TANK[CarbonDioxide] { %mass = 0.00003 %amount = 0 %maxAmount = #$/RESOURCE[CarbonDioxide]/maxAmount$ @maxAmount *= #$/mass$ %utilization = 476.2173 %note = (pressurized) %fillable = false } } } @PART[*]:HAS[@MODULE[ModuleFuelTanks],#CrewCapacity[>0],@Resource[CarbonDioxide]]:NEEDS[TacLifeSupport,modularFuelTanks|RealFuels,!RealismOverhaul]:FINAL { @MODULE[ModuleFuelTanks]:HAS[!TANK[CarbonDioxide]] { TANK { name = CarbonDioxide mass = 0.00003 amount = 0 maxAmount = #$/RESOURCE[CarbonDioxide]/maxAmount$ @maxAmount *= #$/mass$ utilization = 476.2173 note = (pressurized) fillable = false } } } @PART[*]:HAS[@MODULE[ModuleFuelTanks],#CrewCapacity[>0]]:NEEDS[TacLifeSupport,modularFuelTanks|RealFuels,!RealismOverhaul]:FINAL { // !RESOURCE[CarbonDioxide] {} @MODULE[ModuleFuelTanks] { @volume += #$TANK[CarbonDioxide]/maxAmount$ } } @PART[*]:HAS[@MODULE[ModuleFuelTanks],#CrewCapacity[>0],!Resource[ReservePower]]:NEEDS[AmpYear,TacLifeSupport,modularFuelTanks|RealFuels,!RealismOverhaul]:FINAL { @MODULE[ModuleFuelTanks]:HAS[@TANK[ReservePower]] { %TANK[ReservePower] { %mass = 0.00289 %amount = 80 @amount *= #$/mass$ %maxAmount = #$amount$ %utilization = 1000 %fillable = true } } } @PART[*]:HAS[@MODULE[ModuleFuelTanks],#CrewCapacity[>0],!Resource[ReservePower]]:NEEDS[AmpYear,TacLifeSupport,modularFuelTanks|RealFuels,!RealismOverhaul]:FINAL { @MODULE[ModuleFuelTanks]:HAS[!TANK[ReservePower]] { TANK { name = ReservePower mass = 0.00289 amount = 80 @amount *= #$/mass$ maxAmount = #$amount$ utilization = 1000 fillable = true } } } @PART[*]:HAS[@MODULE[ModuleFuelTanks],#CrewCapacity[>0],@Resource[ReservePower]]:NEEDS[AmpYear,TacLifeSupport,modularFuelTanks|RealFuels,!RealismOverhaul]:FINAL { @MODULE[ModuleFuelTanks]:HAS[@TANK[ReservePower]] { %TANK[ReservePower] { %mass = 0.00289 %amount = #$/RESOURCE[ReservePower]/maxAmount$ @amount *= #$/mass$ %maxAmount = #$amount$ %utilization = 1000 %fillable = true } } } @PART[*]:HAS[@MODULE[ModuleFuelTanks],#CrewCapacity[>0],@Resource[ReservePower]]:NEEDS[AmpYear,TacLifeSupport,modularFuelTanks|RealFuels,!RealismOverhaul]:FINAL { @MODULE[ModuleFuelTanks]:HAS[!TANK[ReservePower]] { TANK { name = ReservePower mass = 0.00289 amount = #$/RESOURCE[ReservePower]/maxAmount$ @amount *= #$/mass$ maxAmount = #$amount$ utilization = 1000 fillable = true } } } @PART[*]:HAS[@MODULE[ModuleFuelTanks],#CrewCapacity[>0]]:NEEDS[AmpYear,TacLifeSupport,modularFuelTanks|RealFuels,!RealismOverhaul]:FINAL { // !RESOURCE[ReservePower] {} @MODULE[ModuleFuelTanks] { @volume += #$TANK[ReservePower]/maxAmount$ } } @PART[*]:HAS[@MODULE[ModuleFuelTanks],#CrewCapacity[>0]]:NEEDS[TacLifeSupport,modularFuelTanks|RealFuels,!RealismOverhaul]:FINAL { @MODULE[ModuleFuelTanks] { @volume *= 1.3 } } then pruning the file GameData\RealFuels-Stockalike\Fuel_Conversions.cfg because RealFuels removed GameData\RealFuels\zFS.cfg and added GameData\RealFuels\zFuelTanks.cfg instead of it, I got this: Extract of ModuleManager.ConfigCache: UrlConfig { name = bluedog_MOL_Airlock type = PART parentUrl = Bluedog_DB/Parts/Gemini/bluedog_MOL_Airlock url = Bluedog_DB/Parts/Gemini/bluedog_MOL_Airlock/bluedog_MOL_Airlock PART { name = bluedog_MOL_Airlock module = Part author = CobaltWolf rescaleFactor = 1 node_stack_top = 0.0, 0.717, 0.0, 0.0, 1.0, 0.0, 2 node_stack_bottom = 0.0, -0.152, 0.0, 0.0, -1.0, 0.0, 2 CrewCapacity = 1 TechRequired = basicScience entryCost = 60000 cost = 20000 category = Utility subcategory = 0 title = MOL Airlock Segment manufacturer = Bluedog Design Bureau description = Dedicated airlock module for MOL stations, useful for allowing crew access to the station as they leave their ships. TAC-LS 1260 Kerbal days life support added. attachRules = 1,0,1,1,0 mass = 0.796296296296296 dragModelType = default maximum_drag = 0.2 minimum_drag = 0.3 angularDrag = 2 crashTolerance = 6 breakingForce = 200 breakingTorque = 200 maxTemp = 1000 skinMaxTemp = 2200 vesselType = Ship bulkheadProfiles = size1 tags = MOL MOS Gemini airlock door hatch exit entrance MODEL { model = Bluedog_DB/Parts/Gemini/bluedog_MOL_Airlock } MODULE { name = ModuleAnimateGeneric animationName = MOL_Hab_Window_Anim actionGUIName = Toggle Lights startEventGUIName = Lights On endEventGUIName = Lights Off defaultActionGroup = Light } MODULE { name = ModuleConnectedLivingSpace passable = true } MODULE { name = ModuleKISInventory maxVolume = 300 externalAccess = true internalAccess = true slotsX = 2 slotsY = 2 slotSize = 50 itemIconResolution = 128 selfIconResolution = 128 openSndPath = KIS/Sounds/containerOpen closeSndPath = KIS/Sounds/containerClose defaultMoveSndPath = KIS/Sounds/itemMove } MODULE { name = ModuleKISItem volumeOverride = 1300 editorItemsCategory = false } MODULE { name = AYPart } MODULE { name = USI_ModuleRecycleablePart Menu = Disassemble Part ResourceName = MaterialKits Efficiency = .5 } MODULE { name = LifeSupportModule } RESOURCE { name = ElectricCharge amount = 250 maxAmount = 250 } RESOURCE { name = Food amount = 463.8 maxAmount = 463.8 } RESOURCE { name = Water amount = 306.6 maxAmount = 306.6 } RESOURCE { name = Oxygen amount = 46938.3 maxAmount = 46938.3 } RESOURCE { name = CarbonDioxide amount = 0 maxAmount = 40544.7 } RESOURCE { name = WasteWater amount = 0 maxAmount = 390.3 } RESOURCE { name = Waste amount = 0 maxAmount = 42.3 } MODULE { name = ModuleFuelTanks type = ServiceModule volume = 1047.454356 TANK { name = ElectricCharge mass = 0.00289 amount = 279.62962962963 maxAmount = 279.62962962963 utilization = 1000 fillable = true } TANK { name = Food mass = 0.00001 amount = 3.49415611111111 maxAmount = 3.49415611111111 fillable = true } TANK { name = Water mass = 0.00001 amount = 2.30926722222222 maxAmount = 2.30926722222222 fillable = true } TANK { name = Oxygen mass = 0.00003 amount = 353.676600555555 maxAmount = 353.676600555555 utilization = 221.1347 note = (pressurized) fillable = true } TANK { name = Waste mass = 0.00001 amount = 0 maxAmount = 0.106170185185185 fillable = false } TANK { name = WasteWater mass = 0.00001 amount = 0 maxAmount = 0.981037037037037 fillable = false } TANK { name = CarbonDioxide mass = 0.00003 amount = 0 maxAmount = 101.833555555556 utilization = 476.2173 note = (pressurized) fillable = false } TANK { name = ReservePower mass = 0.00289 amount = 63.7037037037037 maxAmount = 63.7037037037037 utilization = 1000 fillable = true } } MODULE { name = ModuleKrEjectPilot ejectionForce = 100 baseCost = 666 baseMass = 0.1 maxUses = 1 deployedDrag = 30 minAirPressureToOpen = 0.04 semiDeployedFraction = 0.25 semiDeployedHeight = 1.25 deployTime = 0.33 deployHeight = 200 Soundfile = VanguardTechnologies/Sounds/ejectionSound Volume = 1 } } } Well, this should not be like that, but the interesting fact is that not just the stock recource entries are still shown in VAB, nooo, it's something totally different: The log:https://www.dropbox.com/s/khxmevqqu2z9iyq/2017-08-04-2 KSP.log.zip?dl=1 Quote Link to comment Share on other sites More sharing options...
KerbMav Posted August 4, 2017 Share Posted August 4, 2017 @Gordon Dry As much as i wish to give back to the community (what comes around goes around and everything) ... you have completely lost me! My only guess would be to check if you are killing your own patches by putting :FINAL everywhere? Quote Link to comment Share on other sites More sharing options...
Sigma88 Posted August 4, 2017 Share Posted August 4, 2017 I don't think you can use "and" plus "or" in the same statement Try with a simpler one and work your way to the more complex one Also, there is no point in posting your cfg if you don't post the mm configcache as well. And I would have suggested you to use only a few mods, but I'm aware that the suggestion would fall on deaf ears Quote Link to comment Share on other sites More sharing options...
Recommended Posts
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.