local Players = game:GetService("Players") -- Function to apply team-colored highlight local function applyHighlightToCharacter(player, character) if not player.Team then return end -- Remove existing highlight if any local oldHighlight = character:FindFirstChild("TeamHighlight") if oldHighlight then oldHighlight:Destroy() end local highlight = Instance.new("Highlight") highlight.Name = "TeamHighlight" highlight.FillTransparency = 0.5 highlight.OutlineTransparency = 1 highlight.FillColor = player.TeamColor.Color highlight.Adornee = character highlight.Parent = character end -- Function to add a health bar BillboardGui local function addHealthBar(player, character) local humanoid = character:FindFirstChildOfClass("Humanoid") if not humanoid then return end -- Remove old health bar if any local oldGui = character:FindFirstChild("HealthBar") if oldGui then oldGui:Destroy() end local billboard = Instance.new("BillboardGui") billboard.Name = "HealthBar" billboard.Size = UDim2.new(4, 0, 0.5, 0) billboard.StudsOffset = Vector3.new(0, 4, 0) billboard.AlwaysOnTop = true billboard.Parent = character local bg = Instance.new("Frame") bg.Size = UDim2.new(1, 0, 1, 0) bg.BackgroundColor3 = Color3.new(0.1, 0.1, 0.1) bg.BorderSizePixel = 0 bg.Parent = billboard local bar = Instance.new("Frame") bar.Name = "Health" bar.Size = UDim2.new(1, 0, 1, 0) bar.BackgroundColor3 = Color3.new(0, 1, 0) bar.BorderSizePixel = 0 bar.Parent = bg -- Update health bar when health changes humanoid.HealthChanged:Connect(function(health) local percent = math.clamp(health / humanoid.MaxHealth, 0, 1) bar.Size = UDim2.new(percent, 0, 1, 0) -- Optional: Color changes with health % if percent > 0.5 then bar.BackgroundColor3 = Color3.new(0, 1, 0) -- green elseif percent > 0.25 then bar.BackgroundColor3 = Color3.new(1, 1, 0) -- yellow else bar.BackgroundColor3 = Color3.new(1, 0, 0) -- red end end) end -- Function to handle when a player spawns local function onPlayerAdded(player) -- Update team highlight if team changes player:GetPropertyChangedSignal("Team"):Connect(function() if player.Character then applyHighlightToCharacter(player, player.Character) end end) player.CharacterAdded:Connect(function(character) repeat task.wait() until character:FindFirstChild("HumanoidRootPart") applyHighlightToCharacter(player, character) addHealthBar(player, character) end) end -- Existing players for _, player in ipairs(Players:GetPlayers()) do onPlayerAdded(player) if player.Character then applyHighlightToCharacter(player, player.Character) addHealthBar(player, player.Character) end end -- New players Players.PlayerAdded:Connect(onPlayerAdded)