Jump to content
Search In
  • More options...
Find results that contain...
Find results in...

[1.18.1] Vanilla client not loading custom item model/texture


LostThought
 Share

Recommended Posts

Hi,

This is my first foray into Forge and i am confident I am making a silly mistake somewhere, any advice would be appreciated.

Objective

  • Have a custom mod; mymod
  • Have a custom item with a custom texture; mymod_item
  • Provision resource pack for lang, model and texture assets for mymod_item
  • Run a dedicated Forge server with the mod installed and requiring the resource pack

Expected behaviour

  • Player connects to dedicated server and downloads asset pack
  • Player is given custom item
  • /give @p mymod.mymod_item
  • Player inventory to display item with custom texture and to be visible when dropped

Actual behavior

  • When running a Forge client from the IDE tasks, the textures load for singleplayer (via local Forge mod deployment)
  • When running a Forge client from the IDE tasks, the textures load for multiplayer games (via asset pack)
  • When running a vanilla client in singleplayer mode, as expected it does not work as it has no concept of my entities.
  • When running a vanilla client in multiplayer mode, the asset pack is downloaded and an invisible item is granted (I have some logging on the item so that i know I "have" it)

Noteworth

  • When giving the item to the player on the vanilla client, the name is displayed correctly implying that the lang/en_us.json is being loaded correctly.
  • My asset pack also overrides the minecraft:item/gold_ingot texture with the exact same one used for mymod:mymod_item and this is loaded fine as a replacement.

Asset pack tree

assets/minecraft/textures/item/gold_ingot.png
assets/mymod/textures/item/mymod_item.png
assets/mymod/models/item/mymod_item.json
assets/mymod/lang/en_us.json
pack.mcmeta

 

Summary

I suspect that i am doing something that i am not supposed to but unfortunately its not jumping out to me quite what that may be! One of the pieces i am struggling to understand is what ties the mymod_item class to the resources? In my code i do net set any explicit ResourceLocations for it, should I be?

Thanks

Link to comment
Share on other sites

Thank you both for the replies.

1 minute ago, diesieben07 said:

Custom items require the client to have forge and your mod installed.

This makes sense. I thought that i may be able to create something server side. I have seen servers that provide new items with the client only needing the resource pack. I mistakenly thought that this was achieved this way. I will keep looking for how this is implemented.

2 minutes ago, poopoodice said:

Is there any error/warning in the console telling something went wrong when trying to load the model?

Or reload resources in game (F3 + T) and it will show errors again if there are any.

There are no errors, for all intensive purposes things are working as expected. It was as if the client did not have the context of the namespace.

Link to comment
Share on other sites

2 minutes ago, diesieben07 said:

They don't. There is no way to add new items to a vanilla client.

It's probable that I am not using the correct terminology to explain what i am doing as the item functionality is working on the vanilla client its just the texture that is not!

I'll see if I can tidy up some example code and post a link.

Thanks.

Link to comment
Share on other sites

https://github.com/aLostThought/mymod

 /give @p mymod:mymod_item


To caveat, I am not suggesting that the way that the MyMod_Item is put together is sensible and performing logic on inventoryTick feels carelessly expensive. The initial objective was just to get an item in the hand and then work on what it does and how it does it.

This example should provide 1 gold ingot for every ~1 sec that mymod_item is held.

This version does not contain any assets (yet) as I pressed for time but I wanted to show the code behind my query. I will get the assets added soon.

Thanks.

Link to comment
Share on other sites

Yeah there is no way that this will ever work with a vanilla client. To the client the item will look like air at best and some random other item at worst. There is no guarantee that things will work properly if you connect to a forge server with additional registry entries from a vanilla client.

Link to comment
Share on other sites

It looks as though I have been tripping myself up on this one. The text I was reading was being read from the en_us.json but it was in the chat being sent from the server side which makes more sense!

I'll keep looking at how this is being done but it doesn't sound like with Forge! Thanks for clearing things up.

Link to comment
Share on other sites

2 minutes ago, LostThought said:

I'll keep looking at how this is being done but it doesn't sound like with Forge! Thanks for clearing things up.

The same techniques that are used on those servers can be done with Forge. But "adding a new Item" is not what they are doing.

