[Bug] URL Skins do not show up for other players
TCGCardcast opened this issue · 43 comments
On my end (The creator of the NPCs) i can clearly see the skins I assigned to the NPC. But every other player on the server simply just sees steve. I am using the Epic Fight NPC, but it is happening on ALL player NPCs. The log says there is nothing wrong in regards to this issue.
some assistance would ne appreciated ASAP, as we are on a deadline, but I understand if it takes some time. Thank you.
I think this is what you asked for.
debug-1.log.gz
Thank you for reporting this issue!
To help me better understand and address the problem, I need some additional information from you.
🔍 Please enable the debug mode by running /easy_npc debug true
and provide the detailed information found in the logs.
For more information, please refer to the debugging guide.
Additionally, use the issue template as thoroughly as possible to make it easier for me to reproduce and fix the error.
Thank you for your cooperation! 🙏
I never got a response after sending the Debug log he asked for sadly. I can’t launch this server until then. A little immersion breaking for all of the shopkeepers to be Steve.
Sorry for the late response; I had some personal priorities to attend to over the past few days. Unfortunately, the debug log you provided is from the server side. However, skins are processed on the client side, so you'll need to perform these steps on the client with the "not loading" texture instead.
I couldn't reproduce the issue on my end, so I need a proper debug.log from the client side to gather more details and understand the potential cause of the problem.
No worries, but if the issue is not present on my side, wouldn't my client debug log look fine?
No worries, but if the issue is not present on my side, wouldn't my client debug log look fine?
Yep, I would need the client debug.log from a affect client, to see whats happening here.
In the past most of such issues where caused by the following:
- URL skin has reached download limit on the server
- URL skin requests was blocked by server and/or client.
- Virus Scanner blocked access to file skin.
- Lower and/or uppercase naming issues with the skin file.
It may be a minute before I can get you that since my admin is unavailable for a while. If it WAS one of those issues, how would I fix any of them? Maybe while we wait for them to be able to help and send their log I could try some troubleshooting for those other problems you listed
I am slowly running out of time to fix this/ In the meantime I did find out that only I can see the NPCs skins. No one else can. Not just my admin, but none of my players can either. I'm the one who made the NPCs and assigned their skins, is there any way to fast track fixing this for everyone?
I really like this mod but I gotta fix it or find a different one soon.
I'm sorry to hear that you're running into issues with the NPC skins. Based on your description, it sounds like the problem is specific to your setup since neither your admin nor any of your players can see the skins.
However, without a debug.log from an affected client, there isn't much I can do to diagnose the issue accurately.
I can't fix issues on guesses and without knowing the exact problem, which is why the debug.log is crucial.
Please ask one of your players or your admin to provide the info.log and debug.log from their client after they experience the issue.
This log will contain the necessary information to pinpoint what's going wrong.
Once I have that log, I can help you troubleshoot more effectively. In the meantime, ensure that all mods are up to date and that there are no conflicts with other installed mods.
If you can get that info.log and debug.log to me, we can work on resolving this as quickly as possible.
So I need someone to log into my server, and run the debug command?
Or do they need to go into a single player world to do the Debug Command?
Here are the only "Debug.log" and "Latest.log" that appeared. They were in the server files, not the client, because nothing appeared in our client side files along these names.
I hope this is what we eed, I just need to get this fixed asap.
Perhaps you can upload the skin file to the corresponding folder on the server and apply it to your merchant.
Mabe this:config\easy_npc\skin\humanoid
Perhaps you can upload the skin file to the corresponding folder on the server and apply it to your merchant. Mabe this:config\easy_npc\skin\humanoid
Sadly we tried this already, it didn't make any difference. Players on the server OTHER then the person who made an npc, cannot see the NPC's skin
Here are the only "Debug.log" and "Latest.log" that appeared. They were in the server files, not the client, because nothing appeared in our client side files along these names.
I hope this is what we eed, I just need to get this fixed asap.
Thanks for providing the logs. However, I still need logs from the affected clients, specifically from the time the issue occurs.
I have added detailed logging messages to explain when a texture is not loaded or visible for an NPC. In the next update, I will also include a client-facing message in the chat. This will allow users to take a screenshot and easily identify why a texture is not loading.
If the local skin is also not working, it seems some incompatibility with a specific mod and the server-side skin feature would not really help to solve this issues.
When the affected users did the command to receive the debug log, nothing appeared on their client. The only thing that appeared was a log in the server files.
I'm running out of time to fix this issue, unfortunately. I would really rather not remake all of my shop NPCs, but your mod won't allow us to make Client Side logs when using it on the server. it only provides logs on the server side. Idk how else to obtain the logs you want us to get you. If they go into a singleplayer world, the issue wont exist. But if we do it on a server, where the issue exists, it wont make a client side log. So how do I get you the log you need to help us fix this?
With the latest beta version 5.2.0, I have added extensive client-side logging for the loading and processing of textures when debug mode is enabled.
To assist with debugging, please follow these steps on an affected client:
- Start the client.
- Log into the server.
- Interact with one or more NPCs and check if the textures are loading correctly.
- If the texture is not loading, close the client and upload the entire latest.log file to this issue.
- If the texture loads as expected, close the client and attempt the process a second time.
The log file will contain specific entries at the beginning and during gameplay, so it is crucial to provide the complete latest.log, which includes entries like:
[19Juli2024 01:03:47.290] [Render thread/INFO] [Easy NPC/]: [Texture Manager] Registering texture allay_template.png with UUID c3ed6254-b84e-3963-a2c0-a5a81d201a62.
[19Juli2024 01:03:47.355] [Render thread/INFO] [Easy NPC/]: [Texture Manager] Registered image NativeImage[RGBA 32x32@2451275579392S] as texture net.minecraft.client.renderer.texture.DynamicTexture@11ad327f with minecraft:dynamic/easy_npc_client_texture_allay_c3ed6254-b84e-3963-a2c0-a5a81d201a62_1.
[19Juli2024 01:03:47.357] [Render thread/INFO] [Easy NPC/]: [Texture Manager] Registering texture cat_template.png with UUID dd9e7b53-35bf-3ccc-86d5-8494402e394b.
[19Juli2024 01:03:47.358] [Render thread/INFO] [Easy NPC/]: [Texture Manager] Registered image NativeImage[RGBA 64x32@2451251855360S] as texture net.minecraft.client.renderer.texture.DynamicTexture@167f9043 with minecraft:dynamic/easy_npc_client_texture_cat_dd9e7b53-35bf-3ccc-86d5-8494402e394b_1.
[19Juli2024 01:03:47.360] [Render thread/INFO] [Easy NPC/]: [Texture Manager] Registering texture chicken_template.png with UUID 3b5e083d-8b48-33d6-8f3c-85ab1ebb9b84.
[19Juli2024 01:03:47.363] [Render thread/INFO] [Easy NPC/]: [Texture Manager] Registered image NativeImage[RGBA 64x32@2451251920896S] as texture net.minecraft.client.renderer.texture.DynamicTexture@1f370472 with minecraft:dynamic/easy_npc_client_texture_chicken_3b5e083d-8b48-33d6-8f3c-85ab1ebb9b84_1.
[19Juli2024 01:03:47.363] [Render thread/INFO] [Easy NPC/]: [Texture Manager] Registering texture fairy_template.png with UUID a7e321fe-1535-3095-aa13-0a79244178f2.
[19Juli2024 01:03:47.368] [Render thread/INFO] [Easy NPC/]: [Texture Manager] Registered image NativeImage[RGBA 128x128@2451462229696S] as texture net.minecraft.client.renderer.texture.DynamicTexture@3ace65df with minecraft:dynamic/easy_npc_client_texture_fairy_a7e321fe-1535-3095-aa13-0a79244178f2_1.
[19Juli2024 01:03:47.370] [Render thread/INFO] [Easy NPC/]: [Texture Manager] Registering texture Atom-Eve-Invincible-on-planetminecraft-com.png with UUID ba13b95f-8a58-322d-83bc-0513fe4b45e4.
[19Juli2024 01:03:47.376] [Render thread/INFO] [Easy NPC/]: [Texture Manager] Registered image NativeImage[RGBA 64x64@2451274793600S] as texture net.minecraft.client.renderer.texture.DynamicTexture@1f602930 with minecraft:dynamic/easy_npc_client_texture_humanoid_ba13b95f-8a58-322d-83bc-0513fe4b45e4_1.
Hi, we've also been having this issue and I may be able to help root out the cause: we've found that if a player isn't on the server when the skin is applied, they'll see the default skin, if they are online, they'll see the URL skin as it is intended. this has been shown to be repeatable.
In these screenshots, one player was online for both NPC's skins being applied, then one left while the other skin was applied:
Any assistance on fixing this would be greatly appreciated!
idk why but none of my team members have been free for like a month to help me get the debug log you need.
ok, so here is the log from a client that just joined the server and is having the issue.
ok, so here is the log from a client that just joined the server and is having the issue.
It appears there is some confusion regarding the log you provided. The log you shared is from the server, as indicated by [Server thread/INFO]
. Client logs will show [Render thread/INFO]
.
As previously mentioned, I have added extensive debugging information specifically for the client to address this issue. However, without a full and accurate log file from an affected client, as requested in this GitHub issue comment, I am unable to assist you effectively.
From the server log, I noticed you are using skin mods like me.edoren.skin_changer
, which could potentially cause the issue. To expedite the troubleshooting process, please follow these steps:
- Provide the full client log, as previously requested.
- As a quick check, try running the mod alone without any third-party mods. If the mod works correctly in isolation, the issue likely lies with a third-party mod.
To clarify, I cannot reproduce the issue on my end, nor have I received similar reports unrelated to restricted URLs or other third-party mods.
If the requested client log is not provided, I will have to close this issue as "not reproducible" to save both your time and mine.
Thank you for your understanding.
when a client is on the server and runs the command, it does not produce a log in the client's files. It only creates a log on the Server side.
I already said twice before, the instructions you provided do not cause a log to be created on the client side.
It seems there's a misunderstanding regarding the logging process. To clarify:
-
Log Identification: Client logs are identifiable by
[Render thread/INFO]
, while server logs display[Server thread/INFO]
even if the client run's "on the server". -
Logging Information: As stated before, the information needed to debug this issue is logged at the info level on the client side. This does not require any special commands to be run; the client log should be generated automatically when the client is started and interacts with the server.
-
Steps to Generate Client Log:
- Backup your server world.
- Install the latest beta 5.x on the server and client
- Start the client.
- Log into the server.
- Interact with one or more NPCs and check if the textures are loading correctly.
- If the texture is not loading, close the client and upload their entire latest.log file to this issue.
- If the texture loads as expected, close the client and attempt the process a second time.
Please ensure the entire latest.log file from the client is uploaded as it contains the necessary debugging information.
Next Steps:
- Provide the Full Client Log: As requested, please upload the complete latest.log file from an affected client.
- Isolate the Mod: Run the mod alone without any third-party mods to see if the issue persists. If it works correctly in isolation, the problem is likely with a third-party mod.
If the requested client log is not provided, I will have to close this issue as "not reproducible" to save both your time and mine.
Thank you for your understanding.
I will try it again, but we did all of this before and didn't produce a client log.
I also can't uninstall every mod from my server, it would totally break everything. So I can't unninstall everything to see if that fixes it
Hi, we've also been having this issue and I may be able to help root out the cause: we've found that if a player isn't on the server when the skin is applied, they'll see the default skin, if they are online, they'll see the URL skin as it is intended. this has been shown to be repeatable. In these screenshots, one player was online for both NPC's skins being applied, then one left while the other skin was applied:
Any assistance on fixing this would be greatly appreciated!
Is there any way you guys could try to get him this log he is looking for? Somehow it is physically impossible for me to get my staff team online to help me get it.
This issue is stale because it has been open 7 days with no activity. Remove stale label or comment or this will be closed in 3 days.
Please inform me of exactly where to find the exact log you're looking for, as I have an affected NPC that I can use.
Also; updating the server, or isolation the mod are not valid options for us at the moment
I believe these are the log files you're requesting?
Have you tried replicating the issue? As far as I can understand it happens when a client if offline for a reasonable period of time around the time that the skin is applied to the NPC, then when they log into the server, it never notifies that client that there is a skin to apply to the NPC.
Luckily this issue is just very annoying in my use-case for the mod, as it means I have to only edit skins when the whole cast is online, but I can imagine this causing the mod to be unusable in live public server use-cases, as TCGCardcast seems to have.
Any assistance is greatly appreciated
@Tigerboy007
Thank you for providing the log details. I noticed one texture issue in the logs:
[11Aug2024 16:00:15.119] [Render thread/ERROR] [Easy NPC/]: [Texture Manager] Unable to get any valid texture from file C:\Users\Administrator\AppData\Roaming\com.modrinth.theseus\profiles\Synfinity_1.0.4\config\easy_npc\skin\fairy\Untitled.png, got 806x758!
However, since you're using version 4.4.0, many of the newly implemented checks and log entries aren't present in your logs. This makes it difficult to confirm if the issue persists in the latest version.
Regarding the scenario you described—clients being offline for a significant time around when the skin is applied to an NPC—this situation is likely unrelated.
Skin loading and processing occur solely on the client side, while the server only provides NPC data like skin type, URL, or UUID. These data are automatically synced whenever the client comes within range of the NPC, as it's handled by standard vanilla functionality.
If this process isn't working as expected, it’s possible that an optimization mod might be interfering by preventing the data from being sent or mistakenly assuming the data has already been provided.
In my own experience running a dedicated server for testing, I’ve never encountered this issue. Additionally, I've received no reports of similar problems in newer versions. In fact, a user mentioned using around 400 custom skins without any issues.
I'm more than happy to assist further, but if you’re unable to test this in the latest version, it will be challenging for me to provide more specific help.
Thats an unrelated line, the skin that is missing is a humanoid (slim) not Fairy
Thats an unrelated line, the skin that is missing is a humanoid (slim) not Fairy
Alright, then look at the affected NPC and press "F3 + i."
This will copy the entity data to your clipboard. Paste this data here to see what information the server has stored about the entity and the skin which should show up.
/summon easy_npc:humanoid_slim ~ ~ ~ {Brain: {memories: {}}, ModelData: {Position: {}, SmartAnimations: 1b, Pose: "DEFAULT", Visible: {}, Rotation: {}, DefaultPose: "STANDING"}, HurtByTimestamp: 0, Owner: [I; 145071582, -973192313, -1960154423, 1950017364], Attributes: [{Base: 32.0d, Modifiers: [{Amount: 0.0052786586848385724d, Operation: 1, UUID: [I; 983644817, 1890862408, -1471766191, -589623080], Name: "Random spawn bonus"}], Name: "minecraft:generic.follow_range"}, {Base: 0.6000000238418579d, Name: "minecraft:generic.movement_speed"}], Invulnerable: 1b, FallFlying: 0b, ActionData: {ActionEventSet: {}, ActionPermissionLevel: 4}, EasyNPCVersion: 1, PortalCooldown: 0, AbsorptionAmount: 0.0f, DialogData: {DialogDataSet: [{Label: "default", Texts: [{Text: "Oh hey it you guys!"}]}]}, FallDistance: 0.0f, CanUpdate: 1b, DeathTime: 0s, Aggressive: 0b, ForgeCaps: {"structure_gel:gel_entity": {portal: "structure_gel:empty"}, "curios:inventory": {Curios: []}}, HandDropChances: [0.085f, 0.085f], PersistenceRequired: 0b, SoundData: {SoundDataSet: [{Type: "DEATH", Name: "minecraft:entity.player.death"}, {Type: "EAT", Name: "minecraft:entity.generic.eat"}, {Type: "HURT", Name: "minecraft:entity.player.hurt"}, {Type: "TRADE", Name: "minecraft:entity.villager.trade"}, {Type: "TRADE_YES", Name: "minecraft:entity.villager.yes"}, {Type: "TRADE_NO", Name: "minecraft:entity.villager.no"}]}, BalmData: {}, AngerTime: 0, Motion: [0.0d, 0.0d, 0.0d], Navigation: {Home: {X: 168, Y: 64, Z: 878}}, EntityAttribute: {CanFloat: 0b, IsPushable: 0b, CanBeLeashed: 0b, Freefall: 0b, PushEntities: 0b, CanCloseDoor: 0b, CanPassDoor: 0b, CanUseNetherPortal: 0b, CanOpenDoor: 0b, IsAttackable: 0b, LightLevel: 7}, Health: 20.0f, LeftHanded: 0b, Air: 300s, OnGround: 1b, Offers: {TradingType: "NONE", BasicMaxUses: 64, BasicRewardedXP: 1, Recipes: {Recipes: []}, ResetsEveryMin: 0, Inventory: {}}, Rotation: [151.17245f, 1.1265601f], HandItems: [{}, {}], SkinData: {SkinURL: "https://cdn.discordapp.com/attachments/1248084771691823186/1264588855496020018/Cassandra_Betwixt_Messenger_girls.png?ex=66b77826&is=66b626a6&hm=0b2240b77733a0f887168f0ddaf5bfcc3c85dd8c33439af407d16dbf45cd8639&", SkinUUID: [I; 929295390, 538852131, -1700818721, -220083229], SkinType: "INSECURE_REMOTE_URL", Skin: ""}, Variant: "ALEX", ArmorDropChances: [0.085f, 0.085f, 0.085f, 0.085f], Profession: "NONE", CustomName: '{"color":"#FF0000","text":"Cassandra"}', ObjectiveData: {ObjectiveDataSet: [{Type: "LOOK_AT_PLAYER", Prio: 9}, {Type: "LOOK_AT_MOB", Prio: 10}, {Type: "LOOK_AT_RESET", Prio: 9}], HasObjectives: 1b}, RenderData: {}, Fire: -1s, ArmorItems: [{}, {}, {}, {}], CanPickUpLoot: 0b, HurtTime: 0s, "forge:spawn_type": "SPAWN_EGG"}
The skin link is to the skin file in a shared section of our discord, we've found that works the best for us (as long as we're on the server)
The skin link is to the skin file in a shared section of our discord, we've found that works the best for us (as long as we're on the server)
Thanks for sharing. It seems the issue is related to this type of link.
Easy NPC caches all textures upon the first load, meaning that even if the URL becomes unavailable later, users with the cached file will still see the skin.
However, new users who try to access the URL after it’s no longer available will only see the default skin.
Since the URL is no longer accessible, neither I nor other players can fetch it anymore.
Unfortunately, Minecraft doesn’t have any kind of Discord authentication to resolve this issue.
I'll include a warning message in the next update to notify users about this limitation when using discord links.
Ah okay so the issue is that discord links change over time for the same image, I didn't know that. Can you suggest a better way of storing the images so that the URL skins will work? How was the functionality intended to be used? is there no way to store images of skins server-side?
Ah okay so the issue is that discord links change over time for the same image, I didn't know that. Can you suggest a better way of storing the images so that the URL skins will work? How was the functionality intended to be used? is there no way to store images of skins server-side?
The mod owner's trick to get a log has yet to provide a log, so I found my own solution. If all involved users have the same humanoid skin config file, you can imbed the skins into that and share it with the other users, and as long as the npcs are using a skin from that file, everyone can see them. that's the only fix to the issue I have found.
@TCGCardcast
In the update (#212 (comment)), you mentioned that the skin config folder wasn't working for you, which is why I requested a log to investigate further.
Sadly, we tried this already, but it didn't make any difference. Players on the server, other than the person who made the NPC, cannot see the NPC's skin.
The solution you found is already documented in the wiki: Custom Skins. Here's the relevant section:
"Place corresponding skins in the correct subfolder, click 'Reload Custom Textures' to refresh the skins. Note that all players on a server must have the same skins in the same folder for consistent NPC appearances."
It’s great to hear that this method is working for you now. It seems there was a communication issue or misunderstanding about how these features function.
@Tigerboy007
You could also consider using other image hosting servers (or even hosting your own) for the skins, or using the custom skins feature, which requires all users to have the same skins in their config folder.
I'm currently exploring a feature request to sync skins from the server to the client, but it's not my top priority at the moment.