-- ROBLOX SERVICES local UserInputService = game:GetService("UserInputService") local RunService = game:GetService("RunService") local Players = game:GetService("Players") local Workspace = game:GetService("Workspace") local player = Players.LocalPlayer local playerGui = player:WaitForChild("PlayerGui") local camera = Workspace.CurrentCamera -- GLOBAL SYSTEM STATES & CONFIGS local systemActive = true local highlightsEnabled = true local espEnabled = true local focusedModel = nil local MAX_RENDER_DISTANCE = 1000 -- Maximum distance to render ESP local activeTab = "Items" -- "Items" ou "Vehicles" local trackedEntities = {} local scriptConnections = {} -- WAIT FOR FOLDERS local entitiesFolder = Workspace:WaitForChild("Entities", 10) local vehiclesFolder = Workspace:WaitForChild("PlayerVehicles", 10) if not entitiesFolder then warn("Folder 'Entities' not found in Workspace!") end if not vehiclesFolder then warn("Folder 'PlayerVehicles' not found in Workspace!") end -- MAIN INTERFACE SETTINGS local screenGui = Instance.new("ScreenGui") screenGui.Name = "EntityTrackerSupremo" screenGui.IgnoreGuiInset = true screenGui.ResetOnSpawn = false screenGui.Parent = playerGui -- DIRECTIONAL ARROW FOR FOCUSED TARGET local pointerContainer = Instance.new("Frame") pointerContainer.Name = "PointerContainer" pointerContainer.Size = UDim2.new(0, 0, 0, 0) pointerContainer.Position = UDim2.new(0.5, 0, 0.5, 0) pointerContainer.BackgroundTransparency = 1 pointerContainer.Visible = false pointerContainer.Parent = screenGui local pointerIcon = Instance.new("TextLabel") pointerIcon.Size = UDim2.new(0, 50, 0, 50) pointerIcon.Position = UDim2.new(0.5, -25, 0, -200) pointerIcon.BackgroundTransparency = 1 pointerIcon.Text = "▲" pointerIcon.TextColor3 = Color3.fromRGB(255, 255, 255) pointerIcon.Font = Enum.Font.GothamBlack pointerIcon.TextSize = 45 pointerIcon.TextStrokeColor3 = Color3.fromRGB(0, 0, 0) pointerIcon.TextStrokeTransparency = 0.3 pointerIcon.Parent = pointerContainer local mainFrame = Instance.new("Frame") mainFrame.Size = UDim2.new(0, 390, 0, 500) mainFrame.Position = UDim2.new(0, 40, 0, 40) mainFrame.BackgroundColor3 = Color3.fromRGB(15, 15, 22) mainFrame.BorderSizePixel = 0 mainFrame.Parent = screenGui Instance.new("UICorner", mainFrame).CornerRadius = UDim.new(0, 12) local mainStroke = Instance.new("UIStroke", mainFrame) mainStroke.Color = Color3.fromRGB(60, 60, 80) mainStroke.Thickness = 2 -- DRAG BAR local dragBar = Instance.new("TextLabel") dragBar.Size = UDim2.new(1, -45, 0, 40) dragBar.BackgroundColor3 = Color3.fromRGB(22, 22, 32) dragBar.Text = " RADAR V2 (SEPARATED TABS)" dragBar.TextColor3 = Color3.fromRGB(222, 255, 154) dragBar.TextXAlignment = Enum.TextXAlignment.Left dragBar.Font = Enum.Font.GothamBold dragBar.TextSize = 12 dragBar.Parent = mainFrame Instance.new("UICorner", dragBar).CornerRadius = UDim.new(0, 12) -- CLOSE BUTTON (X) local closeBtn = Instance.new("TextButton") closeBtn.Size = UDim2.new(0, 32, 0, 32) closeBtn.Position = UDim2.new(1, -38, 0, 4) closeBtn.BackgroundColor3 = Color3.fromRGB(230, 50, 50) closeBtn.Text = "X" closeBtn.TextColor3 = Color3.new(1, 1, 1) closeBtn.Font = Enum.Font.GothamBlack closeBtn.TextSize = 14 closeBtn.Parent = mainFrame Instance.new("UICorner", closeBtn).CornerRadius = UDim.new(0, 8) -- CONTROL PANEL local controlPanel = Instance.new("Frame") controlPanel.Size = UDim2.new(1, -20, 0, 40) controlPanel.Position = UDim2.new(0, 10, 0, 48) controlPanel.BackgroundTransparency = 1 controlPanel.Parent = mainFrame local hlToggle = Instance.new("TextButton") hlToggle.Size = UDim2.new(0, 170, 0, 32) hlToggle.BackgroundColor3 = Color3.fromRGB(40, 180, 100) hlToggle.Text = "HIGHLIGHTS: ON" hlToggle.Font = Enum.Font.GothamBold hlToggle.TextSize = 11 hlToggle.TextColor3 = Color3.new(1, 1, 1) hlToggle.Parent = controlPanel Instance.new("UICorner", hlToggle).CornerRadius = UDim.new(0, 6) local espToggle = Instance.new("TextButton") espToggle.Size = UDim2.new(0, 170, 0, 32) espToggle.Position = UDim2.new(1, -170, 0, 0) espToggle.BackgroundColor3 = Color3.fromRGB(40, 180, 100) espToggle.Text = "TEXT ESP: ON" espToggle.Font = Enum.Font.GothamBold espToggle.TextSize = 11 espToggle.TextColor3 = Color3.new(1, 1, 1) espToggle.Parent = controlPanel Instance.new("UICorner", espToggle).CornerRadius = UDim.new(0, 6) -- TABS SYSTEM local tabContainer = Instance.new("Frame") tabContainer.Size = UDim2.new(1, -20, 0, 30) tabContainer.Position = UDim2.new(0, 10, 0, 95) tabContainer.BackgroundTransparency = 1 tabContainer.Parent = mainFrame local itemsTabBtn = Instance.new("TextButton") itemsTabBtn.Size = UDim2.new(0.5, -5, 1, 0) itemsTabBtn.BackgroundColor3 = Color3.fromRGB(80, 80, 110) itemsTabBtn.Text = "ITEMS" itemsTabBtn.Font = Enum.Font.GothamBold itemsTabBtn.TextSize = 12 itemsTabBtn.TextColor3 = Color3.new(1, 1, 1) itemsTabBtn.Parent = tabContainer Instance.new("UICorner", itemsTabBtn).CornerRadius = UDim.new(0, 6) local vehiclesTabBtn = Instance.new("TextButton") vehiclesTabBtn.Size = UDim2.new(0.5, -5, 1, 0) vehiclesTabBtn.Position = UDim2.new(0.5, 5, 0, 0) vehiclesTabBtn.BackgroundColor3 = Color3.fromRGB(35, 35, 45) vehiclesTabBtn.Text = "VEHICLES" vehiclesTabBtn.Font = Enum.Font.GothamBold vehiclesTabBtn.TextSize = 12 vehiclesTabBtn.TextColor3 = Color3.new(1, 1, 1) vehiclesTabBtn.Parent = tabContainer Instance.new("UICorner", vehiclesTabBtn).CornerRadius = UDim.new(0, 6) -- SCROLL LISTS local scrollItems = Instance.new("ScrollingFrame") scrollItems.Size = UDim2.new(1, -20, 1, -140) scrollItems.Position = UDim2.new(0, 10, 0, 130) scrollItems.BackgroundTransparency = 1 scrollItems.ScrollBarThickness = 5 scrollItems.ScrollBarImageColor3 = Color3.fromRGB(100, 100, 130) scrollItems.CanvasSize = UDim2.new(0, 0, 0, 0) scrollItems.Parent = mainFrame local scrollVehicles = Instance.new("ScrollingFrame") scrollVehicles.Size = UDim2.new(1, -20, 1, -140) scrollVehicles.Position = UDim2.new(0, 10, 0, 130) scrollVehicles.BackgroundTransparency = 1 scrollVehicles.ScrollBarThickness = 5 scrollVehicles.ScrollBarImageColor3 = Color3.fromRGB(100, 100, 130) scrollVehicles.CanvasSize = UDim2.new(0, 0, 0, 0) scrollVehicles.Visible = false scrollVehicles.Parent = mainFrame local layoutItems = Instance.new("UIListLayout", scrollItems) layoutItems.SortOrder = Enum.SortOrder.LayoutOrder layoutItems.Padding = UDim.new(0, 8) local layoutVehicles = Instance.new("UIListLayout", scrollVehicles) layoutVehicles.SortOrder = Enum.SortOrder.LayoutOrder layoutVehicles.Padding = UDim.new(0, 8) -- UPDATE INTERNAL COLORS & UI STATES local function refreshVisuals() for model, data in pairs(trackedEntities) do local isFocused = (focusedModel == model) local baseColor = data.CustomColor local isCorrectTab = (data.Category == activeTab) -- O highlight só funciona se pertencer à aba atual if data.HighlightObj then data.HighlightObj.FillColor = Color3.fromRGB(255, 170, 0) data.HighlightObj.Enabled = (isFocused and highlightsEnabled and isCorrectTab) end -- Atualiza as cores do ESP if data.EspObj then local textLabel = data.EspObj:FindFirstChild("TextLabel") if textLabel then textLabel.TextColor3 = isFocused and Color3.fromRGB(255, 170, 0) or baseColor textLabel.TextSize = isFocused and 14 or 11 end -- Se não for da aba correta, força o ESP a desligar imediatamente if not isCorrectTab then data.EspObj.Enabled = false end end -- Atualiza os botões da UI (Garante que botões desmarcados voltem ao normal) if data.UIEntry then local btn = data.UIEntry:FindFirstChild("TextButton") if btn then if isFocused then btn.Text = "🌟 FOCUSED" btn.BackgroundColor3 = baseColor else btn.Text = "🎯 FOCUS" btn.BackgroundColor3 = Color3.fromRGB(45, 45, 60) end end end end end -- TAB LOGIC itemsTabBtn.MouseButton1Click:Connect(function() activeTab = "Items" scrollItems.Visible = true scrollVehicles.Visible = false itemsTabBtn.BackgroundColor3 = Color3.fromRGB(80, 80, 110) vehiclesTabBtn.BackgroundColor3 = Color3.fromRGB(35, 35, 45) focusedModel = nil -- Reseta o focus ao trocar de aba refreshVisuals() end) vehiclesTabBtn.MouseButton1Click:Connect(function() activeTab = "Vehicles" scrollItems.Visible = false scrollVehicles.Visible = true itemsTabBtn.BackgroundColor3 = Color3.fromRGB(35, 35, 45) vehiclesTabBtn.BackgroundColor3 = Color3.fromRGB(80, 80, 110) focusedModel = nil -- Reseta o focus ao trocar de aba refreshVisuals() end) -- BULLETPROOF MANUAL RESIZING SYSTEM table.insert(scriptConnections, layoutItems:GetPropertyChangedSignal("AbsoluteContentSize"):Connect(function() scrollItems.CanvasSize = UDim2.new(0, 0, 0, layoutItems.AbsoluteContentSize.Y + 15) end)) table.insert(scriptConnections, layoutVehicles:GetPropertyChangedSignal("AbsoluteContentSize"):Connect(function() scrollVehicles.CanvasSize = UDim2.new(0, 0, 0, layoutVehicles.AbsoluteContentSize.Y + 15) end)) -- EXTRACT PREDOMINANT COLOR local function getPredominantColor(model) local dominantColor = Color3.fromRGB(0, 255, 180) for _, desc in pairs(model:GetChildren()) do if desc:IsA("BasePart") then dominantColor = desc.Color break end end return dominantColor end -- LOGIC TO DRAG THE GUI local dragging, dragInput, dragStart, startPos dragBar.InputBegan:Connect(function(input) if input.UserInputType == Enum.UserInputType.MouseButton1 or input.UserInputType == Enum.UserInputType.Touch then dragging = true dragStart = input.Position startPos = mainFrame.Position input.Changed:Connect(function() if input.UserInputState == Enum.UserInputState.End then dragging = false end end) end end) UserInputService.InputChanged:Connect(function(input) if input.UserInputType == Enum.UserInputType.MouseMovement or input.UserInputType == Enum.UserInputType.Touch then dragInput = input end end) table.insert(scriptConnections, RunService.Heartbeat:Connect(function() if dragging and dragInput then local delta = dragInput.Position - dragStart mainFrame.Position = UDim2.new(startPos.X.Scale, startPos.X.Offset + delta.X, startPos.Y.Scale, startPos.Y.Offset + delta.Y) end end)) -- VIEWPORT FRAME SETUP local function setupSmartViewport(vp, sourceObject) local cam = Instance.new("Camera") cam.FieldOfView = 50 vp.CurrentCamera = cam cam.Parent = vp local clone = sourceObject:Clone() for _, child in pairs(clone:GetDescendants()) do if child:IsA("LuaSourceContainer") or child:IsA("ProximityPrompt") or child:IsA("BillboardGui") then child:Destroy() end end clone.Parent = vp local size if clone:IsA("Model") then local originCFrame, modelSize = clone:GetBoundingBox() size = modelSize clone:PivotTo(CFrame.new(0, 0, 0)) else size = clone.Size clone.CFrame = CFrame.new(0, 0, 0) end local maxDim = math.max(size.X, size.Y, size.Z) local distance = (maxDim / 2) / math.tan(math.rad(cam.FieldOfView / 2)) cam.CFrame = CFrame.new(Vector3.new(distance * 1.2, maxDim * 0.5, distance * 1.2), Vector3.new(0, 0, 0)) end -- REMOVE FROM LIST local function removeEntityFromList(model) local data = trackedEntities[model] if data then if data.HighlightObj then data.HighlightObj:Destroy() end if data.EspObj then data.EspObj:Destroy() end if data.UIEntry then data.UIEntry:Destroy() end if data.CleanupConnections then for _, c in pairs(data.CleanupConnections) do c:Disconnect() end end trackedEntities[model] = nil if focusedModel == model then focusedModel = nil end end end -- ADD ELEMENTS ASYNCHRONOUSLY local function addEntityToList(model, category) if not systemActive or trackedEntities[model] then return end task.defer(function() if not model:IsDescendantOf(Workspace) then return end local entityNameText = "Unidentified" local foundValueObj = nil local adornTarget = nil if category == "Vehicles" then entityNameText = model.Name adornTarget = model.PrimaryPart or model:FindFirstChildWhichIsA("BasePart") else local handle = model:WaitForChild("Handle", 3) adornTarget = handle or model.PrimaryPart or model:FindFirstChildWhichIsA("BasePart") if not adornTarget then return end if handle then local toolBG = handle:WaitForChild("ToolBG", 2) if toolBG and toolBG:IsA("BillboardGui") then local toolName = toolBG:WaitForChild("ToolName", 2) if toolName and toolName:IsA("StringValue") then foundValueObj = toolName if toolName.Value ~= "" then entityNameText = tostring(toolName.Value) end end end end end if not adornTarget then return end local objectDominantColor = getPredominantColor(model) -- Create Highlight local hl = Instance.new("Highlight") hl.FillColor = Color3.fromRGB(255, 170, 0) hl.OutlineColor = Color3.fromRGB(255, 255, 255) hl.FillTransparency = 0.5 hl.Enabled = false hl.Parent = model -- Create ESP local bbg = Instance.new("BillboardGui") bbg.Size = UDim2.new(0, 200, 0, 40) bbg.AlwaysOnTop = true bbg.StudsOffset = Vector3.new(0, 4, 0) bbg.Enabled = false local lbl = Instance.new("TextLabel") lbl.Size = UDim2.new(1, 0, 1, 0) lbl.BackgroundTransparency = 1 lbl.Text = entityNameText lbl.TextColor3 = objectDominantColor lbl.Font = Enum.Font.GothamBold lbl.TextSize = 11 lbl.TextStrokeTransparency = 0.2 lbl.Parent = bbg bbg.Parent = adornTarget -- UI Creation local entryName = model:GetDebugId() .. "_entry" local entry = Instance.new("Frame") entry.Name = entryName entry.Size = UDim2.new(1, -12, 0, 75) entry.BackgroundColor3 = Color3.fromRGB(24, 24, 30) entry.LayoutOrder = -os.clock() entry.Parent = (category == "Vehicles") and scrollVehicles or scrollItems Instance.new("UICorner", entry).CornerRadius = UDim.new(0, 8) local data = { Model = model, Category = category, -- Guardando a qual aba pertence TargetPart = adornTarget, NameValueObj = foundValueObj, FallbackName = entityNameText, CustomColor = objectDominantColor, HighlightObj = hl, EspObj = bbg, UIEntry = entry, CleanupConnections = {} } trackedEntities[model] = data local vp = Instance.new("ViewportFrame") vp.Size = UDim2.new(0, 65, 0, 65) vp.Position = UDim2.new(0, 5, 0.5, -32.5) vp.BackgroundTransparency = 1 vp.Parent = entry task.spawn(setupSmartViewport, vp, model) local nameLabel = Instance.new("TextLabel") nameLabel.Size = UDim2.new(1, -180, 0, 30) nameLabel.Position = UDim2.new(0, 80, 0, 5) nameLabel.Text = entityNameText:sub(1, 20) nameLabel.TextColor3 = objectDominantColor nameLabel.BackgroundTransparency = 1 nameLabel.Font = Enum.Font.GothamBold nameLabel.TextSize = 13 nameLabel.TextXAlignment = Enum.TextXAlignment.Left nameLabel.Parent = entry -- ATUALIZAÇÃO DINÂMICA if foundValueObj then table.insert(data.CleanupConnections, foundValueObj:GetPropertyChangedSignal("Value"):Connect(function() local newName = tostring(foundValueObj.Value) if newName ~= "" then data.FallbackName = newName nameLabel.Text = newName:sub(1, 20) end end)) end local focusBtn = Instance.new("TextButton") focusBtn.Size = UDim2.new(0, 85, 0, 26) focusBtn.Position = UDim2.new(1, -95, 0, 40) focusBtn.BackgroundColor3 = Color3.fromRGB(45, 45, 60) focusBtn.Text = "🎯 FOCUS" focusBtn.Font = Enum.Font.GothamBold focusBtn.TextSize = 10 focusBtn.TextColor3 = Color3.new(1, 1, 1) focusBtn.Parent = entry local strokeBtn = Instance.new("UIStroke", focusBtn) strokeBtn.Color = objectDominantColor strokeBtn.Thickness = 1 Instance.new("UICorner", focusBtn).CornerRadius = UDim.new(0, 6) focusBtn.MouseButton1Click:Connect(function() if focusedModel == model then focusedModel = nil else focusedModel = model end refreshVisuals() end) table.insert(data.CleanupConnections, model.Destroying:Connect(function() removeEntityFromList(model) end)) end) end -- INTERFACE CONTROLS hlToggle.MouseButton1Click:Connect(function() highlightsEnabled = not highlightsEnabled hlToggle.BackgroundColor3 = highlightsEnabled and Color3.fromRGB(40, 180, 100) or Color3.fromRGB(180, 50, 50) hlToggle.Text = highlightsEnabled and "HIGHLIGHTS: ON" or "HIGHLIGHTS: OFF" refreshVisuals() end) espToggle.MouseButton1Click:Connect(function() espEnabled = not espEnabled espToggle.BackgroundColor3 = espEnabled and Color3.fromRGB(40, 180, 100) or Color3.fromRGB(180, 50, 50) espToggle.Text = espEnabled and "TEXT ESP: ON" or "TEXT ESP: OFF" refreshVisuals() end) -- OPTIMIZED DISTANCE / ESP LOOP task.spawn(function() while systemActive do local char = player.Character local root = char and char:FindFirstChild("HumanoidRootPart") if root then for model, data in pairs(trackedEntities) do local targetPart = data.TargetPart if targetPart and targetPart:IsDescendantOf(Workspace) then local dist = (root.Position - targetPart.Position).Magnitude -- NOVO: O ESP só aparece se o item pertencer à aba atual (activeTab) if dist <= MAX_RENDER_DISTANCE and espEnabled and data.Category == activeTab then data.EspObj.Enabled = true local baseText = data.FallbackName if data.NameValueObj and data.NameValueObj.Parent then baseText = tostring(data.NameValueObj.Value) end data.EspObj.TextLabel.Text = string.format("[%s]", baseText) else data.EspObj.Enabled = false end end end end task.wait(0.25) end end) -- SMOOTH POINTER LOOP table.insert(scriptConnections, RunService.RenderStepped:Connect(function() if not systemActive then return end if focusedModel then local trackedData = trackedEntities[focusedModel] local targetPart = trackedData and trackedData.TargetPart if targetPart and targetPart:IsDescendantOf(Workspace) then pointerContainer.Visible = true pointerIcon.TextColor3 = trackedData.CustomColor local targetPos = targetPart.Position local relativeSpace = camera.CFrame:PointToObjectSpace(targetPos) local angle = math.atan2(relativeSpace.X, -relativeSpace.Z) pointerContainer.Rotation = math.deg(angle) else pointerContainer.Visible = false end else pointerContainer.Visible = false end end)) -- INITIAL LOADING task.spawn(function() if entitiesFolder then for i, child in pairs(entitiesFolder:GetChildren()) do if child:IsA("Model") then addEntityToList(child, "Items") end if i % 10 == 0 then task.wait() end end end if vehiclesFolder then for i, child in pairs(vehiclesFolder:GetChildren()) do if child:IsA("Model") then addEntityToList(child, "Vehicles") end if i % 10 == 0 then task.wait() end end end end) -- AUTO-UPDATE (Quando novos itens/veículos surgem) if entitiesFolder then table.insert(scriptConnections, entitiesFolder.ChildAdded:Connect(function(child) task.wait(0.1) if child:IsA("Model") then addEntityToList(child, "Items") end end)) end if vehiclesFolder then table.insert(scriptConnections, vehiclesFolder.ChildAdded:Connect(function(child) task.wait(0.1) if child:IsA("Model") then addEntityToList(child, "Vehicles") end end)) end -- CLEANUP closeBtn.MouseButton1Click:Connect(function() systemActive = false for _, conn in pairs(scriptConnections) do conn:Disconnect() end for model, _ in pairs(trackedEntities) do removeEntityFromList(model) end trackedEntities = {} screenGui:Destroy() end)