Use F3+H to see the actual vanilla item being used.

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

×   Pasted as rich text.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

 Share



  • Recently Browsing

    • No registered users viewing this page.
  • Posts

    • Are you using Fabric? I'm not sure if this forum would be the right place then.
    • server failed to start and gives me "Failed to load data packs, can't proceed with server load. You can either fix your data packs or reset to vanilla with --safeMode" error when i look in my logs. its updated to the latest version of forge(40.1.0), and I don't have any data packs installed as far as I know. And I will upload the full logs if asked as i dont know how to attach a document to this post.  
    • Pioneer Craft [modded] {1.18.2} {SMP} {Community} {Light Roleplay} We are Pioneer Craft and we seek you !!! We are building a community of passionate players to build, trade, and share some laughs with. Are you tired of playing alone? Or are you here seeking a server with dedicated members; a server where you are not overlooked and can voice your opinions? If you are interested in these things too, then come join us in Pioneer Craft! Our server is player built and driven. We have a custom mod pack with mods chosen by our community to suit our needs. We have designed our server for player driven roleplay! There will be four communities which will each be self-sufficient. We encourage and seek builders who want to create a beautiful world to live in. This is a whitelist server and we are looking for dedicated applicants and experienced builders. Applications are located on our website which can be accessed through the discord. Other than the application questions, we are requesting photos of your prior builds which will be taken into consideration. Please show photos of your builds in the share-your-work section of the discord. The server uses CurseForge to run. This server is for mature members (16+) . Discord (must join): https://discord.gg/c4uJvb29CN
    • Pioneer Craft [modded] {1.18.2} {SMP} {Community} {Light Roleplay} We are Pioneer Craft and we seek you !!! We are building a community of passionate players to build, trade, and share some laughs with. Are you tired of playing alone? Or are you here seeking a server with dedicated members; a server where you are not overlooked and can voice your opinions? If you are interested in these things too, then come join us in Pioneer Craft! Our server is player built and driven. We have a custom mod pack with mods chosen by our community to suit our needs. We have designed our server for player driven roleplay! There will be four communities which will each be self-sufficient. We encourage and seek builders who want to create a beautiful world to live in. This is a whitelist server and we are looking for dedicated applicants and experienced builders. Applications are located on our website which can be accessed through the discord. Other than the application questions, we are requesting photos of your prior builds which will be taken into consideration. Please show photos of your builds in the share-your-work section of the discord. The server uses CurseForge to run. This server is for mature members (16+) . Discord (must join): https://discord.gg/c4uJvb29CN 
    • Update: I didn't need capabilities. In fact, I didn't need to override applyEffectTick at all. But it seems like I need reflections. The increased hitbox size now works for both entity and block collision--with a little drawback. This is what it looks like so far: // this event handler checks every tick if the living entity has the "big" effect @SubscribeEvent public static void entitySizeChange(LivingEvent.LivingUpdateEvent event) { LivingEntity livingEntity = event.getEntityLiving(); if (livingEntity.getActiveEffectsMap() != null && livingEntity.hasEffect(ModEffects.BIG.get())) { EntityDimensions newDims = livingEntity.getDimensions(livingEntity.getPose()).scale(8.0F, 2.0F); try { // using reflection Field field = Entity.class.getDeclaredField("dimensions"); field.setAccessible(true); field.set(livingEntity, newDims); // setting the living entity's EntityDimensions EntityDimensions newEntityDimensions = (EntityDimensions) field.get(livingEntity); livingEntity.setBoundingBox(newEntityDimensions.makeBoundingBox( // setting the living entity's AABB livingEntity.getX(), livingEntity.getY(), livingEntity.getZ() )); } catch (NoSuchFieldException | IllegalAccessException e) { e.printStackTrace(); } } }   The aforementioned drawback is that, when the effect wears off, the living entity's still keeps its bigger hitbox until it changes pose (i.e. my player crouching). Given that the EntityEvent.Size event fires whenever an entity changes pose, should I manually fire it with EVENT_BUS::post when that entity's effect wears off? If so, where? I tried manually firing EntityEvent.Size on my overridden removeAttributeModifiers(), but to no avail. 
  • Topics

×
×
  • Create New...

Important Information

By using this site, you agree to our Privacy Policy.