Overview
In FortressCraft, automation revolves around throughput and flow rates rather than absolute numbers. It doesn’t matter how many lumps of coal you pump into powering a coal mine, as long as you are getting more out than you are burning. There are two intertwined systems– resources and power. This guide discuss how power moves around in FortressCraft 1.9p2 on the default world settings (Easy) in survival.
Fundamentals
Every block has 6 faces. Each face can be an an output face that transfers power to other blocks or an input face that can accept power. A source is a block whose output face is transferring power to the input face of a sink. Powered blocks can store power up to their capacity. The block’s charge is the amount that’s actually being stored. The available capacity of a block is how much more power the block can hold– the difference between the capacity and charge.
Every second, each output face touching an input face tries to transfer as much power as it can, limited by the lowest of these:
- Source’s charge
- Source’s max output
- Sink’s available capacity
A PTG on coal produces 14.6 power per second. A PSB2 can pull 300 when empty, and doesn’t drop below the PTG’s output until it has 1423 charge. If you surround a PTG with PSB 2s, how is the power distributed?
The each face of the PTG gets 1/6th of the production. If a face isn’t attached, then that share is given to the next face, and passes down until there is an attached face. The order is NORTH -> SOUTH -> EAST -> WEST -> BOTTOM -> TOP, then wrapping back to NORTH.
This also gives a way to find north. Put down a PTG with a PSB on the bottom and four sides, then feed a single coal through the top. The PSB that gets the most charge is “NORTH”.
[link]
This is the result of running 10 coal through a PTG hooked to four lasers. The north battery, indicated by the conveyor arrow, has three times the charge of the others and the north laser averaged 6.8 power/sec versus 2.3 power/sec for the others. Since the PTG doesn’t have a power consumer on the bottom and top, those shares fall through to the north.
Here’s the number of examples of a PTG surrounded by 3 or 4 PSBs. Blanks indicate no PSB in that direction, and the number is how many shares of power that PSB gets.
The first row says that with lasers on the North, East, and Bottom, each of them get equal power, since South -> East, West-> Bottom, and Top -> North.
The second row says that the Top laser would get 4x as much juice as the the North and South, because it inherits East->West->Bottom->Top, but North and South only get their own shares.
Block Specific Notes
There may be a slight hiccup when a new piece of fuel is loaded that causes the sustained output to be slightly below the theoretical. It will generally only show up in runs of less than 5 minutes; in longer runs the difference disappears when rates are rounded to the nearest 10th.
Since solar panels do not have any internal storage and an always-on but variable output, it’s simplest to connect them to a PSB battery and treat the whole as a single component.
Laser Energy Transmitters are simple devices with 5 input faces and an output face that can connect to an input face up to 64 blocks away.
The throughput of a LET is the lesser of it’s Max Output or the power/second that it is receiving. Additional batteries do not “overcharge” a laser, though they may increase its incoming power.
A LET can be used to measure the power/s at a given point by pointing it at a sufficiently large sink such as e.g. 2×2 block of PSB mk3 or a Quarry.
Power Characteristics:
- The output faces are the four 3×4 sides of the engine. The intake blocks and the 3×3 exhaust side produce no power.
- The turbine does do some form of power splitting among its 27 sides with each share being about 1.5 power/second. Given that the split seems to be more equitable than the PTG and the small share size, it probably doesn’t matter as much.
Operational Characteristics:
- Full speed is 6000 RPM. Partial power production begins earlier, and seems to increase linearly up to full speed.
- A full spin-up takes about 60 seconds and 12.5% of a fuel cell.
- When the turbine’s charge is full, it will spin down to idle at ~150RPM. Idle consumes about 0.01% fuel per second. Drawing power will cause a full spin-up.
- The Turbine will attempt to load 2 fuel at a time. This doesn’t impact efficiency; think of it like a PTG that has a size 1 storage built in for the next piece of coal.
Construction Characteristics:
- The intake can be blocked without repercussion after the engine is built.
- The exhaust is a 12 block long “+” shaped region that does damage to you. The damage effect penetrates blocks, but does not affect them. There is no drawback to blocking it off for safety.
Power Storage Blocks and The 20% Rule
The unique aspect is that PSBs transfer power to each other based on the 20% Rule.
The 20% Rule
- A PSB’s can only give 20% of it’s charge, rounded to a whole number.
- A PSB’s can only receive 20% of it’s available capacity, rounded to a whole number.
Each of a PSB’s faces is both an input and output, which means that two connected PSBs will send power to each other at every tick. Since power is moved in discrete amounts based on the 20% Rule, an empty PSB placed next to a full one will not equally split charge between them nor will a larger PSB fully charge a smaller PSB. Rather, they will both oscillate around the point where their max outputs and max inputs balance.
Given the dynamic transfer rates, bi-directional sharing, oscillation, and directional aspects of power splitting, calculating the internal states of a large group of touching PSBs is daunting. For non-trivial systems, there’s no simpler way to calculate it than to just build it and measure.
There are a few useful rules of thumb:
- A source and sink connected by a 1x1xN line of PSBs loses about 5-20% of its throughput per PSB to PSB connection due to oscillation. The Max Output of the line will be greater than (0.85)^(N-1).
- Adding another row to create 1x2xN line of PSBs has about twice the throughput of a 1x2xN line.
- A cube of PSBs has negligible loss for reasonable distances.
Connect a fully charged PSB to an uncharged PSB. Since each one acts on it’s own, they take turns pushing power back and forth.
Since they only push whole units of power, they end up oscillating between two values rather than splitting equally. In the game, PSB A oscillated between 111 and 91 for me, probably due to rounding differences.
Tables
* Batteries obey the 20% Rule when transferring to another battery. Otherwise they don’t seem to have a limit.
- Fuel — resource burned to produce energy.
- Energy Density — energy produced per unit of fuel
- Burn Time — time taken to consume one unit of fuel.
- Capacity — internal energy holding capacity of the source
- Max Output — peak energy that can be delivered through a face with sufficient available capacity.
- Power/s — average power production; average sustained power output.
Tips to Optimize
Break down your system into sources (e.g. an array of PTGs), sinks (e.g. a drill & smelter mining site), and junctions that move power from one or more inputs to one or more outputs.
Starting with the sinks and working back to the source, determine the total demand from the internal mechanisms and downstream components. If the demand is highly variable, use PSBs as a buffer to smooth out the average, preferably as close as possible to the variable point.
Do us LETs to move power between components, ideally the smallest one needed to handle the load.
Do connect LETs directly to each other and mechanisms when possible. You can always insert a PSB later to form a junction.
Don’t use PSBs to transmit power more than one meter. You need a fat wire to overcome the resistance caused by the oscillation effect.
Do use PSBs as buffers to smooth out variable supply and demand.
Do use PSBs to increase the surface area of a block. A LET3 can transmit 160 power/s, the 5 PTGs you can attach to it can only supply 73 power/second. A adding a PSB2 to those 5 faces face lets you attach 17 PTGs for a total of 248 power/second, fully saturating a LET3 with a topaz lens.