How to change the color of a MeshPart's transparent layer in run-time?

We’ve created these arms for a first person shooter. They support the player’s body color and classic clothes. The problem is that they require a SurfaceAppearance to work. And you’re not allowed to change the “ColorMap” property during run-time. If you use a regular MeshPart without a SurfaceAppearance the color of the transparent part of the texture becomes black. I know there’s an old hacky method that uses a SpecialMesh for the mesh and a decal as the texture, however you can’t modify bones if you use a SpecialMesh. So I was wondering: is there any way to change the texture of a MeshPart during run-time while maintaining the transparency feature of a SurfaceAppearance?

Below I added an images and a video with an in-depth explanation of the problem.


Can you not just put 5 decals on the regular meshpart and have it cover all faces?
It’s definitely a dumb method, but, if it works then… yay

1 Like

Unfortunately that wouldn’t work because the decals don’t follow the unwrapped UV map. For some reason using a decal combined with a SpecialMesh has interesting behavior where the decal acts as the texture, this doesn’t seem to be the case for MeshParts sadly

1 Like

Did putting the shirt ID into the MeshPart TextureId work? I’m unsure if it supports alpha

It does work but it doesn’t support alpha, it causes the arms to always be black

Could you put a humanoid and shirt object in the model? If you name the mesh LeftArm or Torso, it should hopefully work
I don’t see another way it could work with alpha