We are going to do some Minecraft mod creation :3 let’s hope that we get so good that I get into my own my minecraft default mods list.

Gallery

I post all the screenshots on imgur, here is the link.

Uur-log

1. Setup

  • 13/02/2025 17:45 - 20:00: Getting started with ep 1. This took way longer then expected. This first episode is about getting started, making your mod launch. But because I encountered random errors, it took me 2 hours longer than the length of the video itself??

I started writing down how to do things in Minecraft Fabric modding 1.21, so that is also a reason why it took a bit more time, but that’s probably only the cause of 15m.

2&3. Custom Item and Custom Block

  • 14/02/2025 11:20 - 12:10: It’s time for ep 2 Added my first item: img

This again took quite a bit longer than it should’ve. this is because I did notice that my modId had an - which would probably break things later on. so I decided to redo everything since step of creating the template.

We are currently on 3 hours and 5 minutes. I am definitely going to exceed the Estimated 8 hours that I thought it would take. TwT.

I am actually going to continue with ep3.

img

This took 30 minutes… We are now on 3 hours and 35 minutes

I have learned so far that what I have seen from java is quite similar to C# And I am quite happy that this tutorial teaches kids DRY, clean code xD

4. Item groups

  • 20/02/2025 16:00 - 16:20:

I am going to watch ep4 about item groups. What I have noticed this far into the tutorial is that java is quite similar to C# but also, has quite a few changes. and I am definitely going over the 8 hours I thought I would spend on this.

It was quite straight forward on how to make an inventory item group.

We are now on 3 hours and 55 minutes.

5. Loot tables and recipes

  • 20/02/2025 17:00 - 18:50:

This feels like this is going to be a big one, cause ep5 is about loot tables and recipes.

We are now on 4 hours and 45 minutes.

6. Custom Chisel Item

  • 21/02/2025 14:15 - 14:45:

In episode 6 it loos like we are going to make some sort of advanced item, which means more modding than json. I suppose? I guess that we’ll see.

And it is correct. The tutorial made an item to swap between blocks with a chisel. I added my own functionality to swap it automatically back if it is undefined and you click again.

We are now on 5 hours and 15 minutes.

7. Magic block

  • 21/02/2025 15:35 - 16:00:

In episode 7 we are going to make an advanced block. I hope that this one is more about code then json, just like last episode.

In this episode we added a magic block that makes noise when clicked, and it replaces gunpowder items thrown on top into creeper eggs.

Again went a little off the tutorial by making the magic block only craftable by chiseling a block of Pink Garnet

We are now on 5 hours and 40 minutes.

8. Custom food and feul

  • 21/02/2025 16:15 - 16:30:

In ep 8 we ae going to create custom food and fuel. Also, it’s only now that I realized that this tutorial has 52 videos.

This was quite interesting. I find it funny how little code you have to add to make an item xD

My first test - Drill

  • 06/03/2025 14:30 - 15:00 I am going to try and make something by myself to test whether I remember everything correctly. And I understand what I have learnt so far. To test this, I’ll set a goal beforehand before trying:

I want to create an item, that will be able to break bedrock, so that we have a replacement for the annoying glitch technique that you’d have to use if you were in normal Minecraft. I want it to use the same materials and act like a tool. It is really just for the people that don’t know how to make a contraption like this, and not for becoming cheaper.

First I wrote down all materials that it normally requires:

piston 1
obsidian 1
tnt 2
smooth_stone 1
trapdoor 1
lever 1

And got a piece of concept art: 64

I know that it looks ass, but that’s why it’s concept art.

After 30 minutes I got it working, as you can see here. Someday I am definitely going to put this into a separate Minecraft mod, cause I actually like this item.

Now let’s continue with the other videos, cause there is a lot left to learn.

9. Custom tooltips.

  • 06/03/2025 15:10 - 15:40 in episode 9 we’ll learn to create custom tooltips :3

img

img

here is a list of codes you can use for text formatting.

I have learnt here about java anonymous classes.

We are now on 6 hours and 55 minutes.

10. Custom Item and block tags

  • 06/03/2025 15:40 - 15:55 in episode 10 we’ll learn to create custom tags.

This is quite useful, if you want multiple items to fit in a category, and since multiple mods can make use of this tag.

We are now on 7 hours and 10 minutes.

11. Data Generation

