Barotrauma – Better Vanilla Reactor Automation

Improving on top of existing well-known reactor automation while not making it an hour-long component struggle.

Bonus! My rig for comparative reactor automation tests is in the workshop.

Reactor Basics

All credit goes to Afalin !

You have 2 sub-systems in reactor – heat generation (fission) and energy production (turbine) that uses that heat.

Ideal reactor generates barely enough heat for the turbine to generate exact amount of power for the load the sub requires.

If heat generated is more than “barely enough” you’ll waste fuel and in extreme case melt the reactor.

If power generated exceeds load you’ll damage electrical equipment of the ship.

There are cases where you would want to “waste fuel” (depleted fuel rods production) or overload the grid (electrical skill training) but we won’t cover those right now.

Non-functional requirements – use as less resources (components) for the build and keep it as simple as possible.

Typical Reactor Automation Approach

Reactor automation choice depends on the resource availability on the submarine.

1st variant and the most regular (and, arguably, greater) is a 2-component rector.

It uses regex component to control input for reactor temperature and greater component for turbine output.

It is most “reactive” variant as it only uses 0 and 100 values to operate. So it oscillates both controls (almost) constantly and tends to bounce around ideal positions.

If only 1 component is available, automate fission rate first. It allows use of multiple rods without drawbacks and reactor overheating is way more annoying than turbine inefficiency.

Value for the temperature depends on the supply-demand of the sub, but I’d start with 3999, switching all the way to 4999 if necessary.

Resource list: 2 components, 5 wires.

(I’m not the author of that approach, including just for reference)

Non-oscillating Reactor Automation

Alternative turbine control mode would be to follow precise load that sub demands.

Add a memory component with value maxReactorVoltage/100 and divide the load by that number. Reactor turbine slider should now always follow the middle of the green range.

So when grid does not experience major load spikes (i.e. sub is idle while the crew is away on a diving mission) the reactor will act like an ideal one.

Precision comes at a price – it adjusts the power output slower than what the reactor is capable of.

Reason behind it – turbine control has inertia – it adjusts slower the closer to the set value is.

On its own that method is worse for the sub than “greater component” turbine control because of the damage to the electrical systems of the ship.

Turbine Accelerator – Better Reactor Automation

Add Turbine accelerator to combine the precision with reactiveness of the 2-component reactor.

(That’s my original contribution to the trauma-engineering community)

Add a “subtract” and another regex components to the stew. They’ll bring the output in the desired area at max speed and leave the precise adjustment to existing setup.

It needs to be applied ON TOP and AFTER the precise controller because of how components are evaluated in current version of the game.

(Load – power) -> regex (check capture group value tb) expression “^(?-?\d{2,})$” -> turbine_in

It is up to 50% more efficient in controlling the turbine than precise control and does not oscillate under constant load.

Already a Veteran Trauma Diver? Here’s All You Need

Add subtract and regex on top of MaxReactorPower-%-based turbine control.

Load – Power -> regex ^(?-?\d{2,})$ -> turbine_in

Happy diving!

Volodymyr Azimoff
About Volodymyr Azimoff 13955 Articles
I love games and I live games. Video games are my passion, my hobby and my job. My experience with games started back in 1994 with the Metal Mutant game on ZX Spectrum computer. And since then, I’ve been playing on anything from consoles, to mobile devices. My first official job in the game industry started back in 2005, and I'm still doing what I love to do.

Be the first to comment

Leave a Reply

Your email address will not be published.


*