local Players = game:GetService("Players") local RunService = game:GetService("RunService") local LocalPlayer = Players.LocalPlayer local Character = LocalPlayer.Character or LocalPlayer.CharacterAdded:Wait() local Root = Character:WaitForChild("HumanoidRootPart") local spawnerPaths = { {folder = workspace.ItemSpawners:FindFirstChild("Spawns"), color = Color3.fromRGB(0, 170, 255)}, -- Blue {folder = workspace.ItemSpawners:FindFirstChild("SpecialSpawns"), color = Color3.fromRGB(170, 0, 255)}, -- Violet {folder = workspace.ItemSpawners:FindFirstChild("Items"), color = Color3.fromRGB(255, 255, 0)}, -- Yellow {folder = workspace.ItemSpawners:FindFirstChild("ShopItemPickups"), color = Color3.fromRGB(0, 255, 0)} -- Green } -- Handle Billboard visibility per item local function attachVisibilityUpdate(part, billboard, forceVisible) RunService.RenderStepped:Connect(function() local dist = (Root.Position - part.Position).Magnitude if forceVisible then billboard.Enabled = dist <= 1000 -- always visible within long range else billboard.Enabled = dist <= 12 end end) end -- ESP Main Logic local function applyESP() for _, entry in ipairs(spawnerPaths) do local folder = entry.folder local color = entry.color if folder then for _, model in ipairs(folder:GetChildren()) do if model:IsA("Model") and not model:GetAttribute("ESPAttached") then local part = model:FindFirstChild("CFramePart") if part and part:IsA("BasePart") then model.PrimaryPart = part model:SetAttribute("ESPAttached", true) -- Highlight local hl = Instance.new("Highlight") hl.Adornee = model hl.FillColor = color hl.OutlineColor = Color3.new(0, 0, 0) hl.Parent = model -- Billboard GUI local bb = Instance.new("BillboardGui") bb.Name = "ESPBillboard" bb.Size = UDim2.new(0, 100, 0, 40) bb.StudsOffset = Vector3.new(0, 3, 0) bb.AlwaysOnTop = true bb.Adornee = part bb.Parent = model local label = Instance.new("TextLabel") label.BackgroundTransparency = 1 label.TextScaled = true label.TextStrokeTransparency = 0.5 label.Font = Enum.Font.GothamBold label.TextColor3 = color label.Size = UDim2.new(1, 0, 1, 0) label.Text = model.Name:gsub("PickUp", "") label.Parent = bb -- Force visible if contains "Key" local isKeyItem = model.Name:lower():find("key") ~= nil attachVisibilityUpdate(part, bb, isKeyItem) end end end end end end -- Start recheck loop every 2 seconds task.spawn(function() while true do applyESP() task.wait(2) end end)