Minecraft. My next project. Or, more accurately, now my current one.

It has been a plan for a good long time now to roll another Minecraft modpack (and server) for myself and my friends to enjoy. A long put off and long overdue plan. And, now that I have this wonderful space set up here, I have the freedom to work on that project!

My history with Minecraft

I don’t even remember what version Minecraft was at when I first played it, though I’m pretty sure it was still in the Betas. Back when it was new and novel … and when it still had dirt as the background on the main menu. Now there wasn’t all that much to do back then, but that didn’t stop me from setting up a server to enjoy tinkering with friends. Or, to be more honest, so I could show off the giant lighthouse I was planning on building and did build.

Eventually we all got a bit bored of it, though, and we all stopped playing.

Now what brought me back was mods. Or, to be quite specific, one mod. Mystcraft. Now see, I’m a massive fan of the Myst games, having grown up playing them, and that there was this mod that allowed me to write Ages and travel around in them? Yeah, I couldn’t not try it! And so I did! And I loved it! Not that there was all that much I could really do with it, as I was unaware of all the other cool mods that were around, but I still had fun seeing what kinds of Ages (worlds) I could create. I think the Minecraft version at the time was 1.3.

Not too long later I did learn of all the other mods out there, and the idea of a modpack appealed to me. Now, of course, being the fan of Myst that I am it meant that whatever pack I played just had to have Mystcraft. Unfortunately for me, that meant that I was somewhat limited in what packs I could play. Fortunately for me, there was (and is) a YouTube personality named Direwolf20 that also enjoys that mod and had it in all of his packs. I ended up playing his packs for a few major versions, mostly on public servers, and despite getting griefed several times.

Somewhere along the way, though, I started noticing some other interesting mods that weren’t being pulled into the packs I was playing. I also noticed that there weren’t any packs that had all the mods I wanted to play. And, me being me, that would just not do! So I rolled up my sleeves, then rolled up my own pack and server and shared ’em with a few friends … and that was how the first version of “The C’ube Mysterium” (TCM) was born. The name was something of an in-joke at the time, having to do with that first server, the shenanigans we had on it, and our shared enjoyment of Lovecraftian fiction.

Eventually, though, I wanted to update my pack to a newer version as there were all these other interesting mods out there, as well as changes to vanilla Minecraft itself. Unfortunately, between a combination of my oft wayward attentions and the older mods that I still enjoy playing not updating fast enough, there was always one excuse or another for me to just not actually create the pack. Now, to be fair, the modding scene was a bit crazy between 1.8 and 1.12, with enough notable changes between versions that it really made updating larger mods quite difficult. It really wasn’t until 1.12 that things stabilized and it was there that I first made any real strides towards the second version of TCM. As I mentioned before, though, I never did finish up as I was always waiting for something. After that, and more time off, I started again aiming for 1.16. And, once again, it fell through for the same reason. Me.

Time for that to change.

Mods and Mod Launchers

When I first started with mods there wasn’t any special modded launcher (that I knew of) that made it easy to actually play. I recall having to directly patch the Minecraft .jar file. After I got more into the modding scene I found out about the modded launchers, mainly FTB and Technic, and it was FTB I used for most of my time playing modded.

Eventually, as modded Minecraft grew in popularity, the FTB launcher was mostly subsumed into Curse and the newer CurseForge launcher. Now I didn’t mind that launcher at first, and even after when it got merged in with the Twitch launcher. When Overwolf came on the scene, though, I had to take a hard exit. Overwolf, after all, has had a pretty bad reputation vis-a-vis privacy and data collection, and I am quite particular about (against) that sort of thing. And, not that it mattered to me at the time as I was running Windows before, but the CurseForge launcher still doesn’t support anything but WoW on Linux.

I jumped over to GDLauncher for a time, and it worked, but it always annoyed me that it was far too difficult to use that launcher only for pack creation/maintenance/etc and to play that same pack, from the same directories, with the vanilla launcher. And there’s a new downside, that being a partnership between GDLauncher and CurseForge … and with that will come ’non-intrusive’ ads. I don’t care what some say, ads are ads and they’re always intrusive and noone likes them. And having to pay a subscription to remove ads … yeah, I’d avoid GDLauncher going forwards. There are better projects being run by … I won’t say ‘better people’, but definitely by people who want to contribute more to the community than to themselves.

This meant I had to keep searching.

There’s another really old modded launcher that I had heard of, MultiMC, that been updated many times and actually looks quite modern. I’ll admit it skipped my mind solely because I remember how clunky it used to be and didn’t look into it at all. My bad. Some of its forks caught my attention, though.

PolyMC caught my attention as a much cleaner alternative (in reality it looks almost exactly like MultiMC). In fact it was the one I was planning on using if I could get it to work. Unfortunately, in the time between me finding it and me finding making the time to work on modpacks again, they seem to have had a pretty major scandal, the TL;DR of it being that the primary maintainer of that project is more than a bit of an anti-QUILTBAG bigot.

