In this tutorial, we’re going to enhance one of our existing items — bubble_gum — by giving it a real purpose: making it edible. Right now, it’s just a decorative item that sits in your inventory. We’ll walk through how to give it hunger and saturation values using Minecraft’s FoodComponent system.
This is a great opportunity to revisit how we originally registered our custom item, and then build on top of it to turn it into a functional food item.
In this post, I’ll walk through how I updated my Fabric mod project to target Minecraft 1.21.8 using the latest Fabric Loader, Yarn mappings, and Fabric API. This update also required upgrading Gradle, so I’ve included every step — including pitfalls I ran into and how I fixed them.
In my last post, I mentioned that the next tutorial would be about creating custom weapons. And before my short break, I had teased a post about giving food qualities to our bubblegum item. But after revisiting the project, I realized that before diving into any of that, it was important to first cover something I hadn’t documented yet: how to update your development environment to the latest version of Fabric and Minecraft.
I also rediscovered that I had already written all the code needed for the edible bubblegum! So the next proper content tutorial will cover that edible food item, followed by the viewer-requested post on custom swords with special effects.
Thanks for bearing with the topic shuffle — and I hope this detour helps you understand how to manage version upgrades in your own modding journey.
Hey everyone! I just wanted to take a moment to acknowledge the sudden radio silence here on the blog.
If you’ve been following along with the Fabric modding tutorials, you might’ve noticed I disappeared for a few weeks without warning. First off—sorry about that! It definitely wasn’t planned. I’ve been juggling a wide array of interests, a full-time job, and other responsibilities, and sometimes that combination just takes over. But the biggest reason, honestly? Burnout.
After doing several back-to-back tutorial posts, I hit a wall. Writing technical posts—especially ones that try to be beginner-friendly—is incredibly rewarding, but also surprisingly draining. I wanted to give myself the time to recharge and fall back in love with the hobby before forcing the next post out. I think that’s the healthiest way to keep this blog sustainable (and enjoyable).
That said, I’ve been up to quite a bit during my break—and I figured I’d share a little behind-the-scenes look at what’s been keeping me sane and entertained.
Once your custom blocks are craftable and placeable in the world, the next step is making sure they behave the way players expect—especially when broken. That’s where loot tables come in.
Loot tables are data files that tell Minecraft what items should drop when a block is broken, a mob is killed, or a chest is opened. In this post, we’ll start with the most common use case for modders: block drops.
By default, if you create a custom block without a loot table, it won’t drop anything when broken—even with Silk Touch or the correct tool. That’s because Minecraft doesn’t assume any behavior unless you define it explicitly. To fix that, we’ll create a simple loot table for our bubble_gum_block so it drops itself when harvested.
Later, you can get more advanced—adding tool conditions, custom item drops, multiple outputs, or even random loot chances—but for now, we’ll stick to the basics to get your custom block behaving like a proper part of the game.
Once you have custom items and blocks showing up in the creative menu, the next step is making them usable in survival mode. That means crafting recipes!
Minecraft uses simple .json files to define how items and blocks are crafted. These files go in a specific folder structure in your mod project and follow a well-documented format that the game reads during loading. In this tutorial, we’ll walk through how to create shaped, shapeless, and reverse crafting recipes for your modded content.
Now that we’ve added our first custom item and block to Minecraft, it’s time to make them feel like real, polished parts of the game. Right now, our bubble gum item and block technically exist—but they’re missing all the extras that make them feel complete. They don’t have proper textures or names, and don’t show up in the creative menu.
Minecraft is all about blocks—they shape the world, define its materials, and power everything from redstone contraptions to cozy cottages. That makes adding your own block one of the most fun and satisfying ways to start modding.
In this part of the tutorial, we’ll walk through how to add your own custom block to Minecraft using Java and the Fabric modding framework. You’ll learn how blocks are defined, registered, and made available to the game—and by the end, you’ll have a soft, chewy bubble gum block ready to place in the world. Let’s get started!
Minecraft is a game built around blocks—breaking them, placing them, crafting new ones. That’s why most beginner modding tutorials start by adding new content like blocks and items, rather than jumping into complex functionality. And that’s a great place to begin! With just a bit of code, you can start building your own creative additions to the game.
In this tutorial, we’ll walk through how to add a custom item to Minecraft using Java and the Fabric modding framework. Along the way, you’ll learn how Minecraft’s item registry works, how items are constructed, and how to hook your code into the game’s loading process.
Let’s start by adding something simple: bubble gum.
In this post, we’re going to set up our development environment and create a minimally implemented Fabric mod with all the essentials in place. This section draws heavily on the “Getting Started” section of the developer guides and tutorials found on the official Fabric site.