The Good, Bad, and Ugly of Minecraft Coding

Happy new new!
As I try and figure out my next couple of big ventures, it's important for me to reflect on the key aspect of programming that got me to where I am right now: Minecraft.
I've posted about this on LinkedIn, and even made a post about it on the SpigotMC forums a few days ago, despite not posting on there for almost a year, and not coding in anything Minecraft-related in much longer. But, Minecraft modding and plugin development will always have a special place in my heart.
So now that I am officially "retired" from the Minecraft programming community, I'll document, in detail, all of my major exhibitions, drama, projects, and more related to my career as a Minecraft software engineer.
Prehistory
There's a bit of prehistory when it comes to my Minecraft journey. There are a couple of scattered repositories across my profile that were mostly low-level experiments to see what I could do. My first published plugin on SpigotMC was a plugin called QuantumPen, which basically just linked a bunch of commands to sending packets. I got my first 5-star review, and moved forward. The next couple of plugins, whether it was SilverSkillz, Lightning, or MessageX, were mostly experience that would eventually turn into the big 4.
The Beginning: TheNoobyGods
Anyone who knows me recognizes that name. It's the name of my old Hypixel Guild I started when I got MVP++ for Christmas in 2019 when I was 11. What started out as a midfield skyblock guild eventually evolved into a full-on developer enterprise combined with its own custom survival Minecraft server. Team Inceptus is the name of the GitHub organization where everything was. I coded a couple of plugins with one other guy, Arnav Nanduri, who is a bit older than me.
The story of the primary group of admins under TheNoobyGods is one for the ages. There was a lot of drama, incidents, and fun along the way. I quit for like a month at one point and gave up ownership for a little bit. There was also an incident where I had a typo in the command permissions on the SMP, giving anyone access to the /invsee command. I remember spending a lot of time working on an updated plugin code and was a little disappointed at the lack of players, but it eventually grew up a little. Overall, the atmosphere was fun-loving, and when we had a lot of members, it surely was a lot of fun.
One of the pitfalls with being a Minecraft developer is that getting people to download your stuff is really difficult. Standard marketing for a plugin to server owners is a small market, especially when server owners have every incentive to instead go with an already popular plugin, in order to focus on growing their own server themselves. It's kind of forced plugin developers into this concept of making things for free, but makings this good as well, which I will get to later.
I eventually shut down the guild in the middle of 2024 and deleted the Discord at the beginning of 2025. It was fun while it lasted, but it created a lot more along the way.
The Big 4
Throughout my time at Team Inceptus, I created two plugins under its branding name: Novaconomy and PlasmaEnchants. I had decided to keep two to personally develop under my own GitHub handle: StarCosmetics and BattleCards. I also created MobChip, a pathfinding library that I made (which as of writing is still my most starred repository!), though after I had stopped updating it, another user took it over. There were some other, less popular libraries that were passed around, mostly because the ones I was using absolutely sucked (for example, SuperAdvancements), but these plugins were my main focus.
Novaconomy
Novaconomy was the starter plugin that ended up outlasting the other four. It was the one that had the most downloads and had the most updates as well. It gave me a lot of experience and knowledge with Java, and helped serve as the standard for the other three.
This will be important later.
StarCosmetics
StarCosmetics was probably my favorite to work on, mostly because I had made it really easy to add new content to it. I spent the majority of the time building up all of these menus and concepts, all so I only had to add a list of Materials and cosmetic types, and the plugin would generate the rest of it for me. It took a lot of inspiration based on how I matured Novaconomy, which is why it was one of the first to eventually fade out.
PlasmaEnchants
Before I was all in on Kotlin, PlasmaEnchants was my first Kotlin experiment. It was also my first full premium plugin. Due to the rules of SpigotMC, it's no longer listed, but its code is still on GitHub. It got one buyer, so I quickly abandoned it.
BattleCards
This one was my favorite to work on, and the one I spent the most time on. It was also around the time I had been playing a lot of Clash Royale, which is where I got the inspiration from. You deploy cards, or enemies, to fight other cards, or enemies. You level them up. Like Pokemon too. I liked working on it and adding new cards, and got a decent free user base, eventually sunsetting around the time I sunset Novaconomy.
I originally wanted to make this premium, but after some back-and-forth with the Spigot staff, they ***ended up deleting the entire damn thing*** and I had to republish it as a free plugin. More on why this has irritated me so much down below.
The Ugly in the Minecraft Engine Community
**Every single Minecraft Engine community has had some sort of major drama.** I'm not even kidding. There's an entire wall of shame dedicated to it. There is not one, singular Minecraft engine community that does not have one major flaw or one major incident that will affect your entire developer experience and will *significantly change your developer perspective*.
The Death of Bukkit
This story has been written a thousand times, so you can probably search up the more intricate details yourself. But in short, Bukkit was the first popular modding framework, and Mojang wanted to buy it. Part of Mojang buying it meant that they gave up a lot of the source code. Developers were fighting over it, tweets were made, and eventually the project died. The forums are still active (for some odd, bizarre reason), but no one is actually maintaining pure bukkit. That's really my only real gripe, is that the one drama caused a slip-n-slide of way too much drama.
Paper, Purpur, and a thousand clones
The only legitimate Paper clone I will recognize is Purpur because it's actually good, and not bloated with a bunch of stuff. For those that are unfamiliar, Paper is the most popular Minecraft server software, by far. This is because Mojang has programmed Minecraft so poorly that we had to go through dozens of developers optimizing it in order for it to be reasonably playable. And, because it can be easily forked and modified, it has spawned a bunch of clones (most of them wanting to charge 50$ for a 1% decrease in code size).
This isn't my main gripe about Paper. While this is likely unreasonable at the time, Paper actively makes sure that their internals are incompatible with the Spigot API for internals. This is important to note, because when I was making MobChip, I had to add extra code in order to make it compatible with Paper.
"But why not just develop for paper if they are the most popular?"
Most new plugins don't use the Paper API. Harsh, and maybe a little untrue, but a **significant majority** of plugins that exist are on the Spigot API listings, more often than not being small plugins that only use the Spigot API. Because Spigot is older, and has a much more fleshed out developer community. I never really liked the Paper API (I was stubborn about Adventure Components) until I was concluding my Minecraft developer journey, and by then it was already too late.
The Stale Spigot
Ah, Spigot. Where do I begin?
Spigot has always had a special place in my heart. Without it, I would have never became the programmer I am today. It got me into Dartmouth. I will always be grateful for the opportunities and the community that it provided.
That doesn't mean they made it easy for me.
Let's take a trip down some of my most significant highlights, arguments, and time on the SpigotMC forums:
My Criticisms on Lack of Change
I (very poorly tried to) explained that the forum hadn't really seen any kind of significant change while I was on there. It was mostly because it was missing a lot of the things other providers had, such as a proper uploading API, multiple payment providers, no staff hiring, no forum software updates, and many more grievances and issues. The consensus on the forum was that I hadn't explained these things correctly, and that the forum is fine as it is. I don't really have an opinion on this anymore, I just think it's interesting to read where my mind was a year or two ago.
The primary reason why Spigot has looked the same for the last decade is that it is on a heavily modified version of XF1. XF1 was deprecated a decade ago as well. There's been a lot of discussion about updating to XF2, the newer software, which is important later.
Spigot's Marketplace Dilemma
This one was an argument for the ages.
One of my main gripes with Spigot was that it bordered on being a marketplace and a community hub for plugins. They kind of mix-and-match philosophies depending on where you are. I think the most watered down version is that "you can sell plugins, but it's more of a donation thing than a business thing." Though it seems like that whole process could be handled a whole lot better. The perfect example is Vault, which is a plugin that just coordinates your economy and chat plugins together with everything else. It's listed as paid on Spigot, but you can download it for free on GitHub. The entire culture is like this, and a lot of prominent Spigot developers advocate for this sort of plugin model. I've never really liked it, and I still don't like it, for reasons I will get to later.
I highlight this thread because I think most of the major problems with Spigot are highlighted in this thread. To kind of summarize, based on when this thread was written:
- Premium plugins exist in this gray area of being a business or a donation platform
- Spigot is a registered business entity (unlike Paper) and profits from increased users, traffic, and ad revenue
- Spigot has a volunteer staff base that has largely not changed, with md_5 being the sole administrator
- Community input, suggestions, and feedback are largely stopped due to a lack of manpower or funding or Spigot being unwilling to integrate it
- md_5 does not provide any significant insight into the internals, operating costs, or details required to run Spigot
- Spigot does not have a good customer or developer experience when it comes to managing paid items
A good, extremely popular, example is the demand for a Stripe integration. A large majority of popular developers are not in the United States, and PayPal has not been friendly to our overseas neighbors. There is another thread of significance where a user actually programmed an XF1 plugin to integrate Stripe, but it was never implemented. The original topic of the thread was to get permission to put a link for Stripe on the plugin, but staff were really on the edge about foreign links and not doing it through official integrations. It was a weird response at first, because it could easily function the way they approve premium plugins, without requiring any kind of significant restructuring or code changes.
Back to the thread at hand.
I think a principle that needs to be said is that Minecraft servers are a business on their own. You can make a **significant** amount of money for running them. The tools, code, and plugins that power them are an important part of their business model. This is the ugly part of Minecraft coding: you will eventually get thrown into the debates, drama, and intricate parts between community plugins and business-focused plugins. This is plain fact, given the prominence of Riot Games buying Hypixel and the spread of Pay-to-Win Minecraft servers being literally everywhere.
Because of this, a lot of plugin developers (including me, at the time) advocated some kind of financial compensation. Donations were only going to be enough if they were popular, and only the old ones, who have 8+ years of heritage, and have a lot of free marketing with popular YouTubers, were only going to see proper compensation. The purpose of this thread, or the question that they tried to answer, was why Spigot refused to take a side on this matter. Some were for the business model, some were against, but there was no clear direction, and md_5 didn't give any transparency on the matter. A lot of the criticism against the business model stemmed from new regulations Spigot would be subjected to, though it seems that would likely be worth it for a significant amount of potential revenue.
While I was reading that all this was going on, I did some digging and tried to estimate their ad revenue every month as a point of comparison with Modrinth. The number is likely wrong, but it highlighted the key problem that frustrated the entire Spigot community: md_5 wasn't telling us anything, so we had to go off random estimations based on random websites to come to random conclusions. The thread mostly transitioned into criticisms for the batshit insane calculation I pulled off, and Andre eventually closed the thread.
My General Opinion, after two years
Spigot is an imperfect platform. It has a lot of positives, but there are flaws that keep getting bigger. The first step, in my opinion, is to just tell us why Spigot hasn't updated its forum software in a decade and/or the financial or legal struggles Spigot faces for such features. It's all a transparency issue, really. md_5 has cited in one of these threads that it still remains a "hobby project." I think that framing is important, and I think it can work well with the fact that they are a registered company. I just think that there are better ways to do it. I don't hate the platform, nor do I hate md_5 or any of the staff. It just needs new people, new ideas, and some willingness to be invested in.
CodeMC, and then, my Exit
Arguing about the same thing for 2+ years gets old, combined with the fact that I was generally losing interest in Minecraft programming.
CodeMC is probably my last Minecraft-adjacent project. It's a Jenkins and Nexus CI service for Minecraft developers, allowing you to publish your APIs to its freely available Nexus repository. This was really important, especially when JitPack imploded that one time and then stopped working (more on that another time). Their whole reviewing process and creation of accounts stopped literally the day I was accepted as an author. Becuase of this, I was able to freely develop and mature MobChip. I returned the favor by developing their full API repository and integrating a lot of features into their Discord Bot, so all they had to do was press a button.
I still maintain it, but I haven't touched any Minecraft APIs since June of 2024.
Conclusion
Minecraft programming is a big part of who I am. There have been a lot of bumps along the way. Drama reveals itself when there is an unclear purpose, not with scale. At the end of the day, though, we all just want to make the Minecraft community better. We just have different ideas of how to get there.