Giter Site home page Giter Site logo

jadeofmaar / rationalresources Goto Github PK

View Code? Open in Web Editor NEW
8.0 5.0 18.0 57.71 MB

Strips out CRP default distributions and applies resources by logical body composition

Home Page: https://forum.kerbalspaceprogram.com/topic/184875-*/

License: MIT License

isru kerbal-space-program ksp resources

rationalresources's Introduction

RRlogo

Rational Resources

Rational Resources is inspired by Realistic Atmospheres made by OhioBob and operates on the KSP Community Resource Pack or WBI Classic Stock. Rational Resources strips out the entirely random resource distributions and applies "distribution templates" (carefully configured groups of resource distributions) according to the logically expected class and composition of a body. While this mod is installed, un-configured bodies will have no resources at all.

This mod enables planet makers to easily assign these distribution templates to their planet packs and skip the headaches of figuring out and writing the individual nodes themselves, and assorting all of their writings into several per-resource config files.

Resource Distribution Templates

The following templates have been made available. Unique entries are templates exclusive to a stock planet, designed either to make that planet resemble a real life celestial body or because it is an extreme oddity.

  • Eve, a hybrid class methane + metal world, is not known (to me anyway) to be possible.
  • Minmus, an entirely ice world cannot exist in the habitable zone of a star. It is made to possess Nitrogen and no metals.
  • Mun, as the real Moon, is made to possess a large fraction of Oxygen and MetalOre.
  • Duna, akin to Mars, is given a strong presence of CarbonDioxide, Minerals and MetalOre.

The Star series templates apply resource bands in the vein of Stellar Populations, automatically making them all viable as mining destinations for interstellar vessels. Population 1 is current and rich with many common resources while the later ones retreat in time to a younger universe and become increasingly abundant in only Hydrogen and CRP's Antimatter or Classic Stock's Graviolium.

Surface Ocean Atmosphere Exo (Trace)
Rock Terra Default (CO2-rich) Rock
Silica Nitrogen Terra Ice
Vulcan Methane Vulcan None
Rock-Metal Ammonia Steam
Rock-Ice Lava Steam (+ CO2)
Ice-Water Mud (Warm) Steam (+ N2)
Ice-Methane Mud (Cold) Ice-Water (Thick, N2-rich)
Ice-Nitrogen Oxygen Ice-Water (Thin, CO2-rich)
Alumina Oxygen (+ N2) Ice-Ammonia
Metal-Carbon Oxygen (+ CO2) Ice-Methane
Metal-Sulfur Acid Ice-Nitrogen
Rock-Mineral Kerosene Oxygen
Gas (Helium)
Gas (Sudarsky I)
Gas (Sudarsky II)
Gas (Sudarsky III)
Gas (Sudarsky IV)
Gas (Sudarsky V)
Star (Population 1)
Star (Population 2)
Star (Population 3)
Star (Carbon)
Star (Dying Red Giant)
Star (Neutron)
Black Hole
Worm Hole

Active Resources

With some partial respect to realism, this mod drastically reduces the presence of the stock "Ore" resource in order to starve the use of this omnipotent and exceedingly abstracted resource, and to encourage the use of the distinct and specialized resources, and to encourage creation and use of the part mods that revolve around these. The exact resources used are named below as a heads-up to players:

Surface and Atmosphere resources

  • Ammonia, CarbonDioxide, ExoticMinerals, Gypsum, LqdHe3, Hydrates, Hydrogen, MetalOre, MetallicOre, Methane, Minerals, Nitrogen, Ore, Oxygen, RareMetals, Rock, Silicates, Substrate, Uraninite, Water.

Ocean resources

  • Carbon, ExoticMinerals, Gypsum, LqdAmmonia, LqdCO2, LqdMethane, LqdNitrogen, LqdOxygen, MetalOre, MetallicOre, Minerals, RareMetals, Rock, Water.

Star resources

  • Ammonia, Antimatter, Carbon Dioxide, LqdHe3, Hydrogen, LqdDeuterium, Methane, Nitrogen, Oxygen, XenonGas.

ISRU

With omnipotent Ore being stripped of its Godhood, the following ISRU chains are proposed and encouraged for use by seasoned modders. Ore abundance is capped to 5% and its presence chance to 80%. It will be inconvenient for most players... but it will still be around.

Ore tanks will be changed via B9 Part Switch, to hold the cryogenic input resources. The intended ISRU chains that will be provided can be viewed in Issue #1.

Compatibility

Rational Resources purges resource distributions placed by most other mods. Untagged resource distributions are all deleted in the ModuleManager :FOR[zRationalResources] pass. The whitelisting mentioned below largely only applies to global/universal placements, and nearly no specific/per-planet placements in order to prevent unwanted high concentrations like Karbonite on Eve.

Whitelisted resources

  • Antimatter, ArgonGas, LqdHe3, LqdDeuterium, LqdHydrogen, XenonGas. (used by at least the Near Future Tech and Far Future Tech mods).
  • Not Dirt (used only by USI MKS. Its absence should be but a minor hurdle to MKS players).

Easy and full compatibility is granted between a configured planet pack and the following mods:

  • Kerbalism
  • TAC Life Support
  • Near Future Tech suite
  • Cryogenic Engines
  • Kerbal Atomics

rationalresources's People

Contributors

0xe1e10 avatar clamp-o-tron avatar dangaffa avatar dasskelett avatar gordon-dry avatar hebarusan avatar hemeac avatar iiodyne avatar jadeofmaar avatar louisb3 avatar vaskritaya avatar velcroish avatar veronikakerman avatar vexxel avatar yalov avatar zer0kerbal avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar

rationalresources's Issues

Opt-in system for RCS

For your consideration: a patch that adapts NuclearFamily-style opt-in tagging for cold-gas and bipropellant RCS. Based on the existing RR patches for monoprop and LFO RCS.

Supported RCS types and play modes:

  • CRP & Monoprop
  • CRP & LFO
  • WBI Classic Stock & Monoprop
  • but not WBI Classic Stock with LFO. (I don't play WBICS personally and the stock vernier patch didn't include this, so I have nothing to base it on)

Part packs supported and tested:

  • Stock
  • Restock Plus
  • Near Future Spacecraft
  • Near Future Launch Vehicles
  • Near Future Aeronautics
  • Mark IV Spaceplane System
  • Kerbal Reusability Expansion

Tested Parts

Potential conflicts to address:

  • This patch would supersede and replace the existing RR_ColdGasRCSStock patch in Extras.
  • This patch could supersede and replace the existing RCS-Vernier patch in RationalResourcesParts.
  • Tangentially related: RationalResourcesParts includes apparently redundant patches called ColdGasRCS and RCS-ColdGas.

I can submit as a PR if this is worthwhile - let me know of any needed details such as which branch to submit against, etc.

Bad install message is incorrect

The INSTALL_LOC stanza in the .version file is not correct. Getting the following dialog:

73617154-bf747b80-45e9-11ea-9edc-ef7dd1737d8a

The problem is in the .version files, in the INSTALL_LOC stanza.
You have:
"INSTALL_LOC":
{
"NAME": "JNSQ",
"PATH": "RationalResources/Version/RationalResources.version"
}
but the PATH cannot have the file there. YOu can do one of the following:

"INSTALL_LOC":
{
	"NAME": "RationalResources",
	"PATH": "",
	"DIRECTORY": "RationalResources/Version",
	"FILE": "RationalResources.version"
}

or:

"INSTALL_LOC":
{
"NAME": "RationalResources",
"PATH": "",
"FILE": "RationalResources/Version/RationalResources.version"
}

Hydrolox and methalox Twin-Boar/Pug variants still have kerolox Waterfall plumes.

When using RationalResourcesSquad together with CRP, Restock, and Restock+ the Twin-Boar and Pug engines gain the option to run on hydrolox, methalox, and carbon monoxide/lox in addition to the stock kerolox variant. However, with Waterfall and Waterfall Restock installed these variants all still use Waterfall's default kerolox engine plume textures. This is understandable for the carbon monoxide/lox variant since Waterfall doesn't come with a plume texture for that, but it does come with plume textures for hydrolox and kerolox engines.

Add RR Tank Switcher to NFLV Tanks

Request is in the title, I did try making a MM patch myself but got some errors, probably due to bad formatting/just copying and modifying code from the tankswitchforsquad.cfg.
By tank switcher I mean like liquid ammonia and such in said tanks, currently it's just LFO, Liquid Hydrogen, and Liquid Methane as options.

Inconsistent units per volume in RR tank definitions

The tank definitions in RationalResources/CRP/zTankTypes are inconsistent in how they define unitsPerVolume relative to the resource's defined volume in CRP. This results in tank variants that correctly hold 1/5 as many units of stock 5L/unit resources (e.g. Ore) as some 1L/unit CRP resources, but some other variants for 1L/unit CRP resources (e.g. Water) hold 5x as much as expected. See screenshots of stock ore tanks and SSPXR cargo containers for examples.

Screenshot 2020-12-20 00 18 55
Screenshot 2020-12-20 00 18 58
Screenshot 2020-12-20 00 19 26
Screenshot 2020-12-20 00 19 30

MPE Configs

Currently, there are no configurations for the Minor Planet Expansion.

I've created a simple config based on the real-world analogues for these bodies which you can include:

+PLANETARY_RESOURCE:HAS[#Tag[SrfSilica]]:NEEDS[MPE]
{
	@PlanetName = Edas
	@Tag = Applied
}
+PLANETARY_RESOURCE:HAS[#Tag[SrfRock]]:NEEDS[MPE]
{
	@PlanetName = Vant
	@Tag = Applied
}
+PLANETARY_RESOURCE:HAS[#Tag[SrfRockMetal]]:NEEDS[MPE]
{
	@PlanetName = Zore
	@Tag = Applied
}
+PLANETARY_RESOURCE:HAS[#Tag[SrfRockIce]]:NEEDS[MPE]
{
	@PlanetName = Lint-Mikey
	@Tag = Applied
}
+PLANETARY_RESOURCE:HAS[#Tag[SrfRockIce]]:NEEDS[MPE]
{
	@PlanetName = Crokslev
	@Tag = Applied
}
+PLANETARY_RESOURCE:HAS[#Tag[SrfIceNitrogen]]:NEEDS[MPE]
{
	@PlanetName = Geito
	@Tag = Applied
}
+PLANETARY_RESOURCE:HAS[#Tag[SrfIceWater]]:NEEDS[MPE]
{
	@PlanetName = Havous 
	@Tag = Applied
}
+PLANETARY_RESOURCE:HAS[#Tag[SrfIceWater]]:NEEDS[MPE]
{
	@PlanetName = Kal 
	@Tag = Applied
}
+PLANETARY_RESOURCE:HAS[#Tag[SrfIceWater]]:NEEDS[MPE]
{
	@PlanetName = Ki'Ki
	@Tag = Applied
}
+PLANETARY_RESOURCE:HAS[#Tag[SrfIceMethane]]:NEEDS[MPE]
{
	@PlanetName = Mracksis 
	@Tag = Applied
}
+PLANETARY_RESOURCE:HAS[#Tag[SrfIceNitrogen]]:NEEDS[MPE]
{
	@PlanetName = Flake 
	@Tag = Applied
}
+PLANETARY_RESOURCE:HAS[#Tag[SrfIceMethane]]:NEEDS[MPE]
{
	@PlanetName = Ervo 
	@Tag = Applied
}
+PLANETARY_RESOURCE:HAS[#Tag[SrfIceMethane]]:NEEDS[MPE]
{
	@PlanetName = Archae 
	@Tag = Applied
}
+PLANETARY_RESOURCE:HAS[#Tag[SrfIceMethane]]:NEEDS[MPE]
{
	@PlanetName = Soden
	@Tag = Applied
}
+PLANETARY_RESOURCE:HAS[#Tag[SrfIceMethane]]:NEEDS[MPE]
{
	@PlanetName = Lon
	@Tag = Applied
}

ModuleManager: 4 errors in RationalResourceParts (release 2.0.3)

I have 300 or so mods, but I think this one is not due to any interactions (Skyhawk Science System tech tree might be one possibility).

[LOG 19:42:27.241] Applying update RationalResourcesParts/Patches/Features_WrapperIntakes/@PART[RRIntakeWrap*]:AFTER[RationalResources] to RationalResourcesParts/Parts/WrapperIntake.cfg/PART[RRIntakeWrap125]
[WRN 19:42:27.242] Cannot find key RRPower in PART
[ERR 19:42:27.242] Error - Cannot parse variable search when editing key amount = #$/RRPower$
[WRN 19:42:27.242] Cannot find key RRPower in PART
[ERR 19:42:27.242] Error - Cannot parse variable search when editing key maxAmount = #$/RRPower$
[WRN 19:42:27.242] Cannot find key RRPower in PART
[ERR 19:42:27.242] Error - Cannot parse variable search when inserting new key Efficiency = #$/RRPower$
[WRN 19:42:27.242] Cannot find key RRPower in PART
[ERR 19:42:27.242] Error - Cannot parse variable search when editing key Ratio = #$/RRPower$

I believe, given there's another part which duplicates one and sets RRPower that the intention was to have multiple wrapper intakes, and this field got lost?

I fixed this by adding RRPower = 1 as shown below:

--- KSRSS/GameData/RationalResourcesParts/Parts/WrapperIntake.cfg	2024-02-18 18:52:47.536308100 -0800
+++ FIX/GameData/RationalResourcesParts/Parts/WrapperIntake.cfg	2024-02-18 19:59:42.489279100 -0800
@@ -24,6 +24,7 @@
 	fuelCrossFeed = True
 	bulkheadProfiles = size1, srf
 	tags = intake air breath
+	RRPower = 1
 	
 	NODE
 	{

To-Do

Tables

All existing ISRU chains.

Metals* includes the explict resources (MetallicOre, MetalOre, Metals, Metal, Aluminium) and may change in-game depending on the presence or absence of some mods or the modlet RationalResourcesAluminium

Default

Outputs (Misc) Inputs
Carbon Ore
CarbonDioxide Carbon + Oxygen
CarbonMonoxide Carbon + CarbonDioxide
CarbonMonoxide + Hydrogen Carbon + Water
LqdAmmonia LqdHydrogen + LqdNitrogen
LF LqdHydogen + Carbon
LFO LqdHydrogen + LqdCO2
MonoPropellant, LqdHydrogen LqdAmmonia
MonoPropellant LqdHydrogen + LqdNitrogen
Oxidizer LqdOxygen
Hydrolox Water
Methalox LqdHydrogen + LqdCO2
Outputs (Splitters) Inputs
Metals* + Oxygen Alumina
Carbon + Oxygen CarbonDioxide
Water, XenonGas, Metals*, ArgonGas, Oxygen Hydrates
RareMetals, Phosphorus, Oxygen Monazite
Oxygen + Silicon Silicates
Lithium + Metals* + Silicates Spodumene
Hydrogen + Oxygen + Deuterium Water

RealFuels

Outputs (Misc) Inputs
Aerozine50 MMH + UDMH
LqdHydrogen + LqdOxygen Water (Hydrolox)
Methalox LqdHydrogen + LqdCO2
Ethanol Carbon + LqdHydrogen + LqdOxygen
Ethanol + LqdHydrogen LqdMethane + LqdOxygen
Ethanol75 Carbon + LqdHydrogen + LqdOxygen + Water
Ethanol75 Ethanol + Water
HTP LqdHydrogen + LqdOxygen
Hydrazine LqdHydrogen + LqdNitrogen
Kerosene Carbon + LqdHydrogen
MMH Carbon + LqdHydrogen + LqdNitrogen
MMH Carbon + Hydrazine + LqdHydrogen
MMH + LqdHydrogen LqdMethane + Hydrazine
NTO LqdNitrogen + LqdOxygen
UDMH Carbon + LqdHydrogen + LqdNitrogen
UH25 MMH + UDMH
Outputs (Splitters) Inputs
LqdHydrogen + LqdOxygen HTP
LqdHydrogen + LqdNitrogen Hydrazine

Freezer/Heater Pairs

Liquid Gas
LqdAmmonia Ammonia
LqdCO2 CarbonDioxide
LqdCO CarbonMonoxide
LqdHydrogen Hydrogen
LqdMethane Methane
LqdNitrogen Nitrogen
LqdOxygen Oxygen
Oxidizer Oxygen

Kerbalism support patch errors

Some Kerbalism processes defined in RR make use of a _MRER resource :
https://github.com/JadeOfMaar/RationalResources/search?q=_mrer

But that resource isn't defined, causing the modules to errors out.
image

Fixed by adding this resource definition :

RESOURCE_DEFINITION
{
  name = _MRER
  density = 0.0
  isVisible = false
}

Note that this was reported by a Kerbalism user, I didn't check if there was other issues of the same kind.

EDIT : There is another issue. The Kerbalism profile extension as defined in RationalResourcesParts\CRP\00_Kerbalism.cfg doesn't work, causing all definitions to be missing, causing NREs when placing parts using them (convert-o-trons, boxed parts...).

Kerbalism profiles are loaded before MM, so doing something like Profile:NEEDS[KerbalismDefault] doesn't work and cause the node to be ignored by Kerbalism. Using only Profile fixes it.

EDIT2:
Actually, more related issues : the MetalOre and Metal resources used in some Kerbalism processes are also loaded conditionally, causing them to be invisible to the Kerbalism parser, causing said processes to error out as well.
I don't see any way to fix this beside removing the MM conditions here :

RESOURCE_DEFINITION:NEEDS[!ExtraplanetaryLaunchpads|SimpleConstruction]

and here :
RESOURCE_DEFINITION:NEEDS[!ExtraplanetaryLaunchpads,!SimpleConstruction]

Which is probably not an option from the RR POV. So I will just comment out the Metal / MetalOre outputs in related processes for now in the PR.

Module Manager Errors Found - 01_Opt-in_Drills

When trying to run many mods together, I got the below message about eighty-two ModuleManager errors found regarding the 01_Opt-in_Drills. I do not know if this is a problem with Rational Resources Kerbalism or something else, but I thought this was a good place to start. Included are several mods I have and their versions that I think are pertinent. Please let me know how to fix this issue or if I should open this issue with a different mod.

82 errors related to GameData/RationalResourcesKerbalism/01_Opt-in_Drills.cfg

Module Mangaer: 4.2.2
Rational Resources: 1.43
Rational Resources Companion: 1.43
Rational Resources Kerbalism: 1.43
Rational Resources Kerbalism + RealFuels: 1.43
Real Fuels: 1:rf-v15.3.1
Stockalike RF Configs: v3.2.6.6

Methalox Fuel Cell Error

I've noticed an error in the localization with fuel cells which opt in to the RR Fuel Cell patch (Opt-in_FuelCells). For the Methalox one, the description detail line is as follows
descriptionDetail = #<b>Inputs = </b> $/rrInLqdMethane$ LCH4/s + $/rrInOxidizer$ OX/s. <br><b>Outputs = </b> 18 EC/s.<br><color="orange">Please quicksave + quickload after applying.</color>
This means that the EC produced is always listed as 18 EC/s no matter what the actual amount is.
I'm guessing the actual code should probably be more like this:
descriptionDetail = #<b>Inputs = </b> $/rrInLqdMethane$ LCH4/s + $/rrInOxidizer$ OX/s. <br><b>Outputs = </b> $/rrOutputEC$ EC/s.<br><color="orange">Please quicksave + quickload after applying.</color>
I'd make a PR for it, but I think that's a tad excessive for such a small typo...

B9 PartSwitch issue

Hi!
I seem to have an issue with both the fuelCell the FuelCellArray with B9 as it seems to not have established the FuelSelect module.
I took a look, and being not really a ease with programming, I tried to read some CRP code and had figured humbly that it may need kerbalism to work...
And I don't want to have it, as it conflicts with MKS (mod which brings my personal main goal).
Il have CRP installed and running fine! Thanks by advance can't wait to colonize JNSQ!

MM Errors

Getting these errors from Module Manager. Thought I would provide them in case it's something that can be fixed. This is using version 1.40

[LOG 08:41:00.520] Applying update RationalResourcesCompanion/Classic/Opt-in_OreTanks/@PART:HAS[#RROreTank[Set]]:NEEDS[ClassicStock]:FOR[RationalResourcesCompanion] to ReStockPlus/Parts/Resource/restock-oretank-1875-1.cfg/PART[restock-oretank-1875-1]
[ERR 08:41:00.520] Error - Cannot parse variable search when inserting new key refVolume = #$RESOURCE[Ore]/maxAmount$
[WRN 08:41:00.520] Cannot find key refVolume in PART
[ERR 08:41:00.520] Error - Cannot parse variable search when inserting new key baseVolume = #$../refVolume$
[LOG 08:41:00.521] Applying update RationalResourcesCompanion/Classic/Opt-in_OreTanks/@PART:HAS[#RROreTank[Set]]:NEEDS[ClassicStock]:FOR[RationalResourcesCompanion] to ReStockPlus/Parts/Resource/restock-oretank-375-1.cfg/PART[restock-oretank-375-1]
[ERR 08:41:00.521] Error - Cannot parse variable search when inserting new key refVolume = #$RESOURCE[Ore]/maxAmount$
[WRN 08:41:00.521] Cannot find key refVolume in PART
[ERR 08:41:00.521] Error - Cannot parse variable search when inserting new key baseVolume = #$../refVolume$
[LOG 08:41:00.522] Applying update RationalResourcesCompanion/Classic/Opt-in_OreTanks/@PART:HAS[#RROreTank[Set]]:NEEDS[ClassicStock]:FOR[RationalResourcesCompanion] to Squad/Parts/Resources/LargeTank/LargeTank.cfg/PART[LargeTank]
[ERR 08:41:00.522] Error - Cannot parse variable search when inserting new key refVolume = #$RESOURCE[Ore]/maxAmount$
[WRN 08:41:00.522] Cannot find key refVolume in PART
[ERR 08:41:00.522] Error - Cannot parse variable search when inserting new key baseVolume = #$../refVolume$
[LOG 08:41:00.523] Applying update RationalResourcesCompanion/Classic/Opt-in_OreTanks/@PART:HAS[#RROreTank[Set]]:NEEDS[ClassicStock]:FOR[RationalResourcesCompanion] to Squad/Parts/Resources/RadialTank/RadialTank.cfg/PART[RadialOreTank]
[ERR 08:41:00.523] Error - Cannot parse variable search when inserting new key refVolume = #$RESOURCE[Ore]/maxAmount$
[WRN 08:41:00.523] Cannot find key refVolume in PART
[ERR 08:41:00.523] Error - Cannot parse variable search when inserting new key baseVolume = #$../refVolume$
[LOG 08:41:00.523] Applying update RationalResourcesCompanion/Classic/Opt-in_OreTanks/@PART:HAS[#RROreTank[Set]]:NEEDS[ClassicStock]:FOR[RationalResourcesCompanion] to Squad/Parts/Resources/SmallTank/SmallTank.cfg/PART[SmallTank]
[ERR 08:41:00.523] Error - Cannot parse variable search when inserting new key refVolume = #$RESOURCE[Ore]/maxAmount$
[WRN 08:41:00.523] Cannot find key refVolume in PART
[ERR 08:41:00.523] Error - Cannot parse variable search when inserting new key baseVolume = #$../refVolume$

01_Opt-in_Converters.cfg patching a 2nd time into Kerbalism part

GameData\RationalResourcesKerbalism\01_Opt-in_Converters.cfg

I will do a test run, as I assume that

@PART[kerbalism-chemicalplant]:BEFORE[RationalResourcesKerbalism]
{
	isStock = True
}

@PART:HAS[#RRConverter[Set],~isStock]:NEEDS[Kerbalism]:FOR[RationalResourcesKerbalism]
{
	@RRConverter = isSet
	@tags ^= :$: _kerbalism
...

also applies to kerbalism-chemicalplant, because :HAS[~isStock] does not seem to work.
I will try with :HAS[~isStock[True]] just because of the simple reason that this is exacly what is put a few lines before.
Same goes for:
GameData\RationalResourcesKerbalism\01_Opt-in_Drills.cfg
GameData\RationalResourcesKerbalism\01_Opt-in_Pumps.cfg

The issue is
Screen-2021-11-25_16-40-06

Excerpt from ModuleManager.ConfigCache:

UrlConfig
{
	parentUrl = KerbalismConfig/Parts/ChemicalPlant/kerbalism-chemicalplant.cfg
	PART
	{
		name = kerbalism-chemicalplant
		module = Part
		author = RoverDude
		title = Chemical Plant
		manufacturer = Rookies Inc.
		description = A versatile chemical plant that can fit in the small service bay. Any similarities with the Convert-O-Tron is purely coincidental.
		category = Utility
		subcategory = 0
		mesh = ChemicalPlant.mu
		rescaleFactor = 0.35
		node_stack_top = 0.0, 0.752, 0.0, 0.0, 1.0, 0.0, 0
		node_stack_bottom = 0.0, -0.752, 0.0, 0.0, -1.0, 0.0, 0
		node_attach = -0.44, -0.752, 0.0, -1.0, 0.0, 0.0, 0
		attachRules = 1,1,1,1,0
		bulkheadProfiles = size1
		dragModelType = default
		maximum_drag = 0.2
		minimum_drag = 0.2
		angularDrag = 2
		crashTolerance = 7
		breakingForce = 50
		breakingTorque = 50
		maxTemp = 2000
		TechRequired = recycling
		entryCost = 8000
		cost = 2000
		mass = 0.04
		tags = _kerbalism external chemical plant electrolysis o2 oxygen h2 hydrogen h2o water sabatier haber liquidfuel nh3 ammonia waste incinerator compressor anthraquinone hydrazine mre soe sco _kerbalism
		RRConverter = isSet
		RRPower = 0.0138
		isStock = True
		radiatorMax = 0.51
		MODULE
		{
			name = GeometryPartModule
		}
		MODULE
		{
			name = FARAeroPartModule
		}
		MODULE
		{
			name = FARPartModule
		}
		MODULE
		{
			name = ProcessController
			resource = _WaterElectrolysis
			title = Water electrolysis
			capacity = 2
		}
		MODULE
		{
			name = ProcessController
			resource = _Sabatier
			title = Sabatier process
			capacity = 2
			valve_i = 2
		}
		MODULE
		{
			name = ProcessController
			resource = _Haber
			title = Haber process
			capacity = 2
		}
		MODULE
		{
			name = ProcessController
			resource = _WasteIncinerator
			title = Waste incinerator
			capacity = 2
		}
		MODULE
		{
			name = ProcessController
			resource = _WasteCompressor
			title = Waste compressor
			capacity = 2
		}
		MODULE
		{
			name = ProcessController
			resource = _Anthraquinone
			title = Anthraquinone process
			capacity = 2
		}
		MODULE
		{
			name = ProcessController
			resource = _HydrazineProduction
			title = Hydrazine production
			capacity = 2
		}
		MODULE
		{
			name = ProcessController
			resource = _NitroHydrazine
			title = Hydrazine production N2
			capacity = 2
		}
		MODULE
		{
			name = ProcessController
			resource = _MRE
			title = MRE
			capacity = 2
		}
		MODULE
		{
			name = ProcessController
			resource = _SOE
			title = SOE
			capacity = 2
		}
		MODULE
		{
			name = ProcessController
			resource = _SCO
			title = SCO
			capacity = 2
		}
		MODULE
		{
			name = Configure
			title = Chemical Plant
			slots = 1
			UPGRADES
			{
				UPGRADE
				{
					name__ = Upgrade-Slots
					techRequired__ = electronics
					slots = 2
				}
			}
			SETUP
			{
				name = Water Electrolysis
				desc = Split <b>Water</b> into its <b>Hydrogen</b> and <b>Oxygen</b> components.
				MODULE
				{
					type = ProcessController
					id_field = resource
					id_value = _WaterElectrolysis
				}
			}
			SETUP
			{
				name = Sabatier Process
				desc = <b>Hydrogen</b> and <b>CarbonDioxide</b> react with a nickel catalyst to produce <b>Water</b> and <b>LiquidFuel</b>.
				MODULE
				{
					type = ProcessController
					id_field = resource
					id_value = _Sabatier
				}
			}
			SETUP
			{
				name = Haber Process
				desc = Produce <b>Ammonia</b> by <b>Nitrogen</b> fixation.
				MODULE
				{
					type = ProcessController
					id_field = resource
					id_value = _Haber
				}
			}
			SETUP
			{
				name = Waste Incinerator
				desc = Produce <b>CarbonDioxide</b> and <b>Water</b> by combustion of <b>Waste</b> with <b>Oxygen</b>. Includes a small exhaust turbine generator. If needed <b>Water</b> will be vented to continue <b>CarbonDioxide</b> extraction.
				tech = precisionEngineering
				MODULE
				{
					type = ProcessController
					id_field = resource
					id_value = _WasteIncinerator
				}
			}
			SETUP
			{
				name = Waste Compressor
				desc = Compact <b>Waste</b> to the density of <b>shielding material</b>.
				tech = precisionEngineering
				MODULE
				{
					type = ProcessController
					id_field = resource
					id_value = _WasteCompressor
				}
			}
			SETUP
			{
				name = Anthraquinone Process
				desc = Synthesize <b>Oxidizer</b> using a redox of <b>Oxygen</b> and <b>Hydrogen</b>.
				tech = advScienceTech
				MODULE
				{
					type = ProcessController
					id_field = resource
					id_value = _Anthraquinone
				}
			}
			SETUP
			{
				name = Hydrazine Production
				desc = <b>Oxidizer</b> and <b>Ammonia</b> react to produce <b>MonoPropellant</b>, <b>Oxygen</b> and <b>Water</b>.
				tech = advScienceTech
				MODULE
				{
					type = ProcessController
					id_field = resource
					id_value = _HydrazineProduction
				}
			}
			SETUP
			{
				name = Hydrazine Production (N2 Injection)
				desc = <b>Oxidizer</b> and <b>Ammonia</b> with <b>Nitrogen</b> injection react to produce <b>MonoPropellant</b> and <b>Oxygen</b>.
				tech = experimentalScience
				MODULE
				{
					type = ProcessController
					id_field = resource
					id_value = _NitroHydrazine
				}
			}
			SETUP
			{
				name = Solid Oxide Electrolysis
				desc = Transform <b>CarbonDioxide</b> into <b>Oxygen</b> and <b>Shielding</b>.
				tech = experimentalScience
				MODULE
				{
					type = ProcessController
					id_field = resource
					id_value = _SOE
				}
			}
			SETUP
			{
				name = Molten Regolith Electrolysis
				desc = Extract <b>Oxygen</b>, <b>CarbonDioxide</b> and <b>Shielding</b> out of <b>Ore</b>. If needed <b>CarbonDioxide</b> and/or <b>Shielding</b> will be vented in order to continue the <b>Oxygen</b> extraction.
				tech = advScienceTech
				MODULE
				{
					type = ProcessController
					id_field = resource
					id_value = _MRE
				}
			}
			SETUP
			{
				name = Selective Catalytic Oxidation
				desc = <b>Ammonia</b> and <b>Oxygen</b> react with a hydrotalcite-like catalyst to produce <b>Nitrogen</b> and <b>Water</b>.
				tech = experimentalScience
				MODULE
				{
					type = ProcessController
					id_field = resource
					id_value = _SCO
				}
			}
			SETUP
			{
				name = Uraninite Centrifuge
				desc = Extract <b>EnrichedUranium</b> out of <b>Uraninite</b>.
				tech = advScienceTech
				MODULE
				{
					type = ProcessController
					id_field = resource
					id_value = _Centrifuge
				}
			}
			SETUP
			{
				name = Breeder Reactor
				desc = Extract <b>EnrichedUranium</b> out of <b>DepletedFuel</b>.
				tech = experimentalScience
				MODULE
				{
					type = ProcessController
					id_field = resource
					id_value = _Breeder
				}
			}
			SETUP
			{
				name = Molten Regolith Electrolysis (Rock)
				desc = Extract <b>Oxygen</b>, <b>CarbonDioxide</b> and <b>Shielding</b> out of <b>Rock</b>.
				tech = advScienceTech
				MODULE
				{
					type = ProcessController
					id_field = resource
					id_value = _MRER
				}
			}
			SETUP
			{
				name = Ammonia Brewer
				desc = Produce <b>LqdAmmonia</b> from <b>LqdHydrogen</b> and <b>LqdNitrogen</b>.
				tech = advScienceTech
				MODULE
				{
					type = ProcessController
					id_field = resource
					id_value = _AmmoniaBrew
				}
			}
			SETUP
			{
				name = Ammonia to MonoPropellant
				desc = Convert <b>LqdAmmonia</b> into <b>MonoPropellant</b> and <b>LqdHydrogen</b>.
				tech = advScienceTech
				MODULE
				{
					type = ProcessController
					id_field = resource
					id_value = _AmmoniaToMono
				}
			}
			SETUP
			{
				name = Carbon Extractor
				desc = Extract pure <b>Carbon</b> out of <b>Ore</b>.
				tech = advScienceTech
				MODULE
				{
					type = ProcessController
					id_field = resource
					id_value = _CarbonExtractor
				}
			}
			SETUP
			{
				name = Carbon Fuser
				desc = Fuse <b>Carbon</b> and <b>Oxygen</b> into <b>CarbonDioxide</b>.
				tech = advScienceTech
				MODULE
				{
					type = ProcessController
					id_field = resource
					id_value = _CarbonFuser
				}
			}
			SETUP
			{
				name = Carbon Monoxide A
				desc = Produce <b>CarbonMonoxide</b> and <b>Oxygen</b> from <b>CarbonDioxide</b>.
				tech = advScienceTech
				MODULE
				{
					type = ProcessController
					id_field = resource
					id_value = _CarbonMonoA
				}
			}
			SETUP
			{
				name = Carbon Monoxide B
				desc = Produce <b>CarbonMonoxide</b> and <b>Hydrogen</b> from <b>Carbon</b> and <b>Water</b>.
				tech = advScienceTech
				MODULE
				{
					type = ProcessController
					id_field = resource
					id_value = _CarbonMonoB
				}
			}
			SETUP
			{
				name = Glykerol Brewer
				desc = Create <b>Glykerol</b> from <b>Water</b> and <b>Carbon</b>.
				tech = advScienceTech
				MODULE
				{
					type = ProcessController
					id_field = resource
					id_value = _GlykerolBrew
				}
			}
			SETUP
			{
				name = Splitter (Alumina)
				desc = Extract <b>Aluminium</b> and <b>Oxygen</b> out of <b>Alumina</b>.
				tech = advScienceTech
				MODULE
				{
					type = ProcessController
					id_field = resource
					id_value = _SplitterAl2O3
				}
			}
			SETUP
			{
				name = Splitter (CarbonDioxide)
				desc = Extract <b>Carbon</b> and <b>Oxygen</b> out of <b>CarbonDioxide</b>.
				tech = advScienceTech
				MODULE
				{
					type = ProcessController
					id_field = resource
					id_value = _SplitterCO2
				}
			}
			SETUP
			{
				name = Splitter (Hydrates)
				desc = Extract <b>ArgonGas</b>, <b>Oxygen</b>, <b>Water</b> and <b>XenonGas</b> out of <b>Hydrates</b>.
				tech = advScienceTech
				MODULE
				{
					type = ProcessController
					id_field = resource
					id_value = _SplitterHydrates
				}
			}
			SETUP
			{
				name = Splitter (Monazite)
				desc = Extract <b>Phosphorus</b>, <b>Oxygen</b> and <b>RareMetals</b> out of <b>Monazite</b>.
				tech = advScienceTech
				MODULE
				{
					type = ProcessController
					id_field = resource
					id_value = _SplitterMona
				}
			}
			SETUP
			{
				name = Splitter (Silicates)
				desc = Extract <b>Oxygen</b> out of <b>Silicates</b>.
				tech = advScienceTech
				MODULE
				{
					type = ProcessController
					id_field = resource
					id_value = _SplitterSilica
				}
			}
			SETUP
			{
				name = Splitter (Spodumene)
				desc = Extract <b>Lithium</b>, <b>Aluminium</b> and <b>Silicates</b> out of <b>Spodumene</b>.
				tech = advScienceTech
				MODULE
				{
					type = ProcessController
					id_field = resource
					id_value = _SplitterSpod
				}
			}
			SETUP
			{
				name = Splitter (Water)
				desc = Extract <b>Hydrogen</b> and <b>Oxygen</b> out of <b>Water</b>.
				tech = advScienceTech
				MODULE
				{
					type = ProcessController
					id_field = resource
					id_value = _SplitterH2O
				}
			}
			SETUP
			{
				name = Hydrogen Liquefaction
				desc = Liquefy <b>Hydrogen</b> gas into <b>Liquid Hydrogen</b>.
				tech = advFuelSystems
				MODULE
				{
					type = ProcessController
					id_field = resource
					id_value = _HyLiquefaction
				}
			}
			SETUP
			{
				name = LH2 Evaporator
				desc = Evaporate <b>Liquid Hydrogen</b> into <b>Hydrogen</b> gas.
				tech = advFuelSystems
				MODULE
				{
					type = ProcessController
					id_field = resource
					id_value = _LHyEvaporator
				}
			}
		}
		MODULE
		{
			name = Reliability
			type = ProcessController
			title = Chemical Plant
			repair = Engineer
			mtbf = 72576000
			extra_cost = 1.0
			extra_mass = 0.2
		}
		MODULE
		{
			name = ProcessController
			resource = _Centrifuge
			title = Uraninite centrifuge
			capacity = 2.0
		}
		MODULE
		{
			name = ProcessController
			resource = _Breeder
			title = Breeder reactor
			capacity = 2.0
		}
		MODULE
		{
			name = ProcessController
			resource = _MRER
			title = Molten Regolith Electrolysis (Rock)
			Tag = Sabe
			capacity = 1.242
		}
		MODULE
		{
			name = ProcessController
			resource = _AmmoniaBrew
			title = Ammonia Brewer
			Tag = RR
			capacity = 0.0138
		}
		MODULE
		{
			name = ProcessController
			resource = _AmmoniaToMono
			title = Ammonia to MonoPropellant
			Tag = RR
			capacity = 0.0138
		}
		MODULE
		{
			name = ProcessController
			resource = _CarbonExtractor
			title = Carbon Extractor
			Tag = RR
			capacity = 0.0138
		}
		MODULE
		{
			name = ProcessController
			resource = _CarbonFuser
			title = Carbon Fuser
			Tag = RR
			capacity = 0.0138
		}
		MODULE
		{
			name = ProcessController
			resource = _CarbonMonoA
			title = Carbon Monoxide A
			Tag = RR
			capacity = 0.0138
		}
		MODULE
		{
			name = ProcessController
			resource = _CarbonMonoB
			title = Carbon Monoxide B
			Tag = RR
			capacity = 0.0138
		}
		MODULE
		{
			name = ProcessController
			resource = _GlykerolBrew
			title = Glykerol Brewer
			Tag = RR
			capacity = 0.0138
		}
		MODULE
		{
			name = ProcessController
			resource = _SplitterAl2O3
			title = Alumina Splitter
			Tag = RR
			capacity = 0.0138
		}
		MODULE
		{
			name = ProcessController
			resource = _SplitterCO2
			title = Carbon Dioxide Splitter
			Tag = RR
			capacity = 0.0138
		}
		MODULE
		{
			name = ProcessController
			resource = _SplitterH2O
			title = Water Splitter
			Tag = RR
			capacity = 0.0138
		}
		MODULE
		{
			name = ProcessController
			resource = _SplitterHydrates
			title = Hydrates Splitter
			Tag = RR
			capacity = 0.0138
		}
		MODULE
		{
			name = ProcessController
			resource = _SplitterMona
			title = Monazite Splitter
			Tag = RR
			capacity = 0.0138
		}
		MODULE
		{
			name = ProcessController
			resource = _SplitterSilica
			title = Silicates Splitter
			Tag = RR
			capacity = 0.0138
		}
		MODULE
		{
			name = ProcessController
			resource = _SplitterSpod
			title = Spodumene Splitter
			Tag = RR
			capacity = 0.0138
		}
		MODULE
		{
			name = Reliability
			type = ProcessController
			title = Chemical Plant
			repair = Engineer
			mtbf = 72576000
			extra_cost = 1.0
			extra_mass = 0.2
		}
		MODULE
		{
			name = ShipEffectsCollisions
			num1 = 6.3
			num2 = 3.15
			num3 = 1.575
			num4 = 0.1575
			CollisionEnter
			{
				SOUNDLAYER
				{
					name = Hull_Impact-Low
					audioClip = RocketSoundEnhancement/Sounds/Physics/Impacts/Hull_Impact-Low-1
					audioClip = RocketSoundEnhancement/Sounds/Physics/Impacts/Hull_Impact-Low-2
					audioClip = RocketSoundEnhancement/Sounds/Physics/Impacts/Hull_Impact-Low-3
					loop = false
					spread = 0.1
					channel = ShipBoth
					volume = 0.0 0.0
					volume = 0.1575 0.0
					volume = 1.575 1.0
					volume = 3.15 0.0
					pitch = 0.0 0.8
					pitch = 0.1575 0.95
					pitch = 3.15 1.05
					massToVolume = 0.0 0.5
					massToVolume = 15.0 0.8
					massToVolume = 30.0 1.0
					massToPitch = 0.0 1.2
					massToPitch = 15.0 1.0
					massToPitch = 30.0 0.8
				}
				SOUNDLAYER
				{
					name = Hull_Impact-High
					audioClip = RocketSoundEnhancement/Sounds/Physics/Impacts/Hull_Impact-High-1
					audioClip = RocketSoundEnhancement/Sounds/Physics/Impacts/Hull_Impact-High-2
					audioClip = RocketSoundEnhancement/Sounds/Physics/Impacts/Hull_Impact-High-3
					loop = false
					spread = 0.1
					channel = ShipBoth
					volume = 0.0 0.0
					volume = 3.15 0.0
					volume = 6.3 1.0
					pitch = 0.0 0.8
					pitch = 3.15 0.95
					pitch = 6.3 1.05
					massToVolume = 0.0 0.5
					massToVolume = 15.0 0.8
					massToVolume = 30.0 1.0
					massToPitch = 0.0 1.2
					massToPitch = 15.0 1.0
					massToPitch = 30.0 0.8
				}
				SOUNDLAYER
				{
					name = Ground_Impact-Low
					data = concrete-dirt
					audioClip = RocketSoundEnhancement/Sounds/Physics/Impacts/Ground_Impact-Low-1
					audioClip = RocketSoundEnhancement/Sounds/Physics/Impacts/Ground_Impact-Low-2
					audioClip = RocketSoundEnhancement/Sounds/Physics/Impacts/Ground_Impact-Low-3
					loop = false
					spread = 0.25
					channel = ShipBoth
					volume = 0.0 0.0
					volume = 0.1 0.0
					volume = 15 1.0
					volume = 30 0.0
					pitch = 0.0 0.8
					pitch = 0.1 0.8
					pitch = 15 1.2
				}
				SOUNDLAYER
				{
					name = Ground_Impact-High
					data = concrete-dirt
					audioClip = RocketSoundEnhancement/Sounds/Physics/Impacts/Ground_Impact-High-1
					audioClip = RocketSoundEnhancement/Sounds/Physics/Impacts/Ground_Impact-High-2
					audioClip = RocketSoundEnhancement/Sounds/Physics/Impacts/Ground_Impact-High-3
					loop = false
					spread = 0.25
					channel = ShipBoth
					volume = 0.0 0.0
					volume = 15 0.0
					volume = 30 1.0
					pitch = 0.0 0.8
					pitch = 15 0.8
					pitch = 30 1.2
				}
			}
			CollisionStay
			{
				SOUNDLAYER
				{
					name = Hull_CollisionScrape-concrete
					audioClip = RocketSoundEnhancement/Sounds/Physics/Hull_Scrape-1
					data = concrete
					loop = true
					loopAtRandom = true
					spread = 0.12
					channel = ShipBoth
					volume = 0.0 0.0
					volume = 1.0 0.0
					volume = 15.0 0.8
					volume = 30.0 1.0
					massToVolume = 0.0 0.5
					massToVolume = 25 0.8
					massToVolume = 50 1.0
					massToPitch = 0.0 1.2
					massToPitch = 25 1.0
					massToPitch = 50 0.8
				}
				SOUNDLAYER
				{
					name = Hull_CollisionScrape-dirt
					audioClip = RocketSoundEnhancement/Sounds/Physics/Hull_Scrape-2
					data = dirt
					loop = true
					loopAtRandom = true
					spread = 0.12
					channel = ShipBoth
					volume = 0.0 0.0
					volume = 1.0 0.0
					volume = 15.0 0.8
					volume = 30.0 1.0
					massToVolume = 0.0 0.5
					massToVolume = 25 0.8
					massToVolume = 50 1.0
					massToPitch = 0.0 1.2
					massToPitch = 25 1.0
					massToPitch = 50 0.8
				}
				SOUNDLAYER
				{
					name = Hull_CollisionScrape-Metal
					audioClip = RocketSoundEnhancement/Sounds/Physics/Hull_Scrape-3
					data = concrete-vessel
					loop = true
					loopAtRandom = true
					spread = 0.12
					channel = ShipBoth
					volume = 0.0 0.0
					volume = 1.0 0.0
					volume = 30.0 1.0
					massToVolume = 0.0 0.5
					massToVolume = 25 0.8
					massToVolume = 50 1.0
					massToPitch = 0.0 1.1
					massToPitch = 25 1.0
					massToPitch = 50 0.9
				}
			}
		}
		MODULE
		{
			name = ProcessController
			resource = _HyLiquefaction
			title = Hydrogen liquefaction
			capacity = 2.0
		}
		MODULE
		{
			name = ProcessController
			resource = _LHyEvaporator
			title = LH2 evaporator
			capacity = 2.0
		}
		MODULE
		{
			name = ModulePartInfo
			originalPartName = kerbalism-chemicalplant
		}
		MODULE
		{
			name = ChillingOut
			active = True
		}
	}
}

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.