
KeylessUniversal

-- 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)



where is the scrpit
sorry