anchor.diff:  		//This is more error prevention, according to all known laws of atmos, gas_mix.remove() should never make negative mol values.
   		//But this is tg
   
  -		//Lets get the proportions of the gasses in the mix
  +		//Lets get the proportions of the gasses in the mix and then slowly move our comp to that value
  +		//Can cause an overestimation of mol count, should stabalize things though.
  +		//Prevents huge bursts of gas/heat when a large amount of something is introduced
   		//They range between 0 and 1
  -		plasmacomp = max(removed.gases[/datum/gas/plasma][MOLES]/combined_gas, 0)
  -		o2comp = max(removed.gases[/datum/gas/oxygen][MOLES]/combined_gas, 0)
  -		co2comp = max(removed.gases[/datum/gas/carbon_dioxide][MOLES]/combined_gas, 0)
  -		pluoxiumcomp = max(removed.gases[/datum/gas/pluoxium][MOLES]/combined_gas, 0)
  -		tritiumcomp = max(removed.gases[/datum/gas/tritium][MOLES]/combined_gas, 0)
  -		bzcomp = max(removed.gases[/datum/gas/bz][MOLES]/combined_gas, 0)
  -
  -		n2ocomp = max(removed.gases[/datum/gas/nitrous_oxide][MOLES]/combined_gas, 0)
  -		n2comp = max(removed.gases[/datum/gas/nitrogen][MOLES]/combined_gas, 0)
  +		plasmacomp += CLAMP(max(removed.gases[/datum/gas/plasma][MOLES]/combined_gas, 0) - plasmacomp, -1, gas_change_rate)
  +		o2comp += CLAMP(max(removed.gases[/datum/gas/oxygen][MOLES]/combined_gas, 0) - o2comp, -1, gas_change_rate)
  +		co2comp += CLAMP(max(removed.gases[/datum/gas/carbon_dioxide][MOLES]/combined_gas, 0) - co2comp, -1, gas_change_rate)
  +		pluoxiumcomp += CLAMP(max(removed.gases[/datum/gas/pluoxium][MOLES]/combined_gas, 0) - pluoxiumcomp, -1, gas_change_rate)
  +		tritiumcomp += CLAMP(max(removed.gases[/datum/gas/tritium][MOLES]/combined_gas, 0) - tritiumcomp, -1, gas_change_rate)
  +		bzcomp += CLAMP(max(removed.gases[/datum/gas/bz][MOLES]/combined_gas, 0) - bzcomp, -1, gas_change_rate)
  +		n2ocomp += CLAMP(max(removed.gases[/datum/gas/nitrous_oxide][MOLES]/combined_gas, 0) - n2ocomp, -1, gas_change_rate)
  +		n2comp += CLAMP(max(removed.gases[/datum/gas/nitrogen][MOLES]/combined_gas, 0) - n2comp, -1, gas_change_rate)
   
   		//We're concerned about pluoxium being too easy to abuse at low percents, so we make sure there's a substantial amount.
   		if(pluoxiumcomp >= 0.15)
  
positive.code: 
  	critical_machine = TRUE
  
  	var/gasefficency = 0.15
  
  	var/base_icon_state = "darkmatter"
  
negative.code: 		//Value between 6 and 1
  		dynamic_heat_resistance = max((n2ocomp * N2O_HEAT_RESISTANCE) + ((pluoxiumcomp * PLUOXIUM_HEAT_RESISTANCE) * pluoxiumbonus), 1)
  		//Value between 30 and -5, used to determine radiation output as it concerns things like collecters
  		power_transmission_bonus = (plasmacomp * gas_trans["PL"]) + (o2comp * gas_trans["O2"]) + (bzcomp * gas_trans["BZ"]) + (tritiumcomp * gas_trans["TRIT"]) + ((pluoxiumcomp * gas_trans["PLX"]) * pluoxiumbonus)
  
  		//more moles of gases are harder to heat than fewer, so let's scale heat damage around them
  		mole_heat_penalty = max(combined_gas / MOLE_HEAT_PENALTY, 0.25)
  