local Players = game:GetService("Players") local LocalPlayer = Players.LocalPlayer local Camera = workspace.CurrentCamera local RunService = game:GetService("RunService") local CoreGui = game:GetService("CoreGui") local TweenService = game:GetService("TweenService") -- Estado Global do ESP e Menu _G.EspEnabled = true local MenuMinimized = false -- Configurações Visuais do ESP local Config = { BoxColor = Color3.fromRGB(255, 0, 0), -- Vermelho LineColor = Color3.fromRGB(255, 255, 255), -- ALTERADO: Linha agora é Branca TextColor = Color3.fromRGB(255, 255, 255),-- Branco para informações LineThickness = 1.5, BoxThickness = 1.5 } ---------------------------------------------------------------- -- NOTIFICAÇÃO DE INICIALIZAÇÃO ---------------------------------------------------------------- game:GetService("StarterGui"):SetCore("SendNotification", { Title = "ESP VIP 300", Text = "Script carregado com sucesso!", Duration = 4 }) ---------------------------------------------------------------- -- 1. CRIAÇÃO DO PAINEL UI INTERATIVO ---------------------------------------------------------------- if CoreGui:FindFirstChild("ArceusEspPanel") then CoreGui.ArceusEspPanel:Destroy() end local ScreenGui = Instance.new("ScreenGui") ScreenGui.Name = "ArceusEspPanel" ScreenGui.Parent = CoreGui ScreenGui.ResetOnSpawn = false -- Card Principal do Painel local MainFrame = Instance.new("Frame") MainFrame.Size = UDim2.new(0, 220, 0, 160) MainFrame.Position = UDim2.new(0.1, 0, 0.2, 0) MainFrame.BackgroundColor3 = Color3.fromRGB(25, 25, 35) MainFrame.BorderSizePixel = 0 MainFrame.Active = true MainFrame.Draggable = true MainFrame.ClipsDescendants = true MainFrame.Parent = ScreenGui local UICorner = Instance.new("UICorner") UICorner.CornerRadius = UDim.new(0, 10) UICorner.Parent = MainFrame -- Título do Painel: ESP VIP 300 local Title = Instance.new("TextLabel") Title.Size = UDim2.new(1, -40, 0, 35) Title.Position = UDim2.new(0, 10, 0, 0) Title.BackgroundTransparency = 1 Title.Text = "ESP VIP 300" Title.TextColor3 = Color3.fromRGB(255, 255, 255) -- ALTERADO: Nome do painel agora é Branco Title.TextSize = 15 Title.TextXAlignment = Enum.TextXAlignment.Left Title.Font = Enum.Font.GothamBold Title.Parent = MainFrame -- Botão Minimizar local MinimizeBtn = Instance.new("TextButton") MinimizeBtn.Size = UDim2.new(0, 25, 0, 25) MinimizeBtn.Position = UDim2.new(1, -30, 0, 5) MinimizeBtn.BackgroundColor3 = Color3.fromRGB(40, 40, 55) MinimizeBtn.Text = "-" MinimizeBtn.TextColor3 = Color3.fromRGB(255, 255, 255) MinimizeBtn.TextSize = 16 MinimizeBtn.Font = Enum.Font.GothamBold MinimizeBtn.BorderSizePixel = 0 MinimizeBtn.Parent = MainFrame local MinCorner = Instance.new("UICorner") MinCorner.CornerRadius = UDim.new(0, 5) MinCorner.Parent = MinimizeBtn -- Botão de Ligar / Desligar (Toggle) local ToggleBtn = Instance.new("TextButton") ToggleBtn.Size = UDim2.new(0, 180, 0, 45) ToggleBtn.Position = UDim2.new(0, 20, 0, 40) ToggleBtn.BackgroundColor3 = Color3.fromRGB(46, 204, 113) ToggleBtn.Text = "ESP: ATIVADO" ToggleBtn.TextColor3 = Color3.fromRGB(255, 255, 255) ToggleBtn.TextSize = 14 ToggleBtn.Font = Enum.Font.GothamBold ToggleBtn.BorderSizePixel = 0 ToggleBtn.Parent = MainFrame local BtnCorner = Instance.new("UICorner") BtnCorner.CornerRadius = UDim.new(0, 8) BtnCorner.Parent = ToggleBtn -- Linha Divisória local Divider = Instance.new("Frame") Divider.Size = UDim2.new(0, 180, 0, 1) Divider.Position = UDim2.new(0, 20, 0, 100) Divider.BackgroundColor3 = Color3.fromRGB(50, 50, 65) Divider.BorderSizePixel = 0 Divider.Parent = MainFrame -- Seção de Créditos local Credits = Instance.new("TextLabel") Credits.Size = UDim2.new(1, 0, 0, 45) Credits.Position = UDim2.new(0, 0, 0, 105) Credits.BackgroundTransparency = 1 Credits.Text = "criador: Nillghost300\nc00lkiddFun" Credits.TextSize = 12 Credits.Font = Enum.Font.GothamSemibold Credits.Parent = MainFrame -- Lógica de Interação dos Botões da UI ToggleBtn.MouseButton1Click:Connect(function() _G.EspEnabled = not _G.EspEnabled if _G.EspEnabled then TweenService:Create(ToggleBtn, TweenInfo.new(0.2), {BackgroundColor3 = Color3.fromRGB(46, 204, 113)}):Play() ToggleBtn.Text = "ESP: ATIVADO" else TweenService:Create(ToggleBtn, TweenInfo.new(0.2), {BackgroundColor3 = Color3.fromRGB(231, 76, 60)}):Play() ToggleBtn.Text = "ESP: DESATIVADO" end end) MinimizeBtn.MouseButton1Click:Connect(function() MenuMinimized = not MenuMinimized if MenuMinimized then MainFrame:TweenSize(UDim2.new(0, 220, 0, 35), "Out", "Quad", 0.3, true) MinimizeBtn.Text = "+" else MainFrame:TweenSize(UDim2.new(0, 220, 0, 160), "Out", "Quad", 0.3, true) MinimizeBtn.Text = "-" end end) -- Loop para o Efeito RGB (Arco-íris) nos Créditos RunService.Heartbeat:Connect(function() local hue = (tick() % 5) / 5 Credits.TextColor3 = Color3.fromHSV(hue, 0.7, 1) end) ---------------------------------------------------------------- -- 2. SISTEMA ESP COM SUPORTE AO INSTANT-TOGGLE ---------------------------------------------------------------- local function CreateESP(player) if player == LocalPlayer then return end local Box = Drawing.new("Square") Box.Visible = false Box.Color = Config.BoxColor Box.Thickness = Config.BoxThickness Box.Filled = false local Line = Drawing.new("Line") Line.Visible = false Line.Color = Config.LineColor Line.Thickness = Config.LineThickness local InfoText = Drawing.new("Text") InfoText.Visible = false InfoText.Color = Config.TextColor InfoText.Size = 14 InfoText.Center = true InfoText.Outline = true local updater updater = RunService.RenderStepped:Connect(function() if not _G.EspEnabled then Box.Visible = false Line.Visible = false InfoText.Visible = false return end if not player.Parent or not player.Character or not player.Character:FindFirstChild("HumanoidRootPart") or not player.Character:FindFirstChild("Humanoid") then Box.Visible = false Line.Visible = false InfoText.Visible = false if not player.Parent then Box:Remove() Line:Remove() InfoText:Remove() updater:Disconnect() end return end local character = player.Character local humanoid = character.Humanoid local rootPart = character.HumanoidRootPart if humanoid.Health <= 0 then Box.Visible = false Line.Visible = false InfoText.Visible = false return end local rootPos, onScreen = Camera:WorldToViewportPoint(rootPart.Position) if onScreen then local head = character:FindFirstChild("Head") local headPos = head and Camera:WorldToViewportPoint(head.Position) or rootPos local boxHeight = math.abs(rootPos.Y - headPos.Y) * 2.5 local boxWidth = boxHeight / 1.6 -- 1. Renderiza a Box 2D Box.Size = Vector2.new(boxWidth, boxHeight) Box.Position = Vector2.new(rootPos.X - (boxWidth / 2), rootPos.Y - (boxHeight / 2)) Box.Visible = true -- 2. Renderiza a Linha Antena (Branca) Line.From = Vector2.new(Camera.ViewportSize.X / 2, 0) Line.To = Vector2.new(rootPos.X, rootPos.Y - (boxHeight / 2)) Line.Visible = true -- 3. Renderiza o Painel de Texto (Nome, Vida e Metros) local distance = math.floor((LocalPlayer.Character and LocalPlayer.Character:FindFirstChild("HumanoidRootPart") and (LocalPlayer.Character.HumanoidRootPart.Position - rootPart.Position).Magnitude) or 0) local health = math.floor(humanoid.Health) local playerName = player.Name InfoText.Text = string.format("%s\n[%d HP] - [%dm]", playerName, health, distance) InfoText.Position = Vector2.new(rootPos.X, rootPos.Y + (boxHeight / 2) + 5) InfoText.Visible = true else Box.Visible = false Line.Visible = false InfoText.Visible = false end end) end -- Inicialização nos players atuais e futuros for _, player in ipairs(Players:GetPlayers()) do CreateESP(player) end Players.PlayerAdded:Connect(CreateESP)