Good Morning from my Robotics Lab! This is Shadow_8472, and today, I was going to cover work on my cluster, but I needed an easier week, so I worked on sysadmin stuff for my family’s Minecraft server. Let’s get started!
Minecraft is a constantly changing game. I don’t always like change. My ideal creative world is a clean superflat world with a normal Nether and End, but while working on a resetting End city with a friend, we found my creative server wasn’t just generating a clean overworld, but the End and Nether were also devoid of structures.
Structure generation in Minecraft is controlled by a single flag in the initial config file. Historically, it only affected the overworld, but more recently, as I found recently, it now has power over other dimensions as well. I wasn’t happy.
Plains villages are the only possible structure that can spawn that I don’t want. My plan was simple: create an empty structure file, and replace the contents of all unwanted structure files with it while preserving the names.
I started with a working datapack that fires off a series of fireworks in the shape of an American flag. I unpacked the server jar file and cringed at possibly having to do 50 or so of these structure file swaps. Fortunately, I’ve recently been working with the find command in Linux, so I had an idea of the sort of things it could do, and such a massively parallel operation is second nature to it. I had to look up a little syntax to target all files but matches, the -not command to negate the next option, but I got the feeling I was over the initial learning curve.
In practice, this project was almost self-assembling. The biggest hitch was when NBTExplore was required to edit level.dat when structures failed to generate, even after telling them to do so in the config options. I had to install mono, a compatibility layer for .NET framework applications. I had previously had issues with getting it to work while following the programmer’s instructions, but sudo apt-get install mono-complete was suggested on an old forum post from around 2011-2013, followed by a dead link. I also had to look up how to extract a .exe file from the given .msi folder using a version of 7zip that I’m pretty sure came with Debian.
It felt like a small miracle when NBTExplore showed up properly. I have no clue if I can zoom in, but I was able to get in there and do what I needed to.
In short: I pulled off something satisfying using mostly skills I already had.
Of note: Structure packs use something called a domain or something that can be turned on or off. In order to override default anything, you must place your assets in a domain called minecraft and in an appropriately titled sub-directory. It does not matter what your datapack itself is called. Voiding structures will only work with structures that aren’t hard coded into the game, like nether fortresses strongholds, or desert and jungle temples.
Final Question: If I submit this datapack for publication, what should I name it?