Jump to content

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


Recommended Posts

Posted

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

Posted

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.

Posted
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.

Posted

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.

Posted

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.

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
Unfortunately, your content contains terms that we do not allow. Please edit your content to remove the highlighted words below.
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.

Announcements



  • Recently Browsing

    • No registered users viewing this page.
  • Posts

    • This is the last line before the crash: [ebwizardry]: Synchronising spell emitters for PixelTraveler But I have no idea what this means
    • What in particular? I barely used that mod this time around, and it's never been a problem in the past.
    • Im trying to build my mod using shade since i use the luaj library however i keep getting this error Reason: Task ':reobfJar' uses this output of task ':shadowJar' without declaring an explicit or implicit dependency. This can lead to incorrect results being produced, depending on what order the tasks are executed. So i try adding reobfJar.dependsOn shadowJar  Could not get unknown property 'reobfJar' for object of type org.gradle.api.internal.artifacts.dsl.dependencies.DefaultDependencyHandler. my gradle file plugins { id 'eclipse' id 'idea' id 'maven-publish' id 'net.minecraftforge.gradle' version '[6.0,6.2)' id 'com.github.johnrengelman.shadow' version '7.1.2' id 'org.spongepowered.mixin' version '0.7.+' } apply plugin: 'net.minecraftforge.gradle' apply plugin: 'org.spongepowered.mixin' apply plugin: 'com.github.johnrengelman.shadow' version = mod_version group = mod_group_id base { archivesName = mod_id } // Mojang ships Java 17 to end users in 1.18+, so your mod should target Java 17. java.toolchain.languageVersion = JavaLanguageVersion.of(17) //jarJar.enable() println "Java: ${System.getProperty 'java.version'}, JVM: ${System.getProperty 'java.vm.version'} (${System.getProperty 'java.vendor'}), Arch: ${System.getProperty 'os.arch'}" minecraft { mappings channel: mapping_channel, version: mapping_version copyIdeResources = true runs { configureEach { workingDirectory project.file('run') property 'forge.logging.markers', 'REGISTRIES' property 'forge.logging.console.level', 'debug' arg "-mixin.config=derp.mixin.json" mods { "${mod_id}" { source sourceSets.main } } } client { // Comma-separated list of namespaces to load gametests from. Empty = all namespaces. property 'forge.enabledGameTestNamespaces', mod_id } server { property 'forge.enabledGameTestNamespaces', mod_id args '--nogui' } gameTestServer { property 'forge.enabledGameTestNamespaces', mod_id } data { workingDirectory project.file('run-data') args '--mod', mod_id, '--all', '--output', file('src/generated/resources/'), '--existing', file('src/main/resources/') } } } sourceSets.main.resources { srcDir 'src/generated/resources' } repositories { flatDir { dirs './libs' } maven { url = "https://jitpack.io" } } configurations { shade implementation.extendsFrom shade } dependencies { minecraft "net.minecraftforge:forge:${minecraft_version}-${forge_version}" implementation 'org.luaj:luaj-jse-3.0.2' implementation fg.deobf("com.github.Virtuoel:Pehkui:${pehkui_version}") annotationProcessor 'org.spongepowered:mixin:0.8.5:processor' minecraftLibrary 'luaj:luaj-jse:3.0.2' shade 'luaj:luaj-jse:3.0.2' } // Example for how to get properties into the manifest for reading at runtime. tasks.named('jar', Jar).configure { manifest { attributes([ 'Specification-Title' : mod_id, 'Specification-Vendor' : mod_authors, 'Specification-Version' : '1', // We are version 1 of ourselves 'Implementation-Title' : project.name, 'Implementation-Version' : project.jar.archiveVersion, 'Implementation-Vendor' : mod_authors, 'Implementation-Timestamp': new Date().format("yyyy-MM-dd'T'HH:mm:ssZ"), "TweakClass" : "org.spongepowered.asm.launch.MixinTweaker", "TweakOrder" : 0, "MixinConfigs" : "derp.mixin.json" ]) } rename 'mixin.refmap.json', 'derp.mixin-refmap.json' } shadowJar { archiveClassifier = '' configurations = [project.configurations.shade] finalizedBy 'reobfShadowJar' } assemble.dependsOn shadowJar reobf { re shadowJar {} } publishing { publications { mavenJava(MavenPublication) { artifact jar } } repositories { maven { url "file://${project.projectDir}/mcmodsrepo" } } } my entire project:https://github.com/kevin051606/DERP-Mod/tree/Derp-1.0-1.20
    • All versions of Minecraft Forge suddenly black screen even without mods (tried reinstalling original Minecraft, Java, updating drivers doesn't work)
  • Topics

×
×
  • Create New...

Important Information

By using this site, you agree to our Terms of Use.