-- SERVIÇOS DO ROBLOX local UserInputService = game:GetService("UserInputService") local TweenService = game:GetService("TweenService") local RunService = game:GetService("RunService") local Players = game:GetService("Players") local workspace = game:GetService("Workspace") local player = Players.LocalPlayer local playerGui = player:WaitForChild("PlayerGui") -- ESTADOS GLOBAIS DO SISTEMA local systemActive = true local highlightsEnabled = true local espEnabled = true local ignoreCustomStyle = false local instantInteraction = true local infiniteDistance = false local smartTeleporting = false local isAuraCoolingDown = false local isEnableCoolingDown = false local trackedPrompts = {} local scriptConnections = {} -- CONFIGURAÇÕES DA INTERFACE PRINCIPAL local screenGui = Instance.new("ScreenGui") screenGui.Name = "InteractionRadarSupremoV8" screenGui.IgnoreGuiInset = true screenGui.ResetOnSpawn = false screenGui.Parent = playerGui local mainFrame = Instance.new("Frame") mainFrame.Size = UDim2.new(0, 390, 0, 670) 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 -- BARRA DE ARRASTAR (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 DE INTERAÇÃO ULTRA V8" 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) -- BOTÃO FECHAR (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) -- PAINEL DE CONTROLE local controlPanel = Instance.new("Frame") controlPanel.Size = UDim2.new(1, -20, 0, 190) 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: LIGADO" 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 = "ESP TEXTO: LIGADO" 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) local customToggle = Instance.new("TextButton") customToggle.Size = UDim2.new(0, 170, 0, 32) customToggle.Position = UDim2.new(0, 0, 0, 38) customToggle.BackgroundColor3 = Color3.fromRGB(40, 180, 100) customToggle.Text = "CUSTOM: INCLUIR" customToggle.Font = Enum.Font.GothamBold customToggle.TextSize = 11 customToggle.TextColor3 = Color3.new(1, 1, 1) customToggle.Parent = controlPanel Instance.new("UICorner", customToggle).CornerRadius = UDim.new(0, 6) local instantToggle = Instance.new("TextButton") instantToggle.Size = UDim2.new(0, 170, 0, 32) instantToggle.Position = UDim2.new(1, -170, 0, 38) instantToggle.BackgroundColor3 = Color3.fromRGB(40, 180, 100) instantToggle.Text = "INSTANTÂNEO: LIGADO" instantToggle.Font = Enum.Font.GothamBold instantToggle.TextSize = 11 instantToggle.TextColor3 = Color3.new(1, 1, 1) instantToggle.Parent = controlPanel Instance.new("UICorner", instantToggle).CornerRadius = UDim.new(0, 6) local auraBtn = Instance.new("TextButton") auraBtn.Size = UDim2.new(1, 0, 0, 32) auraBtn.Position = UDim2.new(0, 0, 0, 76) auraBtn.BackgroundColor3 = Color3.fromRGB(255, 170, 0) auraBtn.Text = "💥 ATIVAR TUDO EM 45 METROS" auraBtn.Font = Enum.Font.GothamBlack auraBtn.TextSize = 11 auraBtn.TextColor3 = Color3.new(1, 1, 1) auraBtn.Parent = controlPanel Instance.new("UICorner", auraBtn).CornerRadius = UDim.new(0, 6) local enableBtn = Instance.new("TextButton") enableBtn.Size = UDim2.new(1, 0, 0, 32) enableBtn.Position = UDim2.new(0, 0, 0, 114) enableBtn.BackgroundColor3 = Color3.fromRGB(0, 170, 255) enableBtn.Text = "🔓 HABILITAR PROMPTS OCULTOS (50M)" enableBtn.Font = Enum.Font.GothamBlack enableBtn.TextSize = 11 enableBtn.TextColor3 = Color3.new(1, 1, 1) enableBtn.Parent = controlPanel Instance.new("UICorner", enableBtn).CornerRadius = UDim.new(0, 6) local dist99999Btn = Instance.new("TextButton") dist99999Btn.Size = UDim2.new(1, 0, 0, 32) dist99999Btn.Position = UDim2.new(0, 0, 0, 152) dist99999Btn.BackgroundColor3 = Color3.fromRGB(140, 80, 250) dist99999Btn.Text = "🌐 DISTÂNCIA MÁXIMA (99999): DESATIVADO" dist99999Btn.Font = Enum.Font.GothamBlack dist99999Btn.TextSize = 11 dist99999Btn.TextColor3 = Color3.new(1, 1, 1) dist99999Btn.Parent = controlPanel Instance.new("UICorner", dist99999Btn).CornerRadius = UDim.new(0, 6) -- LISTA DE ROLAGEM local scroll = Instance.new("ScrollingFrame") scroll.Size = UDim2.new(1, -20, 1, -255) scroll.Position = UDim2.new(0, 10, 0, 245) scroll.BackgroundTransparency = 1 scroll.ScrollBarThickness = 4 scroll.ScrollBarImageColor3 = Color3.fromRGB(80, 80, 100) scroll.Parent = mainFrame local layout = Instance.new("UIListLayout", scroll) layout.SortOrder = Enum.SortOrder.LayoutOrder layout.Padding = UDim.new(0, 8) -- LÓGICA PARA ARRASTAR A 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.RenderStepped: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)) local addPromptToList -- ALTERNAR CONFIGURAÇÃO DA INTERAÇÃO INSTANTÂNEA instantToggle.MouseButton1Click:Connect(function() instantInteraction = not instantInteraction instantToggle.BackgroundColor3 = instantInteraction and Color3.fromRGB(40, 180, 100) or Color3.fromRGB(180, 50, 50) instantToggle.Text = instantInteraction and "INSTANTÂNEO: LIGADO" or "INSTANTÂNEO: DESLIGADO" for prompt, data in pairs(trackedPrompts) do if prompt and prompt.Parent then prompt.HoldDuration = instantInteraction and 0 or data.OriginalDuration end end end) -- ALTERNAR DISTÂNCIA TOTAL MÁXIMA PARA 99999 dist99999Btn.MouseButton1Click:Connect(function() infiniteDistance = not infiniteDistance dist99999Btn.BackgroundColor3 = infiniteDistance and Color3.fromRGB(40, 180, 100) or Color3.fromRGB(140, 80, 250) dist99999Btn.Text = infiniteDistance and "🌐 DISTÂNCIA MÁXIMA (99999): ATIVADO" or "🌐 DISTÂNCIA MÁXIMA (99999): DESATIVADO" for prompt, data in pairs(trackedPrompts) do if prompt and prompt.Parent then prompt.MaxActivationDistance = infiniteDistance and 99999 or 20 end end end) -- FORÇAR ATIVAÇÃO (HABILITAR) PROMPTS DESLIGADOS EM 50M enableBtn.MouseButton1Click:Connect(function() if isEnableCoolingDown or not systemActive then return end isEnableCoolingDown = true enableBtn.BackgroundColor3 = Color3.fromRGB(0, 100, 200) enableBtn.Text = "HABILITANDO..." local char = player.Character local root = char and char:FindFirstChild("HumanoidRootPart") local habilitados = 0 if root then for _, obj in pairs(workspace:GetDescendants()) do if obj:IsA("ProximityPrompt") and not obj.Enabled then local target = obj.Parent if target then local pos = target:IsA("Model") and target:GetPivot().Position or (target:IsA("BasePart") and target.Position) if pos then local dist = (root.Position - pos).Magnitude if dist <= 50 then obj.Enabled = true habilitados = habilitados + 1 addPromptToList(obj) end end end end end end task.wait(1) enableBtn.BackgroundColor3 = Color3.fromRGB(0, 170, 255) enableBtn.Text = string.format("🔓 HABILITADO %d PROMPTS! (50M)", habilitados) task.wait(2) enableBtn.Text = "🔓 HABILITAR PROMPTS OCULTOS (50M)" isEnableCoolingDown = false end) -- AURA DE ATIVAÇÃO EM ÁREA (INTERAGIR EM TUDO 45M) auraBtn.MouseButton1Click:Connect(function() if isAuraCoolingDown or not systemActive then return end isAuraCoolingDown = true auraBtn.BackgroundColor3 = Color3.fromRGB(200, 100, 0) auraBtn.Text = "ATIVANDO..." local char = player.Character local root = char and char:FindFirstChild("HumanoidRootPart") if root then for prompt, data in pairs(trackedPrompts) do if prompt and prompt.Parent and prompt.Enabled then local pos = data.VisualObject:IsA("Model") and data.VisualObject:GetPivot().Position or data.VisualObject.Position local dist = (root.Position - pos).Magnitude if dist <= 45 then prompt.MaxActivationDistance = 99999 if type(fireproximityprompt) == "function" then fireproximityprompt(prompt) else prompt:InputHoldBegin() task.wait(0.05) prompt:InputHoldEnd() end prompt.MaxActivationDistance = infiniteDistance and 99999 or 20 end end end end task.wait(1) auraBtn.BackgroundColor3 = Color3.fromRGB(255, 170, 0) auraBtn.Text = "💥 ATIVAR TUDO EM 45 METROS" isAuraCoolingDown = false end) -- REMOVER PROMPT ESPECÍFICO DA LISTA local function removePromptFromList(prompt) local data = trackedPrompts[prompt] if data then if data.HighlightObj then data.HighlightObj:Destroy() end if data.EspObj then data.EspObj:Destroy() end if data.CleanupConnections then for _, c in pairs(data.CleanupConnections) do if c.Connected then c:Disconnect() end end end local entryName = prompt:GetDebugId() .. "_entry" local entry = scroll:FindFirstChild(entryName) if entry then entry:Destroy() end trackedPrompts[prompt] = nil end end -- ADAPTAR CÂMERA E APLICAR ROTAÇÃO SUAVE NOS VIEWPORTS 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 cframe, size if clone:IsA("Model") then local originCFrame, modelSize = clone:GetBoundingBox() cframe, size = originCFrame, modelSize clone.WorldPivot = originCFrame clone:PivotTo(CFrame.new(0, 0, 0)) else cframe, size = clone.CFrame, 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(0, maxDim * 0.2, distance * 1.5), Vector3.new(0, 0, 0)) local currentAngleY = 0 table.insert(scriptConnections, RunService.RenderStepped:Connect(function(dt) if not systemActive or not vp:IsDescendantOf(game) then return end currentAngleY = currentAngleY + (dt * 0.8) local rotX = math.sin(tick() * 0.5) * 0.15 local rotZ = math.cos(tick() * 0.4) * 0.08 local rotationCFrame = CFrame.Angles(rotX, currentAngleY, rotZ) if clone:IsA("Model") then clone:PivotTo(rotationCFrame) else clone.CFrame = rotationCFrame end end)) end -- ATUALIZAÇÃO DO TEXTO DO ESP EM TEMPO REAL table.insert(scriptConnections, RunService.RenderStepped:Connect(function() if not systemActive then return end local char = player.Character local root = char and char:FindFirstChild("HumanoidRootPart") for prompt, data in pairs(trackedPrompts) do if data.EspObj and data.VisualObject and data.EspObj:FindFirstChild("TextLabel") then if root and (data.VisualObject:IsA("BasePart") or data.VisualObject:IsA("Model")) then local pos = data.VisualObject:IsA("Model") and data.VisualObject:GetPivot().Position or data.VisualObject.Position local dist = math.round((root.Position - pos).Magnitude) data.EspObj.TextLabel.Text = string.format("[%s]\n%d metros", data.VisualObject.Name, dist) end end end end)) -- ATUALIZAR STATUS DO HIGHLIGHT local function updateHighlightState(data) if highlightsEnabled and systemActive then if not data.HighlightObj or not data.HighlightObj.Parent then local hl = Instance.new("Highlight") hl.FillColor = Color3.fromRGB(0, 255, 180) hl.OutlineColor = Color3.fromRGB(255, 255, 255) hl.FillTransparency = 0.4 hl.Parent = data.VisualObject data.HighlightObj = hl end else if data.HighlightObj then data.HighlightObj:Destroy() data.HighlightObj = nil end end end -- ATUALIZAR STATUS DO ESP local function updateEspState(data) if espEnabled and systemActive then if not data.EspObj or not data.EspObj.Parent then local bbg = Instance.new("BillboardGui") bbg.Size = UDim2.new(0, 150, 0, 40) bbg.AlwaysOnTop = true bbg.StudsOffset = Vector3.new(0, 3, 0) local lbl = Instance.new("TextLabel") lbl.Size = UDim2.new(1, 0, 1, 0) lbl.BackgroundTransparency = 1 lbl.TextColor3 = Color3.fromRGB(222, 255, 154) lbl.Font = Enum.Font.GothamBold lbl.TextSize = 11 lbl.TextStrokeTransparency = 0.2 lbl.Parent = bbg bbg.Parent = data.VisualObject data.EspObj = bbg end else if data.EspObj then data.EspObj:Destroy() data.EspObj = nil end end end -- INSERÇÃO DOS ITENS NA LISTA addPromptToList = function(prompt) if not systemActive then return end if ignoreCustomStyle and prompt.Style == Enum.ProximityPromptStyle.Custom then return end local target = prompt.Parent if not target then return end local visualObject = target if target.Parent:IsA("Model") and target.Parent ~= workspace then visualObject = target.Parent end local entryName = prompt:GetDebugId() .. "_entry" if scroll:FindFirstChild(entryName) then return end local originalDuration = prompt.HoldDuration local originalDistance = prompt.MaxActivationDistance prompt.HoldDuration = instantInteraction and 0 or originalDuration prompt.MaxActivationDistance = infiniteDistance and 99999 or 20 local data = { Prompt = prompt, VisualObject = visualObject, OriginalDuration = originalDuration, OriginalDistance = originalDistance, HighlightObj = nil, EspObj = nil, CleanupConnections = {} } trackedPrompts[prompt] = data updateHighlightState(data) updateEspState(data) local entry = Instance.new("Frame") entry.Name = entryName entry.Size = UDim2.new(1, 0, 0, 95) entry.BackgroundColor3 = Color3.fromRGB(24, 24, 30) entry.LayoutOrder = -os.clock() entry.Parent = scroll Instance.new("UICorner", entry).CornerRadius = UDim.new(0, 8) local vp = Instance.new("ViewportFrame") vp.Size = UDim2.new(0, 85, 0, 85) vp.Position = UDim2.new(0, 5, 0.5, -42.5) vp.BackgroundTransparency = 1 vp.Parent = entry setupSmartViewport(vp, visualObject) local nameLabel = Instance.new("TextLabel") nameLabel.Size = UDim2.new(1, -200, 0, 30) nameLabel.Position = UDim2.new(0, 98, 0, 10) nameLabel.Text = visualObject.Name:sub(1, 14) nameLabel.TextColor3 = Color3.new(1, 1, 1) nameLabel.BackgroundTransparency = 1 nameLabel.Font = Enum.Font.GothamBold nameLabel.TextSize = 13 nameLabel.TextXAlignment = Enum.TextXAlignment.Left nameLabel.Parent = entry local tpBtn = Instance.new("TextButton") tpBtn.Size = UDim2.new(0, 85, 0, 26) tpBtn.Position = UDim2.new(1, -95, 0, 16) tpBtn.BackgroundColor3 = Color3.fromRGB(50, 130, 255) tpBtn.Text = "📍 TELEPORT" tpBtn.Font = Enum.Font.GothamBold tpBtn.TextSize = 10 tpBtn.TextColor3 = Color3.new(1, 1, 1) tpBtn.Parent = entry Instance.new("UICorner", tpBtn).CornerRadius = UDim.new(0, 6) tpBtn.MouseButton1Click:Connect(function() local root = player.Character and player.Character:FindFirstChild("HumanoidRootPart") if root and target then root.CFrame = target.CFrame * CFrame.new(0, 4, 0) end end) local smartBtn = Instance.new("TextButton") smartBtn.Size = UDim2.new(0, 85, 0, 26) smartBtn.Position = UDim2.new(1, -95, 0, 48) smartBtn.BackgroundColor3 = Color3.fromRGB(160, 60, 240) smartBtn.Text = "⚡ SMART TP" smartBtn.Font = Enum.Font.GothamBold smartBtn.TextSize = 10 smartBtn.TextColor3 = Color3.new(1, 1, 1) smartBtn.Parent = entry Instance.new("UICorner", smartBtn).CornerRadius = UDim.new(0, 6) -- NOVA LÓGICA DO SMART TP AUTO-INTERATIVO smartBtn.MouseButton1Click:Connect(function() local root = player.Character and player.Character:FindFirstChild("HumanoidRootPart") if not root or smartTeleporting or not prompt.Enabled then return end smartTeleporting = true local originalCFrame = root.CFrame local oldDuration = prompt.HoldDuration prompt.HoldDuration = 0 -- 1. Vai até o local root.CFrame = target.CFrame * CFrame.new(0, 4, 0) task.wait(0.08) -- 2. Interage Sozinho if type(fireproximityprompt) == "function" then fireproximityprompt(prompt) else prompt:InputHoldBegin() task.wait(0.02) prompt:InputHoldEnd() end task.wait(0.08) -- 3. Volta pro lugar original if player.Character and player.Character:FindFirstChild("HumanoidRootPart") then player.Character.HumanoidRootPart.CFrame = originalCFrame end prompt.HoldDuration = instantInteraction and 0 or oldDuration task.wait(0.15) smartTeleporting = false end) local d1 = prompt.Destroying:Connect(function() removePromptFromList(prompt) end) local d2 = target.Destroying:Connect(function() removePromptFromList(prompt) end) table.insert(data.CleanupConnections, d1) table.insert(data.CleanupConnections, d2) local ancestryConn ancestryConn = prompt.AncestryChanged:Connect(function() if not prompt:IsDescendantOf(workspace) then removePromptFromList(prompt) ancestryConn:Disconnect() end end) table.insert(data.CleanupConnections, ancestryConn) end -- CLIQUES DOS TOGGLES SUPERIORES E DE SCANNING 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: LIGADO" or "HIGHLIGHTS: DESLIGADO" for _, data in pairs(trackedPrompts) do updateHighlightState(data) end 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 "ESP TEXTO: LIGADO" or "ESP TEXTO: DESLIGADO" for _, data in pairs(trackedPrompts) do updateEspState(data) end end) customToggle.MouseButton1Click:Connect(function() ignoreCustomStyle = not ignoreCustomStyle if ignoreCustomStyle then customToggle.BackgroundColor3 = Color3.fromRGB(180, 50, 50) customToggle.Text = "CUSTOM: IGNORAR" for prompt, _ in pairs(trackedPrompts) do if prompt.Style == Enum.ProximityPromptStyle.Custom then removePromptFromList(prompt) end end else customToggle.BackgroundColor3 = Color3.fromRGB(40, 180, 100) customToggle.Text = "CUSTOM: INCLUIR" for _, obj in pairs(workspace:GetDescendants()) do if obj:IsA("ProximityPrompt") and obj.Style == Enum.ProximityPromptStyle.Custom then addPromptToList(obj) end end end end) -- VARREDURA INICIAL local function scan() for _, obj in pairs(workspace:GetDescendants()) do if obj:IsA("ProximityPrompt") then addPromptToList(obj) end end end local scanConnection = workspace.DescendantAdded:Connect(function(obj) if obj:IsA("ProximityPrompt") then task.wait(0.2) addPromptToList(obj) end end) scan() -- DESTRUIR GUI E RESTAURAR JOGO (BOTÃO X) closeBtn.MouseButton1Click:Connect(function() systemActive = false scanConnection:Disconnect() for _, conn in pairs(scriptConnections) do if conn.Connected then conn:Disconnect() end end for prompt, data in pairs(trackedPrompts) do if prompt and prompt.Parent then prompt.HoldDuration = data.OriginalDuration prompt.MaxActivationDistance = data.OriginalDistance end if data.HighlightObj then data.HighlightObj:Destroy() end if data.EspObj then data.EspObj:Destroy() end end trackedPrompts = {} screenGui:Destroy() end)