Topic category: Help with Minecraft modding (Java Edition)
I want to have my custom weapons model be different when the player holds it than it is in the gui. The trident in vanilla minecraft is a good example of what i want. In the gui its just flat sprite work, but when held by the player it is given it's own 3d model. I would like to know if anyone knows how to recreate this in the mcreator software with custom weapons.
I have already tried looking at the item json models but I found nothing of use. There were no lines saying if the item is in someone's hand use this model instead. I also tried looking at the trident's .java item file in minecraft's source code but found nothing mentioning either json model, or when to use them.
I know they did it somehow, but i am lost on how i could recreate this. I don't want to resort to having a script that changes out the item whenever it is held to recreate this do to that fact that it could cause multiple problems that i'd rather just not deal with.
If you can help, please do. I would appreciate it.
For weapon set normal texture but 3D entity model make for bullet.
Model must be faced down (sharp side) I recomend BlockBench
Im not trying to make a ranged weapon. Im trying to make it so a weapon looks different when being held by a player than it does if you were looking at it in your inventory.
I want to be able to recreate what the image is showing below.
You can make custom model in BlockBench and in this software, specifiy different render modes
Yeah I have the same problem! I made the model with blockbench and the item texture was normal just the item in hand had the model. But it was too high in first person view so I moved it a little down in blockbench in the display tab. but it automatically sets the model as the texture in inventory slots, chest, etc. I have the same problem now I don't know what to do
any update on how to do this because I cant seem to figure it out
I need this as well
Similar issue. Blockbench allows editing of scaling and rotation and what not- but I'm assuming you need to use custom predicate overrides, which are found in the tool menu, to change the model when certain conditions are met. ...I have no idea how to do this, and would really like to know how, but that's the best I've got at the moment.
I can't seem to find a solution for this issue so I just did it the tougher way. In blockbench, make a 16x16 flat texture for the item icon texture you want to use. Add a seperate texture for that icon. Have the normal displays scale down the flat texture while the gui displays scale down the actual item revealing your flat texture. A bit tougher to do, but still feasible.
Nevermind, I thought I had found a solution without even testing it. I realised you can't edit blockbench model groups seperately. So instead I made 2 separate JSON models, one for the display icon item that doesn't appear in third or first person. And another model for the actual 3d model which only appears on the player when it detects the player is holding it.
How, exactly, did you accomplish this? I understand the idea of using both a custom 3d model and a standard item model, but how are you specifically replacing the first/third person renders without changing the GUI render?
Turns out this is possible by editing the JSON files, forge apparently has a built in loader for separate gui textures. (Just took me several hours to realize they changed the name in 1.20.) Here's a decent tutorial on how to do it, I was able to get it working pretty quick:
[TUTORIAL] 2d Texture In GUI and 3d Texture In Hand 👾 | MCreator ~