Minecraft's Top 10 Bugs
The devs pick their favourite glitches
Minecraft is a notoriously stable and precision-crafted game. Everyone knows this. However, on the rarest of rare occasions, a tired developer’s finger slips on their keyboard, or someone drops their cinnamon bun into the Central Flux Capacitor, or we forget to make the timely sacrifice to Omak’katheth, and the game wigs out completely. Sorry about that.
But it doesn't always turn out badly: many of Minecraft's most infamous errors were, in hindsight, happy accidents, that led the way to new features and even new mobs.
And so, in memory of those fleeting moments of instability and/or serendipity, we asked the developers to recall their favourite bugs and glitches from across Minecraft’s history and its many platforms.
1. An Embarrassment of Riches
Turns out you can have too much of a good thing, when that good thing messes with a carefully balanced progression system. Jens remembers a time when this routinely happened with nearly every release, due to simple, repeated oversight.
We didn’t have any in-game commands to summon stuff, so when we wanted to try out a feature we’d just added, like a new item or a new block group or mob, we just edited the code that created a player so the player would spawn with a bunch of these items. And then we consistently forgot to remove these items for release. So almost every week we released, people were confused how they suddenly had inventories full of weird new items, and we were all “oops!” and had to remove it and make a new release. Eventually we created a release document that we had to follow which said, “Remember to remove all the debug items!” Jens Bergensten
2. Flying Squid Milk
This humble passive mob is the source of several bug-based Minecraft memes. It’s also the very first mob that Jens created for the game. These facts may be related.
I didn’t really know how the system worked, so I just copied the Cow and fiddled with it. Inevitably, I forgot to remove some parts I didn’t need, so for a while you were able to use a bucket on a squid to get milk. When I removed it a year later, I got a message saying what a shame it was, because it had become the source of so many jokes. Jens Bergensten
Squid can also fly. In fact, they “fly” all the time - it’s just that they normally do so underwater. Normally.
“Essentially, the squid was moved by a velocity vector,” explains Jens. “When it hit the surface of the water, it stopped.”
At least, that’s what’s meant to happen - and it did on the server side.
“Unfortunately, the game didn’t update the velocity on the client side, so the client thought that the squid would just continue at that speed up into the air.”
3. “Just Pistons In General”
“Pistons have always been extremely buggy,” says Jens. “There are just so many corner cases, they can be activated in so many different ways.”
But in at least one way, the bugs turned into a benefit - one which was embraced by the community to create clever redstone trigger mechanisms.
“The community calls it quasi-connectivity,” says Jens, referring to a bug which allows pistons (along with dispensers and droppers) to be activated when blocks directly or diagonally above them receive a redstone signal, even when they don’t get one directly. That’d be weird enough by itself - but weirder still: the pistons sometimes don’t even know they’ve been activated.
When you flip a switch, it’ll check to see if any nearby components need to be activated, and then update them. But the area it checks is limited: two blocks away from the source. Because of quasi-connectivity, the piston might be just out of range to be updated, even if the block above it receives a redstone signal. Jens Bergensten
The result is that the piston should be activated, but the block hasn’t been updated to be told that yet. But in Minecraft, lots of events can cause nearby blocks to update: blocks being placed or destroyed, water or lava levels changing, sand falling, plants growing, fires igniting, tripwires tripping and even cake being eaten. So what you get is a trigger mechanism - aka a Block Update Detector - that can be activated by all kinds of other interactions.
And so, from bug to BUD. A heartwarming story of redemption. (Until it was superseded by the introduction of the Observer Block, that is.)
4. Disco Dragon
Who knew that Minecraft's most menacing boss mob could throw such sweet shapes? Nathan did!
That time I accidentally taught the Enderdragon to dance was pretty fun! I made her indecisive: she kept changing her mind about whether she wanted to go kill endermen, go sit on the portal, or go fly away. I didn't have the heart to fix it so I left her like that for a day.
Minecraft’s most iconic mob was once a bug! Before they got their bright green makeover, before they were packed with an explosive payload, they were no more than terrifyingly deformed pigs. Notch simply mixed up a couple of coordinates, giving the pig a weird vertical torso which looked so uncanny and, well, creepy that he couldn’t help but make it an official part of Minecraft’s bestiary.
Some bugs are stealthy, remaining hidden for years. Given that this one involved flipping the entire world around, you’d think it’d be more noticeable, but not only did Michael “Searge” Stoyke create the bug in a haze of exhaustion, but he accidentally fixed it too (at least superficially).
In parts of the world generator, I mixed up the coordinates so that “right” pointed forward and “back” pointed left. Nobody noticed anything strange for almost three years! [It might have had a more obvious effect but] I’d somehow managed to swap the axis back after the world generation stage. No idea how and when this all happened, but I must've been pretty tired when I worked on that!
7. Attack of the Clones
Searge’s other favourite bug is one that’s still in the game. But is it really a bug, or just an extremely inadvisable performance-shattering feature? Hard to say!
You can create an infinitely cloning run-away structure with a command block. If you have a command block below a redstone block that clones itself and the redstone block to a position next to it, that cloned copy will also immediately clone itself one step further, and so on, infinitely, until it hits unloaded parts of the world. But even then, if you go close that area and it gets loaded, the cloning process continues.
8. The Spooky Wither Bug
“When we added the Wither, suddenly our game would start crashing in really weird and impossible ways,” recalls Nathan Adams. “It made no sense.”
A lot of the crashes were affecting Java - the thirdparty program that runs Minecraft's code in the aptly named Java Edition of the game. Think of it as running Minecraft on a virtual computer within your own computer - because that virtual computer is always the same wherever its installed, it provides a static set of specifications, making it quick to develop for and (in theory) ensuring that the game runs more or less the same way on any machine.
Java is meant to guarantee that nothing we do truly crashes. If something goes wrong, Java just throws errors that we can handle ourselves in the way we think best, letting us try to recover or display nice messages to the user. But when the Spooky Wither Bug happened, it felt like if you were peacefully playing a board game with your family but whenever you moved a certain piece your house just collapsed around you. Nathan Adams
Sometimes they were more subtle than that.
"A variable that existed on one line didn't on the next," says Nathan. "Things started to corrupt and the game would really freak out. It mostly caused crashes but sometimes it'd make the game just act odd. If we were working on something new, it might not always do what we wanted it to do.
“So we reverted the Wither and... it still kept happening. We had no idea what was going on but it only affected someone after they'd seen the Wither once. We tried everything to fix it and just came up empty, so we kinda just lived with it for a while.
“Eventually, we tweaked the Wither so that the skulls he shoots were no longer on fire. Then - for whatever reason - he was finally happy.”
Why fix a bug when you can make it a feature? Pocket Edition dev, Tommaso Checchi suggests a fine example. While optimising the Pocket Edition of the game, the devs removed a stage of terrain generation which checked whether terrain underlying villages was suitable. Suddenly it was possible for villages to generate over water. Oops! But instead of reverting the change, Tommaso switched the roads for walkways made of wooden planks - which look just as good spanning rivers as they do tracing paths over dirt.
10. Sand Traps
Tommaso is also responsible for the bug which was to become the falling sand trap. Sand and gravel are two of a relatively small number of blocks that are affected by gravity: without support by another block, they will fall straight to the ground. However, sometimes you will find naturally generated terrain which lacks any support, but will remain in place until the block receives an update, triggering a collapse.
Initially sand and gravel generated on a ceiling were supposed to be “fast-forwarded” to the ground. However, that was hard to do, so instead I just left it hanging there and added some dust particles to notify you that you were at risk of a terrible caving accident!
Luckily for Minecraft players, these ten bugs are literally the only ones we’ve ever introduced to the game! We definitely haven’t, say, shipped a beta where you couldn’t mine or jump. Or put out an update which made the grass random rainbow colors. Or misaligned the moon. Definitely didn’t happen. Nooope. However, if you wanted to fully prevent the frankly infinitesimally small chance of a bug sneaking into Minecraft, you could join our beta program, and help us squish them before they get too large!
Block block block...