A cannon in Minecraft uses redstone, pistons, and TNT to fire projectiles
A functional cannon requires four main components: a TNT block as the projectile, redstone dust to carry the signal, pistons to push the TNT, and a redstone power source like a lever or button. The piston launches the TNT when activated, and the redstone circuit controls the timing. Most cannons fire in a straight line, though advanced designs can angle shots or fire multiple rounds in sequence.
The simplest cannon takes about ten minutes to build and works on any Minecraft version that includes pistons and redstone (Java Edition 1.0 and later, or Bedrock Edition). You do not need mods or command blocks. The cannon will destroy blocks around the impact point, so build it away from structures you want to keep.
Key Takeaways
- A basic cannon needs one piston, one TNT block, redstone dust, and a power source like a lever or button.
- The piston must face the direction you want to fire, with TNT directly in front of it and redstone dust connecting the piston to your power source.
- set up the lever or button to send power through the redstone, which pushes the piston and launches the TNT.
- Multi-piston cannons fire farther and faster but require more redstone wiring and careful timing between pistons.
Building a single-piston cannon
Place a piston facing the direction you want to fire. In front of the piston (on the side it will push), place one TNT block. Behind the piston, place redstone dust in a line leading to a lever or button. The redstone dust must touch the back of the piston directly — if there is a gap, the signal will not reach it.
set up the lever or button. The piston extends, pushes the TNT forward, and the TNT flies in that direction. The farther the redstone line extends before you set up it, the more time the TNT has to accelerate, but a single piston only moves the TNT one block. For longer range, you need multiple pistons or a different design.
Test the cannon from a safe distance. TNT explodes on impact with the ground or after a few seconds in the air, so stand back when you fire. If the TNT does not launch, check that the redstone dust is touching the piston and that the lever or button is working.
Multi-piston cannons for longer range
A double-piston cannon stacks two pistons vertically or horizontally to push the TNT farther. Place the first piston, then place a second piston directly behind it (or beside it, depending on your design). Both pistons must face the same direction. Place TNT in front of the first piston, and run redstone dust to both pistons so they set up at the same time.
When you set up the lever, both pistons extend together, pushing the TNT twice as far as a single piston would. A triple-piston cannon works the same way — add a third piston in line and connect it to the same redstone circuit. The more pistons you stack, the farther the TNT travels, but the cannon becomes harder to fit in tight spaces.
For even greater range, use a slime block launcher. Place slime blocks in front of the pistons instead of TNT, then place TNT on top of the slime blocks. When the pistons push the slime, the TNT rides along and launches much farther. This design is more complex but fires projectiles across entire landscapes.
Timing and redstone circuits for rapid fire
A basic cannon fires once per lever pull. To fire automatically, connect the lever to a redstone repeater set to a delay, then loop the redstone back to the piston. This creates a pulse that fires the cannon repeatedly until you break the circuit. A repeater set to one tick fires faster; a repeater set to four ticks fires slower and gives TNT time to clear the barrel before the next shot launches.
For a multi-shot cannon, place multiple TNT blocks in a line in front of the piston. When you set up the lever, the piston pushes all of them at once, firing a spread of projectiles. This uses more TNT but covers a wider area. Adjust the piston delay using repeaters if you want to fire one TNT at a time instead of all together.
Test your timing by watching where TNT lands. If two shots collide in mid-air, increase the repeater delay. If the cannon misfires or the piston does not extend fully, check that the redstone dust forms an unbroken line and that no blocks are blocking the piston's path.
Aiming and positioning your cannon
A cannon fires in a straight line from the piston's facing direction. To aim up or down, angle the piston itself — place it on a slope or rotate it so it points diagonally. A piston pointing up-forward will fire TNT in an arc. Experiment with different angles to hit targets at different distances.
Build the cannon on a platform or in a tower so you can see where shots land. Mark your target with a block or structure so you know what you are aiming at. If the TNT overshoots, move the cannon closer or reduce the number of pistons. If it falls short, add another piston or use a slime block launcher.
For stationary targets like a castle or wall, position the cannon so the TNT path is clear of obstacles. For moving targets like other players, lead your shots by aiming ahead of where they are moving. Cannons are slow to reload, so accuracy matters more than fire rate.
Common problems and fixes
If the piston does not extend when you pull the lever, the redstone signal is not reaching it. Check that redstone dust is touching the back of the piston and that the dust forms an unbroken line to the lever. Redstone dust stops conducting power if there is a gap, even a one-block gap. If the lever is far away, use a repeater every 15 blocks to boost the signal.
If the TNT does not launch far enough, add more pistons or switch to a slime block design. If the TNT explodes before it leaves the barrel, the piston is pushing it too slowly — use a repeater with a shorter delay or add more pistons to push faster. If the cannon misfires randomly, the redstone circuit may be receiving power from multiple sources; check for accidental connections.
If the cannon damages your base, build it in a separate testing area away from structures. TNT explosions destroy blocks in a radius around the impact point, so always fire away from things you want to keep. Use water or obsidian to contain explosions if you are testing in a confined space.
Frequently Asked Questions
Can I build a cannon that fires without TNT?
Yes. A piston cannon can launch any block or entity in front of it — sand, gravel, or even mobs. Place the block in front of the piston instead of TNT and set up the lever. The block will fly forward but will not explode on impact. This is useful for moving blocks long distances or launching players with slime blocks.
Do cannons work the same way in Bedrock Edition as Java Edition?
The basic design is the same, but redstone timing behaves slightly differently in Bedrock. Repeaters may fire faster or slower depending on the version. Test your cannon and adjust repeater delays if it does not fire as expected. The piston and TNT mechanics are identical across both versions.
What is the farthest a cannon can shoot?
A single-piston cannon fires TNT about 20 to 30 blocks. A triple-piston cannon reaches 50 to 80 blocks. A slime block launcher can fire TNT over 100 blocks depending on the design. The exact distance depends on how many pistons you use, the repeater delay, and the angle of the cannon.
Can I automate a cannon to fire at a target automatically?
Not without mods or command blocks. A repeater circuit can make a cannon fire repeatedly, but it will always fire in the same direction. To aim at moving targets, you would need to manually rotate the cannon or use command blocks to change the piston direction, which requires creative mode or operator permissions.
Will a cannon destroy my base if I build it too close?
Yes. TNT explosions destroy blocks in a radius around the impact point, not just where the TNT lands. Build your cannon at least 50 blocks away from structures you want to keep, or use water to absorb the explosion. Test fire once before building near anything important.