ESP Vip 300
Key RequiredUniversal Patched

ESP Vip 300

Universal Scriptgzz351350gzz351350 140 views 30 executesUpdated Jul 18, 2026
Unrated
00
Lua Script•246 lines (8486 chars)
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)

Features & Information

ESP anti lag

Community Comments (0)

No comments yet for this script.

More Scripts for Universal Scripts