Jump to content

[1.8-1.9] Modular Fuel Tanks v5.13.1


Recommended Posts

Here, a ship that exhibits the behaviour. Mods needed are MFT, stretchytanks, mechjeb2, KJR. You'll have to use hyperedit to put it in orbit somewhere, then turn on SmartASS to point in a fixed direction (prograde / retrograde), max the engine thrust then activate the stage, see it spinning :) Lots of roll, some yaw too (if you cut off you'll notice MJ compensating for the yaw).

Get the craft file there:

http://ge.tt/7LsyqgC1/v/0?c

it's called BalancedTest.

Link to post
Share on other sites

Ok, now I'm confused. I read your whole thread, downloaded correctly, have a lot of compatible mods and…. Nothing. I have no idea what to even do. I am in the VAB and the take says it is compatible and the log says that modular fuels tanks there, but I have no Idea how to use. Right click do nothing. Thanks!

Link to post
Share on other sites
Ok, now I'm confused. I read your whole thread, downloaded correctly, have a lot of compatible mods and…. Nothing. I have no idea what to even do. I am in the VAB and the take says it is compatible and the log says that modular fuels tanks there, but I have no Idea how to use. Right click do nothing. Thanks!

Try opening up the Action Group editor, and clicking on your fuel tank. Should see a new window appear on the left beneath your action groups.

Link to post
Share on other sites

From a long discussion with NathanKell:

How to make new tanks and/or make parts use MFT tanks

First you need a TANK_DEFINITION, which has the following fields:

  • name = the name of the TANK_DEFINITION.
  • basemass = modifies the dry mass of the part. Use a value to replace the part's mass, like 0.01. Add " * volume" after the value to make it depend on the tank volume, like "0.0002 * volume". Or use -1 to leave the part's mass alone.
  • One or more TANK blocks.

TANK has the following fields:

  • name = the name of the resource held in the tank
  • amount = can be "full" which means the tank will start with maxAmount, or a number which means the tank will start with that amount (clamped so that it is not more than maxAmount), or a number% which means that percentage of maxAmount. So 50% will be maxAmount * 0.50.
  • maxAmount = either a number, which is an absolute number of units, or a percent, which is a ratio of tank space. If the maxAmounts exceed 100% of the volume, they are allocated in order with any excess being ignored.
  • utilization = a multiplier that is applied to the maxAmount. Can be used when storing gases under pressure, like 150 = 150bar, or can account for insulation, like LOx used to be 0.975 to account for insulation.
  • mass = mass in tons per volume unit devoted to this tank, added to the part's base mass.
  • temperature = the temperature the resource is stored at, i.e. close to absolute 0 for LH2 or -186C for LOx
  • loss_rate = controls how fast the resource is lost. The boiloff = loss_rate * maxAmount * (current_temp - desired_temp) * time elapsed.
  • note = a note about what's inside. Examples: "(requires insulation)" or "(pressurized)"
  • fillable = a bool value that indicates whether the resource is fillable in the editor or if it always starts empty. For example, Kethane tanks launch empty and their amount cannot be changed in the editor.

An example:

TANK_DEFINITION
{
name = Default
basemass = 0.000625 * volume
TANK
{
name = LiquidFuel
amount = full
maxAmount = 45%
}
TANK
{
name = Oxidizer
amount = full
maxAmount = 55%
}
TANK
{
name = MonoPropellant
mass = 0.000625
amount = 0.0
maxAmount = 0.0
}
TANK
{
name = XenonGas
mass = 0.000625
amount = 0.0
maxAmount = 0.0
utilization = 56.0
note = (pressurized)
}
}

When adding an MFT tank to a part, add the ModuleFuelTanks MODULE to the part's cfg file with:

  • volume = total volume units that the tank can hold
  • type = the TANK_DEFINITION name
  • basemass = if given, it overrides the basemass specified in the TANK_DEFINITION.

Example:

MODULE
{
name = ModuleFuelTanks
volume = 400
type = Default
}

