Fabric Modding Tutorial - Minecraft 1.20: Custom Items & Creative Mode Tab | #2
HTML-код
- Опубликовано: 5 июл 2023
- In this Minecraft Modding Tutorial for Fabric, we are adding a Custom Item to Minecraft 1.20, as well as a Custom Creative Mode Tab!
== MODDING COURSES ==
FORGE ▶️ url.kaupenjoe.net/CourseForge...
FABRIC ▶️ url.kaupenjoe.net/CourseFabri...
== COMPATIBILITY ==
✅ Compatible with 1.20, 1.20.1, 1.20.2
== ASSETS & DOWNLOAD LINKS ==
GitHub Repo: github.com/Tutorials-By-Kaupe...
Assets Zipped: url.kaupenjoe.net/mbkj49/assets
== SUPPORT ME ON PATREON ==
▶️ / kaupenjoe
== 25% OFF FOR GAMING SERVERS ==
▶️ www.bisecthosting.com/Kaupenjoe
== TAKE A LOOK AT MY COURSES WITH COUPON CODES ==
▶️ NEW Forge Modding with Minecraft 1.20.X:
url.kaupenjoe.net/CourseForge...
▶️ NEW Fabric Modding with Minecraft 1.20.X:
url.kaupenjoe.net/CourseFabri...
▶️ Complete and Roblox Lua Game Development:
url.kaupenjoe.net/RobloxCoupon *
▶️ Learn Forge Modding with Minecraft 1.18:
url.kaupenjoe.net/CourseForge118 *
▶️ Learn Fabric Modding with Minecraft 1.18:
url.kaupenjoe.net/CourseFabri... *
== SUPPORT ME ON PATREON ==
▶️ / kaupenjoe
== SOCIALS ==
Discord: / discord
Personal Twitter: / kaupenjoe
Instagram: url.kaupenjoe.net/tutorials/i...
Facebook: url.kaupenjoe.net/tutorials/f...
Twitter: url.kaupenjoe.net/tutorials/t...
TikTok: url.kaupenjoe.net/tutorials/t...
Written Tutorials: url.kaupenjoe.net/tutorials/blog
== LICENSE ==
Source Code is distributed under the MIT License. Additional Licenses for other assets can be seen below or in the accompanying CREDITS.txt on download.
== AFFILIATE DISCLAIMER ==
* Some of the links and other products that appear in the video description are from companies which I will earn an affiliate commission or referral bonus from or are my own products. This means that if you click on one of the product links, I’ll receive a small commission or additional kickback without any additional cost for you. This helps support the channel and allows me to continue to make videos. Thank you for the support!
== HASHTAGS ==
#Minecraft #MinecraftModding #MinecraftTutorial #Kaupenjoe
If you are on 1.20.5, use Item.Settings() not FabricItemSettings()
Thank you!
Thanks u saved me
thank you
bump
Thx
this is a great video although I'd like you to explain what every minecraft/fabric class does so I don't feel like I'm following the video in a blind way. I've been able to make the items and all of that but I still felt like I haven't learned anything(and I've done your java course as well plus prior to that I already knew javascript,css and html)
+1
thank you for providing such a great resource for the community! i also really like the idea of combining the custom item and custom item group guides into one video instead of splitting them up like you’ve done in previous series. very concise and easy to follow :)
Thank you so much for the kind words 💙💙
Alright, I had the "purple and black cube" texture issue for my custom item instead of my PNG. But I was able to fix it.
Here is what I did:
- Created a 16x16 Texture.
- Fixed Spelling errors.
- Mod ID Consistency: Double-checked that my mod ID used in my files matches the mod ID used throughout my mod (in the texture path and other files).
My issue was that Fabric had named my mod with dash's instead of the name I gave it.
For example, the "tutorialmod" in the resources/assets path was instead "tutorial-mod".
After changing that folders spelling error, the code worked, & I was able to see the custom texture.
I hope this helps others!
OMG TYSM I have been comparing code for hours think i mistyped something TYSM👍
I was about to delete the project and restart so thanks
in my case the folder from the resources path had another modid that couldnt be changed, got it rigth still
The exact EXACT same thing happened to me, so thank you
Thank you so much. I had the same issue. I used "CTRL + SHIFT + F" and "SHIFT SHIFT" hotkeys to search the whole project for "tutorial-mod" (without the quotes) and renamed most of it with "tutorialmod". Also watch out for how you name the directories. I had a typo in "models" (I typed "modles")
Tutorial is very good, but you need to slow down. People are trying to follow a tutorial, not speedrun a new mod item.
"Playback Speed"
And some people don't like when people move too slow. He covers everything clear and concise. Slow it down if you need too but I hate having to "wait for the rest of the class" type tutorial.
Very useful series, thank you for making it. :)
Nice tutorial, though I wold explain more in depth what everything does without rushing to type, I noticed this especially in 11:26, where I had to pause the video every second, also there was no explanation about the meaning of the different functions.
thanks a lot for these tutorials they are amazing and keep up the great work!!!
0:10 That intro is fantastic.
Fantastic tutorial. I was wondering how you open the vanilla Minecraft files in order to find vanilla IDs and how features are implemented for various items?
Edit: Found out how. You can use the middle mouse button to open classes that you type in.
Great video! How would you go about making the item look enchanted, like a nether star for example?
in the advanced item tutorial you make a class just for that item and then theres a thing in the Item class called hasGlint and just set the return value to true
the best tutorial you can get for free (also the best tutorial you can get period)
for anyone wondering about name: " " string name item item part at 3:26 just type in a " and it auto fills.
thank you i was losing my mind
Thanks!
cant seem to make it work
thank you
Could you please make an in depth video on NBT data? Revently I've been struggling with it and I can't find any reliable videos or resources? Specifically, I would like to see how someone could sort itemStacks and multiple itemStacks inside NBT data.
Ok this makes a bit more sense after digging around other tutorials and having a PHP background myself. But if this is your first time coding, I wish you the very, very best of luck
Ye, I really try to make it clear in the first episode of the series to first get some java knowledge (or at least programming!).
Fully agreed, without any background this'll be rough (almost by design) 🙏🏻🙏🏻
I've been programming for a long time now (over a decade), but never really in Java and wanted to try my hand at minecraft modding. So far so good but I already forgot a semicolon so I'm getting the real experience here xD
But Java ain't so different from C# so far, so that's nice.
Oh ye! Java and C# are incredibly similar! I saw a comment once that said: "C# tastes like C, looks like Java" - I feel like that sounds about right 🤣😁
Hello, so happy that this tutorial is coming out. Just finished the java course for Minecraft modding.
I want to create mods for hypixel skyblock which is the game mode that I play, will this tutorial will be good for that. I don't want to create new blocks and such things but change things in the game such as taking information from tab or inventorys and having it on the screen all the time and being able to change the position of the information.
Then this tutorial isnt for you. This is for fabric, meanwhile skyblock is played with 1.8.9 and on forge.
@@nickn27 I mean it is compatible with 1.20.1 Fabric.
Plus, some songs have their full instrumentation on 1.13+, so they *might* be having a better time.
@@pacomatic9833 What? Thats irrelevant. Hypixel runs on 1.7 iirc and the best version to play skyblock on is 1.8.9. Most if not all mods for skyblock are mod for 1.8.9 because it doesnt have the shitty combat system that microsoft introduced.
@@nickn27 Key word: might
Will you ever show biome creation, natural custom mob spawning, plants, trees, etc?
Yep most of that is planned for World Gen 😎🙏🏻
@@ModdingByKaupenjoe excellent, cheers man
Thanks for the free and awesome tutorials! Quick question though, I notice that in the code for the "registerModItems" function the items are registered in the class itself, and the function just adds the items to a group, is it bad practice to also register the items inside of that function? Or is there some advantage to leaving the item outside of the function? I'm pretty new to Java so some of its theory is still processing in my brain.
No, so either thing works, the main thing the registerModItems method does is it acts as a static initializer for the class to actually register the items. You could also assign them inside of that, but I prefer it to the way that I show. I do not believe there is any mechanical difference between doing it my or another way 🤔
@@ModdingByKaupenjoe Alright, thanks!
Hey, just adding my thoughts here. Either way works, but registering the item outside in the class is a good practice in case you need those item object in some other class as well (Let's say you want to create another item group which contains these items...). Also this way, it looks much more cleaner!
alright, thanks for the addition!
Can you make a video on adding other mods to our modding environment, so we can launch our mod along with its dependencies?
I think to do this you just have to open the workspace's run folder, and then drop the mods in the mods folder
I was lucky to get errors, ty to fabric weird self-folder-naming. So I'm now familiar with process of checking logs and fixing minor problems, haha
how do you make the pngs for the item textures?
gimp, procreate, paintdotnet, etc. your drawing area should be 16x16 pixels.
the textures wont render in in minecraft and appear as purple and black blocks any idea why?
same problem
I used "CTRL + SHIFT + F" and "SHIFT SHIFT" hotkeys to search the whole project for "tutorial-mod" (without the quotes) and renamed most of it with "tutorialmod". Also watch out for how you name the directories. I had a typo in "models" (I typed "modles")
Hey im trying to make a mod were if an item is in your inventory you will gain creative fly. but I cant figure out how to detect an item in the inventory and there is little documentation on the subject. any help would be great.
hi
will you make video about how we make custom wandering villager?
Is there any way to sort in what order items appear in a vanilla item group?
I've noticed something strange with how things get loaded in:
I've been able to refactor the ModItems class so that nothing happens when you poke it except for a log message (that is to say, everything is done by initializing final members. Which is fine if you *only* put your items into your own custom item group, since only adding things to existing (vanilla or other mods) registries requires you to poke a registry *after* creating it...), but if I don't poke it, the mod items still don't show up. My best guess is this is a detail of Java that I didn't know about before; final members aren't actually created until the class has been poked in _some_ way, which in this case is by making it print out that log message.
Exactly! This is the reason for the registerModItems method which looks like it just outputs a log, but in actuality initializes the static members of the class, so the items are actually properly registered at the correct time! There are some other ways of doing this, putting every thing in a static block or making the registration happen in a method, but I personally like my way the most :)
I think you are missing explaining why do we have to put such parameters in the functions, just writing while spelling out what you are writing is not enough, for example, it would've been very good to understand why are you putting those parameters at 3:10, maybe explaining a bit of how minecraft loads items, then we know why we have to put those things.
Sorry for being so harsh, you do end up explaining some of the concepts at least int he item group things, but it's a lot to take in a single go hahaha, we gotta take it easy, thank you for the series.
hey i need some help, i followed both the first tutorial of this serie and this just perfectly, theres no single error in code, made sure of it, and the mod doesnt work? the only thing that has been different was the run code part of i believe the first chapter? where it just, said that game crashed and didnt open nothing, it never opens it, thats the only difference, how do i solve that?
how do i make the 2d model 3d @Modding by Kaupenjoe
Are these videos compatible with Quilt too? I'm redoing my very early stages Forge mod on Fabric, but one of the API mods I want to use is Quilt exclusive. (I also just want to be able to smoothly run my mod with Sodium and Iris lol)
They should mostly be compatible yes, I can't 100% confirm, but they should be 🙏🏻
@@ModdingByKaupenjoe Thanks for the reply! Time to make some good stuff with this...
Anyone know how to turn this folder into a .jar file so I can test this in an actual modpack?
is there any way you could do a tutorial on how to merge your fabric and forge mod into one file? like the falling trees mod, it has its own build.gradle but it has its own fabric and forge src folders, idk if that makes sense
You want to take a look at the architectury api: github.com/architectury/architectury-api
That basically offers you fabric, forge and common packages that allows you to have everything in one project. I have not tried it out myself, but I might want to look at it in the future for tutorials 😎😁
@@ModdingByKaupenjoe if you made a tutorial that would be awesome!!
Hello, hope you are doing well!
Following the tutorial i couldn't add items into a vanilla group since they're private. How to proceed?
make your own group sadly, as it is impossible as far as i know
How do these mods preform on servers? I want to make mods for my server but want to know if they will work server side (without a client download?) and will 100% follow this course if I know I can do that haha
That does not work, Mods are specifically Server _and_ Client. If you're looking for server-side only you have to take a look at plugins!
@@ModdingByKaupenjoe Thanks, my server is fabric. So when you say plugins?
@@ModdingByKaupenjoe actually, there's a really great resource called "Polymer" by patbox, which allows for creation of serverside items and blocks, so you can still use fabric completely serversided!
For a complete begginer, would you recommend fabric or forge?
It doesn't really matter, either is going to be totally fine. For a complete beginner it is much more essential to have a good Java foundation. Because with that you will be able to pick up either forge or fabric _much_ easier 😁
Fabric will most likely replace forge eventually.
It's gaining momentum fast.
I've decided to go the Fabric route first myself simply because the ecosystem for that modloader seems to favor the kinds of tiny quality of life or bite-sized content mods that make more sense for the scope of a beginner, so whatever I do end up making might find more success there. Plus I want to be able to play my mod with sodium lol
Hey, i know it's been a while since this videos release but i've followed the vidoe so far but when i get to importing the texture for the ruby it just just load for some reason
specifically showing "Unable to load model: 'tutorialmod:ruby#inventory' referenced from: tutorialmod:ruby#inventory: java.io.FileNotFoundException: tutorialmod:models/item/ruby.json"
not sure on the issue any help is great
I managed to fix it almost, check the folder name of models/textures folder. For me, it was different than tutorialmod. I just renamed it and the model works, I still got a missing texture but that's one step closer I think
EDIT: managed o fix it, once you change the doler name, make sure to fix it in the models/item .json file you made
Oh my god thank you, i gave up yesterday after trying to fix it for half an hour and couldn't find the issue thank you
FabricItemGroupEntries, Registries - not working
I followed your video but for some reason the texture is not loading for the ruby. I did add the ruby.png but it is not loading the textures. Just a black and purple blocks.
I tried again. It works now.
how did you solve it
@@carluxobr8138 try again. I did it all from the start again.
@@4ud170r i found out why it was happening with me, the folder class didnt match up to the modid tags, i runned through it again to make sure i do not forget anything
I used "CTRL + SHIFT + F" and "SHIFT SHIFT" hotkeys to search the whole project for "tutorial-mod" (without the quotes) and renamed most of it with "tutorialmod". Also watch out for how you name the directories. I had a typo in "models" (I typed "modles")
Hello, and thank you so much! Your videos are incredibly helpful to me. But... EVERYTHING works except for one thing: minecraft does not see the texture and shows a black and purple tile instead
I've already lost hope... How can I fix this?
There has to be a typo in either your folder structure or the json file. Double check everything including spelling of lower and upper case
I rewrote the code several times and everything worked! Thank you for your videos and responsiveness)
@@ModdingByKaupenjoe had the same problem. I'm a complete newbie to coding, so i just rechecked it million times, rewrote something a little and it loaded! thanks for your tutorials, it is really helpful and entertaining.
hey i have a problem my texture is a giant 3D cube with purple and black how do i fix it
the assets folder "tutorial-mod" folder should be called "tutorialmod" which is the same as the mod id , that should fix it
I used "CTRL + SHIFT + F" and "SHIFT SHIFT" hotkeys to search the whole project for "tutorial-mod" (without the quotes) and renamed most of it with "tutorialmod". Also watch out for how you name the directories. I had a typo in "models" (I typed "modles")
How can i activate that the generated text before the String in 3:26 shows up? I accidently turned it off.
i also cant figure out how to do this
press the " key and it generates
@@Beangus421 thanks
how do i make a custom trident? when i try to create one with the "tridentItem" it works with my custom model but when i throw it, it is just a normal trident in the ground.
The problem there is that the model and texture for the thrown trident entity is different from the model and texture for the item in your hand and inventory. You need to give it the custom model and texture for both the item and the thrown trident entity.
@@jonispatented ohh, that makes sense, do you know what i need to do to add the thrown model?
The game loads the new items into the new item group just fine, but the textures of the items are just purple and black checkered boxes, and the names of the items are long with dots and categories.
Note, I have checked and rechecked the en_us.json and the ruby.json and the ruby.png four times over! It's not that. What do I do?
i fix the same problem, check your en_us.json the path is, item.nameMOD.nameITEM. I check my code for 3 times and only one letter was missing in the nameMOD. Letter "i" so hard to see.
Your ruby.json is incorrectly defined.
I used "CTRL + SHIFT + F" and "SHIFT SHIFT" hotkeys to search the whole project for "tutorial-mod" (without the quotes) and renamed most of it with "tutorialmod". Also watch out for how you name the directories. I had a typo in "models" (I typed "modles")
ik its been a long time since the release of the vid but im having some trouble, the item isnt loading, everything is correct, quadruple checked, and the item just dosnt exist, no errors are playing either
fixed
@@ambermonkey69what was the problem
@@daft_icup it was a capital letter that wasn't meant to be a capital letter
At 11:48 Why do we need to add "ruby" at the end? What is its purpose?
how i think. its adding string "ruby". for later find in texttranslatable that "ruby"
Why my new block can't be seen when I use the empty map
hey uh my custom item was a purple and black cube, there are no errors, how do i fix this?
It's a typo in either the JSON file or the directory structure. Double check all the spelling!
just did and its still purple and black, are underscores allowed in item names?@@ModdingByKaupenjoe
The texture isnt showing for me! It is a purple and black checker texture block as the item... any fix?
Check your spelling on everything in the .json files in the resources
yeah got it thanks @@hughzon1042
and folder names ie 'tutorial-mod' vs 'tutorialmod'
yeah I know I already said I got it@@hughzon1042
same issue bruh
I followed all instructions perfectly and clearly yet I cannot do the modItems class because my class cant be imported at all, no autocomplete and manually importing doesnt work either, as well my data generator is all broken and the fabric api imports are red, I don't think I did anything wrong, I followed everything step by step and its still not working, and finding nothing online to fix this issue
had the same problem but I think its bec this was made a little bit ago so the fabric loader was updated and (I think) they combined itemgroups within Itemgroup and because I guessed that and changed all the instances of groups to group it works!
forgot the comma... took forever to find XD
Why do we register the item different to how it is done on the fabric website tutorial
How is it different? I just choose to place the registration of the items outside the "ExampleMod" or main class. All the steps should pretty much be the same 🤷🏻♂️
@@ModdingByKaupenjoeon the fabric website they do:
public static final Item CUSTOM_ITEM = new Item(new FabricItemSettings());
public void onInitialize() {
Registry.register(Registries.ITEM, new Identifier("tutorial", "custom_item"), CUSTOM_ITEM);
}
looks faster to me is there any benefits to the method in the video
Sure, but it is less organized. If you keep everything in the main class, like blocks, items, block entities etc it will get cluttered very fast!
The way I show it is to make it all more organized and neater for bigger projects 🤷🏻♂️
you never showed how to put the item texture in. now im stuck. help?
You simply drag it from a windows folder into the folder inside intellij 🤔🤔
how do I allocate more ram to the minecraft client?
edit: figured it out
Hi, how did you add more ram to Minecraft, and do you know how I can test it with my normal account and settings with other fabrics mods I have like sodium and iris
6:03
For me the RegistryKeys are private in ItemGroups
Did you ever find a way around this?
Yes, I made a new class and copied the RegistryKey Attributes as well as the register method from the ItemGroups class.
somehow my item shows up as belonging to minecraft and my textures arent working
*edit* fixed it after countless hours of spell checking
at roughly 2:45 - in the registerItem method you did not add your mod id to the Registry.register call then 🤔
SOMEONE PLEASE HELP!!! I DON'T KNOW HOW TO ADD THE ITEM TEXTURE TO THE PACKAGE!!
You don't add it to the package, but the assets textures _folder_ and you should be able to simply drag it into the folder and it's a simple drag and drop. Once again not the package, but in the folder!
For some reason mine has no texture
Bro it was so freaking hard I think I am gonna give up but idk
Do not!
I'm surprised about the mistakes people make. I guess it is because coding can be hard for beginners
I am telling you, I have seen it all at this point 😅🤣🤣
Textures arent working everything is the same as you
for anyone else who may be struggling with this, I learned the hard way that the en.us.json file is supposed to be en_us.json
check your file names if shit doesn't work
thanks so much, but the name is just glitched anyway (example: item.modname.gold)
I had the same issue. Rename the lang file to en_us.json, and it should fix!
im just copying all what u do, not learning anything. How am I supposed to learn shit
that's quite normal if you are just learning to program. I recommend watching the java tutorial he specifies in the 1st video and then trying to piece it together using what you know about Java. Also, if you are using Idea, you can select a class or method you wanna know more about and press F4. It will show you how it works. Though that can be very confusing, so looking up documentation is not a bad idea either.
The reason you are confused is bc this is less about learning Java and more about learning to use Minecraft and fabric as an interface (a tool which provides predefined functions to help you create what you want) . It involves a lot of abstraction ("here is what you can do, don't worry about how it works"), which can feel very unsatisfactory if you also want to learn more about the language and why certain thing are done in certain ways.
You can think of this as someone teaching you how to drive a car. You don't need to know how cars are made and why you need to shift gears, you just need to know what a car is and that shifting gears correctly is important. After all, driving by itself is challenging enough in the beginning.
If you wanna know more about how computer languages work or computers themselves in general, you need to start looking into Computer Science courses. Luckly there're plenty available for free online.
After that, the best thing you can do is getting used to reading documentations (seriously, it's super useful. Don't know what a class/function does? Documentation -> ctrl+F, -> "ClassName/methodName() -> read and learn") and joining a dev-community, f.e some kind of Minecraft modding discord server/channel and become that guy who asks typical beginner question, but everyone is happy to answer to. Just be nice and everyone will be super useful.
@@enot2140 Thank you so much for this respons!!! Ill try it all out :)
i did everything right, but it keeps saying "Field 'RUBY_GROUP' is never used"