Prism Launcher is the result of the exodus of devs from PolyMC. It’s basically everything that PolyMC is and with most of the same devs that were maintaining PolyMC, but without the terrible person who kicked them all out because they actually cared about others.

So my recommendations for a good modded launcher for those in Linux (or Windows) are either MultiMC or Prism Launcher. I, myself, went with Prism.

Modpack creation on Linux

So this will be my first time actually doing any real modpack dev work on Linux. I’ve only been using Linux Mint as my daily driver OS for a bit over a year so I had to set everything up from scratch.

‘Vanilla’ Minecraft launcher

As I mentioned before, I mostly play Minecraft through the vanilla launcher, only resorting to the modded launchers for pack dev and maintenance. As a result I felt it was worth getting the regular launcher set up first … which is as simple as downloading the binaries from minecraft.net and installing them. I will note, though, that my Linux distro, Mint, apparently has newer binaries in APT (the package manger) than from Minecraft itself? I decided to stick with the known good on straight from the source.

Installation was pretty straightforward. Like with Windows, it puts your files in your home directory (~/.minecraft).

Modded launcher (Prism Launcher)

This one was a bit more annoying. Unlike most Linux applications I’ve found, Prism doesn’t have any pre-compiled Debian binaries to install from. For the moment I just went with the FlatHub install, which is their recommended anyways. FlatHub support is built-in to Linux Mint, though before now I’d never actually used it … which would explain why installing Prism took so long. Prism itself was quite small, but all the FlatHub components needed that I hadn’t installed before took quite a bit more time. A bit time-consuming, but simple enough to do.

Mostly.

With some of my tinkering later on Prism, as a result of being installed as a FlatHub package, complained about me wanting to point it at a non-default directory (I’ll explain why later). Apparently applications installed through FlatHub have interesting permissions set through FlatHub itself. And, like many things Linux, by default you can only change those permissions via the command line. Thankfully there’s a useful FlatHub app called FlatSeal that makes changing those permissions not too terrible. I definitely recommend using it if you’re dealing with any FlatHub packages at all.

A little of column A and a little of column B

Now the real trick is to get the two launchers to play nice with each other as both store their data in different places. Thankfully it was easier than I expected … at least once I set my file browser to show hidden files.

The default location for the vanilla Minecraft launcher files: ~/.minecraft The default location for the Prism Launcher files: ~/.var/app/org.prismlauncher.PrismLauncher

My intention was to integrate the Prism instances into the Minecraft instances rather than the other way around as I want to keep only one instance of each instance and as I want to keep them all in the same place. Also because the Minecraft file directory is much cleaner. This was done most quickly by setting Prism’s ‘Instances’ directory to the same directory I set up so my ~/.minecraft directory didn’t get too cluttered: ~/.minecraft/instances. Of course that did introduce a little bit of noise as Prism doesn’t put all the data directly there. Instead it has a few files Prism itself uses to know pack settings (like Minecraft and Mod Loader versions) alongside the .minecraft directory which stores the necessary instance files.

Now that we have the directories in the same place, time to get a pack visible in both!

I started off by creating the pack in Prism as it allows me to set (and seamlessly download) my mod loader and version of my choice. The instance name I made for this project is 1.19-TCM. Once created in Prism, that side is 100% complete!

To get that one visible in the Minecraft launcher takes a touch more work. First things first, we need to get the the launcher able to actually use Forge (or whatever mod loader you want). After a bit of searching I found where Prism keeps the Forge installers for its own use. Unfortunately we actually need to run one of those installers for it to be usable by the vanilla launcher. Thankfully, like I said, I found where it keeps the installers, so we don’t need to download anything extra:

~/.var/app/org.prismlauncher.PrismLauncher/data/PrismLauncher/libraries/net/minecraftforge/forge

Note: I’m not sure on the location for Fabric or Quilt mod loaders, but I assume they’d be located near to this directory, just up a few levels.

Now that we have those, we open up the directory for the particular version we’re using and run the installer .jar file (after flagging it to be able to be run as a program). It’ll default to the regular Minecraft install directory, which makes things quite simple.

Next step is to start up the Minecraft launcher and create a new ‘Installation’. You can name it whatever you like, but make sure to specify the Forge (or alternative mod loader) version correctly, which should now be in the list thanks to the last step, and set the game directory to the .minecraft directory within the project directory.

For example, by initially setting the project/instance name in Prism to 1.19-TCM, it created this directory:

~/.minecraft/instances/1.19-TCM

And the directory we want to specify as the ‘Game Directory’ in the Minecraft Launcher is:

~/.minecraft/instances/1.19-TCM/.minecraft

Now save that and, if you’ve done it correctly, you should now be able to run that pack through the regular Minecraft Launcher!

And now that I have the base of the pack created, the next steps are to assemble the full initial mod list and put it in source control (Git/GitHub), which I have already started doing.

But the real trick is to keep doing.

Which I’ve been failing at, if I am to be honest.
But, of course, this time will be different … right? Right?