Note that MFT comes preconfigured with some tank definitions you can use, and they contain the following resources:

  • Default = LiquidFuel (full), Oxidizer (full), MonoPropellant, XenonGas
  • Fuselage = LiquidFuel (full), Oxidizer, MonoPropellant, XenonGas
  • Structural = LiquidFuel, Oxidizer, MonoPropellant, XenonGas
  • Cryogenic = LiquidFuel (full), Oxidizer (full), MonoPropellant, XenonGas
  • Jet = LiquidFuel (full)
  • Oxy = Oxidizer (full)
  • RCS = MonoPropellant (full)
  • RCSHighEfficiency = MonoPropellant (full)
  • Xenon = XenonGas (full)
  • ServiceModule = LiquidFuel (full), Oxidizer (full), MonoPropellant (full), ElectricCharge (full)
  • Solid = SolidFuel (full)
  • Balloon = LiquidFuel (full), Oxidizer (full), MonoPropellant, XenonGas
  • BalloonCryo = LiquidFuel (full), Oxidizer (full), MonoPropellant, XenonGas

Edited by TaranisElsu
Corrected for v4.2 changes
Link to post
Share on other sites
From a long discussion with NathanKell:

How to make new tanks and/or make parts use MFT tanks

First you need a TANK_DEFINITION, which has the following fields:

  • name = the name of the TANK_DEFINITION.
  • basemass = modifies the dry mass of the part. Use a value to replace the part's mass, like 0.01. Add " * volume" after the value to make it depend on the tank volume, like "0.0002 * volume". Or use -1 to leave the part's mass alone.
  • One or more TANK blocks.

TANK has the following fields:

  • name = the name of the resource held in the tank
  • amount = a ratio from 0.0 to 1.0 of the maxAmount. You can also use "full" which means the same thing as 1.0.
  • maxAmount = either a number, which is an absolute number of units, or a percent, which is a ratio of tank space. If the maxAmounts exceed 100% of the volume, they are allocated in order with any excess being ignored.
  • utilization = a multiplier that is applied to the maxAmount. Can be used when storing gases under pressure, like 150 = 150bar, or can account for insulation, like LOx used to be 0.975 to account for insulation.
  • mass = mass in tons per volume unit devoted to this tank, added to the part's base mass.
  • temperature = the temperature the resource is stored at, i.e. close to absolute 0 for LH2 or -186C for LOx
  • loss_rate = controls how fast the resource is lost. The boiloff = loss_rate * maxAmount * (current_temp - desired_temp) * time elapsed.
  • note = a note about what's inside. Examples: "(requires insulation)" or "(pressurized)"
  • fillable = a bool value that indicates whether the resource is fillable in the editor or if it always starts empty. For example, Kethane tanks launch empty and their amount cannot be changed in the editor.

An example:

TANK_DEFINITION
{
name = Default
basemass = 0.000625 * volume
TANK
{
name = LiquidFuel
amount = full
maxAmount = 45%
}
TANK
{
name = Oxidizer
amount = full
maxAmount = 55%
}
TANK
{
name = MonoPropellant
mass = 0.000625
amount = 0.0
maxAmount = 0.0
}
TANK
{
name = XenonGas
mass = 0.000625
amount = 0.0
maxAmount = 0.0
utilization = 56.0
note = (pressurized)
}
}

When adding an MFT tank to a part, add the ModuleFuelTanks MODULE to the part's cfg file with:

  • volume = total volume units that the tank can hold
  • type = the TANK_DEFINITION name
  • basemass = if given, it overrides the basemass specified in the TANK_DEFINITION.

Example:

MODULE
{
name = ModuleFuelTanks
volume = 400
type = Default
}

Note that MFT comes preconfigured with some tank definitions you can use, and they contain the following resources:

  • Default = LiquidFuel (full), Oxidizer (full), MonoPropellant, XenonGas
  • Fuselage = LiquidFuel (full), Oxidizer, MonoPropellant, XenonGas
  • Structural = LiquidFuel, Oxidizer, MonoPropellant, XenonGas
  • Cryogenic = LiquidFuel (full), Oxidizer (full), MonoPropellant, XenonGas
  • Jet = LiquidFuel (full)
  • Oxy = Oxidizer (full)
  • RCS = MonoPropellant (full)
  • RCSHighEfficiency = MonoPropellant (full)
  • Xenon = XenonGas (full)
  • ServiceModule = LiquidFuel (full), Oxidizer (full), MonoPropellant (full), ElectricCharge (full)
  • Solid = SolidFuel (full)
  • Balloon = LiquidFuel (full), Oxidizer (full), MonoPropellant, XenonGas
  • BalloonCryo = LiquidFuel (full), Oxidizer (full), MonoPropellant, XenonGas

This is still somewhat confusing to me. I'm trying to get it so I can swap LFO tanks to Liquid Methane/Oxidizer tanks.

