Problem Color Part (Character)

Hello,

I do not know the reason but my hands of my custom character are not the color of my skin color.
The color of my hands are the color of my “Shirt”…

local Shirt = {}

local function add(charF, part)
	if part.Name == "LeftLowerArm"
		or part.Name == "RightLowerArm"
		or part.Name == "LeftElbow"
		or part.Name == "RightElbow"
		or part.Name == "LeftUpperArm"
		or part.Name == "RightUpperArm"
		or part.Name == "LeftShoulder"
		or part.Name == "RightShoulder"
		or part.Name == "LowerTorso"
		or part.Name == "UpperTorso"
	then
		if charF.Shirt.Value == "Black" then part.Color = Color3.fromRGB(0, 0, 0)
		elseif charF.Shirt.Value == "White" then part.Color = Color3.fromRGB(255, 255, 255)
		elseif charF.Shirt.Value == "Green" then part.Color = Color3.fromRGB(0, 255, 0)
		elseif charF.Shirt.Value == "Dark Purple" then part.Color = Color3.fromRGB(85, 0, 127)
		elseif charF.Shirt.Value == "Dark Green" then part.Color = Color3.fromRGB(0, 85, 0)
		elseif charF.Shirt.Value == "Grey" then part.Color = Color3.fromRGB(86, 86, 86)
		elseif charF.Shirt.Value == "Blue" then part.Color = Color3.fromRGB(0, 85, 255)
		elseif charF.Shirt.Value == "Dark Blue" then part.Color = Color3.fromRGB(0, 0, 127)
		elseif charF.Shirt.Value == "Pink" then part.Color = Color3.fromRGB(255, 170, 255)
		elseif charF.Shirt.Value == "Dark Pink" then part.Color = Color3.fromRGB(152, 101, 152)
		elseif charF.Shirt.Value == "Purple" then part.Color = Color3.fromRGB(141, 0, 211)
		elseif charF.Shirt.Value == "Red" then part.Color = Color3.fromRGB(255, 0, 0)
		end
	end
end

function Shirt.setup(player) 
	local charF = player.Divers.Character
	for i,part in ipairs(player.Character:GetChildren()) do 
		if part:IsA("MeshPart") or part:IsA("Part") then 
			add(charF, part)
		end
	end
end

function Shirt.update(player, value)
	player.Divers.Character.Shirt.Value = value
end

function Shirt.character3d(player)
	local charF = player.Divers.Character
	for i,part in ipairs(workspace.UI.CharacterCreator.CharacterSpawn.Character:GetChildren()) do 
		if part:IsA("MeshPart") or part:IsA("Part") then 
			add(charF, part)
		end
	end
end

return Shirt
local SkinColor = {}

local function add(charF, part)
	if part.Name == "Head" 
		or part.Name == "Neck"
		or part.Name == "LeftHand" 
		or part.Name == "RightHand"
		or part.Name == "LeftGrip"
		or part.Name == "RightGrip"
	then 
		if charF.SkinColor.Value == "Belge" then part.Color = Color3.fromRGB(255, 241, 169)
		elseif charF.SkinColor.Value == "Black" then part.Color = Color3.fromRGB(47, 47, 47)
		elseif charF.SkinColor.Value == "Blue" then part.Color = Color3.fromRGB(85, 255, 255)
		elseif charF.SkinColor.Value == "Brown" then part.Color = Color3.fromRGB(180, 146, 119)
		elseif charF.SkinColor.Value == "Cyan" then part.Color = Color3.fromRGB(0, 170, 255)
		elseif charF.SkinColor.Value == "Dark Belge" then part.Color = Color3.fromRGB(83, 35, 4)
		elseif charF.SkinColor.Value == "Dark Black" then part.Color = Color3.fromRGB(0,0,0)
		elseif charF.SkinColor.Value == "Dark Blue" then part.Color = Color3.fromRGB(0, 85, 255)
		elseif charF.SkinColor.Value == "Dark Green" then part.Color = Color3.fromRGB(0, 85, 0)
		elseif charF.SkinColor.Value == "Dark Grey" then part.Color = Color3.fromRGB(71, 71, 71)
		elseif charF.SkinColor.Value == "Dark Orange" then part.Color = Color3.fromRGB(255, 85, 0)
		elseif charF.SkinColor.Value == "Dark Red" then part.Color = Color3.fromRGB(85, 0, 0)
		elseif charF.SkinColor.Value == "Dark Yellow" then part.Color = Color3.fromRGB(126, 126, 0)
		elseif charF.SkinColor.Value == "Green" then part.Color = Color3.fromRGB(0, 255, 0)
		elseif charF.SkinColor.Value == "Grey" then part.Color = Color3.fromRGB(122, 122, 122)
		elseif charF.SkinColor.Value == "Orange" then part.Color = Color3.fromRGB(255, 170, 0)
		elseif charF.SkinColor.Value == "Pink" then part.Color = Color3.fromRGB(255, 170, 255)
		elseif charF.SkinColor.Value == "Red" then part.Color = Color3.fromRGB(255, 0, 0)
		elseif charF.SkinColor.Value == "White" then part.Color = Color3.fromRGB(255, 255, 255)
		elseif charF.SkinColor.Value == "Yellow" then part.Color = Color3.fromRGB(255, 255, 0)
		end
	end
end

function SkinColor.setup(player) 
	local charF = player.Divers.Character
	for i,part in ipairs(player.Character:GetChildren()) do 
		if part:IsA("MeshPart") or part:IsA("Part") then 
			add(charF, part)
		end
	end
end

function SkinColor.update(player, value)
	player.Divers.Character.SkinColor.Value = value
end

function SkinColor.character3d(player)
	local charF = player.Divers.Character
	for i,part in ipairs(workspace.UI.CharacterCreator.CharacterSpawn.Character:GetChildren()) do 
		if part:IsA("MeshPart") or part:IsA("Part") then 
			add(charF, part)
		end
	end
end

return SkinColor

Character in-game:
image
Character in the case without error:
image

You can look at this video as well: W.I.P - Character Creator UI - YouTube

The body parts of your custom character have exactly the same names as standard R15 characters do, and that makes roblox treat your character just like it would treat a normal unedited R15 rig! And what roblox does to normal rigs is it forces same color for each limb. You can’t change their individual color. There are 2 solutions: renaming your body parts or changing the Reflectance of your hands to 0.02. (this solution was discovered by @RoBloxBossk) The second solution is best for compatibility.

1 Like

Alright I will test soon, thanks.

This topic was automatically closed 14 days after the last reply. New replies are no longer allowed.