Jump to content

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


sarbian

Recommended Posts

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 by KerbMav
Link to comment
Share on other sites

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

Link to comment
Share on other sites

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

Link to comment
Share on other sites

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 by KerbMav
Link to comment
Share on other sites

1 minute ago, Gordon Dry said:

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

Are you missing a @ at some values maybe?

Link to comment
Share on other sites

14 minutes ago, KerbMav said:

Are you missing a @ at some values maybe?

:sticktongue: 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 by Gordon Dry
Link to comment
Share on other sites

@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? :wink:

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 by KerbMav
Link to comment
Share on other sites

@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
	}

}

 

Link to comment
Share on other sites

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 by Gordon Dry
Link to comment
Share on other sites

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 by Gordon Dry
Link to comment
Share on other sites

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.

Link to comment
Share on other sites

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

Edited by Gordon Dry
Link to comment
Share on other sites

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 by KerbMav
Link to comment
Share on other sites

@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 by KerbMav
Link to comment
Share on other sites

I switched from ModuleFuelTanks type = LifeSupportAll to type = ServiceModule

I did that because

  1. the crewed parts are no "LifeSupport-Containers"
  2. the TAC-LS resources are already in
  3. ElectricCharge is already in (which I wanted to include whatsoever)
  4. I only have to add ReservePower (when AmpYear is present)
  5. 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 by Gordon Dry
Link to comment
Share on other sites

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$

 

Link to comment
Share on other sites

I also tried that but testing various possibilities perhaps there is a combination where I have missed it ... :D

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 by Gordon Dry
Link to comment
Share on other sites

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 :mad:
  • 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 by Gordon Dry
Link to comment
Share on other sites

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:
Ndtx1fc.png

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 by Gordon Dry
...and I found something else
Link to comment
Share on other sites

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:
Cg3SEoX.png

The log:
https://www.dropbox.com/s/khxmevqqu2z9iyq/2017-08-04-2 KSP.log.zip?dl=1

Link to comment
Share on other sites

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

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Create New...