Link to post
Share on other sites

Javaii: create a new CFG file somewhere in GameData. Call it whatever you like.cfg

Put this in it, where METHANE is whatever your Liquid Methane resource's name is.

@TANK_DEFINITION[Default]
{
TANK
{
name = METHANE
amount = 0.0
maxAmount = 0.0
}
}

Presto. Now you'll be able to remove LF and add Methane to all your type-Default tanks (most all LFO tanks).

Link to post
Share on other sites
Javaii: create a new CFG file somewhere in GameData. Call it whatever you like.cfg

Put this in it, where METHANE is whatever your Liquid Methane resource's name is.

@TANK_DEFINITION[Default]
{
TANK
{
name = METHANE
amount = 0.0
maxAmount = 0.0
}
}

Presto. Now you'll be able to remove LF and add Methane to all your type-Default tanks (most all LFO tanks).

I figured out the process of how to add new definitions so that I can swap fuel around easily, the harder part was figuring out the mix I needed. I'm good now that I've figured it all out, and thanks for replying

Link to post
Share on other sites

So, the KSPX definition of cl_small_xenonTank in MFT says 300, but original fuel tank says 3000. While 3000 might be a bit much (if dry mass scales with surface area and volume goes with 3/2 of said scale, then I think it sould be 2602, and that's quite a lot of xenon gas), 300 is actually less than the stock micro tank (700).

Link to post
Share on other sites

TaranisElsu: note this means an update of your excellent post is necessary (since I changed how amount works). It now works as follows:

If amount = full, then it will be set to maxAmount for the tank.

If amount = some number, then it will be set to that number (and clamped so it's not more than the maxAmount).

if amount = some number% (like 50%) then it will be set to maxAmount * this, so if amount = 50%, then the tank will start half-full.

Link to post
Share on other sites
  • 2 weeks later...

Is there any way to turn off the debug log spam for this mod? I get something like this every time I switch to a new craft, which makes it really hard to check for any possible interactions between what I am writing and other mods.

Thanks.

========ModuleFuelTanks.OnSave called. Node is:=======

(Filename: C:/BuildAgent/work/ea95e74f6e5f192d/Runtime/ExportGenerated/StandalonePlayer/UnityEngineDebug.cpp Line: 54)

MODULE
{
name = ModuleFuelTanks
isEnabled = True
timestamp = 108172223.281308
basemass = 0.0625
basemassPV = 0.000625
volume = 100
EVENTS
{
}
ACTIONS
{
}
}


(Filename: C:/BuildAgent/work/ea95e74f6e5f192d/Runtime/ExportGenerated/StandalonePlayer/UnityEngineDebug.cpp Line: 54)

========ModuleFuelTanks.OnSave adding subNode:========

(Filename: C:/BuildAgent/work/ea95e74f6e5f192d/Runtime/ExportGenerated/StandalonePlayer/UnityEngineDebug.cpp Line: 54)

TANK
{
name = LiquidFuel
utilization = 1
mass = 0
temperature = 300
loss_rate = 0
fillable = True
note =
amount = 45
maxAmount = 45
}


(Filename: C:/BuildAgent/work/ea95e74f6e5f192d/Runtime/ExportGenerated/StandalonePlayer/UnityEngineDebug.cpp Line: 54)

========ModuleFuelTanks.OnSave adding subNode:========

(Filename: C:/BuildAgent/work/ea95e74f6e5f192d/Runtime/ExportGenerated/StandalonePlayer/UnityEngineDebug.cpp Line: 54)

TANK
{
name = Oxidizer
utilization = 1
mass = 0
temperature = 300
loss_rate = 0
fillable = True
note =
amount = 55
maxAmount = 55
}


(Filename: C:/BuildAgent/work/ea95e74f6e5f192d/Runtime/ExportGenerated/StandalonePlayer/UnityEngineDebug.cpp Line: 54)

========ModuleFuelTanks.OnSave adding subNode:========

(Filename: C:/BuildAgent/work/ea95e74f6e5f192d/Runtime/ExportGenerated/StandalonePlayer/UnityEngineDebug.cpp Line: 54)

TANK
{
name = MonoPropellant
utilization = 1
mass = 0.000625
temperature = 300
loss_rate = 0
fillable = True
note =
amount = 0
maxAmount = 0
}


(Filename: C:/BuildAgent/work/ea95e74f6e5f192d/Runtime/ExportGenerated/StandalonePlayer/UnityEngineDebug.cpp Line: 54)

========ModuleFuelTanks.OnSave adding subNode:========

(Filename: C:/BuildAgent/work/ea95e74f6e5f192d/Runtime/ExportGenerated/StandalonePlayer/UnityEngineDebug.cpp Line: 54)

TANK
{
name = XenonGas
utilization = 56
mass = 0.000625
temperature = 300
loss_rate = 0
fillable = True
note = (pressurized)
amount = 0
maxAmount = 0
}


(Filename: C:/BuildAgent/work/ea95e74f6e5f192d/Runtime/ExportGenerated/StandalonePlayer/UnityEngineDebug.cpp Line: 54)

========ModuleFuelTanks.OnSave called. Node is:=======

(Filename: C:/BuildAgent/work/ea95e74f6e5f192d/Runtime/ExportGenerated/StandalonePlayer/UnityEngineDebug.cpp Line: 54)

MODULE
{
name = ModuleFuelTanks
isEnabled = True
timestamp = 108172223.281308
basemass = 0.00875
basemassPV = 0.0007
volume = 12.5
EVENTS
{
}
ACTIONS
{
}
}


(Filename: C:/BuildAgent/work/ea95e74f6e5f192d/Runtime/ExportGenerated/StandalonePlayer/UnityEngineDebug.cpp Line: 54)

========ModuleFuelTanks.OnSave adding subNode:========

(Filename: C:/BuildAgent/work/ea95e74f6e5f192d/Runtime/ExportGenerated/StandalonePlayer/UnityEngineDebug.cpp Line: 54)

TANK
{
name = LiquidFuel
utilization = 1
mass = 0
temperature = 300
loss_rate = 0
fillable = True
note =
amount = 5.625
maxAmount = 5.625
}


(Filename: C:/BuildAgent/work/ea95e74f6e5f192d/Runtime/ExportGenerated/StandalonePlayer/UnityEngineDebug.cpp Line: 54)

========ModuleFuelTanks.OnSave adding subNode:========

(Filename: C:/BuildAgent/work/ea95e74f6e5f192d/Runtime/ExportGenerated/StandalonePlayer/UnityEngineDebug.cpp Line: 54)

TANK
{
name = Oxidizer
utilization = 1
mass = 0
temperature = 300
loss_rate = 0
fillable = True
note =
amount = 6.875
maxAmount = 6.875
}


(Filename: C:/BuildAgent/work/ea95e74f6e5f192d/Runtime/ExportGenerated/StandalonePlayer/UnityEngineDebug.cpp Line: 54)

========ModuleFuelTanks.OnSave adding subNode:========

(Filename: C:/BuildAgent/work/ea95e74f6e5f192d/Runtime/ExportGenerated/StandalonePlayer/UnityEngineDebug.cpp Line: 54)

TANK
{
name = MonoPropellant
utilization = 1
mass = 0.000625
temperature = 300
loss_rate = 0
fillable = True
note =
amount = 0
maxAmount = 0
}


(Filename: C:/BuildAgent/work/ea95e74f6e5f192d/Runtime/ExportGenerated/StandalonePlayer/UnityEngineDebug.cpp Line: 54)

========ModuleFuelTanks.OnSave adding subNode:========

(Filename: C:/BuildAgent/work/ea95e74f6e5f192d/Runtime/ExportGenerated/StandalonePlayer/UnityEngineDebug.cpp Line: 54)

TANK
{
name = XenonGas
utilization = 56
mass = 0.000625
temperature = 300
loss_rate = 0
fillable = True
note = (pressurized)
amount = 0
maxAmount = 0
}


(Filename: C:/BuildAgent/work/ea95e74f6e5f192d/Runtime/ExportGenerated/StandalonePlayer/UnityEngineDebug.cpp Line: 54)

========ModuleFuelTanks.OnSave called. Node is:=======

(Filename: C:/BuildAgent/work/ea95e74f6e5f192d/Runtime/ExportGenerated/StandalonePlayer/UnityEngineDebug.cpp Line: 54)

MODULE
{
name = ModuleFuelTanks
isEnabled = True
timestamp = 108172223.281308
basemass = 0.05
basemassPV = 0.001
volume = 50
EVENTS
{
}
ACTIONS
{
}
}


(Filename: C:/BuildAgent/work/ea95e74f6e5f192d/Runtime/ExportGenerated/StandalonePlayer/UnityEngineDebug.cpp Line: 54)

========ModuleFuelTanks.OnSave adding subNode:========

(Filename: C:/BuildAgent/work/ea95e74f6e5f192d/Runtime/ExportGenerated/StandalonePlayer/UnityEngineDebug.cpp Line: 54)

TANK
{
name = MonoPropellant
utilization = 1
mass = 0
temperature = 300
loss_rate = 0
fillable = True
note =
amount = 37.1729218987963
maxAmount = 50
}


(Filename: C:/BuildAgent/work/ea95e74f6e5f192d/Runtime/ExportGenerated/StandalonePlayer/UnityEngineDebug.cpp Line: 54)

========ModuleFuelTanks.OnSave called. Node is:=======

(Filename: C:/BuildAgent/work/ea95e74f6e5f192d/Runtime/ExportGenerated/StandalonePlayer/UnityEngineDebug.cpp Line: 54)

MODULE
{
name = ModuleFuelTanks
isEnabled = True
timestamp = 108172223.281308
basemass = 0.00875
basemassPV = 0.0007
volume = 12.5
EVENTS
{
}
ACTIONS
{
}
}


(Filename: C:/BuildAgent/work/ea95e74f6e5f192d/Runtime/ExportGenerated/StandalonePlayer/UnityEngineDebug.cpp Line: 54)

========ModuleFuelTanks.OnSave adding subNode:========

(Filename: C:/BuildAgent/work/ea95e74f6e5f192d/Runtime/ExportGenerated/StandalonePlayer/UnityEngineDebug.cpp Line: 54)

TANK
{
name = LiquidFuel
utilization = 1
mass = 0
temperature = 300
loss_rate = 0
fillable = True
note =
amount = 5.625
maxAmount = 5.625
}


(Filename: C:/BuildAgent/work/ea95e74f6e5f192d/Runtime/ExportGenerated/StandalonePlayer/UnityEngineDebug.cpp Line: 54)

========ModuleFuelTanks.OnSave adding subNode:========

(Filename: C:/BuildAgent/work/ea95e74f6e5f192d/Runtime/ExportGenerated/StandalonePlayer/UnityEngineDebug.cpp Line: 54)

TANK
{
name = Oxidizer
utilization = 1
mass = 0
temperature = 300
loss_rate = 0
fillable = True
note =
amount = 6.875
maxAmount = 6.875
}


(Filename: C:/BuildAgent/work/ea95e74f6e5f192d/Runtime/ExportGenerated/StandalonePlayer/UnityEngineDebug.cpp Line: 54)

========ModuleFuelTanks.OnSave adding subNode:========

(Filename: C:/BuildAgent/work/ea95e74f6e5f192d/Runtime/ExportGenerated/StandalonePlayer/UnityEngineDebug.cpp Line: 54)

TANK
{
name = MonoPropellant
utilization = 1
mass = 0.000625
temperature = 300
loss_rate = 0
fillable = True
note =
amount = 0
maxAmount = 0
}


(Filename: C:/BuildAgent/work/ea95e74f6e5f192d/Runtime/ExportGenerated/StandalonePlayer/UnityEngineDebug.cpp Line: 54)

========ModuleFuelTanks.OnSave adding subNode:========

(Filename: C:/BuildAgent/work/ea95e74f6e5f192d/Runtime/ExportGenerated/StandalonePlayer/UnityEngineDebug.cpp Line: 54)

TANK
{
name = XenonGas
utilization = 56
mass = 0.000625
temperature = 300
loss_rate = 0
fillable = True
note = (pressurized)
amount = 0
maxAmount = 0
}


(Filename: C:/BuildAgent/work/ea95e74f6e5f192d/Runtime/ExportGenerated/StandalonePlayer/UnityEngineDebug.cpp Line: 54)

========ModuleFuelTanks.OnSave called. Node is:=======

(Filename: C:/BuildAgent/work/ea95e74f6e5f192d/Runtime/ExportGenerated/StandalonePlayer/UnityEngineDebug.cpp Line: 54)

MODULE
{
name = ModuleFuelTanks
isEnabled = True
timestamp = 108172223.281308
basemass = 0.05
basemassPV = 0.001
volume = 50
EVENTS
{
}
ACTIONS
{
}
}


(Filename: C:/BuildAgent/work/ea95e74f6e5f192d/Runtime/ExportGenerated/StandalonePlayer/UnityEngineDebug.cpp Line: 54)

========ModuleFuelTanks.OnSave adding subNode:========

(Filename: C:/BuildAgent/work/ea95e74f6e5f192d/Runtime/ExportGenerated/StandalonePlayer/UnityEngineDebug.cpp Line: 54)

TANK
{
name = MonoPropellant
utilization = 1
mass = 0
temperature = 300
loss_rate = 0
fillable = True
note =
amount = 37.1729218987963
maxAmount = 50
}


(Filename: C:/BuildAgent/work/ea95e74f6e5f192d/Runtime/ExportGenerated/StandalonePlayer/UnityEngineDebug.cpp Line: 54)

Node Saver saved 0 nodes.

(Filename: C:/BuildAgent/work/ea95e74f6e5f192d/Runtime/ExportGenerated/StandalonePlayer/UnityEngineDebug.cpp Line: 54)

========ModuleFuelTanks.OnSave called. Node is:=======

(Filename: C:/BuildAgent/work/ea95e74f6e5f192d/Runtime/ExportGenerated/StandalonePlayer/UnityEngineDebug.cpp Line: 54)

MODULE
{
name = ModuleFuelTanks
isEnabled = True
timestamp = 108172223.281308
basemass = 0.0625
basemassPV = 0.000625
volume = 100
EVENTS
{
}
ACTIONS
{
}
}


(Filename: C:/BuildAgent/work/ea95e74f6e5f192d/Runtime/ExportGenerated/StandalonePlayer/UnityEngineDebug.cpp Line: 54)

========ModuleFuelTanks.OnSave adding subNode:========

(Filename: C:/BuildAgent/work/ea95e74f6e5f192d/Runtime/ExportGenerated/StandalonePlayer/UnityEngineDebug.cpp Line: 54)

TANK
{
name = LiquidFuel
utilization = 1
mass = 0
temperature = 300
loss_rate = 0
fillable = True
note =
amount = 12.7198847251686
maxAmount = 45
}


(Filename: C:/BuildAgent/work/ea95e74f6e5f192d/Runtime/ExportGenerated/StandalonePlayer/UnityEngineDebug.cpp Line: 54)

========ModuleFuelTanks.OnSave adding subNode:========

(Filename: C:/BuildAgent/work/ea95e74f6e5f192d/Runtime/ExportGenerated/StandalonePlayer/UnityEngineDebug.cpp Line: 54)

TANK
{
name = Oxidizer
utilization = 1
mass = 0
temperature = 300
loss_rate = 0
fillable = True
note =
amount = 15.5465238749161
maxAmount = 55
}


(Filename: C:/BuildAgent/work/ea95e74f6e5f192d/Runtime/ExportGenerated/StandalonePlayer/UnityEngineDebug.cpp Line: 54)

========ModuleFuelTanks.OnSave adding subNode:========

(Filename: C:/BuildAgent/work/ea95e74f6e5f192d/Runtime/ExportGenerated/StandalonePlayer/UnityEngineDebug.cpp Line: 54)

TANK
{
name = MonoPropellant
utilization = 1
mass = 0.000625
temperature = 300
loss_rate = 0
fillable = True
note =
amount = 0
maxAmount = 0
}


(Filename: C:/BuildAgent/work/ea95e74f6e5f192d/Runtime/ExportGenerated/StandalonePlayer/UnityEngineDebug.cpp Line: 54)

========ModuleFuelTanks.OnSave adding subNode:========

(Filename: C:/BuildAgent/work/ea95e74f6e5f192d/Runtime/ExportGenerated/StandalonePlayer/UnityEngineDebug.cpp Line: 54)

TANK
{
name = XenonGas
utilization = 56
mass = 0.000625
temperature = 300
loss_rate = 0
fillable = True
note = (pressurized)
amount = 0
maxAmount = 0
}


(Filename: C:/BuildAgent/work/ea95e74f6e5f192d/Runtime/ExportGenerated/StandalonePlayer/UnityEngineDebug.cpp Line: 54)

========ModuleFuelTanks.OnSave called. Node is:=======

(Filename: C:/BuildAgent/work/ea95e74f6e5f192d/Runtime/ExportGenerated/StandalonePlayer/UnityEngineDebug.cpp Line: 54)

MODULE
{
name = ModuleFuelTanks
isEnabled = True
timestamp = 108172223.281308
basemass = 0.0625
basemassPV = 0.000625
volume = 100
EVENTS
{
}
ACTIONS
{
}
}


(Filename: C:/BuildAgent/work/ea95e74f6e5f192d/Runtime/ExportGenerated/StandalonePlayer/UnityEngineDebug.cpp Line: 54)

========ModuleFuelTanks.OnSave adding subNode:========

(Filename: C:/BuildAgent/work/ea95e74f6e5f192d/Runtime/ExportGenerated/StandalonePlayer/UnityEngineDebug.cpp Line: 54)

TANK
{
name = LiquidFuel
utilization = 1
mass = 0
temperature = 300
loss_rate = 0
fillable = True
note =
amount = 12.7198847251686
maxAmount = 45
}


(Filename: C:/BuildAgent/work/ea95e74f6e5f192d/Runtime/ExportGenerated/StandalonePlayer/UnityEngineDebug.cpp Line: 54)

========ModuleFuelTanks.OnSave adding subNode:========

(Filename: C:/BuildAgent/work/ea95e74f6e5f192d/Runtime/ExportGenerated/StandalonePlayer/UnityEngineDebug.cpp Line: 54)

TANK
{
name = Oxidizer
utilization = 1
mass = 0
temperature = 300
loss_rate = 0
fillable = True
note =
amount = 15.5465238749161
maxAmount = 55
}


(Filename: C:/BuildAgent/work/ea95e74f6e5f192d/Runtime/ExportGenerated/StandalonePlayer/UnityEngineDebug.cpp Line: 54)

========ModuleFuelTanks.OnSave adding subNode:========

(Filename: C:/BuildAgent/work/ea95e74f6e5f192d/Runtime/ExportGenerated/StandalonePlayer/UnityEngineDebug.cpp Line: 54)

TANK
{
name = MonoPropellant
utilization = 1
mass = 0.000625
temperature = 300
loss_rate = 0
fillable = True
note =
amount = 0
maxAmount = 0
}


(Filename: C:/BuildAgent/work/ea95e74f6e5f192d/Runtime/ExportGenerated/StandalonePlayer/UnityEngineDebug.cpp Line: 54)

========ModuleFuelTanks.OnSave adding subNode:========

(Filename: C:/BuildAgent/work/ea95e74f6e5f192d/Runtime/ExportGenerated/StandalonePlayer/UnityEngineDebug.cpp Line: 54)

TANK
{
name = XenonGas
utilization = 56
mass = 0.000625
temperature = 300
loss_rate = 0
fillable = True
note = (pressurized)
amount = 0
maxAmount = 0
}

Link to post
Share on other sites
What? You don't like the information? How...

Sorry, no easy way without going through the code, commenting out all the prints (Debug.Logcalls?) and recompiling. I'll get it for the next release, though.

You could easily set it up to be a configurable value. You could even have it on by default. I understand the value of the information for debugging, it would just be nice to be able to turn it off because of the frequency. Thanks!

Link to post
Share on other sites

You first have to find the actual volume of the tank in cubic meters. Then just multiply that by 200 for stock fuels, or 1000 for RF, to give the tank's capacity in resource units. Keep in mind that there will be "waste space" dedicated to structure (eg, the Jumbo-64 is big enough to hold more than 6400u of LFO, but it seems the take may internally be a capsule rather than a cylinder: then the numbers work out almost perfectly).

Link to post
Share on other sites
What? You don't like the information? How...

Sorry, no easy way without going through the code, commenting out all the prints (Debug.Logcalls?) and recompiling. I'll get it for the next release, though.

No, just reconfigure for release instead of debug and recompile.

I was also tired of seeing all the debug information and that's what I did to get rid of it. (actually only did that because I have to reload database frequently due to parts development and the extra debugging logs were slowing it down noticeably)

Link to post
Share on other sites
  • 2 weeks later...

Ok, there is a bug with the default maximum amounts: they try to use 110% of the available volume.

However, the max volume issue is possibly a bug in SDHI. Either it specifies too low a volume for the part, or it specifies too much electric charge. MFT's ServiceModule tank definition specifies 60u of electric charge for each volume unit. So the options are to up the SDHI specified volume from 902 to 3.33333333333333, change the untilization in the MFT config (or make a new tank defintion), or live with the difference. If you do change the untilization, I suggest going to 50 and upping the volume to 904.

Link to post
Share on other sites
This thread is quite old. Please consider starting a new thread rather than reviving this one.

Join the conversation

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

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

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

×   Your previous content has been restored.   Clear editor

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

×
×
  • Create New...