local Characters = workspace:WaitForChild("Characters") local function getOrCreateHighlight(model) local h = model:FindFirstChild("Chms") if not h then h = Instance.new("Highlight") h.Name = "Chms" h.Parent = model h.FillTransparency = 0.6 h.OutlineTransparency = 0 h.Enabled = true end return h end local function setColor(model, color) local h = getOrCreateHighlight(model) h.FillColor = color h.OutlineColor = color end local function refreshHighlight(model) local hasBand = false local hasHeadcloth = false for _, d in ipairs(model:GetDescendants()) do local n = d.Name:lower() if n == "headcloth" then hasHeadcloth = true break end if n == "band" then hasBand = true end end if hasHeadcloth then setColor(model, Color3.fromRGB(255, 0, 0)) return end if hasBand then setColor(model, Color3.fromRGB(0, 162, 255)) return end local h = model:FindFirstChild("Chms") if h and h:IsA("Highlight") then h:Destroy() end end local function watchModel(model) if not model:IsA("Model") then return end refreshHighlight(model) model.DescendantAdded:Connect(function(d) local n = d.Name:lower() if n == "headcloth" then setColor(model, Color3.fromRGB(255, 0, 0)) elseif n == "band" then local h = model:FindFirstChild("Chms") if not h or (h.FillColor ~= Color3.fromRGB(255, 0, 0)) then setColor(model, Color3.fromRGB(0, 162, 255)) end end end) model.DescendantRemoving:Connect(function(d) local n = d.Name:lower() if n == "headcloth" or n == "band" then refreshHighlight(model) end end) end for _, m in ipairs(Characters:GetChildren()) do watchModel(m) end Characters.ChildAdded:Connect(watchModel)