Good morning, my fellow people. My name is Donpireso, and today, I am writing this dev blog about the struggles Hypixel faces in the grandiose process of updating the Hypixel Server for Minecraft to the most recent versions of Minecraft. Ironically, I am not a dev - I am the team's lead. I point at things to make them happen, then others make them happen. Then I write them a big paycheck - its a good time for all of us.
A lot of the information you're about to read, as expected from my role, will have been written by others within the team. My goal with this dev blog is to gather all the information I can get from my people about the current big meme: Where is foraging? For those who don't play Hypixel SkyBlock, that question probably makes little sense.
Three years ago, we first mentioned the Foraging Update to players.
Haha, later in 2021, he said... oops that was me.
The goal, right from the start, has always been to give players a solid update for foraging that equals the mining update found within the dwarven mines and the crystal hollows. Obviously, mining and foraging are very different playstyles (other than the mindless aspect of it), and the vibes and locales surrounding it are always meant to be completely different - we can't just put players in a tree cave.
Very quickly, we realized that the latest versions of Minecraft have all sorts of new assets and mechanics that could tremendously improve the foraging island. Custom biomes, new textures and blocks, and all sorts of props for vegetation - the foraging map could look absolutely amazing.
Swampy!
On top of that, we started thinking about the future of Minecraft - essentially how we, as a server - the leading server, no less - have been stuck in the past for so long. To be fair, we have done a lot with what we have. Maps like the Dwarven Caves and the Crimson Isles are absolutely fantastic, all thanks to our incredible build team. But the itch started - what if we had the latest version maps? What if we had the latest version of gameplay, items, and creatures? What if we had an elytra? What if we had polar bears? What if we made custom resource packs, unique menus, unique models, and unique bosses? Our imagination knew no bounds.
Since then, we've been working on a number of projects that boast the latest version features (though not all of them will make it to the public). But how has it been years since we started, and we barely have anything to show for it? That would be today's topic, my friends.
► Spigot Hygot
Years ago, when the server was still a little lad running around in the summer grass, the team of eld made decisions that ultimately impacted the future of the server. @Plancke was there back then, and he had this to say.
At Hypixel, Spigot has long been our go-to framework, evolving from a basic fork into something uniquely ours. Initially, it started as a simple modification, with a few tweaks here and there to expose internal mechanisms that lacked APIs. Over time, those small patches snowballed into a mess of custom code. The rest of our codebase became a tangle of reflection. We wanted to declutter, streamline, and, above all, optimize it for our use case.
With every added feature and every line of code, we drifted further from Spigot's core. Eventually, we reached a point where the only logical step was to hard fork. And so, on September 4th, 2014, Hygot was born, based on the 1.7.10 protocol hack release that had become the foundation of our server jar.
As newer Minecraft versions came out, Hygot began to reflect our evolving needs. We implemented 1.8 features like armor stands, world borders, and titles as needed. When the snapshots for 1.9 began coming out in the summer of 2015 and early 2016, we jumped on them. The vanilla launcher's habit of automatically selecting the latest version meant that players, particularly newcomers, expected day-one access. Staying ahead was crucial.
Since then, we've maintained support for newer versions, though our player base primarily sticks to 1.8.9. Newer features like particles, entities, blocks, and shields often went unused since older clients didn't support them. We faced decisions like displaying alternatives or omitting features entirely. Sneaking, for example, changed the player height, allowing 1.14 users to access areas otherwise inaccessible to older clients.
Despite the lack of widespread use, we still integrated quality-of-life improvements for newer versions:
- Glow effects for 1.9+
- Colored boss bars for 1.9+
- Colored beds in BedWars for 1.12+
- Scoreboard numbers are hidden for 1.20.3+
- Server links for 1.21+
Plancke, Network Operations
► The Sudden Realization
As the years went by, we were comfortable. Hygot was doing its job, and was extremely well optimized for what it did. But what it didn't do, was everything else. We never really updated Hygot for the latest versions' features. We kept the work low, and optimized our resources. We allowed players on latest versions to join the server, but we didn't teach Hygot about all the cool new things Minecraft released.
In the background, Spigot continued to grow. If today we took Spigot and just applied it to Hypixel, it just wouldn't work. It would require rewriting the entirety of our games. After assessing the work, it became clear that updating Hygot would be the best way to go. The work required for this, however, is massive.
Sadly, all this work can't just be copy pasted from current Spigot itself - a lot of experimentation and testing has to come in before we can write the right code, and push it live, as we've been running the server on our own code for this long. It has to keep working.
► The Release of Hypixel Latest
In secret, in the background that no players can see, we have been essentially re-releasing the entirety of our server infrastructure bit by bit. I'd like to thank @TheMGRF, @Nitroholic_, and @ConnorLinfoot, who have been hard at work on this stuff, and for their help in writing this section.
These are the things we've rolled on the network so far - things you cannot see as they are not necessarily being used or are used in the background. So far, there are over 30,000 lines of code spread over more than 800 commits in over 500 files:
- New attributes
- New potion effects
- New paintings
- Updated player ticking and movement handling
- Properly implemented "noclip" spectator mode
- Reworked entity definitions to better scale with new versions while enabling static entity referencing to lock entities to versions
- Massively improved our versioning support (protocol/version bounding) to lock items, entities, and blocks to specific versions
- Custom model data
- Armor trims
- Ability to hide the tooltip on flagged items
- Scoreboard formatting (hiding red numbers)
- A lot of refactoring
The following are works in progress and have yet to be rolled to the live server. They contain over 70,000 lines of code, spread over more than 900 commits in over 400 files:
- New particles
- More new paintings
- Off-hand support
- Improvements to the lighting engine
- Updated boat mechanics
- Support for updated movement mechanics (e.g., crawling, swimming & Elytra)
- Support for Custom Biomes
- Support for custom models and animations (!!!!)
- Support for RGB text colors (leading to even more resource pack work)
- Support for blocks up to 1.20.5 (includes improvements to existing block behavior/collisions)
- Support for entities up to 1.20.5
- We will also likely add entities and blocks of newer versions as needed
- Support for new entity attributes, such as being able to control the size of entities (including the player)
- A world converter that would take the latest version format worlds and port them to our 1.7 format
- Support for natively loading worlds from the latest version format to supersede the world converter for better and quicker support
That is but a small peek at the kind of stuff we had to work on for the latest version support on Hypixel. There is so much more that we won't be going into detail here.
► What does this allow us to do then?
Oh boy, the things we can do. There are a few popular latest version servers out there that can already prove what we can do once we update Hypixel to latest. These range from custom menus, custom mobs, custom biomes, unique items, and functionality; there's just so much. At this current stage, a lot of the development on Hypixel for games have been waiting for these changes to be completed. Foraging would be the one you guys are most familiar with.
But how about we take a look at some of the other ones? I won't go into a lot of details about some of those - you guys get to speculate and lose yourselves over it.
► Does that mean rewriting Hypixel SkyBlock?
Before I satiate your desire for spoilers, leaks, and reveals, I need to mention an important detail. We are not rewriting the entirety of Hypixel SkyBlock, as many have speculated here and there.
None of this means rewriting SkyBlock. Hygot is Hypixel's server software, not the games themselves. None of the games are getting any rewriting, as that would be a ludicrous amount of work and would only be a risk of running into mistakes again (dupes anyone?).
The improvements come as additions - we get to add new features to SkyBlock, and maybe edit some older ones that could use an upgrade (think menus with resource packs). Functionality of said menus aren't being changed or rewritten, so that's also not a dupe/wipe risk, things are just moved around and made to look better, function better and read better. It's just better.
➥ Small Foraging Bonus
We planned to release the first of the three islands, as it is now complete, but we have to wait until we are ready to release latest version content. In the meantime, we're making excellent progress on Hunting.
We've made some changes to the Hunting system since our last update. Instead of having players select their attributes in a menu, all attributes will now be inherent, meaning they will work simultaneously. We realized that with so many choices already in SkyBlock, constantly swapping attributes could become cumbersome. Now, players will focus on gathering as many shards as possible through hunting or fusions to max out their attributes. Do note that this will be subject to change as we test things out (including on Alpha).
The Hunting update has also allowed us to make the map more lively, adding creatures like frogs, axolotls, various underwater entities to Galatea, and so much more.
We are working diligently to complete Hunting before releasing it in the latest versions. We understand that some players are concerned about the transition to the new system and the potential impact on those who have invested significant time obtaining rare godrolls. Our goal is to make this update a win for everyone, so we are putting extra effort into ensuring a fair and rewarding transition for all players.
In the meantime, here are some cute little critters!
➥ Menu and UI
One less secretive thing we're working on that we are very excited for you guys to play with at some point in the future are menus. This is something that has regularly been seen in most modern latest version servers - incredibly good looking menus with for each of them sporting a unique look that reflects the server you're playing on.
Starting with SkyBlock, but eventually the entire network (or at least a big chunk of it), we'll be releasing cool menus for latest version players to play with. Here's a little teaser on two of these menus, showcasing how much more we can show with a texture pack:
This is a work in progress!
➥ Something else?
Wait, what is that? Who put that there? That's not even in SkyBlock what?
➥ What about other mini-games?
We don't have much to disclose on this because we aren't sure which direction we're going to go with this just yet. However I could say that we are very much looking into potentially releasing sequels to some of our more iconic and popular mini-games with strong latest version features. This would take us quite a good bit of experimentation until we decide what we want to do with those (or even what we can do). After all, it would have to be better.
► Closing thoughts
This concludes this dev blog, mostly written by not a dev. We hope this bit of information helps with the long wait, for we are just as excited and impatient about these things as you guys are. These things take time to develop, and not all of our developers have the technical expertise to do so. Rest assured that those who do are dedicating their full time to ensuring we reach our new destination.