Way to make players avatars glossy in-game?

Is there a way to make player models glossy when they join my game? I’ve spent the past couple hours trying to research ways to give physical players a glossy tint / texture on their rig when they join my game but I can’t figure out how. I’ve seen it done in other games to make them look more appealing.

Examples of what I mean (yes I know these are shaders - but it’s the same sort of effect I’ve seen other developers implement into their games without using shaders.)

download

Thanks for taking the time to read this :slight_smile:

7 Likes

I don’t know if this is too complicated but you could make each separate body part as an accessory and size it up just a tiny bit and remove its texture and set the reflection and transparency high and change the material to smooth plastic or glass. you would probably have to either set everyone to the same package or spend a few hours making it for each package.
also there is probably an less manual way to do this with a script by having each rig be duplicated then set to glass and untextured and resized slightly over the original, but i would not know how it would work out. i wish you good luck with this

3 Likes

If the avatar consists of MeshParts, you can drop in a SurfaceAppearance with only the roughness node filled in. If the image is solid black, the avatar will be maximum shiny!

3 Likes

Thanks for the suggestion -I’ve tried the first thing you mentioned but maybe I could find a scripter and as them directly…

1 Like

idk if that will work ive tried stuff like that but roblox clothes seem to take priority and only when they’re not on the avatar it works.

1 Like

These would be for live players- like users joining the game and then having a glossy texture - would I be able to do that with their meshes?

1 Like

I think for most players, this would be possible, when a character is added, cycle through all the parts looking for MeshParts and dump in the surface appearance! I accidentally did this to a custom rig a couple hours ago. lol

2 Likes

I’ll test it right now on my avatar.

1 Like

That sounds really cool - I would need it to apply to any active player that joined my game tho? Would it work for that?

1 Like

I believe what @GolgiToad will work.
To cycle through all the body parts, do a CharacterAdded fuction and a loop for BaseParts. If you need help with that script reply.

2 Likes

I think so. something like a playeradded event that drops a characteradded event on each player, then not only when the load in, but also when they die, the avatar is shiny! And all the craziness that follows!

2 Likes

OK, this method does not work, unfortunately! The SurfaceAppearance cannot be modified in the middle of the game (limitation of the object), and it overwrites TextureID. The only reason my test worked is because I dumped the black image into a pre-existing SA.

So, for a MeshPart with a SurfaceAppearance, you cannot splice together a new SurfaceAppearance that is shiny. And you can’t use it with someone with a TextureID.

But you CAN make players gold/silver/etc, at the cost of the original colors. Maybe this would work? It doesn’t feel like a proper solution.

This is the code to make it work with normal player avatars:

local shinySA = script.Shiny -- the location of the gold texture

game.Players.PlayerAdded:Connect(function (player)
	player.CharacterAppearanceLoaded:Connect(function (char)
		for i,part in pairs (char:GetDescendants()) do
			if part:IsA("MeshPart") then
				local currentSA = part:FindFirstChildWhichIsA("SurfaceAppearance")
				if currentSA then
					currentSA:Destroy()
				end
				local newShiny = shinySA:Clone()
				newShiny.Parent = part
			end
		end
	end)
end)

And if you replace CharacterAppearanceLoaded with CharacterAdded, it works for custom “StarterCharacters”

1 Like

Not sure if this is a gloss kind of look but you can defently tell the difference between a normal roblox avatar wouldnt shine like this but if it is what you want let me know :+1:

If so this is the code that was provided in the video
Make a normal Script in ServerScriptService And then paste the following code :grinning_face_with_smiling_eyes:

game.Players.PlayerAdded:Connect(function (player)
	player.CharacterAppearanceLoaded:Connect(function (char)
		for i,part in pairs (char:GetDescendants()) do
			if part:IsA("MeshPart") then
				part.Material =  "Glass"
			end
		end
	end)
end)
6 Likes

This will cause the players body parts to look like they have metal scratches on them due to the nature of the Glass material. I personally recommend using SmoothPlastic for effectively the same thing, but with no scratches.

I’m referring to those who don’t wear shirts/pants(?) on their avatar.

2 Likes

The thing is @ToastxYT wanted to have all players in her game to have a gloss look so making it SmoothPlastic wont change anything lol

1 Like

It does change things actually; Just test it yourself. Plastic has higher roughness than smoothplastic. :slight_smile:

1 Like
local Lighting = game.Lighting

game.Players.PlayerAdded:Connect(function(Player)
	Player.CharacterAdded:Connect(function(Character)
		for _, Part in pairs(Character:GetDescendants()) do
			if Part:IsA("BasePart") then
				Part.Material = Enum.Material.SmoothPlastic
				Part.Reflectance = 0.15
			end
		end
	end)
end)

Lighting.EnvironmentSpecularScale = 1
Instance.new("ColorCorrectionEffect", Lighting).Contrast = 0.15

it really depends in the sky and the player graphics on

4 Likes

This request really feels too early. Roblox has some growing to do to play with textures like this.

I have been thinking about this though. Maybe it’s possible to “clear coat” an avatar: put a shiny but transparent part over every part?

1 Like

This has promise:

Non-glossy hay, not modified. Clone of hay, slightly larger, with a low roughness, high metallic, high alpha texture over the top. I can make it glossier, but now to see if I can do this to an avatar and weld it all together!

1 Like

OK, this is as glossy and shiny that I can get! 100% metal, 100% smooth, 80% alpha.

Avatars loaded through “CharacterAppearance”

“StarterCharacters” (and interestingly enough, skinned meshes didn’t bat an eye at this!)

Doesn’t have to be gold! For a silver hue, I would just switch to a grey colormap.

One thing I do not like is that CharacterAppearanceLoaded triggers before the scaling occurs. I put a 1 second wait into the macro to get this to work.