local Players = game:GetService("Players") local RunService = game:GetService("RunService") local Workspace = game:GetService("Workspace") function addHighlight(obj, color, transparency) if not obj:FindFirstChild("Highlight") then local highlight = Instance.new("Highlight") highlight.Parent = obj highlight.OutlineColor = color highlight.FillColor = color highlight.FillTransparency = transparency highlight.OutlineTransparency = 0 highlight.Adornee = obj end end function removeHighlight(obj) local highlight = obj:FindFirstChild("Highlight") if highlight then highlight:Destroy() end end function addNameLabel(obj, text, color, offsetY) if not obj:FindFirstChild("NameLabel") then local billboard = Instance.new("BillboardGui") billboard.Name = "NameLabel" billboard.Parent = obj billboard.Adornee = obj billboard.Size = UDim2.new(0, 100, 0, 20) -- Small size for name billboard.StudsOffset = Vector3.new(0, offsetY or 3, 0) -- Above the object, adjustable billboard.AlwaysOnTop = true billboard.MaxDistance = 100 -- Visible from afar but not too far local label = Instance.new("TextLabel") label.Parent = billboard label.Size = UDim2.new(1, 0, 1, 0) label.BackgroundTransparency = 1 label.Text = text label.TextColor3 = color label.TextScaled = true label.TextSize = 14 -- Small but readable label.Font = Enum.Font.SourceSansBold end end function removeNameLabel(obj) local label = obj:FindFirstChild("NameLabel") if label then label:Destroy() end end function addPlayerHighlight(char, playerName) if char and char:FindFirstChild("HumanoidRootPart") then addHighlight(char, Color3.fromRGB(220, 220, 220), 0.5) addNameLabel(char:FindFirstChild("Head") or char, playerName, Color3.fromRGB(255, 255, 255), 2) -- Name on head, white text end end function getColorName(color) local colorMap = { [Vector3.new(0, 0, 0)] = "Black", [Vector3.new(0, 0, 1)] = "Blue", [Vector3.new(0.333333, 1, 1)] = "Cyan", [Vector3.new(0.156863, 0.498039, 0.278431)] = "Green", [Vector3.new(0.835294, 0.45098, 0.239216)] = "Orange", [Vector3.new(1, 0.4, 0.8)] = "Pink", [Vector3.new(0.768627, 0.156863, 0.109804)] = "Red", [Vector3.new(0.419608, 0.196078, 0.486275)] = "Purple", [Vector3.new(0.94902, 0.952941, 0.952941)] = "White", [Vector3.new(0.937255, 0.721569, 0.219608)] = "Yellow" } local colorVec = Vector3.new(color.R, color.G, color.B) return colorMap[colorVec] or "Unknown" end local lastCode = "none" local lastCCode = "none" function updateCodes() local map = Workspace:FindFirstChild("CurrentMap") if map then local items = map:FindFirstChild("SpawnedItems") if items then local codeObj = items:FindFirstChild("Code") if codeObj then local code = codeObj.Primary.SurfaceGui.TextLabel.Text if code ~= lastCode then notify("Game Code", code) lastCode = code end end local cCodeObj = items:FindFirstChild("ColourCode") if cCodeObj then local gui = cCodeObj.Primary.SurfaceGui local colors = { gui["1"].ImageColor3, gui["2"].ImageColor3, gui["3"].ImageColor3, gui["4"].ImageColor3 } local colorNames = {} for _, color3 in pairs(colors) do table.insert(colorNames, getColorName(color3)) end local cCode = table.concat(colorNames, " ") if cCode ~= lastCCode then notify("Color Code", cCode) lastCCode = cCode end end end end end function onMapSwitch() local CurrentMap = Workspace:FindFirstChild("CurrentMap") if not CurrentMap then return end local tasks = CurrentMap:FindFirstChild("CurrentTasks") if tasks then tasks.ChildAdded:Connect(function(child) tasks:WaitForChild(child.Name) removeHighlight(child) removeNameLabel(child) addHighlight(child, Color3.fromRGB(255, 255, 0), 0.9) addNameLabel(child, "Task: " .. child.Name, Color3.fromRGB(255, 255, 0), 4) -- Show task name end) for _, task in pairs(tasks:GetChildren()) do tasks:WaitForChild(task.Name) removeHighlight(task) removeNameLabel(task) addHighlight(task, Color3.fromRGB(255, 255, 0), 0.9) addNameLabel(task, "Task: " .. task.Name, Color3.fromRGB(255, 255, 0), 4) -- Show task name wait(0.25) task.Completed.Changed:Connect(function() if task.Completed.Value == true then task.Highlight.FillColor = Color3.fromRGB(0, 255, 0) task.Highlight.OutlineColor = Color3.fromRGB(0, 255, 0) if task:FindFirstChild("NameLabel") then task.NameLabel.TextLabel.TextColor3 = Color3.fromRGB(0, 255, 0) task.NameLabel.TextLabel.Text = "Task: " .. task.Name .. " (Done)" end else task.Highlight.FillColor = Color3.fromRGB(255, 255, 0) task.Highlight.OutlineColor = Color3.fromRGB(255, 255, 0) if task:FindFirstChild("NameLabel") then task.NameLabel.TextLabel.TextColor3 = Color3.fromRGB(255, 255, 0) task.NameLabel.TextLabel.Text = "Task: " .. task.Name end end end) end end local upgraders = CurrentMap:FindFirstChild("CurrentUpgraders") if upgraders then upgraders.ChildAdded:Connect(function(child) upgraders:WaitForChild(child.Name) removeHighlight(child) removeNameLabel(child) addHighlight(child, Color3.fromRGB(204, 153, 255), 0.5) addNameLabel(child, "Upgrader: " .. child.Name, Color3.fromRGB(204, 153, 255), 4) end) for _, upgrader in pairs(upgraders:GetChildren()) do upgraders:WaitForChild(upgrader.Name) removeHighlight(upgrader) removeNameLabel(upgrader) addHighlight(upgrader, Color3.fromRGB(204, 153, 255), 0.5) addNameLabel(upgrader, "Upgrader: " .. upgrader.Name, Color3.fromRGB(204, 153, 255), 4) wait(0.25) end end local keepers = CurrentMap:FindFirstChild("Keepers") if keepers then wait(1) local keeperStatues = keepers:GetChildren() local clipboards = {} for _, keeper in pairs(keeperStatues) do local clipboard = keeper:WaitForChild("InfoEnvy") table.insert(clipboards, clipboard) wait(0.2) end for _, obj in pairs(clipboards) do removeHighlight(obj) removeNameLabel(obj) addHighlight(obj, Color3.fromRGB(0, 0, 255), 0.5) addNameLabel(obj, "Keeper Info", Color3.fromRGB(0, 0, 255), 2) wait(0.2) end end local traps = {} for _, child in pairs(CurrentMap:GetChildren()) do if child.Name == "EnvyTrap" then table.insert(traps, child) wait(0.2) end end for _, trap in pairs(traps) do removeHighlight(trap) removeNameLabel(trap) addHighlight(trap, Color3.fromRGB(255, 255, 0), 0.5) addNameLabel(trap, "Trap", Color3.fromRGB(255, 255, 0), 2) wait(0.2) end end function notify(title, message) game.StarterGui:SetCore("SendNotification", { Title = title, Text = message, Duration = 90 }) end Players.PlayerAdded:Connect(function(player) player.CharacterAdded:Connect(function(char) addPlayerHighlight(char, player.Name) end) end) for _, player in ipairs(Players:GetPlayers()) do if player.Character then addPlayerHighlight(player.Character, player.Name) wait(0.2) end end Workspace.ChildAdded:Connect(function(child) if child.Name == "CurrentMap" then repeat wait(2) until child:FindFirstChild("SpawnedItems") and child:FindFirstChild("CurrentTasks") if child:FindFirstChild("SpawnedItems"):GetChildren() and child:FindFirstChild("CurrentTasks"):GetChildren() then onMapSwitch() end end end) local eleFloor = Workspace:WaitForChild("MapElevator"):WaitForChild("Floor") if eleFloor then addHighlight(eleFloor, Color3.fromRGB(255, 165, 0), 0.5) addNameLabel(eleFloor, "Elevator Floor", Color3.fromRGB(255, 165, 0), 5) end Workspace.DescendantAdded:Connect(function(descendant) if descendant.Name == "MapElevator" or descendant.Name == "Floor" then if descendant.Name == "MapElevator" or descendant.Parent.Name == "MapElevator" then local floor = Workspace:WaitForChild("MapElevator"):WaitForChild("Floor") addHighlight(floor, Color3.fromRGB(255, 165, 0), 0.5) addNameLabel(floor, "Elevator Floor", Color3.fromRGB(255, 165, 0), 5) end end end) Workspace.Entities.ChildAdded:Connect(function(child) Workspace.Entities:WaitForChild(child.Name) removeHighlight(child) removeNameLabel(child) addHighlight(child, Color3.fromRGB(255, 0, 0), 0.5) addNameLabel(child, "Monster: " .. child.Name, Color3.fromRGB(255, 0, 0), 4) -- Monster name end) while true do wait(5) updateCodes() end