-- [[ Rscripts Risk Notice ]] -- This script is not verified by rscripts.net. Deal with caution. -- -- Stay safe: -- • Never log in on unofficial Roblox sites or lookalike domains. -- • Real Roblox links use roblox.com (check the .com ending). -- • Treat fake Roblox login / "claim reward" pages as phishing. -- [[ End Rscripts Risk Notice ]] -- Serviços do Roblox local Players = game:GetService("Players") local RunService = game:GetService("RunService") local UserInputService = game:GetService("UserInputService") -- Configurações do ESP local LocalPlayer = Players.LocalPlayer local ESP_Ativo = false local Distancia_Limite = 50 -- Ativa apenas se estiver a MAIS de 50 studs local Conexao_Render = nil local Elementos_ESP = {} -- Interface Principal local PlayerGui = LocalPlayer:WaitForChild("PlayerGui") local ScreenGui = Instance.new("ScreenGui") ScreenGui.Name = "DistantESP_System" ScreenGui.ResetOnSpawn = false ScreenGui.Parent = PlayerGui ---------------------------------------------------------------- -- 1. DESIGN DO BOTÃO FLUTUANTE (MK) ---------------------------------------------------------------- local BotaoMK = Instance.new("TextButton") BotaoMK.Name = "BotaoMK" BotaoMK.Parent = ScreenGui BotaoMK.Size = UDim2.new(0, 60, 0, 60) BotaoMK.Position = UDim2.new(0.05, 0, 0.4, 0) BotaoMK.BackgroundColor3 = Color3.fromRGB(46, 204, 113) -- Verde Esmeralda Lindo BotaoMK.Text = "MK" BotaoMK.TextColor3 = Color3.fromRGB(255, 255, 255) BotaoMK.Font = Enum.Font.GothamBold BotaoMK.TextSize = 22 BotaoMK.BorderSizePixel = 0 BotaoMK.ZIndex = 10 BotaoMK.Active = true -- Tornar redondo local CornerBotao = Instance.new("UICorner") CornerBotao.CornerRadius = UDim.new(1, 0) CornerBotao.Parent = BotaoMK -- Borda escura elegante local StrokeBotao = Instance.new("UIStroke") StrokeBotao.Color = Color3.fromRGB(39, 174, 96) StrokeBotao.Thickness = 3 StrokeBotao.Parent = BotaoMK ---------------------------------------------------------------- -- 2. DESIGN DO MENU PRINCIPAL ---------------------------------------------------------------- local MenuPrincipal = Instance.new("Frame") MenuPrincipal.Name = "MenuPrincipal" MenuPrincipal.Parent = ScreenGui MenuPrincipal.Size = UDim2.new(0, 300, 0, 180) MenuPrincipal.Position = UDim2.new(0.5, -150, 0.5, -90) MenuPrincipal.BackgroundColor3 = Color3.fromRGB(20, 20, 20) -- Fundo escuro moderno MenuPrincipal.Visible = false MenuPrincipal.BorderSizePixel = 0 MenuPrincipal.ZIndex = 5 local CornerMenu = Instance.new("UICorner") CornerMenu.CornerRadius = UDim.new(0, 12) CornerMenu.Parent = MenuPrincipal -- Título do Menu local Titulo = Instance.new("TextLabel") Titulo.Parent = MenuPrincipal Titulo.Size = UDim2.new(1, 0, 0, 45) Titulo.BackgroundTransparency = 1 Titulo.Text = "DISTANT ESP by MKgabriel" Titulo.TextColor3 = Color3.fromRGB(46, 204, 113) -- Texto Verde Titulo.Font = Enum.Font.GothamBold Titulo.TextSize = 16 Titulo.ZIndex = 6 -- Botão Start/Stop local BotaoStart = Instance.new("TextButton") BotaoStart.Parent = MenuPrincipal BotaoStart.Size = UDim2.new(0, 200, 0, 45) BotaoStart.Position = UDim2.new(0.5, -100, 0.6, -10) BotaoStart.BackgroundColor3 = Color3.fromRGB(46, 204, 113) BotaoStart.Text = "START" BotaoStart.TextColor3 = Color3.fromRGB(255, 255, 255) BotaoStart.Font = Enum.Font.GothamBold BotaoStart.TextSize = 16 BotaoStart.BorderSizePixel = 0 BotaoStart.ZIndex = 6 local CornerStart = Instance.new("UICorner") CornerStart.CornerRadius = UDim.new(0, 8) CornerStart.Parent = BotaoStart ---------------------------------------------------------------- -- 3. SISTEMA DE ARRASTE SEM CONFLITO DE CLIQUE ---------------------------------------------------------------- local arrastando = false local abrindoMenu = true local posicaoClique, posicaoInicialBotao BotaoMK.InputBegan:Connect(function(input) if input.UserInputType == Enum.UserInputType.MouseButton1 or input.UserInputType == Enum.UserInputType.Touch then arrastando = true abrindoMenu = true posicaoClique = input.Position posicaoInicialBotao = BotaoMK.Position end end) UserInputService.InputChanged:Connect(function(input) if arrastando and (input.UserInputType == Enum.UserInputType.MouseMovement or input.UserInputType == Enum.UserInputType.Touch) then local delta = input.Position - posicaoClique if delta.Magnitude > 8 then -- Se mover mais de 8 pixels, vira arraste e cancela o clique abrindoMenu = false BotaoMK.Position = UDim2.new(posicaoInicialBotao.X.Scale, posicaoInicialBotao.X.Offset + delta.X, posicaoInicialBotao.Y.Scale, posicaoInicialBotao.Y.Offset + delta.Y) end end end) UserInputService.InputEnded:Connect(function(input) if input.UserInputType == Enum.UserInputType.MouseButton1 or input.UserInputType == Enum.UserInputType.Touch then if arrastando then arrastando = false if abrindoMenu then -- Abre o menu apenas se o botão não foi arrastado pela tela MenuPrincipal.Visible = not MenuPrincipal.Visible end end end end) ---------------------------------------------------------------- -- 4. MECÂNICA DO ESP SELETIVO POR DISTÂNCIA ---------------------------------------------------------------- local function deletarVisualJogador(vPlayer) if Elementos_ESP[vPlayer] then if Elementos_ESP[vPlayer].Highlight then Elementos_ESP[vPlayer].Highlight:Destroy() end if Elementos_ESP[vPlayer].Billboard then Elementos_ESP[vPlayer].Billboard:Destroy() end Elementos_ESP[vPlayer] = nil end end local function limparTodosFiltros() for _, vPlayer in pairs(Players:GetPlayers()) do deletarVisualJogador(vPlayer) end end local function loopVerificacaoESP() if not ESP_Ativo then return end local meuChar = LocalPlayer.Character if not meuChar or not meuChar:FindFirstChild("HumanoidRootPart") then limparTodosFiltros() return end local meuPos = meuChar.HumanoidRootPart.Position for _, vPlayer in pairs(Players:GetPlayers()) do if vPlayer ~= LocalPlayer then local charAlvo = vPlayer.Character if charAlvo and charAlvo:FindFirstChild("HumanoidRootPart") and charAlvo:FindFirstChild("Humanoid") and charAlvo.Humanoid.Health > 0 then local alvoPos = charAlvo.HumanoidRootPart.Position local distancia = (meuPos - alvoPos).Magnitude -- Condição Crítica: Só exibe o ESP se estiver LONGE (>= 50 studs) if distancia >= Distancia_Limite then if not Elementos_ESP[vPlayer] then Elementos_ESP[vPlayer] = {} -- Contorno Verde Neon Dinâmico local hl = Instance.new("Highlight") hl.Parent = charAlvo hl.FillColor = Color3.fromRGB(0, 255, 127) hl.FillTransparency = 0.6 hl.OutlineColor = Color3.fromRGB(0, 255, 0) hl.Adornee = charAlvo Elementos_ESP[vPlayer].Highlight = hl -- Interface de Texto Integrada local bb = Instance.new("BillboardGui") bb.Parent = charAlvo.HumanoidRootPart bb.AlwaysOnTop = true bb.Size = UDim2.new(0, 160, 0, 50) -- Nome acima do personagem local txtNome = Instance.new("TextLabel") txtNome.Parent = bb txtNome.Size = UDim2.new(1, 0, 0.5, 0) txtNome.Position = UDim2.new(0, 0, -0.7, 0) txtNome.BackgroundTransparency = 1 txtNome.Text = vPlayer.Name txtNome.TextColor3 = Color3.fromRGB(255, 255, 255) txtNome.Font = Enum.Font.GothamBold txtNome.TextSize = 13 txtNome.TextStrokeTransparency = 0 -- Distância abaixo do personagem local txtDist = Instance.new("TextLabel") txtDist.Parent = bb txtDist.Size = UDim2.new(1, 0, 0.5, 0) txtDist.Position = UDim2.new(0, 0, 0.8, 0) txtDist.BackgroundTransparency = 1 txtDist.Text = math.floor(distancia) .. " studs" txtDist.TextColor3 = Color3.fromRGB(0, 255, 127) txtDist.Font = Enum.Font.GothamMedium txtDist.TextSize = 12 txtDist.TextStrokeTransparency = 0 Elementos_ESP[vPlayer].Billboard = bb Elementos_ESP[vPlayer].LabelDist = txtDist else -- Atualizações em tempo real if Elementos_ESP[vPlayer].LabelDist then Elementos_ESP[vPlayer].LabelDist.Text = math.floor(distancia) .. " studs" end if Elementos_ESP[vPlayer].Highlight then Elementos_ESP[vPlayer].Highlight.Enabled = true end if Elementos_ESP[vPlayer].Billboard then Elementos_ESP[vPlayer].Billboard.Enabled = true end end else -- Oculta o ESP imediatamente se você se aproximar do jogador if Elementos_ESP[vPlayer] then if Elementos_ESP[vPlayer].Highlight then Elementos_ESP[vPlayer].Highlight.Enabled = false end if Elementos_ESP[vPlayer].Billboard then Elementos_ESP[vPlayer].Billboard.Enabled = false end end end else deletarVisualJogador(vPlayer) end end end end -- Monitoramento de desconexões de jogadores Players.PlayerRemoving:Connect(function(vPlayer) deletarVisualJogador(vPlayer) end) -- Gatilho de Ativação do Botão START BotaoStart.MouseButton1Click:Connect(function() ESP_Ativo = not ESP_Ativo if ESP_Ativo then BotaoStart.Text = "STOP" BotaoStart.BackgroundColor3 = Color3.fromRGB(231, 76, 60) -- Transiciona para vermelho Conexao_Render = RunService.RenderStepped:Connect(loopVerificacaoESP) else BotaoStart.Text = "START" BotaoStart.BackgroundColor3 = Color3.fromRGB(46, 204, 113) -- Retorna para verde if Conexao_Render then Conexao_Render:Disconnect() Conexao_Render = nil end limparTodosFiltros() end end)