Wow, it's November already, 2025 is going so fast! - But that means it's time for another content drop. This month, we've added something we've wanted for so long on CubeCraft, and we're extremely excited to share it with you. Introducing Wardrobe Cosmetics + a Limited Time Mode for Pillars of Fortune - Read below to learn more!
Wardrobe Cosmetics Are Here!
We've just dropped some brand new cosmetic types onto our Bedrock network. Wardrobe cosmetics have landed, adding Hats, Backswag, Gloves & Costumes. We've also added more advanced Shoes.
Available on our Bedrock network, we've added 5 of each type. Each animated and some even have specific actions, if you're running, sneaking or flying!
You can find our Wardrobe cosmetics currently in the middle of our hubs, in our loot menu or via /wardrobe + Gift Editions available too!
Costumes - Wear full outfits!
Hats - Wear items on your head!
Backswag - Wear items on your back!
Gloves - Wear items on your hands!
Shoes - Wear items on your feet!
Lucky Pillars - Pillars of Fortune LTM!
Available for a limited time, we've merged both Pillars of Fortune and Lucky Islands together! - Giving you Lucky Pillars. Rather than a pillar of Bedrock, you'll be placed on a pillar of Lucky Blocks, take the chance and break it away if you dare! - You can also vote to enable or disable items being given to players, as well as the Lucky Block mode: Normal, Blessed & Overpowered.
Welcome back to Behind the Cube! We've been on hiatus for a while and been busy cracking out other updates over the last few years, but today I want to step back a couple years to our 1.19 server update. This was our biggest, most ambitious update we've ever performed on the network. This has allowed us to deliver far more feature-complete updates across both networks simultaneously, and completely transformed our developer experience.
This edition will dive deep into the internals our server update to 1.19, some the challenges that we encountered during our migration, and some spicy changes we’ve made on the tech side that have greatly improved our updating process. This is a juicy one, so grab a bowl of popcorn and let’s dive right in!
The 1.19 1.18 update…?
As many of you may be aware, we initially communicated our goals of updating the network to 1.19 waaaaay back in September of 2022, however in actuality, work began far earlier, prior to 1.19 even being released. Updating nearly 10 Minecraft versions was no easy feat, and required a lot of background planning and backend work.
For a bit of background…
Previously, our server platform was running on a 1.9.2 Spigot jar we updated to 1.12 and modded Bedrock support into back in 2021. Some of you may recall our Translator system we discussed in our [Feelin’ Lucky] Behind the Cube which sat on top of our BungeeCords. This system allowed us to support Bedrock Edition users on our existing Java infrastructure.
As we grew throughout 2020 and 2021, it became a major technical challenge for us to maintain as we started implementing native Bedrock features that are now integral to our server, such as resource packs, custom entities and custom items / blocks. We decided to go the route of removing the Translator, and turning our Java server into a full-on Bedrock server.
Moving away from our Translator proved to have a large number of benefits, including reducing player latency by 50ms - 100ms across the board. However, this came with the downside of maintaining a significant amount of code in our server software.
Updating to 1.18…
Rather than going the route of updating our 1.9-but-really-it-was-actually-1.12-server jar to 1.18, we decided to start fresh by forking Paper 1.18. The first commits to our new CubeTap project (internally known as CubeTap Junior) were in March of 2022.
The first few months of work primarily revolved around getting our new CubeTap version up to speed with our 1.12 version. We also took the opportunity to redesign core parts of our Bedrock support, such as moving to Bedrock’s server-authoritative inventory system, implementing chunk caching, and adding proper custom blocks. We also added new APIs to integrate nicely with these systems.
If you want to hear more about how we added Bedrock support into our server, implemented custom items, entities and blocks on both Java and Bedrock, let us know!
First look at chunks rendering for Bedrock Edition on our new software.
Updating CubeCraft!
Much of the work to update the CubeCraft codebase began in July of 2023. For those of you who have worked with Spigot or Paper before may know that in 1.13, there were massive, backwards-compatible breaking changes in the Bukkit API. The internal NMS code also saw major changes, going from being heavily obfuscated to fully deobfuscated using Mojang’s code mappings. Additionally, from 1.13 - 1.18, huge amounts of the server code was rewritten.
While most of these changes were positive, essentially most anything using NMS was going to break (and boooyyy did we use a lot!) and most all 1.13+ Bukkit plugins were going to no longer be functional.
After some time, the first project we completed updating was GameFramework, which is one of our core frameworks that all our games are built on top of.
First look at a simple TNT Run game running on a local server using GameFramework.
Getting GameFramework to work was a massive milestone and meant that within a short period of time, we could actually start testing CubeCraft code on 1.19!
Within just a few weeks from this point, we had many of our other core libraries updated, such as Loot, Armoury, Play Again, etc. and by early August, had a version of Survival Games running for Java Edition
As bug free as you get…
At the speed things were going, it looked as if we were going to have 1.19 out by December, just in time for our 10th anniversary! Right? Right..? Well, we’ll see… let’s not get too ahead of ourselves
What did we want out of this update?
As work continued to get all our code updated to 1.19, a question arose: what did we want to get out of this update?
I think the obvious answer everyone arrived to was: offer new features and to build potential for future content. While these are and have always been at the root of any content update at CubeCraft, we were starting to see major technical debt problems arise on our existing network.
At the time, our codebases for both Java and Bedrock were very disjointed. We maintained four separate Git branches for each project:
production - Contains all code live on our Java Edition server
production-mco - Contains all code live on our Bedrock Edition server
master - Contains all code live on our Java Edition development server
master-mco - Contains all code live on our Bedrock Edition development server
This is on top of the fact that some of our core libraries had separate versions for games using GameFramework and ones not yet migrated. This meant that there were not only 4 branches, but 8.
This ultimately meant that if a bug fix was found in team handling for instance that was present on both Java and Bedrock, that would mean a commit fixing the issue would need to be pushed to eight branches (╯°□°)╯︵ ┻━┻
Also at the time, our update process typically involved us writing the code for Java Edition first, testing it, and then merging it into our Bedrock branches, often encountering multiple merge conflicts, then updating or removing any features not relevant to Bedrock, and testing again. This is also the reason that in times past, we often released all major content updates for Java first (or even exclusively in some cases), then later Bedrock. This made any major update incredibly cumbersome and often led to very "Java-first" updates that disregarded features on Bedrock.
Since we were already making major technical changes, we decided now would be the best time to reconsider how we conducted our updates on a technical side.
Modularising the code
Shortly after getting Survival Games functional on our Java Edition development network, @ rubik_cube_man, @ Alemiz, @ Austin Mayes and I sat down and discussed plans on how we wanted to approach this problem. We decided that modularising the code was the best approach, creating a common module for all common code, then separate java and bedrock modules for features that vary for each platform. Rather than maintaining 4 branches, we would only need 2: one for production code and one for development code.
We then pitched the idea to the rest of the dev team and decided on a course of action.
Initial slide from our pitch deck in August of 2022
Modularising all our Bedrock and Java code together essentially meant that all updates we did would only ever need to be written once, rather than one time for Java, then tested, then updated in bits and places for Bedrock (or in some cases like MinerWare, substantially), then tested again, then finally released. We could instead streamline the process and do simultaneous testing on both platforms, allowing greater flexibility between updates and the ability to offer much more content. These changes also meant that general bug fixes in the game logic only needed to be written once, rather than individually for each platform.
SkyWars project layout today.
While the results of this modularisation have been incredibly beneficial for us today, it took us a long time to get there. There was a large amount of scope creep, unexpected challenges and many, many delays.
Delays and challenges…
As we began to modularise our codebase and integrate everything together, we began to realize that many of our core libraries needed massive rewrites to cooperate well with both Java and Bedrock, or needed to be rewritten from the ground up. Systems such as our menu library, game voting system, loot, and other similar systems needed massive overhauls.
Here is a quick look at how we now create menus on our network now using the UI library we wrote as part of this migration:
The code used to render the Loot home menu in the Bedrock module.
The code used to render the Loot home menu in the Java module.
And in our common module, we can have a common open method, even if it is rendered differently on both platforms...
Spooky season is here! In this CubeCraft Monthly October post, there's a lot of content for you to check out. Read below to learn more.
As a side note, if you join our Java network during our Halloween event, you'll get a free Halloween Cubelet. These are also now available while playing games during the event!
Halloween Hub & Hunt
For this Halloween Event, the main hub has undergone a massive change. It's been transformed into a Pale Garden Forest! - It's dark, creepy and full of scary Creaking. Explore, have fun and keep an eye on the Creakings...
Halloween Hub 2025.
Along with the new hub, as usual, a hunt is present. On Java, 20 Pumpkins have been hidden, find them for an awesome Hat & Points. On Bedrock, 30 Trick or Treats have been hidden throughout the hub. Find them all, discover if they are Tricks or Treats, and unlock a fantastic Win Effect!
Tricky or Treat Hunt.
New Halloween Maps + Returning
New Halloween maps have been added for our 2025 event, with the classics returning. Check them out below!
Summer is over, but the content drops are still coming! In this CubeCraft Monthly September post, we have a lot of stuff to share with you. - Read below to learn more.
BlockWars Giga - Domination & New Maps!
We've added a new gamemode to our BlockWars Giga gamemode, called "Domination", now in Beta!
The aim of the game in Domination is to capture the zones within the map. The longer you control the zones, the more points your team will earn. The team that reaches the point cap wins! - You'll see five zones; stand in the zone to start the capture. Once you have captured a zone, you'll start earning points. If an enemy enters the zone, it'll stop the control, and the points will stop. You must stay in a zone to keep the capture. Do you think you can control all the zones?
BlockWars Domination.
Along with the new Domination gamemode, we've added some new maps to our other BlockWars gamemodes, such as BlockWars Bridges & BlockWars CTF Duels! - Some of you may notice these are from the previous 10v10 BlockWars version; we didn't want those awesome maps to go to waste!
Cherry Valley
Neon
Pyramid
Crystals
Sandcastle
Private Games - Access to Inactive Maps!
Last month, we released Private Games to the public in Beta. The maps available in Private Games are currently the same as the ones available in the public map selection. That's about to change! - Inactive maps are now available on Java & Bedrock in Private Games. This does not include Seasonal maps.
Our Java network will have the most inactive maps available due to the vast number of maps available. SkyWars, EggWars & Lucky Islands now have a massive catalogue of maps available in Private Games! - And some include bigger team sizes, classic old CubeCraft maps and previous versions before revamps!
Bedrock will still see some games get inactive maps available in the Private Game map selection, but due to most maps being added to Bedrock remaining forever, the number of inactive maps is not comparable to CubeCraft Java - Solo SkyWars is the only gamemode that shares the same pool of maps between networks. This means you'll see previously Java-exclusive maps available on Bedrock in Private Game map selection, technically making them "new" to Bedrock. You'll see 14 new Solo EggWars maps, and 33 new Solo SkyWars, plus more in other games!
Time for another content drop! In this CubeCraft Monthly August post, we have a lot of content for you to try out. We'll also recap some other updates that have happened throughout the month of July. - Read below to learn more.
Private Games Out Now in Beta!
Our Private Games are now available to the public. You can create or join a selection of CubeCraft games on Java & Bedrock today! - You'll have access if you have the appropriate Game Subscription or CubeCraft Gold Subscription.
Private Games are currently in Beta, so changes & tweaks can happen at any time. Games will have pre-lobbies and game settings to manage team selection & assignments. These are rolling out per game currently. This is Phase 1 of our Private Games system; more features will be coming in the future!
Private Games NPC
CubeCraft Gold & Subscription Management!
On our Bedrock network, we've added a new CubeCraft Gold Rank. This Subscription gives you access to all of the features in our Game Ranks, that's 9 Ranks in 1! - You'll also get access to Private Games, Map Selection & Game Voting in all of our gamemodes. Alongside every cosmetic, which is over 200! - Including an exclusive Golden Shine Trail.
This Subscription is now available in each Game Hub, Server Store or Gifts/Subscription menu! - You can even stack CubeCraft Gold & other Subscriptions to have them longer than 30 Days!
This site uses cookies to help personalise content, tailor your experience and to keep you logged in if you register.
By continuing to use this site, you are consenting to our use of cookies.