I had a problem with Data Generation, then I changed from JDK 21 to 17 and back to 21, and then it suddenly worked. this did cost me a lot of time tho.

I have also seen a new syntax that I’ll have to look into myself later on: java class::syntax.

If you want to specify multiple recipes with the same result, you have to specify that in the ModRecipeProvider.

Data generation

By the data generator, whenever I ran it for the second time I had an error where it wants to generate things that already exists. there are multiple ways to fix this:

  1. delete the generated folder, and try again. (every time you want to generate the data)
  2. Changing the gradle settings:
    1. go into the build.gradle file in the top level directory,
    2. find processResources { // something here }. Or if it doesn’t exist create it.
    3. add duplicatesStrategy = DuplicatesStrategy.INCLUDE between the {} brackets. This will overwrite it. For more info, read the gradle wiki.
Link to original

I also had an issue because I didn’t name the fallen_star like the tutorial did: starlight_ashes. but I just fixed that by making the texture name fallen_star.png

We are now on 9 hours and 10 minutes.

12. Non-Block Block Types

  • 13/03/2025 11:30 - 12:25 in episode 12 we’ll learn about other block types like stairs slabs etc.

This is quite interesting to see how much is already done for you, it is quite easy to add new things. Tho if I would add all variations of a block to my mod, I’d probably do it in a separate file.

We are now on 10 hours and 5 minutes.

13. Blockstates

  • 13/03/2025 13:15 - 13:45 in episode 13 we’ll learn about Blockstates. Here we basically learnt how to add params to a block, for example: a boolean. This one is a bit jambled in the explenation and understanding of it, probably because he tries to make it understandable for non programmers. But I’ll take an extra look at this later.

It is basically the whole idea that a block is an model instance of that block’s class. and then explained very poorly.

We are now on 10 hours and 35 minutes.

14. Data Components

  • 13/03/2025 13:45 - 14:15 in episode 14 we’ll learn about data components. This seems like yet another technical one.

It is just like Blockstates, but then the item version. it’s the newer NBT system basically. To use the old NBT system, there is a class called NbtComponent and NbtCompound.

I just recognised that I want to look into the datatypes that I keep using: public static final ...

It is quite cool to make custom component data that I can add to my Items, like the coordinate example.

The newer data components system is an upgrade from the NBT system, but sadly you do need a codec every time you want to register a new type.

Basically how this works, at least how I understood it, is that ComponentType<BlockPos> is the type of value you want to save as data. and the other parts are there to help register it. but if you want a string instead, just change it to ComponentType<String>. and idk how the codec works yet, so maybe you’d have to change that too.

We are now on 11 hours and 5 minutes.

15. Custom Minecraft Tools

  • 13/03/2025 14:20 - 15:05 in episode 15 we’ll learn about how we can make custom tools :3

For this episode we had to make a manual json file again since fabric doesn’t have a remove method added yet xD.

We are now on 11 hours and 50 minutes.

16. Custom Hammer Tool

  • 13/03/2025 15:20 - 15:30 in episode 16 we’ll try and make a custom hammer item. Here we used recursion to create a hammer.

We are now on 12 hours and 0 minutes.

17. Custom armor

  • 13/03/2025 15:35 - 16:15 in episode 17 we are going to make custom Armor.

The png had a typo lol. This will automatically work with the armor trims :3

We are now on 12 hours and 40 minutes.

18. Armor effects

  • 13/03/2025 16:35 - 16:45 in episode 18 we are going to find out how to give a player a static effect whenever a full set of armor is equipped

We are now on 13 hours and 0 minutes.

19. Horse armor

  • 13/03/2025 16:55 - 17:10 in this episode we are adding custom horse armor. idk why I needed this.

We are now on 13 hours and 15 minutes.

20.Armor trims

  • 13/03/2025 17:15 - 18:05 We have arrived to episode 20 where we will learn how to create custom armor trims.

This depends on DataGen, so if you create the JSON File Format recipes etc manually, it will not work. or at least, that’s that he says.

We are now on 14 hours and 05 minutes.

21. Model Predicates

  • 17/03/2025 11:35 - 11:50

In this episode we will have a look at Model Predicates, and I have no clue what this is going to be about beforehand.

So this is basically that you are able to change an item texture based on logic. so for example you can change an item based on it’s damage value, biome you are in, etc etc.

We used this to change the chisel when used. It is quite easy actually :3 It doesn’t work combined with DataGen so just move the generated data into the correct folder and edit it.

22. Custom Bow

  • 17/03/2025 13:35 - 13:50 In this episode we are going to add a custom bow. I assume that we’ll be using Model Predicates for that, but we’ll see.

Yes I was indeed right :3 It was actually kind of straight forward, except for the part where we created a Mixin, we add that to overwrite hardcoded behaviour, but i don’t fully understand how it works.

We are now on 14 hours and 35 minutes.

23. Events

  • 17/03/2025 16:05 - 16:20

Programming Events work different in fabric than in forge.

Kaupen is down bad mannn, making me do this to a poor sheep. 💀💀💀💀

We are now on 14 hours and 50 minutes.

24. Custom sounds

  • 19/03/2025 14:45 - 15:10

I am glad that I don’t have to record my own audio for this xD.

Apparently they have to be proper .ogg files, .mp3 won’t work. They also have to be in Mono.

Don’t forget to add the subtitles to the en_us.json like the tutorial does.

We are now on 15 hours and 15 minutes.

25 custom music disc

  • 24/03/2025 15:15 - 15:50

In episode 25 we are adding a custom music disc.

So apparently, if you use Stereo audio, it will play everywhere in the world. which is funny.

I added a song myself hehe :3

img

26. Custom Potion effects

  • 24/03/2025 16:45 - 17:15

For some reason the icons for status effects are 18x18, that is not a resolution used anywhere else.

If you want to add your own effect, you need to know how to code, you can’t just copy paste them.

I am going to try and create my own effect to see if I have learnt enough for that.

The effect I made removes 4 blocks / seconds below the player, this makes it so that you have to keep running to not fall out of the world. I had enough knowledge to do this, but this wasn’t really advanced anyways.

It works lmao!!

img

We are now on 16 hours and 20 minutes.

27. Custom Potions

  • 25/03/2025 15:45 - 16:15

In this video we are making a custom option :3

it is not that hard, but sadly I can’t add custom levels per potion unless you register them as multiple potions, which I did.

This one took long because I had to get my own potions working as well :3

We are now on 16 hours and 50 minutes.

28. Custom Paintings

  • 25/03/2025 17:20 - 17:35

You can do this without any code lol. You can do this with a Datapack.

This is almost all we need to add per painting.

{  
  "asset_id": "tutorialmod:filename",  
  "height": 2,  
  "width": 2  
}

height and width are in blocks, and every block is 16x16 pixels. the max is 16x16 blocks.

And you need the placeable.json, that’s it. it is very easy.

We are now on 17 hours and 5 minutes.

29. Update to 1.21.3

yeah imma skip this one sicne the tutorial will contineuw ith 1.21.1 in the other videos.

30. Custom Enchantment

  • 05/04/2025 13:00 - 13:40
  • video

After this one I have now decided that I’ll make a Limbo enchantment, by myself, as a challenge.

We are using a new java thing that I haven’t heard of before: record, which is a datatype, but that’s all I know about it. It is quite straight forward, so I think that I can easily create my own LIMBO enchantment.

We are now on 17 hours and 45 minutes.

I found out how to export the mod :3 img

Limbo enchantment

14:30 - 15:20

I want to create an enchantment to put on a sword, and it sends the hit person to the exact same coordinate (divided by 8) in the nether. (it should also set the blocks there to air.)

I have made it, it took a while because I had to figure out what a PositionFlag was. which was harder than expected. But it was very fun to do this. I also had to test with myself which was funny.

Limbo won’t teleport you above or below the bedrock layer, and it will put a fire where you were standing.

We are now on 18 hours and 35 minutes.

31. Custom Crops

  • 05/04/2025 16:40 - 17:15
  • video

We added cauliflower crop… yay ._.

We are now on 19 hours and 10 minutes.

32. Custom Bush

  • 07/04/2025 14:50 - 15:20
  • video

I honestly don’t care, but we’ll do it anyways.

I also don’t know how this took 30 minutes.

We are now on 19 hours and 40 minutes.

33. Basic World Gen Setup

  • 07/04/2025 15:45 - 16:00
  • video

Now this is the thing that I am interested in. Me and Thomas had an mod idea we wanted to make for a long time, we basically wanted an Infinite Ikea World generation mod. And so this will definitely help me achieve my goal.

So in this video we will prepare our project for future Terrain generation modding.

We are now on 19 hours and 55 minutes.

34. Ore Generation

  • 11/04/2025 16:30 - 17:15
  • video

in this episode we will add ore generation to the nether end and overworld.

We are now on 20 hours and 40 minutes.

Java research

  • 15/04/2025 15:30 - 16:45

In this section I started doing a bit of research on Java things that I have used without knowing how it works.

We are now on 21 hours and 55 minutes.

35. Custom Tree

  • 23/04/2025 19:20 - 20:00
  • video

I have learned how to create a tree, and I found out that you can spawn structures with saplings, but the original spawn rules must be met. So you cant spawn a dessert well on grass.

We are now on 22 hours and 35 minutes.

36. Tree generation

  • 24/04/2025 16:30 - 16:55
  • video

Here we learn to actually place our trees throughout the world when the world is generated. Last tutorial we only learned how to make the trees.

We are now on 23 hours and 00 minutes.

37. Tree on different block

  • 24/04/2025 17:20 - 16:25
  • video

Here we learn how to make our tree spawnable on different blocks.

We are now on 23 hours and 05 minutes.

38. Bush generation

  • 02/05/2025 14:05 - 14:25
  • video

This video shows us how to add our earlier created bush to the world generation.

We are now on 23 hours and 25 minutes.

39. Custom mob

  • 02/05/2025 14:30 - 15:30
  • video

This video shows us how to create entities, this took a while. Blockbench is the app to create models with.

img

We are now on 24 hours and 25 minutes.

40. Entity variants

  • 08/05/2025 18:00 - 18:20
  • video

In this episode we are going to make a mantis variant, not that I care, I didn’t care about creating entities, but it is part of the tutorial..

We are now on 24 hours and 45 minutes.

41. Entity spawning

  • 08/05/2025 19:10 - 19:20
  • video

In this episode we are going to make the mantis spawn in the world.

We are now on 24 hours and 55 minutes.

42. Entity sounds

  • 08/05/2025 19:30 - 19:35
  • video

In this episode we are going to make the mantis play sounds.

We are now on 25 hours and 00 minutes.

43. Throwable Projectiles

  • 13/05/2025 11:25 - 12:00
  • video

Here we learn to create a throwing projectile. It has some interesting syntax EntityType.Builder.<TomahawkProjectileEntity>create(TomahawkProjectileEntity::new, SpawnGroup.MISC)

We are now on 25 hours and 35 minutes.

44. Custom Boss Bar

  • 13/05/2025 12:00 - 12:10
  • video

here we are going to display a bossbar for an entity.

We are now on 25 hours and 45 minutes.

45. Custom Block models

  • 13/05/2025 12:10 - 12:25
  • video

here we are going to create a chair model. Well actually, Import a chair model. The chair model is already provided.

We are now on 26 hours and 00 minutes.

46. Sittable Blocks

  • 20/05/2025 16:20 - 16:30
  • video

In this episode we made a chair sittable by spawning and riding an invisible entity.

We are now on 26 hours and 10 minutes.

47. Animated Textures

  • 20/05/2025 16:50 - 17:00
  • video

here we learnt to animate textures

We are now on 26 hours and 20 minutes.

48. Custom Item Model

  • 20/05/2025 17:00 - 17:05
  • video

Having an item with a custom 3d model.

We are now on 26 hours and 25 minutes.

49. 2D texture, 3D model

  • 20/05/2025 17:10 - 17:20
  • video

We made it so that there is an item with a 2d texture in the inventory, but it has a 3d model when in hand.

We are now on 26 hours and 35 minutes.

50. Custom Villagers

  • 20/05/2025 17:20 - 17:30
  • video

We made a villager that can have a custom profession

img

We are now on 26 hours and 45 minutes.

51. Custom Villager Trades

  • 20/05/2025 17:30 - 17:35
  • video

In this video we added trades to all kind of villager professions + wandering trader trades.

img

We are now on 26 hours and 50 minutes.

52. Spawning Particles

  • 20/05/2025 17:40 - 17:45
  • video

In this episode we learnt how to spawn particles of and at the particular block that we clicked.

We are now on 26 hours and 55 minutes.

53. Custom Particle Types

  • 20/05/2025 17:50 - 17:05
  • video

here we learnt to make our own particles.

img

We are now on 27 hours and 10 minutes.