How to report bugs like a pro

Filing an improper bug report can create quite a few of problems for us. Think of the following scenario: Bobby knows how to move armor stands in protected (spawn) area. Bobby decides to be a good sport and submits a bug report. While in good spirit, bobby can actually create more issues.

Actual bug report from a real Bobby:

“so yea i found it now 1.9 combat allows players to move armor stands in castle area. Ty reward pls =D.”

Bobby failed to mention any reproducible steps. Now we must try to guess what Bobby is referring to using trial and error instead of actually fixing the issue.

1) Is Bobby referring to sweep attack, or something else? Did Bobby attack a player? Armor stand? A monster? Did he try to hit air? What items did Bobby & his target have? Did he keep his shield up? Did Bobby actually do it or did he see someone else do it? Did Bobby do it during castle battle or not? We don’t know any of that. These variables can matter, hence step by step bug report. If only Bobby knew.

2) Now we have to try and recreate from nothing the effect that Bobby reported, taking time away from other issues. The more Bobbies we have, the more time it takes to actually fix stuff. Don’t be a Bobby.

3) Testing continues: couldn’t reproduce bug on current version of Minewind. (We fix a lot of stuff that has direct & indirect correlation. The problem may have been fixed after armor stands were moved. Yet Bobby never mentioned if the bug happened today or a week ago, and if he managed to reproduce it reliably step by step just now.)

4) We review Bobby’s bug report again to make sure we didn’t miss a thing. No additional useful information. Report gets marked as invalid/low priority and is put away for later, to merge with new reports if more valuable data comes in.

That’s why we ask for step by step directions on how to reporoduce a bug. Let’s be honest though, is it Bobbys fault? Not really, most people who play Minecraft don’t know and/or care in the slightest about bugs or the way Minecraft works in general. To an average player, fixing bugs is as easy as changing some imaginary config value “armor-stands-movement=disable” or downloading that magical plugin to fix everything. Unfortunately that’s not how it works, and is not that simple.

Fortunately for Bobby, he just needs to remember one thing: reproducible steps. Think of it as a very valuable soup recipe that only you know and can cash in for mad deggs, but instead of veggies there are bugs afloat.

Curious about Minecraft performance?

While it’s possible to support more players per server (around ~500, with hardcore tinkering) it will only work on worlds with limited map borders, very few to no mobs, regular world resets, or minigames-only worlds. When it comes to unmetered survival Minecraft, things get very nasty.

But Hypixel & Mineplex have 30000+ concurrent players on 1 server, how can it be?! Not exactly, all those players are split between many different servers. Average minigame on Mineplex hosts 20 (more or less) players in a controlled environment. Very few things actually happen on minigames/hub compared to the hardware load of a way less popular genre: Minecraft survival. That feel when anarchy survival servers require much more maintenance and power, while not really being in as high of demand.

The most important part of Minecraft is the game loop. In there is a clock keeping everything synchronized, going tick-tock at an ideally constant rate: twenty times per second, with each tick and tock lasting exactly 50 milliseconds at its best. During each cycle, game elements have to do their work — creatures have to figure out where to spawn. Skeletons, zombies, spiders and other mobs have to figure out where to walk and what to do, minecarts have to travel, grass has to spread, plants have to grow, players have to interact with their surroundings, the world has to generate new areas, redstone has to emit pulse, hoppers have to transfer items, etc… That’s a lengthy to-do list. Now multiply it by the amount of players online & add few bad apples who try to use Minecraft mechanics to lag/crash the server. Can you believe that after so many updates (all the way to current version of Minecraft) it’s still possible to crash official vanilla servers with only 1 person who knows what they’re doing? While owning an official server via Minecraft realms may be fun for some, they only support up to 10 concurrent players (your friends only) for a reason.

Minewind contains years of work, making it unique in some ways & heavily improving performance. Whenever the game software gets updated to a newer version, we generally have to update quite a bit of code. With official Minecraft changes the game software consumes more and more resources than it did in it’s previous versions, as well as making a lot of our old code break. As we maintain code to work with the latest versions of Minecraft, it becomes very unproductive to go back to previous versions. We will continue to adjust and move forward.

Think about this: we’re a very small team of developers with lives outside of Minecraft, yet we still put an incredible amount of time into fixing things that Mojang don’t consider a problem because they only care to support up to 10 players on a whitelisted server. We are working on bugs, features & multiplayer improvements for months, watching few special snowflakes scream ”admins dont give a shit about us!”, get targeted with DDoS attacks and exploiters on regular basis. We are dealing with insane levels of autism that shouldn’t even be possible, but when we do well and the servers run smoothly with everyone enjoying themselves, nobody even notices it. Still, we plan to continue with our vision of anarchy survival world.