Reaction prototypes define recipes with ratios of reagents required to cause a chemical reaction. Below are the reaction yaml config values:
type: The prototype type. Should always be
id: Unique id used by the game to identify the reaction. In
reactants: A list of reactants required for the reaction to occur. Each reactant specifies it’s ratio and if it’s a catalyst. See the example below for more info.
products: A list of reagents created as a result of the reaction. They will be add to the solution container the reaction occurs in if there is room.
effects: A list of effects and their properties. Each effect corresponds to a C# class that implements IReactionEffect. See the example below for more info.
- type: reaction id: PotassiumExplosion reactants: Water: amount: 1 Potassium: amount: 1 effects: # Reaction effects - !type:ExplosionReactionEffect # Ranges used when 1 potassium + 1 water react (A unit reaction) devastationRange: 0.05 heavyImpactRange: 0.1 lightImpactRange: 0.15 flashRange: 0.2 scaled: true # Scaled proportionally to amount of potassium and water maxScale: 30 # Explosion strength stops scaling at 30 potassium + 30 water
Here’s another example. This one has a catalyst, and some chemical products, but no reaction effect. Note that reactants are only catalysts if directly specified, and will be consumed otherwise.
- type: reaction id: PolytrinicAcid reactants: SulfuricAcid: amount: 1 Chlorine: amount: 1 catalyst: True # False if not specified Potassium: amount: 1 products: PolytrinicAcid: 3