22 Semi-Dynamic Engines and Extensions
In this section, we explore two special flying machine engine designs that rely on other independent engines to pass motion forward.
1 Semi-Dynamic Engines
A semi-dynamic engine is a counting engine that moves one block when it receives an external signal. As shown in the figure:

The semi-dynamic engine shown above is simple and widely used, but it doesn't work properly in the now-common 10gt standard engine. So let's explore how to get a flying machine from can't move, to always moving, to moves once.
As mentioned in the previous section, the essential structure of a flying machine is:
- Two pistons facing each other, at least one being a sticky piston
- Two observers, each activating one piston
- Slime Blocks for connection
The two observers are what make always moving possible, since they provide the exact timing needed for continuous motion.

Analyzing the 10gt flying machine, we can see that the next movement happens because the left observer arrives in position and sends another signal, pushing the whole machine into the next cycle. To make the flying machine move only once, we just need to stop the observer from sending that signal when it reaches position.
As shown in the figure, we mount the left observer onto the right structure. This way, at startup the observer can send a signal to the piston, but when it arrives in position, the observer and piston separate, preventing the next cycle from starting.


Note: the left piston in the figure cannot be a sticky piston. Due to signal timing, swapping it for a sticky piston would cause the structure to oscillate.
Let's simplify the semi-dynamic engine structure above and add a Note Block as a switch:

From this, we can summarize the key components of a simple semi-dynamic engine:
- Two pistons facing each other - the one pointing in the direction of travel is a regular piston, while the one pointing away is a sticky piston
- Two observers that can activate both pistons, but mounted on the same side
- Slime Blocks for connection
In fact, most tunnel bores and unidirectional bulldozers are essentially large semi-dynamic engines. They receive a signal from the player, move forward one block, reset, and wait for the next signal.

The figure shows my unidirectional bulldozer with the semi-dynamic switch isolated.
2 Extensions
We covered flying machine mounting and extensions in 1.3.3, so here we won't draw a distinction between the two.
2.1 a) Motion Extensions
The simplest extension is just a forward-facing regular piston and a backward-facing sticky piston. Using observers and pistons, motion gets passed forward. We won't go into details here.
2.2 b) Signal Extensions
Building on the semi-dynamic engine above, we can use a flying machine to send it periodic signals. The semi-dynamic engine then moves in sync with the flying machine.

In the figure, the top structure is a regular 10gt flying machine with an extra observer mounted on it, and the bottom is a semi-dynamic engine. They move in sync.

You might be wondering: if a semi-dynamic engine's whole point is to move only once, but we're connecting it to a flying machine, doesn't that defeat the purpose? Why not just build another flying machine instead?
Actually, a semi-dynamic engine is a pretty simple extension structure. For one thing, the main flying machine might hit its push limit and can no longer pass motion through observers and pistons - in that case, you can use a lighter semi-dynamic engine instead. On the other hand, a semi-dynamic engine doesn't just move once - it stops after moving. That means if the main flying machine stops for whatever reason, the semi-dynamic engine extension must immediately stop too. If you built a separate flying machine instead, you'd run into serious problems.
There are also broader signal extensions where the signal isn't limited to just Redstone.

To make this easier to see, I also made the main flying machine into a semi-dynamic engine. When it moves, the semi-dynamic engine extension detects the movement and follows along.


