Skin Layers 3D (Fabric/Forge)

Skin Layers 3D (Fabric/Forge)

31M Downloads

Possible fixes for altered player head models?

Andre601 opened this issue ยท 14 comments

commented

Whenever you use this mod and join a server that uses modified player heads - be it to display them in 2D or for more advanced stuff such as animations - does the mod break this stuff in one of two ways.

It either...

  • ...breaks how the item looks in your inventory (When f.e. having a 2D head) or
  • ...breaks how the item looks in-game (when applied to armor stands.

Quick comparison:

  • With Mod:
    • 3D Animations (Using ItemsAdder. Servers such as OriginRealms are surprisingly fine...)
      2022-03-29_16 02 07
    • 2D Head in Inventory
      image
  • Without Mod:
    • 3D Animations
      2022-04-08_16 58 32
    • 2D Head in Inventory
      image

I can't say if there would be any possible fix for this... Perhaps an option to disable the rendering on the Player head item itself?

I don't expect a fix for this, after all is what this mod does changing the models of the skin, so that certainly is nothing that could be changed easily. I wanted to spread awareness of it and share an idea for a possible solution.

commented

Perhaps an option to disable the rendering on the Player head item itself?

Already in the mod. Not sure if there is any good way of auto-detecting that the head model is not vanilla.

commented

Oh yea, if it affects placed heads too by using vanilla shaders, there is basically nothing I can do to auto detect that.

commented

The problem is, that this is a global thing.
Normally placed player heads are also affected by this. To my knowledge is the Vanilla shader engine manipulated to some extend, but that's also just a guess.
Either way, just checking for NBT wouldn't help as placed skulls would be affected too.

commented

Perhaps an option to disable the rendering on the Player head item itself?

Already in the mod. Not sure if there is any good way of auto-detecting that the head model is not vanilla.

Perhaps with plugins sending packets with info?
Like a plugin could send a specific packet for the mod to look out for on join and in such case auto-disable the settings?
This would obviously require plugin and/or server owners to update their stuff to support, but would at least be something.

Alternative could perhaps be checking the model file(s) for the skull(-item) in the currently used RP on the server (if one is used) and compare against a default. If they match, everything is fine. If they differ, probs a modification and either auto-disable or send a notif...

commented

Doing RP stuff I think is out of the question. I think all of these skulls probably use nbt tag to change the model id, so I think adding a check for custom itemmodel values could just disable it for that head.

commented

I think all of these skulls probably use nbt tag to change the model id, so I think adding a check for custom itemmodel values could just disable it for that head.

I think this is the cleanest solution

commented

I mean, anyone got a resource pack and give command for such a modified head model? Then I can do some testing.

commented

I want to debug it in a dev env, so online server won't do it.

commented

Join my test server, it has this kind of modified resourcepack:
test.devs.beer:25584
Use the /emote command

Somehow this mod should skip heads which have a CustomModelData NBT tag, nothing else.
Idk if it's possible, but that's it.

commented

Quickly tested this stuff.
The auto-disable for items works fine.

Sadly placed (vanilla) heads do not get fixed, but this is just a downside of the vanilla shader modifications at this point.

commented

Yea, placed heads can't have custom model ids. So I can't really know that they are modified. Maybe adding some kind of flag to the resource pack could be possible, that temporary disables 3d placed heads?

commented

Can placed heads/blocks not hold some data to check?
Otherwise this resource pack thing would probably be the best way to do things.

commented

Can placed heads/blocks not hold some data to check?

They can't hold custom data, and model tags are not part of that. The shader probably also can just blanket change all heads to one shape without a way to differentiate between them?

commented

No new reports about this, going to close it.