Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- -- Parte 1
- local Players = game:GetService("Players")
- local RunService = game:GetService("RunService")
- local UIS = game:GetService("UserInputService")
- local plr = Players.LocalPlayer
- local cam = workspace.CurrentCamera
- local function getChar()
- return plr.Character or plr.CharacterAdded:Wait()
- end
- local function getHRP()
- return getChar():WaitForChild("HumanoidRootPart")
- end
- local function getHum()
- return getChar():FindFirstChildWhichIsA("Humanoid")
- end
- -- GUI Principal
- local gui = Instance.new("ScreenGui")
- gui.Name = "GiovannyMenu"
- gui.Parent = game.CoreGui
- gui.ResetOnSpawn = false
- local main = Instance.new("Frame", gui)
- main.Size = UDim2.new(0, 320, 0, 420)
- main.Position = UDim2.new(0.35, 0, 0.3, 0)
- main.BackgroundColor3 = Color3.fromRGB(15, 15, 15)
- main.BorderSizePixel = 0
- main.Active = true
- main.Draggable = true
- Instance.new("UICorner", main)
- -- Título Colorido (com RichText, colorido todo de uma vez)
- local title = Instance.new("TextLabel", main)
- title.Size = UDim2.new(1, 0, 0, 40)
- title.Position = UDim2.new(0,0,0,0)
- title.BackgroundTransparency = 1
- title.RichText = true
- title.Text = '<b><font color="#00FFFF">GIOVANNY MENU</font></b>'
- title.Font = Enum.Font.GothamBold
- title.TextSize = 22
- title.TextStrokeTransparency = 0.7
- -- Botão "X" fininho no canto direito superior para minimizar
- local btnClose = Instance.new("TextButton", main)
- btnClose.Size = UDim2.new(0, 25, 0, 25)
- btnClose.Position = UDim2.new(1, -30, 0, 5)
- btnClose.BackgroundColor3 = Color3.fromRGB(40, 40, 40)
- btnClose.Text = "✕"
- btnClose.Font = Enum.Font.GothamBold
- btnClose.TextSize = 22
- btnClose.TextColor3 = Color3.fromRGB(255, 80, 80)
- btnClose.BorderSizePixel = 0
- Instance.new("UICorner", btnClose)
- btnClose.MouseButton1Click:Connect(function()
- main.Visible = false
- floatBall.Visible = true
- end)
- -- Bola flutuante para restaurar o menu (inicialmente escondida)
- local floatBall = Instance.new("TextButton", gui)
- floatBall.Size = UDim2.new(0, 40, 0, 40)
- floatBall.Position = UDim2.new(0, 10, 0.5, 0)
- floatBall.BackgroundColor3 = Color3.fromRGB(40, 40, 40)
- floatBall.TextColor3 = Color3.fromRGB(255, 255, 255)
- floatBall.Font = Enum.Font.GothamBold
- floatBall.TextSize = 24
- floatBall.Text = "G"
- floatBall.Visible = false
- Instance.new("UICorner", floatBall)
- floatBall.MouseButton1Click:Connect(function()
- main.Visible = true
- floatBall.Visible = false
- end)
- -- Scroll com funções
- local scroll = Instance.new("ScrollingFrame", main)
- scroll.Size = UDim2.new(1, -20, 1, -60)
- scroll.Position = UDim2.new(0, 10, 0, 45)
- scroll.CanvasSize = UDim2.new(0, 0, 0, 700)
- scroll.ScrollBarThickness = 6
- scroll.BackgroundTransparency = 1
- Instance.new("UICorner", scroll)
- local layout = Instance.new("UIListLayout", scroll)
- layout.SortOrder = Enum.SortOrder.LayoutOrder
- layout.Padding = UDim.new(0, 7)
- -- Função auxiliar para criar switches
- local function createSwitch(text, initial, callback)
- local frame = Instance.new("Frame", scroll)
- frame.Size = UDim2.new(1, 0, 0, 35)
- frame.BackgroundTransparency = 1
- local label = Instance.new("TextLabel", frame)
- label.Text = text
- label.Font = Enum.Font.Gotham
- label.TextSize = 16
- label.TextColor3 = Color3.fromRGB(255,255,255)
- label.BackgroundTransparency = 1
- label.Position = UDim2.new(0, 5, 0, 5)
- label.Size = UDim2.new(0.75, 0, 1, 0)
- label.TextXAlignment = Enum.TextXAlignment.Left
- local toggle = Instance.new("TextButton", frame)
- toggle.Size = UDim2.new(0, 50, 0, 30)
- toggle.Position = UDim2.new(1, -55, 0, 3)
- toggle.BackgroundColor3 = Color3.fromRGB(70, 70, 70)
- toggle.TextColor3 = Color3.fromRGB(255, 255, 255)
- toggle.Font = Enum.Font.GothamBold
- toggle.TextSize = 16
- toggle.Text = initial and "ON" or "OFF"
- toggle.Name = "Toggle"
- toggle.BorderSizePixel = 0
- Instance.new("UICorner", toggle)
- local isOn = initial
- local function updateVisual()
- if isOn then
- toggle.Text = "ON"
- toggle.BackgroundColor3 = Color3.fromRGB(0, 180, 0)
- else
- toggle.Text = "OFF"
- toggle.BackgroundColor3 = Color3.fromRGB(70, 70, 70)
- end
- end
- updateVisual()
- toggle.MouseButton1Click:Connect(function()
- isOn = not isOn
- updateVisual()
- callback(isOn)
- end)
- return {
- frame = frame,
- get = function() return isOn end,
- set = function(state)
- isOn = state
- updateVisual()
- callback(isOn)
- end,
- }
- end
- -- Estado das funções
- local switches = {}
- -- Variáveis para armazenar conexões para desconectar depois
- local connections = {}
- -- Função para limpar conexões
- local function disconnectConnection(conn)
- if conn then
- conn:Disconnect()
- end
- end
- -- ESP Players (cor vermelha, corpo marcado, nome e distância)
- function createESPPlayer(plrTarget, cor, textSize)
- if not plrTarget.Character or not plrTarget.Character:FindFirstChild("HumanoidRootPart") then return end
- local hrp = plrTarget.Character.HumanoidRootPart
- if hrp:FindFirstChild("ESP_Body") then return end
- -- Corpo com Adornments para marcar
- for _, part in pairs(plrTarget.Character:GetChildren()) do
- if part:IsA("BasePart") then
- local box = Instance.new("BoxHandleAdornment")
- box.Name = "ESP_Body"
- box.Adornee = part
- box.AlwaysOnTop = true
- box.ZIndex = 10
- box.Size = part.Size
- box.Transparency = 0.6
- box.Color3 = cor
- box.Parent = part
- end
- end
- -- Nome e distância em BillboardGui
- local billboard = Instance.new("BillboardGui", hrp)
- billboard.Name = "ESP_NameDist"
- billboard.Size = UDim2.new(0, 150, 0, 30)
- billboard.AlwaysOnTop = true
- billboard.StudsOffset = Vector3.new(0, 3, 0)
- billboard.ZIndex = 20
- local label = Instance.new("TextLabel", billboard)
- label.Size = UDim2.new(1, 0, 1, 0)
- label.BackgroundTransparency = 1
- label.Font = Enum.Font.GothamBold
- label.TextColor3 = cor
- label.TextStrokeColor3 = Color3.new(0,0,0)
- label.TextStrokeTransparency = 0.5
- label.TextScaled = false
- label.TextSize = textSize or 14
- label.Text = plrTarget.Name .. " [0m]"
- -- Atualizar distância em RunService
- local conn
- conn = RunService.RenderStepped:Connect(function()
- if plrTarget.Character and plrTarget.Character:FindFirstChild("HumanoidRootPart") and getHRP() then
- local dist = math.floor((plrTarget.Character.HumanoidRootPart.Position - getHRP().Position).Magnitude)
- label.Text = plrTarget.Name .. " [" .. dist .. "m]"
- else
- disconnectConnection(conn)
- end
- end)
- return conn
- end
- -- Remove ESP de um player
- function removeESPPlayer(plrTarget)
- if not plrTarget.Character then return end
- for _, part in pairs(plrTarget.Character:GetChildren()) do
- if part:IsA("BasePart") then
- local esp = part:FindFirstChild("ESP_Body")
- if esp then esp:Destroy() end
- end
- end
- local hrp = plrTarget.Character:FindFirstChild("HumanoidRootPart")
- if hrp then
- local gui = hrp:FindFirstChild("ESP_NameDist")
- if gui then gui:Destroy() end
- end
- end
- -- Parte 2
- -- Estado para armazenar conexões e valores
- local espConnections = {}
- local espColor = Color3.new(1, 0, 0) -- vermelho padrão
- local espTextSize = 14
- -- Função para limpar todas conexões ESP
- local function clearAllESP()
- for p, conn in pairs(espConnections) do
- disconnectConnection(conn)
- espConnections[p] = nil
- removeESPPlayer(p)
- end
- end
- -- ESP Players Switch
- switches.espPlayers = createSwitch("👁️ ESP Players", false, function(state)
- if state then
- for _, p in pairs(Players:GetPlayers()) do
- if p ~= plr then
- local conn = createESPPlayer(p, espColor, espTextSize)
- if conn then
- espConnections[p] = conn
- end
- end
- end
- -- Atualizar para novos jogadores que entrarem
- connections.espAddedConn = Players.PlayerAdded:Connect(function(p)
- if switches.espPlayers.get() then
- local conn = createESPPlayer(p, espColor, espTextSize)
- if conn then espConnections[p] = conn end
- end
- end)
- -- Remover ESP ao sair
- connections.espRemovingConn = Players.PlayerRemoving:Connect(function(p)
- if espConnections[p] then
- disconnectConnection(espConnections[p])
- espConnections[p] = nil
- end
- removeESPPlayer(p)
- end)
- else
- clearAllESP()
- disconnectConnection(connections.espAddedConn)
- disconnectConnection(connections.espRemovingConn)
- end
- end)
- -- ESP Cash (verde, nome + valor em cash)
- local function createESPCash(p)
- if not p.Character or not p.Character:FindFirstChild("Head") then return end
- if p.Character.Head:FindFirstChild("ESP_CashGui") then return end
- local cashGui = Instance.new("BillboardGui", p.Character.Head)
- cashGui.Name = "ESP_CashGui"
- cashGui.Size = UDim2.new(0, 150, 0, 30)
- cashGui.StudsOffset = Vector3.new(0, 3.5, 0)
- cashGui.AlwaysOnTop = true
- cashGui.ZIndex = 20
- local label = Instance.new("TextLabel", cashGui)
- label.Size = UDim2.new(1, 0, 1, 0)
- label.BackgroundTransparency = 1
- label.Font = Enum.Font.GothamBold
- label.TextColor3 = Color3.new(0, 1, 0)
- label.TextStrokeColor3 = Color3.new(0,0,0)
- label.TextStrokeTransparency = 0.5
- label.TextScaled = false
- label.TextSize = espTextSize
- label.Text = p.Name .. " 💰 $0"
- local conn
- conn = RunService.RenderStepped:Connect(function()
- if p.Character and p.Character:FindFirstChild("Head") and plr.Character and plr.Character:FindFirstChild("HumanoidRootPart") then
- local leaderstats = p:FindFirstChild("leaderstats")
- local cash = "0"
- if leaderstats and leaderstats:FindFirstChild("Cash") then
- cash = tostring(leaderstats.Cash.Value)
- end
- label.Text = p.Name .. " 💰 $" .. cash
- else
- disconnectConnection(conn)
- end
- end)
- return conn
- end
- local espCashConnections = {}
- switches.espCash = createSwitch("💰 ESP Cash", false, function(state)
- if state then
- for _, p in pairs(Players:GetPlayers()) do
- if p ~= plr then
- local conn = createESPCash(p)
- if conn then
- espCashConnections[p] = conn
- end
- end
- end
- connections.espCashAddConn = Players.PlayerAdded:Connect(function(p)
- if switches.espCash.get() then
- local conn = createESPCash(p)
- if conn then espCashConnections[p] = conn end
- end
- end)
- connections.espCashRemConn = Players.PlayerRemoving:Connect(function(p)
- if espCashConnections[p] then
- disconnectConnection(espCashConnections[p])
- espCashConnections[p] = nil
- end
- if p.Character and p.Character:FindFirstChild("Head") then
- local gui = p.Character.Head:FindFirstChild("ESP_CashGui")
- if gui then gui:Destroy() end
- end
- end)
- else
- for p, conn in pairs(espCashConnections) do
- disconnectConnection(conn)
- if p.Character and p.Character:FindFirstChild("Head") then
- local gui = p.Character.Head:FindFirstChild("ESP_CashGui")
- if gui then gui:Destroy() end
- end
- end
- espCashConnections = {}
- disconnectConnection(connections.espCashAddConn)
- disconnectConnection(connections.espCashRemConn)
- end
- end)
- -- BrainRot Sinal
- local brainrotWarns = {}
- local function createBrainRotAlert(brainrot)
- if not brainrot:FindFirstChild("Head") then return end
- if brainrot.Head:FindFirstChild("BrainRotAlert") then return end
- local alertGui = Instance.new("BillboardGui", brainrot.Head)
- alertGui.Name = "BrainRotAlert"
- alertGui.Size = UDim2.new(0, 150, 0, 30)
- alertGui.AlwaysOnTop = true
- alertGui.StudsOffset = Vector3.new(0, 3, 0)
- local label = Instance.new("TextLabel", alertGui)
- label.Size = UDim2.new(1, 0, 1, 0)
- label.BackgroundTransparency = 1
- label.TextColor3 = Color3.new(1, 0, 0)
- label.Font = Enum.Font.GothamBold
- label.TextStrokeColor3 = Color3.new(0,0,0)
- label.TextStrokeTransparency = 0.5
- label.TextScaled = true
- label.Text = "⚠️ " .. brainrot.Name
- end
- local function clearBrainRotAlerts()
- for _, brainrot in pairs(workspace:GetChildren()) do
- if brainrot:IsA("Model") and brainrot.Name:match("BrainRot") then
- if brainrot:FindFirstChild("Head") and brainrot.Head:FindFirstChild("BrainRotAlert") then
- brainrot.Head.BrainRotAlert:Destroy()
- end
- end
- end
- end
- switches.brainRotSignal = createSwitch("⚠️ BrainRot Sinal", false, function(state)
- if state then
- connections.brainRotConn = RunService.Heartbeat:Connect(function()
- for _, obj in pairs(workspace:GetChildren()) do
- if obj:IsA("Model") and obj.Name:match("BrainRot") then
- if obj:FindFirstChild("Head") and not obj.Head:FindFirstChild("BrainRotAlert") then
- createBrainRotAlert(obj)
- end
- end
- end
- end)
- else
- disconnectConnection(connections.brainRotConn)
- clearBrainRotAlerts()
- end
- end)
- -- AutoHit (teleguiado no player mais próximo ao clicar)
- switches.autoHit = createSwitch("🧲 AutoHit Player", false, function(state)
- if state then
- connections.autoHitConn = UIS.InputBegan:Connect(function(input)
- if input.UserInputType == Enum.UserInputType.MouseButton1 then
- local closestPlayer = nil
- local closestDist = math.huge
- for _, p in pairs(Players:GetPlayers()) do
- if p ~= plr and p.Character and p.Character:FindFirstChild("HumanoidRootPart") then
- local dist = (p.Character.HumanoidRootPart.Position - getHRP().Position).Magnitude
- if dist < closestDist then
- closestDist = dist
- closestPlayer = p
- end
- end
- end
- if closestPlayer and closestPlayer.Character and closestPlayer.Character:FindFirstChild("HumanoidRootPart") then
- getHRP().CFrame = closestPlayer.Character.HumanoidRootPart.CFrame * CFrame.new(0, 0, -3)
- end
- end
- end)
- else
- disconnectConnection(connections.autoHitConn)
- end
- end)
- -- NoClip
- switches.noClip = createSwitch("🔓 NoClip", false, function(state)
- if state then
- connections.noClipConn = RunService.Stepped:Connect(function()
- for _, part in pairs(getChar():GetDescendants()) do
- if part:IsA("BasePart") then
- part.CanCollide = false
- end
- end
- end)
- else
- disconnectConnection(connections.noClipConn)
- for _, part in pairs(getChar():GetDescendants()) do
- if part:IsA("BasePart") then
- part.CanCollide = true
- end
- end
- end
- end)
- -- Speed hack (2x velocidade)
- switches.speed = createSwitch("⚡ Speed (2x)", false, function(state)
- local hum = getHum()
- if hum then
- hum.WalkSpeed = state and 32 or 16 -- padrão 16, 2x=32
- end
- end)
- -- Jump hack (2x pulo)
- switches.jump = createSwitch("⬆️ Jump (2x)", false, function(state)
- local hum = getHum()
- if hum then
- hum.JumpPower = state and 100 or 50 -- padrão 50, 2x=100
- end
- end)
- -- Parte 3
- -- Função para criar slider simples (0 a 10 posições)
- local function createSlider(parent, labelText, min, max, default, onChange)
- local container = Instance.new("Frame", parent)
- container.Size = UDim2.new(1, 0, 0, 50)
- container.BackgroundTransparency = 1
- local label = Instance.new("TextLabel", container)
- label.Size = UDim2.new(1, 0, 0, 20)
- label.BackgroundTransparency = 1
- label.Text = labelText
- label.Font = Enum.Font.GothamBold
- label.TextSize = 14
- label.TextColor3 = Color3.new(1,1,1)
- local sliderFrame = Instance.new("Frame", container)
- sliderFrame.Position = UDim2.new(0, 0, 0, 25)
- sliderFrame.Size = UDim2.new(1, 0, 0, 15)
- sliderFrame.BackgroundColor3 = Color3.fromRGB(50, 50, 50)
- sliderFrame.ClipsDescendants = true
- sliderFrame.Active = true
- local sliderButton = Instance.new("ImageButton", sliderFrame)
- sliderButton.Size = UDim2.new(0, 20, 1, 0)
- sliderButton.Position = UDim2.new((default - min) / (max - min), 0, 0, 0)
- sliderButton.BackgroundColor3 = Color3.fromRGB(180, 180, 180)
- sliderButton.AutoButtonColor = false
- sliderButton.Image = ""
- local dragging = false
- sliderButton.MouseButton1Down:Connect(function()
- dragging = true
- end)
- UIS.InputEnded:Connect(function(input)
- if input.UserInputType == Enum.UserInputType.MouseButton1 then
- dragging = false
- end
- end)
- UIS.InputChanged:Connect(function(input)
- if dragging and input.UserInputType == Enum.UserInputType.MouseMovement then
- local x = math.clamp(input.Position.X - sliderFrame.AbsolutePosition.X, 0, sliderFrame.AbsoluteSize.X)
- sliderButton.Position = UDim2.new(0, x, 0, 0)
- local value = math.floor(min + (x / sliderFrame.AbsoluteSize.X) * (max - min))
- sliderButton.Position = UDim2.new((value - min) / (max - min), 0, 0, 0)
- if onChange then onChange(value) end
- end
- end)
- return container
- end
- -- Cores fixas para o ESP e Crosshair
- local colors = {
- Color3.fromRGB(255, 0, 0), -- vermelho
- Color3.fromRGB(0, 255, 0), -- verde
- Color3.fromRGB(0, 0, 255), -- azul
- Color3.fromRGB(255, 255, 0), -- amarelo
- Color3.fromRGB(255, 0, 255), -- magenta
- Color3.fromRGB(0, 255, 255), -- ciano
- Color3.fromRGB(255, 165, 0), -- laranja
- Color3.fromRGB(128, 0, 128), -- roxo
- Color3.fromRGB(255, 192, 203), -- rosa
- Color3.fromRGB(255, 255, 255), -- branco
- }
- -- Slider para cor do ESP (embaixo do botão ESP Players)
- local sliderColorESP = createSlider(scroll, "Cor do ESP", 1, 10, 1, function(value)
- espColor = colors[value]
- -- Atualiza a cor de todos ESP ativos
- for p, conn in pairs(espConnections) do
- if p.Character and p.Character:FindFirstChild("HumanoidRootPart") then
- local box = p.Character.HumanoidRootPart:FindFirstChild("ESP")
- if box then
- box.Color3 = espColor
- end
- local labelGui = p.Character.HumanoidRootPart:FindFirstChild("ESP_GUI")
- if labelGui then
- local label = labelGui:FindFirstChildOfClass("TextLabel")
- if label then
- label.TextColor3 = espColor
- end
- end
- end
- end
- end)
- -- Slider para tamanho do texto ESP
- local sliderSizeESP = createSlider(scroll, "Tamanho do ESP", 8, 24, espTextSize, function(value)
- espTextSize = value
- for p, conn in pairs(espConnections) do
- if p.Character and p.Character:FindFirstChild("HumanoidRootPart") then
- local labelGui = p.Character.HumanoidRootPart:FindFirstChild("ESP_GUI")
- if labelGui then
- local label = labelGui:FindFirstChildOfClass("TextLabel")
- if label then
- label.TextSize = espTextSize
- end
- end
- end
- end
- -- Atualiza também o ESP Cash, caso ativo
- for _, p in pairs(Players:GetPlayers()) do
- if p.Character and p.Character:FindFirstChild("Head") then
- local gui = p.Character.Head:FindFirstChild("ESP_CashGui")
- if gui then
- local label = gui:FindFirstChildOfClass("TextLabel")
- if label then
- label.TextSize = espTextSize
- end
- end
- end
- end
- end)
- -- Crosshair switch com slider de cor e tamanho
- switches.crosshair = createSwitch("🎯 Crosshair", false, function(state)
- if state then
- if not crosshair then
- crosshair = Instance.new("Frame", gui)
- crosshair.Name = "Crosshair"
- crosshair.BackgroundColor3 = espColor
- crosshair.Size = UDim2.new(0, sliderCrosshairSize or 10, 0, 2)
- crosshair.AnchorPoint = Vector2.new(0.5, 0.5)
- crosshair.Position = UDim2.new(0.5, 0, 0.5, 0)
- crosshair.ZIndex = 9999
- end
- else
- if crosshair then
- crosshair:Destroy()
- crosshair = nil
- end
- end
- end)
- local sliderCrosshairSize = 10
- local sliderCrosshairColor = espColor
- -- Slider para cor do Crosshair
- local sliderColorCrosshair = createSlider(scroll, "Cor do Crosshair", 1, 10, 1, function(value)
- sliderCrosshairColor = colors[value]
- if crosshair then
- crosshair.BackgroundColor3 = sliderCrosshairColor
- end
- end)
- -- Slider para tamanho do Crosshair
- local sliderSizeCrosshair = createSlider(scroll, "Tamanho do Crosshair", 2, 20, sliderCrosshairSize, function(value)
- sliderCrosshairSize = value
- if crosshair then
- crosshair.Size = UDim2.new(0, sliderCrosshairSize, 0, 2)
- end
- end)
- -- Botão X fininho no canto para minimizar menu
- local closeButton = Instance.new("TextButton", main)
- closeButton.Text = "✕"
- closeButton.Size = UDim2.new(0, 25, 0, 25)
- closeButton.Position = UDim2.new(1, -30, 0, 5)
- closeButton.BackgroundColor3 = Color3.fromRGB(40,40,40)
- closeButton.TextColor3 = Color3.new(1,1,1)
- closeButton.Font = Enum.Font.GothamBold
- closeButton.TextSize = 20
- closeButton.AutoButtonColor = true
- closeButton.ZIndex = 99999
- Instance.new("UICorner", closeButton)
- closeButton.MouseButton1Click:Connect(function()
- main.Visible = false
- floatBall.Visible = true
- end)
- -- Bola flutuante para abrir menu (igual antes)
- floatBall.Position = UDim2.new(0, 10, 0.5, 0)
- floatBall.Text = "G"
- floatBall.TextSize = 25
- floatBall.Font = Enum.Font.GothamBold
- floatBall.BackgroundColor3 = Color3.fromRGB(0, 170, 255)
- floatBall.TextColor3 = Color3.new(1,1,1)
- floatBall.Visible = false
- floatBall.ZIndex = 99999
- floatBall.MouseButton1Click:Connect(function()
- main.Visible = true
- floatBall.Visible = false
- end)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement