Jump to content

[WIP] Immersive Chemicals


Recommended Posts

40tVYyw.jpeg

Immersive Chemicals

Immersive Chemicals is a collection of mods which overhaul and expand the stock resource system to enrich the experience of heavily modded KSP. The component mods are designed to be played together, but you can pick and choose any subset to play with, like Nertea's Near Future Technologies.

The goal is to provide many ways to acquire and process resources into other resources which are useful not only in the the domain of these mods, but many other popular mods too, connecting everything into one cohesive web. There are many resources and resource chains similar to what you might find in RealFuels and MKS, but the Immersive Chemical suite aims to be less complex and more modular rather than centralised and all-encompassing

The individual mods are listed below, with the feature progress marked like so:

  • [concepting]: I have a pretty good idea of what this will look like, but haven't started making anything.
  • [development]: I've started making something, maybe even nearly finished it.
  • [ready]: First-pass "done", ready for pre-release.
  • [pre-release]: Available in a v0.x pre-release.
  • [release]: Available in a v1.x release.

 

 

Immersive Chemical Propulsion 0.3.0 [pre-release]
Download
Requires: ModuleManager, B9PartSwitch, Immersive Chemical Core, Cryogenic Tanks

Replaces stock propellants with a small handful of real chemicals, with engines matched to their real-life inspirations where applicable. I'm mostly targeting rocket engines provided by Nertea's mods at the moment, but suggestions for other mods are welcome. You can think of it as a Nertea-like soft alternative to RealFuels.

  • Monopropellant engines and tanks have a choice of two propellants: HTP which is cheap and low-tech, and Hydrazine which is more expensive but yields a significantly higher specific impulse. [pre-release]
  • LiquidFuel/Oxidizer engines are categorised into one of four types, each of which similarly has a pair "basic" and "advanced" bipropellants with fixed mixture ratios: [pre-release]
    • Hypergolic:
      • 1 Kerosene / 4 HTP
      • 2 Hydrazine / 3 NTO
    • Kerolox:
      • 3 Kerosene / 5 LqdOxygen
      • 5 Pentaborane / 11 LqdFluorine
    • Methalox:
      • 7 LqdMethane / 9 LqdOxygen
      • 3 Diborane / 5 LqdFluorine
    • Hydrolox:
      • 3 LqdHydrogen / 1 LqdOxygen
      • 3 LqdHydrogen / 1 LqdFluorine
  • Near Future Launch Vehicles' KR-701 'Cougar' and KR-74 'Lynx' are bimodal hydrolox engines with an additional kerosene-augmented mode, based on their real-world analogues the RD-701 and RD-704: [pre-release]
    • 1 Kerosene / 4 LqdHydrogen / 3 LqdOxygen
  • Jet engines use Kerosene, with the rocket mode of multimodal engines running on Kerosene/LqdOxygen. [pre-release]
  • Nuclear engines are changed to use LqdHydrogen. [pre-release]
  • All the fiddly little bits like ISRU, fuel cells and RCS are all brought in line accordingly. [pre-release]

Various stock and modded engines have their performance adjusted to bring them in line with the new propellants. Note that the values listed here correspond to the advanced pair Hydrazine/NTO in the hypergolic engines, but the basic pairs Kerosene/LqdOxygen, LqdMethane/LqdOxygen and LqdHydrogen/LqdOxygen in the other types.

As well as these changes, a couple of plugins are planned for enhancing the experience of chemical rocketry:

  • Hazards:
    • Hazardous propellants create regions of environmental danger when:
      • Leaking from CryoTanks [concepting]
      • Fired in rockets [concepting]
      • Released by more explosive means [concepting]
    • Hazard regions can be cleaned up for a cost at the KSC [concepting]
    • Hazard regions decay at a rate determined by the local atmosphere [concepting]
  • Ignition (might be a fork of Engine Ignitor):
    • Non-hypergolic engines require an ignition source, chosen in the VAB:
      • Single-use pyrotechnic [concepting]
      • Refillable starter fluid (TEATEB or similar) [concepting]
      • Reusable spark plug  [concepting]

Stock [pre-release]

The tech tree starts with small hypergolic engines and progresses to kerolox and hydrolox. There are not too many of the latter types, so Cryogenic EnginesRestock+ and Near Future Launch Vehicles are especially recommended.

Spoiler
LV-1R "Spider" Hypergolic  
24-77 "Twitch" Hypergolic  
Mk-55 "Thud" Hypergolic  
LV-1 "Ant" Hypergolic  
48-7S "Spark" Hypergolic  
LV-T30 "Reliant" Hypergolic  
LV-T45 "Swivel" Hypergolic  
LV-909 "Terrier" Kerolox  
RE-I5 "Skipper" Kerolox  
RE-M3 "Mainsail" Kerolox  
LFB KR-1x2 "Twin-Boar" Kerolox  
Kerbodyne KR-2L+ "Rhino" Hydrolox 2000kN → 1750kN
205-340s → 310-430s
S3 KS-25 "Vector" Hydrolox 4t → 3t
1000kN → 675kN
295-315s → 365-450s
T-1 Toroidal Aerospike "Dart" Hydrolox 290-340s → 380-430s
RE-L10 "Poodle" Hydrolox 90-350s → 180-460s
S3 KS-25x4 "Mammoth" Hydrolox 15t → 12t
4000kN → 2700kN
295-315s → 365-450s

Making history [pre-release]

The Wolfhound doesn't need such weirdly high Isp when you have methalox and hydrolox to play with.

Spoiler
LV-T91 "Cheetah" Hypergolic 150-355s → 150-315s
RE-J10 "Wolfhound" Hypergolic 3.3t → 0.8t
375kN → 110kN
70-380s → 70-330s
RV-1 "Cub" Kerolox  
RK-7 "Kodiak" Kerolox 285-300s → 285-320s
LV-TX87 "Bobcat" Kerolox  
Kerbodyne KE-1 "Mastodon" Kerolox  
RE-I2 "Skiff" Hydrolox 1.6t → 1.4t
300kN → 310kN
265-330s → 200-420s

Labradoodle [pre-release]

The Poodle and the Labrador are made much more distinct by their different propellant types.

Spoiler
RE-L20 "Labrador" Kerolox  

Missing History [pre-release]

These two engines also appear in Restock+, though with slightly different stats, but I've just left them as is.

Spoiler
LV-303 "Pug" Hypergolic  
LV-T15 "Valiant" Hypergolic  

Restock+ [pre-release]

Most of these are cheeky Making History knockoffs (which are obviously higher quality) with equivalent stats, so aren't present if you have the DLC installed.

Spoiler
LV-303 'Pug' Hypergolic 250-330s → 220-310s
LV-T15 'Valiant' Hypergolic  
RK-1 'Trash Panda' Hypergolic  
RE-137 'Schnauzer' Hypergolic 70-350s → 70-330s
KR-1 'Boar' Kerolox  
Mk-1H 'Torch' Kerolox  
RK-107 'Ursa' Kerolox 285-300s → 285-320s
Kerbodyne UR-1 "Galleon" Kerolox  
RE-I2 'Caravel' Hydrolox 2t → 1.4t
510kN → 310kN
265-320s → 200-420s
KR-10A 'Corgi' Hydrolox 5.25t → 2.2t
750kN → 220kN
95-355s → 110-465s

Near Future Launch Vehicles [pre-release]

Very handy kerolox engines of all sizes, including some fancy multimode bipropellant/tripropellant engines based on the RD-701 and RD-704.

Spoiler
KS-10AJ 'Walrus' Kerolox  
KS-600AJ 'Manatee' Kerolox  
KS-1M 'Otter' Kerolox 280-295s → 280-310s
KR-1M-V 'Sphinx' Kerolox 260-330s → 230-350s
KR-701 'Cougar' Kerosene-augmented hydrolox
Hydrolox
295-345s → 330-415s
295-345s → 220-460s
KR-74 'Lynx' Kerosene-augmented hydrolox
Hydrolox
298-345s → 355-405s
298-345s → 245-450s
KR-84 'Ocelot' Kerolox  
KS-1E 'Goldfish' Kerolox 270-280s → 270-310s
KR-1E-V 'Angora' Kerolox 250-320 → 220-340s
KS-160 'Orca' Kerolox  
KS-107 'Porpoise' Kerolox

Cryogenic Engines and CryoEngines Extensions [pre-release]

Existing liquid hydrogen and liquid methane methane engines are automatically converted to use LqdHydrogen/LqdOxygen and LqdMethane/LqdOxygen respectively.

 

Immersive Chemical Storage 0.1.0 [pre-release]
Download
Requires: ModuleManager, B9PartSwitch, Immersive Chemical Core, Cryogenic Tanks

Highly configurable tanks which store single chemicals, useful for chemical factories, rocket stages and giant spacecraft.

  • Three types of tank:
    • Basic [pre-release]: stores stable, non-cryogenic resources.
    • Lightweight cryogenic [pre-release]: Mass-optimised, balanced to be equivalent to CryoTanks.
    • Heavy-duty cryogenic [pre-release]: Much heavier with way less boiloff, for storing chemicals on surfaces or orbit long-term. 
  • Five diameters:
    • 2.5m [pre-release]
    • 3.75m [pre-release]
    • 5m [development]
    • 7.5m [development]
    • 10m [development]
  • Spherical tanks at double those diameters [development]
  • Several Length options [pre-release]
  • Several structural options:
    • Trusses [pre-release]
    • Legs [pre-release]
    • Horizontal mounts [pre-release]
    • Radial mounts [development]
  • Several surface options (each tank type has its own set) [pre-release]

 

Immersive Chemical Harvesting [development]

A resource harvesting overhaul.

  • A plugin to change the way surface mining works which should encourage building mining colonies vs. small mining probes. [concepting]
  • Several parts for harvesting from oceans and atmospheres. [concepting]
  • Both stock Drill-O-Matics and all seven drills in Stockalike Mining Extension come in three varieties which each acquire a different category of resource: basic minerals, ices and metals.
    • Basic mineral drills are the stock drills which can mine Ore, as well as the other generic mineral substances Rock and Hydrates. [ready]
    • Ice-specialised drills can directly mine Water, LqdAmmonia, LqdCO2, LqdMethane, and Organics, and perhaps others in future. [ready]
    • Metal-specialised drills can directly mine Spodumene, MetallicOre, Uraninite, RareMetals, and ExoticMinerals, and perhaps others in future. [ready]

 

Immersive Chemical Conversion [development]

Provides suites of new ISRU parts with semi-realistic chemical conversion processes for many resources in the Community Resource Pack, replacing the uninspiring universality of turning Ore into everything else.

Carbonate decomposition RockLqdCO2
Hydrate decomposition HydratesWater
Ore reduction OreLqdOxygen
Water electrolysis WaterLqdHydrogen + LqdOxygen
Ammonia electrolysis LqdAmmoniaLqdNitrogen + LqdHydrogen
Electrochemical reduction of CO2 LqdCO2LqdCO + LqdOxygen
Haber process LqdNitrogen + LqdHydrogen  LqdAmmonia
NTO synthesis LqdAmmonia + LqdOxygen  NTO + Water
Hydrazine synthesis LqdAmmonia + LqdOxygen → Hydrazine + Water
Sabatier process LqdCO2 + LqdHydrogen  LqdMethane + Water
Reverse water-gas shift reaction LqdCO2 + LqdHydrogen  LqdCO + Water
Bosch reaction LqdCO + LqdHydrogen  Carbon + Water
Fischer-Tropsch process LqdCO + LqdHydrogen  Kerosene [low yield] + Water
Polymer synthesis Organics  Polymers
Kerosene synthesis Organics  Kerosene [high yield]

The above process are provided by the following parts:

  • Convert-O-Tron 125: Carbonate decomposition; Hydrate decomposition
  • Convert-O-Tron 250: Carbonate decomposition; Hydrate decomposition; Ore reduction
  • Electr-O-Tron 125 [development]: Water electrolysis; Ammonia electrolysis
  • Electr-O-Tron 250 [development]: Water electrolysis; Ammonia electrolysis; Electrochemical reduction of CO2
  • React-O-Tron 125-N [development]: Haber process
  • React-O-Tron 250-N [development]: Haber process; NTO synthesis; Hydrazine synthesis
  • React-O-Tron 125-C [development]: Sabatier process; Reverse water-gas shift reaction
  • React-O-Tron 250-C [development]: Sabatier process; Reverse water-gas shift reaction; Bosch reaction; Fischer-Tropsch process
  • Mobile Processing Lab MPL-LG-2: Polymer synthesis
  • Organics Factory (3.75m, name TBD) [concepting]: Polymer synthesis; Kerosene synthesis

If Immersive Chemical Propulsion is not present, Kerosene and Hydrazine are changed to LiquidFuel and MonoPropellant, and Oxidizer can be configured to replace either LqdOxygen or NTO.

 

Immersive Chemical Metallurgy [development]

Ore sorters and smelters.

Spodumene sorting OreSpodumene [low yield]
Metallic ore sorting OreMetallicOre [low yield]
Rare metal sorting OreRareMetals [very low yield]
Exotic mineral sorting OreExoticMinerals [very low yield]
Lithium roasting SpodumeneLithium
Carbon reduction MetallicOre + CarbonMetals
CO-injected reduction MetallicOre + LqdCOMetals + LqdCO2
Hydrogen plasma reduction MetallicOre + LqdHydrogenMetals + Water

The above process are provided by the following parts:

  • Small Ore Sorter (1.25m, name TBD) [concepting]: Spodumene sorting; Metallic ore sorting
  • Large Ore Sorter (2.5m, name TBD) [concepting]: Spodumene sorting; Metallic ore sorting; Rare metal sorting; Exotic mineral sorting
  • Convert-O-Tron 125: Lithium roasting
  • Convert-O-Tron 250: Lithium roasting
  • Smelt-O-Tron 250 [development]: Lithium roasting; Carbon-fired reduction
  • Smelt-O-Tron 375 [concepting]: Lithium roasting; Carbon-fired reduction; CO-injected reduction
  • Plasma Arc Furnace (5m, name TBD) [concepting]: Hydrogen plasma reduction
Edited by Charle_Roger
Link to comment
Share on other sites

Woo! Nice to see that you're starting this. Seeing the part suites and chains in point form really helps to present a simplified view of all this.

I like the Smelt-O-Tron bit in particular. It's a very nice expansion to my concept for the RR Blacksmith furnace.

Link to comment
Share on other sites

On 7/15/2024 at 3:15 AM, JadeOfMaar said:

Woo! Nice to see that you're starting this. Seeing the part suites and chains in point form really helps to present a simplified view of all this.

I like the Smelt-O-Tron bit in particular. It's a very nice expansion to my concept for the RR Blacksmith furnace.

Thanks. I may end up with some other classes of converters, but right now I like this split into ice-type and metal-type resources with their corresponding specialised drills and converters. Actually I'm having some trouble getting the model to accept a new texture for the small Smelt-O-Tron , the part simply doesn't load if I specify any replacement texture (though the larger one works fine). Once I figure that out I'll stick it on github.

While I have you, I'm still hoping to modify/add/remove RR patches but yet to get anything working there. Also, why are RareMetals and ExoticMinerals so common? I've been trying to figure out what to use as my one rare, expensive resource which is hard to get hold of but necessary for RocketParts and both of those seem pretty abundant.

Link to comment
Share on other sites

Posted (edited)

Immersive Conversion should (on its own) be relatively narrow in terms of gameplay complexity, but offer some depth in terms of possibilities for resource production chains via a good balance of constraints and freedom to encourage creativity and customisation. Breadth comes from the connection to other mods, which should come in optional extra chunks which are nicely separable where applicable.

