local Players = game:GetService("Players") local darkfactor = 0.3 local function darkenColor(color: Color3, factor: number) local h, s, v = Color3.toHSV(color) v = math.clamp(v * factor, 0, 1) return Color3.fromHSV(h, s, v) end local function isPlayerCharacter(part: Instance) local model = part:FindFirstAncestorOfClass("Model") if model then return Players:GetPlayerFromCharacter(model) ~= nil end return false end local function isTool(part: Instance) return part:FindFirstAncestorOfClass("Tool") ~= nil end local function processPart(part: BasePart) if not part or not part:IsDescendantOf(workspace) then return end if isPlayerCharacter(part) then return end if isTool(part) then return end if part.Name == "HumanoidRootPart" then return end part.Color = darkenColor(part.Color, darkfactor) end for _, obj in ipairs(workspace:GetDescendants()) do if obj:IsA("BasePart") then processPart(obj) end end workspace.DescendantAdded:Connect(function(obj) if obj:IsA("BasePart") then task.wait() processPart(obj) end end) local function onCharacterAdded(char) for _, v in ipairs(char:GetDescendants()) do if v:IsA("BasePart") then v.Color = v.Color end end end for _, plr in ipairs(Players:GetPlayers()) do if plr.Character then onCharacterAdded(plr.Character) end plr.CharacterAdded:Connect(onCharacterAdded) end Players.PlayerAdded:Connect(function(plr) plr.CharacterAdded:Connect(onCharacterAdded) end)