Tutorials/Flying machines

Flying machines are mechanism that make the use of slime blocks and pistons to move a player, entity or structure in the air, liquids, or solid blocks.

Piston flying machines
The slime block based flying technologies use the clever placement of pistons, blocks of redstone, observers, slime blocks and possibly honey blocks to make an engine, which will move the structure. This is another way of legitimate flying in Survival mode, other than using an elytra. The two main components of slime block flying machines are the engine and the splitter. Expandable flying machine with a 2-way engine and multiple splitters (each carrying 2 TNT Duplicators).

These technologies use the fact that slime blocks will move adjacent movable blocks, including other slime blocks, when pushed or pulled. Honey blocks can also be used to bypass the piston push limit by using adjacent slime block and honey block flying machines to divide the number of blocks in a structure among pistons.

Engines


Engines are mechanical parts of slime-block based flying machines used to move them.

Engines divide into semi- and fully-automatic. The semi-automatic engines need player's intervention to move it, generally updating a piston (like using flint and steel on it or rapidly placing tripwire against it).

The fully-automatic engines are capable of automating the above issue, like by a piston next to it that extends and pushes the moving construction. However, to stop such an engine, something must be in the way so that it can no longer move, this may be in the form of a mechanism in the machine or some other immovable obstacle.

Engines can also differ in available directions and speed. Some can only move in a single direction. They are the most simple and most common engines.

Multi-directional engines
More rarely, engines can move in multiple directions. They have multiple piston mechanisms, each for movement into a separate direction. Such engines are often large and complex and require stations to reliably switch directions.

A 6-way engine that requires dedicated stations.

A 4-way engine (2 vertical directions) that switches directions upon contact with a few blocks.

Compact 2-way engine
A 2-way engine can be made with as few as 6 blocks – 2 Observers, 2 Slime Blocks, and 2 Sticky Pistons. Note that there is more than one way to make such an engine.

Its direction of flight depends on which observer is updated first. Note that in the diagram shown, each observer directly powers a slime block while its face faces up.

Diagonal engine
Some engines can move diagonally by moving alternately along 2 axes.

Oblique engine
Slime block "knightships" (displacement (2m,m)) and "camelships" (displacement (3m,m)) can also be constructed, and further oblique flying machines are almost certainly possible to construct.

Turbo-charged engines


Engine A is a high-speed single-direction engine. It fits into 2×2×6 dimensions and uses 14 blocks.

Note 1: This does not work in Java Edition 1.13 or Bedrock Edition (unless an observer-using variant is invented)

Splitters
Splitters are mechanical parts of a fully-automatic flying machine used to push an independent part of a large flying structure. A single piston only can push or pull up to 12 blocks. Splitters split a structure into multiple independent pushable parts (hence the name).

One-way splitters
A one-way splitter has 2 parts: a normal piston in the rear, and a slime block (or more) with a power source in the front with space between them.

Once the rear part with the piston is pushed, the piston will be activated by a power source from the front part. It will push the slime block (and thus the next part of the flying contraption and its splitters), which pulls the power source with it. The piston will then deactivate and prepare for another push.

Some simple engines are just made of looped splitters, such that, at any given time one piston is always powered (in these machines it is important to place the redstone blocks last).



Two-way splitters
A two-way splitter consists of an observer powering at least one sticky piston which pushes or pulls a part of the flying contraption. This is possible only in Java Edition because it's the only version where sticky pistons (upon receiving a short redstone pulse) can push a block and then retract quickly without pulling it back.

This type of splitter will either continuously pull or push depending on whether the part it's supposed to move is initially retracted or not. If the part is initially retracted and the splitter is continuously pulled, the sticky piston will continuously pull the part. On the other hand, if the part is one block away ("not retracted") and the splitter is continuously pushed, the sticky piston will continuously push the part. This mechanism necessitates a switch within the flying machine to independently retract and extend the splitters before flight, because otherwise, the engine will most likely be unable to push due to the "stuck" retracted splitters adding extra load to the engine's pistons.

Falling hazard
Often due to lag, slime engines can bug allowing the player to fall through the machine. This can be solved by placing the player in a vehicle such as a minecart or by standing on top of a honey block.

Braking method
Starting the engine of a flying machine often involves updating a piston or observer. Braking, on the other hand, isn't as straightforward to do in survival because a piston-immovable block must be present to stop the engine. A reliable braking method that was first popularized by SethBling is to attach a noteblock (or any similar redstone component movable by pistons) to the "face" of an observer that powers a piston. The piston is placed on the front of the engine, and since extended pistons cannot be pushed by other pistons, activating the noteblock at the right time will stop the engine.

Brake component extension
By using sticky pistons instead of pistons for the braking components, they also become 2-way splitters. These can be used to carry extra blocks, such as holders for minecarts/minecart chests, passenger roofs, TNT duplicators, etc.A modified version of the previous machine, with minecart chests and a roof attached to the 2 two-way spliiters. ''A compact 4-way drivable flying machine that carries minecarts and minecart chests on its splitters. Flies North-South or East-West, depending on the placement of the two splitter pistons and two engine observers.''

Bedrock engine designs
Flying machines are much more restricted $$ due to the lack of quasi-connectivity and other piston behaviors. $$, a sticky piston powered with a 1 tick pulse will drop the block it is carrying. The absence of these behaviors makes it difficult to create complex flying machines.

Simple engine
These are basic flying machine designs. The shown examples will move to the viewer's left.

Removing the block of redstone, or placing obsidian in front of the observer, will cause the machine to stop. This may be hard to do, unless in creative mode. For players who want to ride their flying machine, it may be hard to add and remove the obsidian or redstone block (especially in survival mode). A slightly easier way is to add layers of another material (such as wood plank) to the machine, stopping just before the limit of what a piston can move and doubling as a practical gondola for the player at the same time. From a position sitting on the machine somewhere, the player may add another wood plank block to the machine, killing the speed. Removing the final block causes the machine to start again.

Here is a example of a flying machine: https://www.youtube.com/watch?v=CBth4IJj3_o

Multi-directional engine
This design is multi-directional but it does require a return station to change the direction. The observers are 1 block higher than everything else and have slime blocks below them. The return station is only an example, anything that pushes the machine over so that the other sticky piston is unable to pull the terracotta should work. It may help to watch the videos below to see some more examples.

Splitters
Bedrock Edition users can create a one-way splitter with an observer powering a piston. Pushing the two updates the observer which powers the piston, which then pushes.