Some design principles in pursuit of this goal:

  • Bigger converters are more energy efficient, but not more material efficient, everything operates on the same conversion ratios (i.e. no more 90% losses on small converters).
  • Primitive resources (that you can acquire directly in situ) should generally have multiple purposes.
  • Synthesised resources (that you can't acquire directly in situ) should generally have multiple recipes.
  • Following from above, just stick to one version of each resource, no need for Hydrogen if there is already LqdHydrogen. If another mod needs Hydrogen, there are things like RationalResourcesParts for that.
  • Low tech allows for the acquisition of generic minerals (Ore, Hydrates, Silicates) from basically any rocky body, which can be converted into a limited set of useful resources at a very low efficiency. Also atmosphere sifting, so going all the way to a planet with an atmosphere gives quite a benefit compared to the moons.
  • Mid tech allows for the acquisition of specific minerals (ices and metal ores) which depend on RR distributions, so you can build specialised production chains. Also some resources which can't be acquired with low tech, like Uraninite.
  • High tech allows for some highly specialised non-mineral resource acquisition like exospheric scooping and Helium-3 regolith harvesting (neither of which are actually provided by ImmersiveConversion, just adjusted with patches).
Edited by Charle_Roger
Link to comment
Share on other sites

Considering using Rock rather than Silicates for a few reasons:

  • This mod is intended to pair with Space Dust, which uses Rock out the box, and not with any mods that use Silicates.
  • Avoids confusion with Silicon, a direct derivative.
  • Since it's more generic than Silicates it opens up other sensible recipes, LqdCO2 from carbonates for example, as well as various metal ores with some late-game trace extraction tech, for when you are really desperate to squeeze uranium from a stone.
Link to comment
Share on other sites

8 hours ago, Charle_Roger said:

While I have you, I'm still hoping to modify/add/remove RR patches but yet to get anything working there.

I got around to testing and figured out why this probably is. The patch method I suggested to you is in conflict. The same MM patch pass I told you to use is what's being used to create the templates so I have to move the templates into a new pass and declare a new mod just for those operations which would then allow your edits to run "before" that.

On 7/14/2024 at 9:35 PM, Charle_Roger said:

Smelt-O-Trons -snip- might get their own models eventually.

I've started carving away at some custom ones of my own which I had sidelined since my concept for the furnace/smelter was lacking in depth. That has changed now since you came along. The models are 2.5m (tall) and 3.75m (short) and should  have equal capacity but that waits to be seen (measured). I have the impression that anything smaller is questionable and a bother to make.

8 hours ago, Charle_Roger said:

Also, why are RareMetals and ExoticMinerals so common?

That's either another entry under "MKS legacy" or I didn't think hard enough on the weight of the words "Rare" and "Exotic." The presence chance (usually 70% if not 100%) could bump down but that would break people's mining rigs  that use these resources so there's only the safe option of reducing the abundance values and maybe increasing the variance and/or dispersal values which, iirc, respectively affect the resolution and the contrast of the noise map of the resource abundance.

Link to comment
Share on other sites

Posted (edited)

It may be sensible to have specific "heater" parts so as to not overload the smelters with the many potential non-smelting recipes which might arise, such as:

  • HydratesWater
  • Rock → various trace ices
  • LqdAmmoniaLqdNitrogen + LqdHydrogen and other similar chemical decompositions
  • Mulch Organics?
  • Something with Polymers?

 

20 minutes ago, JadeOfMaar said:

I got around to testing and figured out why this probably is. The patch method I suggested to you is in conflict. The same MM patch pass I told you to use is what's being used to create the templates so I have to move the templates into a new pass and declare a new mod just for those operations which would then allow your edits to run "before" that.

Thanks so much for all your help! I hope we can end up with seamless integration of our mods on both ends.

20 minutes ago, JadeOfMaar said:

I've started carving away at some custom ones of my own which I had sidelined since my concept for the furnace/smelter was lacking in depth. That has changed now since you came along. The models are 2.5m (tall) and 3.75m (short) and should  have equal capacity but that waits to be seen (measured). I have the impression that anything smaller is questionable and a bother to make.

This is exciting. I have been considering not bothering with the 1.25m smelter, mostly because I can't get the stock model to work with a new texture, but also because this stuff just feels more appropriate for the bigger machines. FFT's nuclear smelter is gigantic for example. The smelter models are low priority for me, I want to get the system balanced first and I know I will spend a long time making models and textures once I start.

Edited by Charle_Roger
Link to comment
Share on other sites

52 minutes ago, Charle_Roger said:

specific "heater" parts

The 1.25m RR Therm-O-Tron exists (but it has a bunch of phase change recipes in it already. See: The Hydrogen and Oxygen issue). Feel free to clone it and use distinctly.

55 minutes ago, Charle_Roger said:

because this stuff just feels more appropriate for the bigger machines

That's among my reasons too.

Link to comment
Share on other sites

2 hours ago, JadeOfMaar said:

The 1.25m RR Therm-O-Tron exists (but it has a bunch of phase change recipes in it already. See: The Hydrogen and Oxygen issue). Feel free to clone it and use distinctly.

Yeah I was thinking about the Therm-O-Tron, but I won't use it for anything internal. Immersive Conversion will provide a small set of native parts (looking like just drills, smelters and heaters probably, plus changes to stock parts) and won't rely on other part mods for the core system. Parts like the Therm-O-Tron will get patches to join in. I will keep in mind what's available in your mods and others which I'm targeting though, so as to have a precedent to balance against and not end up with too many redundant parts when playing with combinations of mods.

Link to comment
Share on other sites

Posted (edited)

Thoughts about drill variants:

  • Definitely liking how the three-way split (basic minerals / ice-specialised / metal-specialised) plays and feels.
  • Currently have them as three separate parts so that the specialised drills (which have recoloured stock textures based on KPBS) would be unlocked later in the tech tree, but this might not be necessary if tech constraints are instead placed on the converters. No point mining metal ores if you have no smelter yet. Ices are constrained by their RR distribution, so again it doesn't matter if you already have a drill which can mine ice, Hydrates is still a more generally available source of Water so the basic drill still has advantages.
  • Having three separate drill parts is quite nice and clear to the user, but tripling all the drills in e.g. Stockalike Mining Extension would be crazy, so B9 part switch would be a better approach for support there and can be patched to any drill generically (though they won't necessarily have the bespoke recoloured textures I intend to make for SME).
  • Using part switch also keeps the total part count down, so has the benefit of reducing dependency residue. If Immersive Conversion is uninstalled, or the specialised drill modules are removed or significantly modified in a later version, it should break less things. Same works in reverse, you could easily hack a specialised drill into an existing mining base with a simple config edit.
Edited by Charle_Roger
Link to comment
Share on other sites

 

Semi-successfully implemented drill types via B9PartSwitch by the following method:

  • Patch all Ore drills with additional Rock and Hydrates harvesting modules
  • Add B9PartSwitch module which targets those three resources and replaces them with different triplets of resources (Water/LqdCO2/LqdAmmonia and MetallicOre/Spodumene/Uraninite)
  • Functionality is as intended, but not all of the text gets replaced. Screenshot below shows the rates and start/stop buttons still have the original values, while the harvester name (and ostensibly the resource name) are correct.

8Pm9GmD.png

Patch:

Spoiler
@PART[*]:HAS[@MODULE[ModuleResourceHarvester]:HAS[#ResourceName[Ore]]]:FOR[ImmersiveConversion]
{
	@MODULE[ModuleResourceHarvester]:HAS[#ResourceName[Ore]]
	{
		@ResourceName = Rock
		@ConverterName = Rock Harvester
		@StartActionName = Start Rock Harvester
		@StopActionName = Stop Rock Harvester
		@ToggleActionName = Toggle Rock Harvester
	}
	
	+MODULE[ModuleResourceHarvester]:HAS[#ResourceName[Rock]]
	{
		@ResourceName = Ore
		@ConverterName = Ore Harvester
		@StartActionName = Start Ore Harvester
		@StopActionName = Stop Ore Harvester
		@ToggleActionName = Toggle Ore Harvester
	}
	
	+MODULE[ModuleResourceHarvester]:HAS[#ResourceName[Rock]]
	{
		@ResourceName = Hydrates
		@ConverterName = Hydrates Harvester
		@StartActionName = Start Hydrates Harvester
		@StopActionName = Stop Hydrates Harvester
		@ToggleActionName = Toggle Hydrates Harvester
	}

	MODULE
	{
		name = ModuleB9PartSwitch
		moduleID = ICDrillSwitch
		switcherDescription = drill type
		affectDragCubes = False
		affectFARVoxels = False

		SUBTYPE
		{
			name = Basic
			title = Basic minerals
			descriptionSummary = <b>Rock</b>, <b>Ore</b>, <b>Hydrates</b>
			descriptionDetail = This drill can harvest readily available basic minerals from rocky bodies.
			primaryColor = #b8884a
			secondaryColor = #b8884a
			addedCost = 0
			addedMass = 0
		}
		SUBTYPE
		{
			name = Ice
			title = Ice-specialised
			descriptionSummary = <b>Water</b>, <b>LqdAmmonia</b>, <b>LqdCO2</b>
			descriptionDetail = This drill is specialised to target and directly harvest ices.
			primaryColor = #6b8394
			secondaryColor = #6b8394
			addedCost = 0
			addedMass = 0
			
			MODULE
			{
				IDENTIFIER
				{
					name = ModuleResourceHarvester
					ResourceName = Rock
				}
				DATA 
				{
					ResourceName = Water
					ConverterName = Water Harvester
					StartActionName = Start Water Harvester
					StopActionName = Stop Water Harvester
					ToggleActionName = Toggle Water Harvester
				}
			}
			MODULE
			{
				IDENTIFIER
				{
					name = ModuleResourceHarvester
					ResourceName = Ore
				}
				DATA 
				{
					ResourceName = LqdCO2
					ConverterName = Carbon Dioxide Harvester
					StartActionName = Start Carbon Dioxide Harvester
					StopActionName = Stop Carbon Dioxide Harvester
					ToggleActionName = Toggle Carbon Dioxide Harvester
				}
			}
			MODULE
			{
				IDENTIFIER
				{
					name = ModuleResourceHarvester
					ResourceName = Hydrates
				}
				DATA 
				{
					ResourceName = LqdAmmonia
					ConverterName = Ammonia Harvester
					StartActionName = Start Ammonia Harvester
					StopActionName = Stop Ammonia Harvester
					ToggleActionName = Toggle Ammonia Harvester
				}
			}
		}
		SUBTYPE
		{
			name = Metal
			title = Metal-specialised
			descriptionSummary = <b>MetallicOre</b>, <b>Spodumene</b>, <b>Uraninite</b>
			descriptionDetail = This drill is specialised to target and directly harvest metal ores.
			primaryColor = #a26160
			secondaryColor = #a26160
			addedCost = 0
			addedMass = 0
			
			MODULE
			{
				IDENTIFIER
				{
					name = ModuleResourceHarvester
					ResourceName = Rock
				}
				DATA 
				{
					ResourceName = MetallicOre
					ConverterName = Metallic Ore Harvester
					StartActionName = Start Metallic Ore Harvester
					StopActionName = Stop Metallic Ore Harvester
					ToggleActionName = Toggle Metallic Ore Harvester
				}
			}
			MODULE
			{
				IDENTIFIER
				{
					name = ModuleResourceHarvester
					ResourceName = Ore
				}
				DATA 
				{
					ResourceName = Spodumene
					ConverterName = Spodumene Harvester
					StartActionName = Start Spodumene Harvester
					StopActionName = Stop Spodumene Harvester
					ToggleActionName = Toggle Spodumene Harvester
				}
			}
			MODULE
			{
				IDENTIFIER
				{
					name = ModuleResourceHarvester
					ResourceName = Hydrates
				}
				DATA 
				{
					ResourceName = Uraninite
					ConverterName = Uraninite Harvester
					StartActionName = Start Uraninite Harvester
					StopActionName = Stop Uraninite Harvester
					ToggleActionName = Toggle Uraninite Harvester
				}
			}
		}
	}
}

 

 

Any attempt to switch the texture in the part switch module like the following also causes the part to fail to load. I'm not sure what information I'm missing.

TEXTURE
{
	currentTexture = TriBitDrill
	texture = ImmersiveConversion/Assets/TriBitDrill_blue
}

 

Drills from Stockalike Mining Extension are not only configured identically to stock drills, so the patch works for them too, they even use stock textures, so if I can get the TEXTURE node working I won't actually have to make any new textures to support recolouring for SME.

Link to comment
Share on other sites

Posted (edited)

New idea based on the drill pattern of single low tech generic part -> a pair of high tech specialised parts:

Convert-O-Trons will continue to play a similar role to stock, just much less efficiently, as implied by the part description: "... take raw materials containing even trace amounts of oxygen and hydrogen, and crack them into useful fuel products". These will continue to extract a more limited set of useful resources at very low efficiencies from single raw materials:

  • RockLqdCO2
  • HydratesWater
  • OreOxidizer
  • perhaps others

React-O-Trons are new parts unlocked slightly later in the tech tree, like the Smelt-O-Trons, which handle chemical reactions to efficiently produce a wider array of propellants:

  • WaterLqdHydrogen + LqdDeuterium + Oxidizer
  • LqdCO2 + OxidizerLqdMethane + Water
  • LqdNitrogen + LqdHydrogenLqdAmmonia
  • LqdAmmonia + OxidizerMonopropellant + LqdHydrogen (might remove the Oxidizer requirement here for simplicity)
  • OrganicsLqdMethane
  • OrganicsLiquidFuel
Edited by Charle_Roger
Link to comment
Share on other sites

Had to abandon using B9PartSwitch for the drill variants since it just doesn't seem to support ModuleResourceHarvester properly.  Stockalike Mining Extension will just have stick with basic drills, not the end of the world, unless I decide tripling all the drills is actually fine.

Placeholder Convert-O-Tron reskins are done and good enough to last the while before I make more restock-like models (which will be the exact same size). I do actually like the proper stock vibe of them though and I think it very succinctly gets the point across that these are an expansion of the Convert-O-Tron into three separate parts.

HDQpQAG.png

All that's left to do before I can release something is add tank switching options for ores and liquids and figure out how to remove the Ore > Lithium recipe added by NearFuturePropulsion, which I just cannot seem to do for some reason.

RR Companion does provide most of the tank switching I need, but it also provides a lot of other stuff which is beyond the scope of Immersive Conversion and not tuned into the new parts, so I think I will have to declare it incompatible and just add my own simple patches. RR Jet Family, Nuclear Family and RCS Family are all perfectly compatible and probably recommended, since they give direct purposes to some of the new liquids which are otherwise just intermediate products.

Link to comment
Share on other sites

Posted (edited)

Managed to remove all redundant resources and replace gases with liquids (e.g. CarbonDioxide > LqdCO2) in all scanners and surface distributions, so I have just the curated set of Immersive Conversion resources now. This will probably expand in future as I add support for more mods. I intend for the only resources which are available and visible to be the ones which are used by supported mods.

 

Also, decided to support both RareMetals and ExoticMinerals, since either or both are used by various off-world construction mods, and with KSP Recall these can be returned to Kerbin for a profit.

To that end, they should be made impossible to acquire on Kerbin and harder to come by in general, so I've been attempting to remove them from many of the RR templates with not much success. In the places where they can be acquired, they should be made rarer, since it's currently possible to e.g. fly an unmanned craft (5% harvester rate) to the Mun and generate over 10,000 funds/day. With a 125% engineer bonus you'd only need 3 days on the Mun to net 1,000,000 funds.

The absolute upper limit for a single drill should probably be more like 1,000 funds/day when operating at the highest possible abundance in a full-on colony situation (Kerbals on site long-term), so the abundance of these rare materials might need to taken down by a factor of a thousand. I think a base producing tens of tons (100,000s of funds) of so-called rare metals every year is pretty reasonable.

Of course there's nothing stopping anyone just slapping 10 drills on a base and breaking all the balancing anyway, so I'll have to think about how best to support this. I don't really want to just have the rare resources extractable as trace products from ores, since I want them constrained by limited RR templates as stated above.

 

Another thought, I wonder if anything can be done with the asteroid and comet drill modules to output other resources. Asteroids seem to become much less useful with Rational Resources, but it would be cool if they were a highly profitable source of RareMetals.

Edited by Charle_Roger
Link to comment
Share on other sites

Posted (edited)
12 hours ago, Charle_Roger said:

Of course there's nothing stopping anyone just slapping 10 drills on a base and breaking all the balancing anyway

Maybe there could be. Possible plugin idea to enhance mining with two bits of functionality:

  • If two drills are placed in close proximity, say within 50m of each other, they take an efficiency hit.
    • Could be implemented as each successive drill accumulating e.g. 0.7x efficiency, which in the infinite limit only gets you about 3.3x a single drill, and you can get most of the way there with only four or five drills.
    • This can alternatively be computed as (an - 1)/(a - 1) for some efficiency multiplier a and number of drills n, in order to apply the same multiplier to all drills.
    • There is still a benefit to having multiple drills, particularly a second, third, or even fourth drill on a mining drone, but with clearly diminishing returns.
    • This encourages seeking much more definitive benefits, like using a bigger drill (courtesy of Stockalike Mining Extension, though the largest ones might need a nerf) or building a mining colony with high-level engineers to boost your drills, which brings me to...
  • Engineer efficiency bonus can only apply to a single drill.
    • If you have multiple drills on a vessel, you'll need to support multiple engineers to get the most out of them.
    • This encourages colony building rather than cheesing it with one Kerbal and tons of drills.
    • With the diminishing drill returns, also encourages separate mining outposts and vehicles serving a central colony.

After thinking more about this, I don't think the second point is necessary. Separate mining outposts and vehicles are already encouraged by having to physically separate the drills. The only way the engineer-per-drill constraint makes sense is if you could somehow extend the engineer bonus from a central colony to all nearby vessels, which might be something to think about but ultimately is quite a complication when the first point is so simple and effective.

Edited by Charle_Roger
Link to comment
Share on other sites

On 7/18/2024 at 1:15 PM, Charle_Roger said:

Placeholder Convert-O-Tron reskins -snip-

HDQpQAG.png

Minmus Strawberry Ripple mantle confirmed. Buckle up, miners! We're going deeper! :ph34r:

 

19 hours ago, Charle_Roger said:

Another thought, I wonder if anything can be done with the asteroid and comet drill modules to output other resources. Asteroids seem to become much less useful with Rational Resources, but it would be cool if they were a highly profitable source of RareMetals.

Until now I didn't see enough value in asteroids to mess around with them. So... finally I made some configs and did some testing. From my observation: "The asteroid will contain whatever combination of resources as given by the RNG. The one asteroid harvester module on your drill will extract every resource that the asteroid contains and you keep what you have tanks for but the mass that belongs to the resources you didn't cater for gets dumped. Since mass is lost there's no coming back to the asteroid to mine it for resource B after you've already mined it dry just for resource A." I can't think of any trick that might be pulled to increase resource yields but it looks like just puffing up the mins and maxes of all the resources is very much needed... That said, Rock already has a high min and max. It shouldn't be possibe to reach down to < 1% as in the screenshot below. I might have to push some maxes beyond 100 and hope KSP doesn't break. (Apparently the sum of the % of the resources shown is only 30-something.)

Screenshots:

  • Fresh asteroid. Resources shown, not mined yet.
    r7NWR31.png
     
  • Mined dry for just Minerals. 1740 units collected.
    PHKuVEb.png
     
  • Mined dry for Hydrates and Minerals. Same amount of Minerals collected.
    Xsj6KD0.png

The asteroid and comet configs will eventually be released in my coming update.

On the subject of manipulating RR's templates, I've made some progress. I have to put the templates in another folder, currently GameData/000_RationalResources/ and I've gotten a patch to work to remove resources before RR spreads them around. Patch ordering is fixed. Now I think I just have to figure out what the exact syntax error is because targeting by tag + resource name doesn't work.

Link to comment
Share on other sites

15 hours ago, JadeOfMaar said:

"The asteroid will contain whatever combination of resources as given by the RNG. The one asteroid harvester module on your drill will extract every resource that the asteroid contains and you keep what you have tanks for but the mass that belongs to the resources you didn't cater for gets dumped. Since mass is lost there's no coming back to the asteroid to mine it for resource B after you've already mined it dry just for resource A."

Very interesting. So there is hope for making something of asteroid mining, I'm sure we can figure out how to configure it properly.

15 hours ago, JadeOfMaar said:

On the subject of manipulating RR's templates, I've made some progress. I have to put the templates in another folder, currently GameData/000_RationalResources/ and I've gotten a patch to work to remove resources before RR spreads them around. Patch ordering is fixed. Now I think I just have to figure out what the exact syntax error is because targeting by tag + resource name doesn't work.

This is great to hear. I did already achieve most of what I wanted with a bit of a messy patch, which should be made much more straightforward by your work. I also found that targeting tags and resources didn't work when trying to remove ExoticMinerals and RareMetals from certain templates.

 

8 minutes ago, Lonelykermit said:

I don't know if somebody asked this already but how will this mod interact/conflict with kerbalism?

I've never used Kerbalism, so I'm not sure yet. Given how popular it is I think it would be mad not to provide some support for it, but I can't say anything for now since I just don't know much about it. JadeOfMaar did point out to me that it uses gas forms of some resources while ImmersiveConversion will only deal in liquids. I may eventually add Kerbalism support patches that provide gas<->liquid converters, or just recommend the use of Rational Resources Parts which already has those.

Link to comment
Share on other sites

5 hours ago, Lonelykermit said:

I don't know if somebody asked this already but how will this mod interact/conflict with kerbalism?

(My guess) this mod won't interact with Kerbalism, and especially, it won't conflict. If it does it would have to use the swappable converter/harvester module in all its parts. For @Charle_Roger that means every part can have a slot count and each slot can be assigned a drill module or converter recipe. Some of the config work has to take the form of a Kerbalism support profile which serves as an extension to the active profile. All of this is a bit tedious to do but it's better than abusing B9PS.

Link to comment
Share on other sites

Stockalike Mining Extension is fitting more and more into my vision for Immersive Conversion, so I will definitely support variants for all the drills. As mentioned before it takes literally no effort to do this on my end since it already uses stock textures, my only worry is I'm not such a big fan of filling up the part list with clones. There are only seven so it's not so bad, but it would be really nice to get this working with B9PartSwitch if I can ever figure that out.

w6KDRzE.png

Link to comment
Share on other sites

@JadeOfMaar Currently figuring out tank switch options (LqdAmmonia, LqdCO2, LqdNitrogen, Organics, Water), and since RR already does most of this I don't want to step on your toes. RationalResourcesSquad seems to confusingly provide tank switching for tons of mods, but not stock parts, and does so after CryoTanks but only adds fusion fuels and not the ones I'm after to the CryoTanks themselves. Also, it adds a LqdOxygen subtype, and I'm still slightly confused about whether you intended to support LqdOxygen or whether it was meant to all be merged into Oxidizer already when RealFuels is not present.

Link to comment
Share on other sites

I was planning on just having those reskinned Convert-O-Trons until the mod was basically fully functional, but I couldn't help myself, so here's a chemical reactor.

Lt5wJDN.png

Parts are fun to make, I'm actually semi-tempted to divide the chemical reactor further. If I do, it will probably be a tech level separation, like maybe this 2.5m reactor gives you water electrolysis, sabatier and haber processes, monopropellant production etc, but a more advanced 3.75m reactor additionally allows combustion process with Oxidizer or pyrolitic processes like turning LqdMethane into Organics. Processing Organics into Polymers or LiquidFuel likewise could be handled by a separate part. I don't want to overdo it with parts, but I don't want to end up with one converter operating an even wider array of recipes than the old Convert-O-Trons, since the whole point is to make something more immersive.

Link to comment
Share on other sites

On 7/21/2024 at 7:06 AM, Charle_Roger said:

Stockalike Mining Extension is fitting more and more into my vision for Immersive Conversion, so I will definitely support variants for all the drills. As mentioned before it takes literally no effort to do this on my end since it already uses stock textures, my only worry is I'm not such a big fan of filling up the part list with clones. There are only seven so it's not so bad, but it would be really nice to get this working with B9PartSwitch if I can ever figure that out.

w6KDRzE.png

I'm both sad and hopeful if you're not already doing the texture switch like this. It seems to work well for me since I absolutely need this for my own upgradeable solar panels.

SUBTYPE
{
	name = Type1
	// no change, no "currentTexture" references
}
SUBTYPE
{
	name = Type2
	TEXTURE
	{
		texture = Path/texture2
		shaderProperty = _MainTex
	}
}
SUBTYPE
{
	name = Type3
	TEXTURE
	{
		texture = Path/texture3
		shaderProperty = _MainTex
	}
}

If this has already been tried and has failed then do try this next one. I haven't had to use its components together like this (welding repeat models; stock texture replace; giving names to the model nodes) but the components have worked for me so this altogether should work. (Sorry. Haven't tested it as a whole but OPT's aerodynamic RCS uses repeat models with variant textures baked in, and I learned about named models by learning that I could make another model be the child of, and swing with, a cargo bay door).

If this example works then you can use it to have one part be all the different variants of drill or refinery you have planned.

PART
{
	MODEL
	{
		name = DrillYellow
		model = Path/Model
	}
	MODEL
	{
		name = DrillCyan
		model = Path/Model
		texture = default, Path/texture2
	}
	MODEL
	{
		name = DrillMagenta
		model = Path/Model
		texture = default, Path/texture3
	}
	
	MODULE
	{
		name = ModuleB9PartSwitch
		SUBTYPE
		{
			name = Type1
			transform = DrillYellow
		}
		SUBTYPE
		{
			name = Type2
			transform = DrillCyan
		}
		SUBTYPE
		{
			name = Type3
			transform = DrillMagenta
		}
	}
}

 

On 7/21/2024 at 8:58 AM, Charle_Roger said:

@JadeOfMaar Currently figuring out tank switch options (LqdAmmonia, LqdCO2, LqdNitrogen, Organics, Water), and since RR already does most of this I don't want to step on your toes. RationalResourcesSquad seems to confusingly provide tank switching for tons of mods, but not stock parts, and does so after CryoTanks but only adds fusion fuels and not the ones I'm after to the CryoTanks themselves. Also, it adds a LqdOxygen subtype, and I'm still slightly confused about whether you intended to support LqdOxygen or whether it was meant to all be merged into Oxidizer already when RealFuels is not present.

RR Squad does handle the stock tanks, with and without CryoTanks. However, it won't do so if it detects other major fuel switch plugins (namely: Configurable Containers (Allista's mods), Interstellar Fuel Switch, Modular Fuel Tanks/Real Fuels). I'm curious to the fusion fuel situation. Is there something other than D +3He and FusionPellets that's popular outside of KSPIE?

The purpose of LqdOxygen is that it seems really weird to have Oxygen gas (used by TAC and Kerbalism) be turned into Oxidizer resource when liquefied, meanwhile, RealFuels and KSPIE prefer LqdOxygen over Oxidizer and Kerbalism treats Oxidizer as Hydrogen Peroxide.

 

On 7/21/2024 at 5:02 PM, Charle_Roger said:

I was planning on just having those reskinned Convert-O-Trons until the mod was basically fully functional, but I couldn't help myself, so here's a chemical reactor.

Lt5wJDN.png

Parts are fun to make, I'm actually semi-tempted to divide the chemical reactor further. If I do, it will probably be a tech level separation, like maybe this 2.5m reactor gives you water electrolysis, sabatier and haber processes, monopropellant production etc, but a more advanced 3.75m reactor additionally allows combustion process with Oxidizer or pyrolitic processes like turning LqdMethane into Organics. Processing Organics into Polymers or LiquidFuel likewise could be handled by a separate part. I don't want to overdo it with parts, but I don't want to end up with one converter operating an even wider array of recipes than the old Convert-O-Trons, since the whole point is to make something more immersive.

Did you really sculpt this? It's reeeeeally good. I encourage you to avoid patching the stock parts and make your own. Too many ISRU mods already do it and make for a mess. Rational Resources would have its own refinery suite (in spite of Stockalike Expansion) but I'm saving the energy for that for the refinery suite in Sterling Systems.

Edited by JadeOfMaar
Link to comment
Share on other sites

Posted (edited)
10 hours ago, JadeOfMaar said:

I'm both sad and hopeful if you're not already doing the texture switch like this.

The texture switching is not the issue, in fact I got B9PartSwitch almost completely working already. The issue is the way it fails to handle certain parts of ModuleResourceHarvester, some text on buttons wasn't being replaced properly, so e.g. the water drill would display "Ore: Inactive" instead of Water, be activated with a "Start Ore Harvester" button, but display "Water rate: X u/s" once it was activated, and indeed produce Water. I will have another go tonight, I think it should be possible.

10 hours ago, JadeOfMaar said:

RR Squad does handle the stock tanks, with and without CryoTanks. However, it won't do so if it detects other major fuel switch plugins (namely: Configurable Containers (Allista's mods), Interstellar Fuel Switch, Modular Fuel Tanks/Real Fuels). I'm curious to the fusion fuel situation. Is there something other than D +3He and FusionPellets that's popular outside of KSPIE?

The fusion fuels I was referring to are LqdDeuterium, LqdHe3 and FusionPellets, which all appear in the CryoTanks tanks as expected, but I'm seeing LqdAmmonia, LqdCO2 etc. added only to tanks in other mods, not CryoTanks or stock. I have no other fuel switching mod you mentioned, but I'll see if I can figure out what's going on there.

I should also stress that RR is strongly recommended for Immersive Conversion, but not actually a depedency, so I will provide equivalent tank switching natively if RR is not present, unless RR knows not to add subtypes which are already present.

10 hours ago, JadeOfMaar said:

The purpose of LqdOxygen is that it seems really weird to have Oxygen gas (used by TAC and Kerbalism) be turned into Oxidizer resource when liquefied, meanwhile, RealFuels and KSPIE prefer LqdOxygen over Oxidizer and Kerbalism treats Oxidizer as Hydrogen Peroxide.

Yeah I guess this makes sense, I'm just being difficult in trying to avoid a RealFuels situation while still having a bunch of real chemistry going on. I think it's inevitable that RealFuels players will be more interested in ImmersiveConversion than anyone else, so I should probably think about how best to go about all this.

Perhaps I should use LqdOxygen everywhere instead, and have Oxidizer be a dead-end product like LiquidFuel. That way there is a better separation of concerns, LqdOxygen for intermediate chemistry and Oxidizer for rockets. Should I do as Kerbalism does and provide LqdHydrogen + LqdOxygen -> Oxidizer, or not require the hydrogen and just have this weird transmutation of LqdOxygen into whatever Oxidizer is meant to be? I think either way will leave people wondering why they can't just use LqdOxygen in their rockets, but maybe those people should be playing with RealFuels so they can.

10 hours ago, JadeOfMaar said:

Did you really sculpt this? It's reeeeeally good. I encourage you to avoid patching the stock parts and make your own. Too many ISRU mods already do it and make for a mess. Rational Resources would have its own refinery suite (in spite of Stockalike Expansion) but I'm saving the energy for that for the refinery suite in Sterling Systems.

I did, thank you! I have dabbled a bit in making parts a few times over the last decade or so, but never really got anything I wanted to release. This is the first time I've had a genuinely good idea for a mod that I think I can execute well. Certainly the chemical reactors and smelters will get their own models, but I'm not sure about drills. I have two options:

  • Get B9PartSwitch working and have every drill have yellow/blue/red variants — Low effort, but I do like the simplicity. Works very nicely with Stockalike Mining Extension.
  • Make new models for ice and metal drills — Way higher effort, though the end result would undeniably be higher quality. Will probably involve various sizes to work well with SME, so I'd be modelling like 15 drills or something.

I'm strongly leaning towards the former, but depending on how popular this mod gets maybe I could be convinced to put in the work. Immersive Conversion wasn't even supposed to be a parts mod, it was originally just going to be patches to connect existing mods together, but now the goal is definitely to achieve that interconnection by providing a suite of new ISRU parts.

I have way too many ideas right now (carbothermic processes, molten salt electrolysis, ammonia-burning engines...), so I think I will focus on the basic chemical reactor and leave the smelters for some 0.x update, since they are much more niche anyway. Proper 1.0 release will have everything. Which reminds me, I should probably release something soon...

Edited by Charle_Roger
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...