--[[ Cheat Hub V1 Jogo: Futebol (ID: 4743794878) Cores: Preto e Vermelho Bola detectada por: TPS / tps Funções: ESP Ball, ESP Ball Distance, Follow Ball, Bigfoot (Stealth) Anti-Kick: hookmetamethod + GUI Protection Interface: Football Edition Para uso em servidor privado com permissão --]] -- ========== SERVIÇOS ========== local Players = game:GetService("Players") local RunService = game:GetService("RunService") local UserInputService = game:GetService("UserInputService") local CoreGui = game:GetService("CoreGui") local Workspace = game:GetService("Workspace") local TweenService = game:GetService("TweenService") local LocalPlayer = Players.LocalPlayer local Camera = Workspace.CurrentCamera -- ========== CONFIGURAÇÕES ========== local CONFIG = { ESPBall = false, ESPBallDistance = false, FollowBall = false, Bigfoot = false, BigfootReach = 50, BigfootInterval = 0.1, FollowSpeed = 16, FollowDistance = 4, BallColor = Color3.fromRGB(255, 0, 0), DistanceColor = Color3.fromRGB(255, 50, 50), } -- ========== REMOVER GUI ANTIGA ========== pcall(function() if CoreGui:FindFirstChild("CheatHubV1") then CoreGui.CheatHubV1:Destroy() end end) -- ========== CRIAR SCREEN GUI ========== local ScreenGui = Instance.new("ScreenGui") ScreenGui.Name = "CheatHubV1" ScreenGui.ResetOnSpawn = false ScreenGui.ZIndexBehavior = Enum.ZIndexBehavior.Sibling ScreenGui.IgnoreGuiInset = true ScreenGui.Parent = CoreGui -- ========== ANTI-KICK BYPASS ========== local AntiKick = {Enabled = true} pcall(function() if syn and syn.protect_gui then syn.protect_gui(ScreenGui) elseif protect_gui then protect_gui(ScreenGui) end end) pcall(function() if gethui then ScreenGui.Parent = gethui() end end) -- Hook __namecall: bloqueia Player:Kick() local oldNamecall pcall(function() oldNamecall = hookmetamethod(game, "__namecall", function(self, ...) local method = getnamecallmethod() if AntiKick.Enabled and (method == "Kick" or method == "kick") then warn("[Cheat Hub V1] Kick bloqueado! Motivo: " .. tostring(({...})[1])) return nil end return oldNamecall(self, ...) end) end) -- Hook __index: bloqueia acesso direto a Player.Kick local oldIndex pcall(function() oldIndex = hookmetamethod(game, "__index", function(self, key) if AntiKick.Enabled and key == "Kick" and typeof(self) == "Instance" and self:IsA("Player") then return function() warn("[Cheat Hub V1] Tentativa de kick via Player.Kick bloqueada") end end return oldIndex(self, key) end) end) print("[Cheat Hub V1] Anti-Kick ativado.") -- ========== MAIN FRAME ========== local MainFrame = Instance.new("Frame") MainFrame.Name = "MainFrame" MainFrame.Size = UDim2.new(0, 360, 0, 460) MainFrame.Position = UDim2.new(0.5, -180, 0.5, -230) MainFrame.BackgroundColor3 = Color3.fromRGB(12, 12, 14) MainFrame.BorderSizePixel = 0 MainFrame.Active = true MainFrame.Draggable = true MainFrame.Parent = ScreenGui MainFrame.ClipsDescendants = true local MainCorner = Instance.new("UICorner") MainCorner.CornerRadius = UDim.new(0, 14) MainCorner.Parent = MainFrame local MainStroke = Instance.new("UIStroke") MainStroke.Color = Color3.fromRGB(180, 0, 0) MainStroke.Thickness = 1.5 MainStroke.Transparency = 0.2 MainStroke.Parent = MainFrame local BGGradient = Instance.new("UIGradient") BGGradient.Color = ColorSequence.new({ ColorSequenceKeypoint.new(0, Color3.fromRGB(20, 5, 5)), ColorSequenceKeypoint.new(0.5, Color3.fromRGB(15, 10, 10)), ColorSequenceKeypoint.new(1, Color3.fromRGB(8, 8, 10)), }) BGGradient.Rotation = 135 BGGradient.Parent = MainFrame -- ========== HEADER ========== local Header = Instance.new("Frame") Header.Name = "Header" Header.Size = UDim2.new(1, 0, 0, 70) Header.BackgroundColor3 = Color3.fromRGB(18, 0, 0) Header.BorderSizePixel = 0 Header.Parent = MainFrame local HeaderCorner = Instance.new("UICorner") HeaderCorner.CornerRadius = UDim.new(0, 14) HeaderCorner.Parent = Header local HeaderCover = Instance.new("Frame") HeaderCover.Size = UDim2.new(1, 0, 0, 15) HeaderCover.Position = UDim2.new(0, 0, 1, -15) HeaderCover.BackgroundColor3 = Color3.fromRGB(18, 0, 0) HeaderCover.BorderSizePixel = 0 HeaderCover.Parent = Header local HeaderGradient = Instance.new("UIGradient") HeaderGradient.Color = ColorSequence.new({ ColorSequenceKeypoint.new(0, Color3.fromRGB(60, 0, 0)), ColorSequenceKeypoint.new(0.5, Color3.fromRGB(35, 0, 0)), ColorSequenceKeypoint.new(1, Color3.fromRGB(18, 0, 0)), }) HeaderGradient.Rotation = 90 HeaderGradient.Parent = Header local HeaderLine = Instance.new("Frame") HeaderLine.Size = UDim2.new(1, 0, 0, 2) HeaderLine.Position = UDim2.new(0, 0, 1, -2) HeaderLine.BackgroundColor3 = Color3.fromRGB(255, 0, 0) HeaderLine.BorderSizePixel = 0 HeaderLine.Parent = Header local HeaderLineGradient = Instance.new("UIGradient") HeaderLineGradient.Transparency = NumberSequence.new({ NumberSequenceKeypoint.new(0, 1), NumberSequenceKeypoint.new(0.5, 0), NumberSequenceKeypoint.new(1, 1), }) HeaderLineGradient.Parent = HeaderLine -- Logo Badge local LogoBadge = Instance.new("Frame") LogoBadge.Name = "LogoBadge" LogoBadge.Size = UDim2.new(0, 46, 0, 46) LogoBadge.Position = UDim2.new(0, 14, 0.5, -23) LogoBadge.BackgroundColor3 = Color3.fromRGB(30, 0, 0) LogoBadge.BorderSizePixel = 0 LogoBadge.Parent = Header local LogoCorner = Instance.new("UICorner") LogoCorner.CornerRadius = UDim.new(1, 0) LogoCorner.Parent = LogoBadge local LogoStroke = Instance.new("UIStroke") LogoStroke.Color = Color3.fromRGB(255, 30, 30) LogoStroke.Thickness = 2 LogoStroke.Parent = LogoBadge local LogoGlow = Instance.new("ImageLabel") LogoGlow.Size = UDim2.new(1, 20, 1, 20) LogoGlow.Position = UDim2.new(0, -10, 0, -10) LogoGlow.BackgroundTransparency = 1 LogoGlow.Image = "rbxassetid://5028857084" LogoGlow.ImageColor3 = Color3.fromRGB(255, 0, 0) LogoGlow.ImageTransparency = 0.7 LogoGlow.ZIndex = 0 LogoGlow.Parent = LogoBadge local LogoEmoji = Instance.new("TextLabel") LogoEmoji.Size = UDim2.new(1, 0, 1, 0) LogoEmoji.BackgroundTransparency = 1 LogoEmoji.Text = "⚽" LogoEmoji.TextSize = 26 LogoEmoji.Font = Enum.Font.GothamBold LogoEmoji.ZIndex = 2 LogoEmoji.Parent = LogoBadge -- Nome do Hub local HubName = Instance.new("TextLabel") HubName.Name = "HubName" HubName.Size = UDim2.new(0, 200, 0, 24) HubName.Position = UDim2.new(0, 70, 0, 12) HubName.BackgroundTransparency = 1 HubName.Text = "CHEAT HUB" HubName.TextColor3 = Color3.fromRGB(255, 30, 30) HubName.TextSize = 20 HubName.Font = Enum.Font.GothamBold HubName.TextXAlignment = Enum.TextXAlignment.Left HubName.Parent = Header local HubVersion = Instance.new("TextLabel") HubVersion.Name = "HubVersion" HubVersion.Size = UDim2.new(0, 200, 0, 16) HubVersion.Position = UDim2.new(0, 70, 0, 36) HubVersion.BackgroundTransparency = 1 HubVersion.Text = "v1 • FOOTBALL EDITION" HubVersion.TextColor3 = Color3.fromRGB(180, 60, 60) HubVersion.TextSize = 11 HubVersion.Font = Enum.Font.GothamSemibold HubVersion.TextXAlignment = Enum.TextXAlignment.Left HubVersion.Parent = Header -- Botão Fechar local CloseBtn = Instance.new("TextButton") CloseBtn.Name = "CloseBtn" CloseBtn.Size = UDim2.new(0, 26, 0, 26) CloseBtn.Position = UDim2.new(1, -36, 0, 12) CloseBtn.BackgroundColor3 = Color3.fromRGB(50, 0, 0) CloseBtn.BorderSizePixel = 0 CloseBtn.Text = "✕" CloseBtn.TextColor3 = Color3.fromRGB(255, 80, 80) CloseBtn.TextSize = 14 CloseBtn.Font = Enum.Font.GothamBold CloseBtn.AutoButtonColor = false CloseBtn.Parent = Header local CloseCorner = Instance.new("UICorner") CloseCorner.CornerRadius = UDim.new(0, 8) CloseCorner.Parent = CloseBtn CloseBtn.MouseEnter:Connect(function() CloseBtn.BackgroundColor3 = Color3.fromRGB(200, 0, 0) CloseBtn.TextColor3 = Color3.fromRGB(255, 255, 255) end) CloseBtn.MouseLeave:Connect(function() CloseBtn.BackgroundColor3 = Color3.fromRGB(50, 0, 0) CloseBtn.TextColor3 = Color3.fromRGB(255, 80, 80) end) -- Botão Minimizar local MinimizeBtn = Instance.new("TextButton") MinimizeBtn.Name = "MinimizeBtn" MinimizeBtn.Size = UDim2.new(0, 26, 0, 26) MinimizeBtn.Position = UDim2.new(1, -68, 0, 12) MinimizeBtn.BackgroundColor3 = Color3.fromRGB(50, 0, 0) MinimizeBtn.BorderSizePixel = 0 MinimizeBtn.Text = "—" MinimizeBtn.TextColor3 = Color3.fromRGB(255, 150, 150) MinimizeBtn.TextSize = 16 MinimizeBtn.Font = Enum.Font.GothamBold MinimizeBtn.AutoButtonColor = false MinimizeBtn.Parent = Header local MinCorner = Instance.new("UICorner") MinCorner.CornerRadius = UDim.new(0, 8) MinCorner.Parent = MinimizeBtn MinimizeBtn.MouseEnter:Connect(function() MinimizeBtn.BackgroundColor3 = Color3.fromRGB(120, 0, 0) end) MinimizeBtn.MouseLeave:Connect(function() MinimizeBtn.BackgroundColor3 = Color3.fromRGB(50, 0, 0) end) -- Badge PRIVATE local PrivateBadge = Instance.new("TextLabel") PrivateBadge.Size = UDim2.new(0, 62, 0, 18) PrivateBadge.Position = UDim2.new(1, -75, 0, 42) PrivateBadge.BackgroundColor3 = Color3.fromRGB(60, 0, 0) PrivateBadge.BorderSizePixel = 0 PrivateBadge.Text = "PRIVATE" PrivateBadge.TextColor3 = Color3.fromRGB(255, 100, 100) PrivateBadge.TextSize = 9 PrivateBadge.Font = Enum.Font.GothamBold PrivateBadge.Parent = Header local BadgeCorner = Instance.new("UICorner") BadgeCorner.CornerRadius = UDim.new(0, 4) BadgeCorner.Parent = PrivateBadge -- Seção FEATURES local SectionLabel = Instance.new("TextLabel") SectionLabel.Size = UDim2.new(1, -28, 0, 20) SectionLabel.Position = UDim2.new(0, 14, 0, 82) SectionLabel.BackgroundTransparency = 1 SectionLabel.Text = "▎ FEATURES" SectionLabel.TextColor3 = Color3.fromRGB(200, 60, 60) SectionLabel.TextSize = 11 SectionLabel.Font = Enum.Font.GothamBold SectionLabel.TextXAlignment = Enum.TextXAlignment.Left SectionLabel.Parent = MainFrame -- ========== SCROLLING FRAME ========== local Content = Instance.new("ScrollingFrame") Content.Name = "Content" Content.Size = UDim2.new(1, -24, 1, -160) Content.Position = UDim2.new(0, 12, 0, 106) Content.BackgroundTransparency = 1 Content.BorderSizePixel = 0 Content.ScrollBarThickness = 3 Content.ScrollBarImageColor3 = Color3.fromRGB(180, 0, 0) Content.CanvasSize = UDim2.new(0, 0, 0, 0) Content.AutomaticCanvasSize = Enum.AutomaticSize.Y Content.Parent = MainFrame local ContentLayout = Instance.new("UIListLayout") ContentLayout.Padding = UDim.new(0, 8) ContentLayout.SortOrder = Enum.SortOrder.LayoutOrder ContentLayout.Parent = Content -- ========== RODAPÉ ========== local Footer = Instance.new("Frame") Footer.Name = "Footer" Footer.Size = UDim2.new(1, -24, 0, 32) Footer.Position = UDim2.new(0, 12, 1, -44) Footer.BackgroundColor3 = Color3.fromRGB(18, 8, 8) Footer.BorderSizePixel = 0 Footer.Parent = MainFrame local FooterCorner = Instance.new("UICorner") FooterCorner.CornerRadius = UDim.new(0, 8) FooterCorner.Parent = Footer local StatusDot = Instance.new("Frame") StatusDot.Size = UDim2.new(0, 8, 0, 8) StatusDot.Position = UDim2.new(0, 10, 0.5, -4) StatusDot.BackgroundColor3 = Color3.fromRGB(0, 255, 100) StatusDot.BorderSizePixel = 0 StatusDot.Parent = Footer local DotCorner = Instance.new("UICorner") DotCorner.CornerRadius = UDim.new(1, 0) DotCorner.Parent = StatusDot local PulseTween = TweenService:Create( StatusDot, TweenInfo.new(1, Enum.EasingStyle.Sine, Enum.EasingDirection.InOut, -1, true), { BackgroundTransparency = 0.5 } ) PulseTween:Play() local StatusText = Instance.new("TextLabel") StatusText.Size = UDim2.new(1, -40, 1, 0) StatusText.Position = UDim2.new(0, 24, 0, 0) StatusText.BackgroundTransparency = 1 StatusText.Text = "Online • Servidor Privado" StatusText.TextColor3 = Color3.fromRGB(150, 150, 150) StatusText.TextSize = 10 StatusText.Font = Enum.Font.GothamMedium StatusText.TextXAlignment = Enum.TextXAlignment.Left StatusText.Parent = Footer local KeybindText = Instance.new("TextLabel") KeybindText.Size = UDim2.new(0, 100, 1, 0) KeybindText.Position = UDim2.new(1, -105, 0, 0) KeybindText.BackgroundTransparency = 1 KeybindText.Text = "RSHIFT = Hide" KeybindText.TextColor3 = Color3.fromRGB(200, 60, 60) KeybindText.TextSize = 10 KeybindText.Font = Enum.Font.GothamSemibold KeybindText.TextXAlignment = Enum.TextXAlignment.Right KeybindText.Parent = Footer -- ========== FUNÇÃO CRIAR BOTÃO (com ícone) ========== local function CreateToggleButton(icon, name, order, callback) local Btn = Instance.new("TextButton") Btn.Name = name Btn.Size = UDim2.new(1, -6, 0, 46) Btn.BackgroundColor3 = Color3.fromRGB(22, 22, 24) Btn.BorderSizePixel = 0 Btn.Text = "" Btn.AutoButtonColor = false Btn.LayoutOrder = order Btn.Parent = Content local Corner = Instance.new("UICorner") Corner.CornerRadius = UDim.new(0, 8) Corner.Parent = Btn local Stroke = Instance.new("UIStroke") Stroke.Color = Color3.fromRGB(60, 60, 65) Stroke.Thickness = 1 Stroke.Transparency = 0.3 Stroke.Parent = Btn local IconLabel = Instance.new("TextLabel") IconLabel.Size = UDim2.new(0, 36, 1, 0) IconLabel.Position = UDim2.new(0, 6, 0, 0) IconLabel.BackgroundTransparency = 1 IconLabel.Text = icon IconLabel.TextSize = 20 IconLabel.Font = Enum.Font.GothamBold IconLabel.Parent = Btn local NameLabel = Instance.new("TextLabel") NameLabel.Size = UDim2.new(1, -100, 1, 0) NameLabel.Position = UDim2.new(0, 44, 0, 0) NameLabel.BackgroundTransparency = 1 NameLabel.Text = name NameLabel.TextColor3 = Color3.fromRGB(230, 230, 230) NameLabel.TextSize = 13 NameLabel.Font = Enum.Font.GothamSemibold NameLabel.TextXAlignment = Enum.TextXAlignment.Left NameLabel.Parent = Btn local Pill = Instance.new("Frame") Pill.Size = UDim2.new(0, 44, 0, 22) Pill.Position = UDim2.new(1, -52, 0.5, -11) Pill.BackgroundColor3 = Color3.fromRGB(40, 40, 45) Pill.BorderSizePixel = 0 Pill.Parent = Btn local PillCorner = Instance.new("UICorner") PillCorner.CornerRadius = UDim.new(1, 0) PillCorner.Parent = Pill local PillDot = Instance.new("Frame") PillDot.Size = UDim2.new(0, 16, 0, 16) PillDot.Position = UDim2.new(0, 3, 0.5, -8) PillDot.BackgroundColor3 = Color3.fromRGB(120, 120, 130) PillDot.BorderSizePixel = 0 PillDot.Parent = Pill local DotCorner = Instance.new("UICorner") DotCorner.CornerRadius = UDim.new(1, 0) DotCorner.Parent = PillDot local PillText = Instance.new("TextLabel") PillText.Size = UDim2.new(0, 20, 1, 0) PillText.Position = UDim2.new(1, -22, 0, 0) PillText.BackgroundTransparency = 1 PillText.Text = "OFF" PillText.TextColor3 = Color3.fromRGB(150, 150, 160) PillText.TextSize = 8 PillText.Font = Enum.Font.GothamBold PillText.Parent = Pill local state = false local function setVisual(on) local targetBg = on and Color3.fromRGB(120, 0, 0) or Color3.fromRGB(22, 22, 24) local targetStroke = on and Color3.fromRGB(255, 30, 30) or Color3.fromRGB(60, 60, 65) local targetPill = on and Color3.fromRGB(180, 0, 0) or Color3.fromRGB(40, 40, 45) local targetDot = on and Color3.fromRGB(255, 255, 255) or Color3.fromRGB(120, 120, 130) local targetDotPos = on and UDim2.new(1, -19, 0.5, -8) or UDim2.new(0, 3, 0.5, -8) local targetName = on and Color3.fromRGB(255, 60, 60) or Color3.fromRGB(230, 230, 230) TweenService:Create(Btn, TweenInfo.new(0.2), {BackgroundColor3 = targetBg}):Play() TweenService:Create(Stroke, TweenInfo.new(0.2), {Color = targetStroke}):Play() TweenService:Create(Pill, TweenInfo.new(0.2), {BackgroundColor3 = targetPill}):Play() TweenService:Create(PillDot, TweenInfo.new(0.2), {BackgroundColor3 = targetDot, Position = targetDotPos}):Play() TweenService:Create(NameLabel, TweenInfo.new(0.2), {TextColor3 = targetName}):Play() PillText.Text = on and "ON" or "OFF" PillText.TextColor3 = on and Color3.fromRGB(255, 200, 200) or Color3.fromRGB(150, 150, 160) end Btn.MouseEnter:Connect(function() if not state then TweenService:Create(Btn, TweenInfo.new(0.15), {BackgroundColor3 = Color3.fromRGB(35, 20, 20)}):Play() end end) Btn.MouseLeave:Connect(function() if not state then TweenService:Create(Btn, TweenInfo.new(0.15), {BackgroundColor3 = Color3.fromRGB(22, 22, 24)}):Play() end end) Btn.MouseButton1Click:Connect(function() state = not state setVisual(state) if callback then callback(state) end end) return Btn end -- ========== DETECÇÃO DA BOLA (TPS / tps) ========== local CachedBall = nil local LastBallCheck = 0 local function GetBall() if CachedBall and CachedBall.Parent then return CachedBall end local now = tick() if now - LastBallCheck < 0.5 then return CachedBall end LastBallCheck = now for _, obj in ipairs(Workspace:GetDescendants()) do if obj:IsA("BasePart") then local n = obj.Name if n == "TPS" or n:lower() == "tps" then CachedBall = obj return obj end end end CachedBall = nil return nil end -- ========== ESP BALL ========== local BallESP = {Billboard = nil, Connection = nil} local function EnableBallESP(enabled) if BallESP.Connection then BallESP.Connection:Disconnect() BallESP.Connection = nil end if BallESP.Billboard then BallESP.Billboard:Destroy() BallESP.Billboard = nil end if not enabled then return end BallESP.Connection = RunService.RenderStepped:Connect(function() local ball = GetBall() if not ball then if BallESP.Billboard then BallESP.Billboard:Destroy() BallESP.Billboard = nil end return end if not BallESP.Billboard or not BallESP.Billboard.Parent then local Billboard = Instance.new("BillboardGui") Billboard.Name = "CheatHub_BallESP" Billboard.Size = UDim2.new(0, 60, 0, 60) Billboard.AlwaysOnTop = true Billboard.Adornee = ball Billboard.Parent = ball local Circle = Instance.new("Frame") Circle.Size = UDim2.new(1, 0, 1, 0) Circle.BackgroundTransparency = 1 Circle.Parent = Billboard local CircleCorner = Instance.new("UICorner") CircleCorner.CornerRadius = UDim.new(1, 0) CircleCorner.Parent = Circle local CircleStroke = Instance.new("UIStroke") CircleStroke.Color = Color3.fromRGB(255, 0, 0) CircleStroke.Thickness = 3 CircleStroke.Parent = Circle local Glow = Instance.new("Frame") Glow.Size = UDim2.new(0.7, 0, 0.7, 0) Glow.Position = UDim2.new(0.15, 0, 0.15, 0) Glow.BackgroundColor3 = Color3.fromRGB(255, 0, 0) Glow.BackgroundTransparency = 0.6 Glow.BorderSizePixel = 0 Glow.Parent = Billboard local GlowCorner = Instance.new("UICorner") GlowCorner.CornerRadius = UDim.new(1, 0) GlowCorner.Parent = Glow BallESP.Billboard = Billboard else BallESP.Billboard.Adornee = ball end end) end -- ========== ESP BALL DISTANCE ========== local BallDistanceESP = {Billboard = nil, Label = nil, Connection = nil} local function GetNearestBallDistance() local char = LocalPlayer.Character if not char then return nil end local hrp = char:FindFirstChild("HumanoidRootPart") if not hrp then return nil end local ball = GetBall() if not ball then return nil end return (hrp.Position - ball.Position).Magnitude end local function EnableBallDistance(enabled) if BallDistanceESP.Connection then BallDistanceESP.Connection:Disconnect() BallDistanceESP.Connection = nil end if BallDistanceESP.Billboard then BallDistanceESP.Billboard:Destroy() BallDistanceESP.Billboard = nil BallDistanceESP.Label = nil end if not enabled then return end BallDistanceESP.Connection = RunService.RenderStepped:Connect(function() local ball = GetBall() if not ball then if BallDistanceESP.Billboard then BallDistanceESP.Billboard:Destroy() BallDistanceESP.Billboard = nil BallDistanceESP.Label = nil end return end local dist = GetNearestBallDistance() if not dist then return end if not BallDistanceESP.Billboard or not BallDistanceESP.Billboard.Parent then local Billboard = Instance.new("BillboardGui") Billboard.Name = "CheatHub_BallDistance" Billboard.Size = UDim2.new(0, 120, 0, 30) Billboard.StudsOffset = Vector3.new(0, 3, 0) Billboard.AlwaysOnTop = true Billboard.Adornee = ball Billboard.Parent = ball local Label = Instance.new("TextLabel") Label.Size = UDim2.new(1, 0, 1, 0) Label.BackgroundColor3 = Color3.fromRGB(0, 0, 0) Label.BackgroundTransparency = 0.3 Label.BorderSizePixel = 0 Label.Text = "0 studs" Label.TextColor3 = Color3.fromRGB(255, 60, 60) Label.TextSize = 14 Label.Font = Enum.Font.GothamBold Label.Parent = Billboard local LCorner = Instance.new("UICorner") LCorner.CornerRadius = UDim.new(0, 6) LCorner.Parent = Label local LStroke = Instance.new("UIStroke") LStroke.Color = Color3.fromRGB(255, 0, 0) LStroke.Thickness = 1.5 LStroke.Parent = Label BallDistanceESP.Billboard = Billboard BallDistanceESP.Label = Label else BallDistanceESP.Billboard.Adornee = ball end if BallDistanceESP.Label then BallDistanceESP.Label.Text = string.format("⚽ %.1f studs", dist) end end) end -- ========== FOLLOW BALL ========== local FollowBall = {Connection = nil, BV = nil} local function StopFollow() if FollowBall.Connection then FollowBall.Connection:Disconnect() FollowBall.Connection = nil end local char = LocalPlayer.Character if char then local hrp = char:FindFirstChild("HumanoidRootPart") if hrp then for _, obj in ipairs(hrp:GetChildren()) do if obj.Name == "CheatHub_FollowBV" then obj:Destroy() end end end end FollowBall.BV = nil end local function EnableFollowBall(enabled) if FollowBall.Connection then StopFollow() end if not enabled then return end FollowBall.Connection = RunService.Heartbeat:Connect(function() local ball = GetBall() if not ball then return end local char = LocalPlayer.Character if not char then return end local hrp = char:FindFirstChild("HumanoidRootPart") local humanoid = char:FindFirstChildOfClass("Humanoid") if not hrp or not humanoid or humanoid.Health <= 0 then return end if not FollowBall.BV or not FollowBall.BV.Parent then FollowBall.BV = Instance.new("BodyVelocity") FollowBall.BV.Name = "CheatHub_FollowBV" FollowBall.BV.MaxForce = Vector3.new(math.huge, 0, math.huge) FollowBall.BV.P = 1250 FollowBall.BV.Velocity = Vector3.zero FollowBall.BV.Parent = hrp end local direction = ball.Position - hrp.Position local flatDir = Vector3.new(direction.X, 0, direction.Z) local distance = flatDir.Magnitude if distance > CONFIG.FollowDistance then local moveDir = flatDir.Unit FollowBall.BV.Velocity = moveDir * CONFIG.FollowSpeed hrp.CFrame = CFrame.new(hrp.Position, hrp.Position + flatDir.Unit) else FollowBall.BV.Velocity = Vector3.zero end end) end -- ========== BIGFOOT (STEALTH REACH) ========== local Bigfoot = {Connection = nil, Hitbox = nil, LastCheck = 0} local function StopBigfoot() if Bigfoot.Connection then Bigfoot.Connection:Disconnect() Bigfoot.Connection = nil end local char = LocalPlayer.Character if char then local hitbox = char:FindFirstChild("CheatHub_Hitbox") if hitbox then hitbox:Destroy() end end Bigfoot.Hitbox = nil end local function EnableBigfoot(enabled) if Bigfoot.Connection then StopBigfoot() end if not enabled then return end Bigfoot.Connection = RunService.Heartbeat:Connect(function() local now = tick() if now - Bigfoot.LastCheck < CONFIG.BigfootInterval then return end Bigfoot.LastCheck = now local ball = GetBall() if not ball then return end local char = LocalPlayer.Character if not char then return end local hrp = char:FindFirstChild("HumanoidRootPart") if not hrp then return end local distance = (hrp.Position - ball.Position).Magnitude if distance <= CONFIG.BigfootReach then if not Bigfoot.Hitbox or not Bigfoot.Hitbox.Parent then Bigfoot.Hitbox = Instance.new("Part") Bigfoot.Hitbox.Name = "CheatHub_Hitbox" Bigfoot.Hitbox.Size = Vector3.new(8, 8, 8) Bigfoot.Hitbox.Transparency = 1 Bigfoot.Hitbox.CanCollide = false Bigfoot.Hitbox.CanTouch = true Bigfoot.Hitbox.CanQuery = false Bigfoot.Hitbox.Massless = true Bigfoot.Hitbox.Anchored = true Bigfoot.Hitbox.Parent = char end local midPoint = hrp.Position:Lerp(ball.Position, 0.5) Bigfoot.Hitbox.CFrame = CFrame.new(midPoint) Bigfoot.Hitbox.Size = Vector3.new( math.min(distance, 8), math.min(distance, 8), math.min(distance, 8) ) else if Bigfoot.Hitbox then Bigfoot.Hitbox.CFrame = CFrame.new(0, -500, 0) end end end) end -- ========== BOTÕES ========== CreateToggleButton("📡", "ESP Ball", 1, function(state) CONFIG.ESPBall = state EnableBallESP(state) end) CreateToggleButton("📏", "ESP Ball Distance", 2, function(state) CONFIG.ESPBallDistance = state EnableBallDistance(state) end) CreateToggleButton("🏃", "Follow Ball", 3, function(state) CONFIG.FollowBall = state EnableFollowBall(state) end) CreateToggleButton("👣", "Bigfoot", 4, function(state) CONFIG.Bigfoot = state EnableBigfoot(state) end) CreateToggleButton("🛡️", "Anti-Kick", 5, function(state) AntiKick.Enabled = state print("[Cheat Hub V1] Anti-Kick: " .. (state and "ON" or "OFF")) end) -- ========== FUNÇÕES DOS BOTÕES DO HEADER ========== CloseBtn.MouseButton1Click:Connect(function() ScreenGui:Destroy() end) local minimized = false MinimizeBtn.MouseButton1Click:Connect(function() minimized = not minimized if minimized then TweenService:Create(MainFrame, TweenInfo.new(0.25), {Size = UDim2.new(0, 360, 0, 70)}):Play() else TweenService:Create(MainFrame, TweenInfo.new(0.25), {Size = UDim2.new(0, 360, 0, 460)}):Play() end end) -- ========== TOGGLE COM TECLA ========== UserInputService.InputBegan:Connect(function(input, gp) if gp then return end if input.KeyCode == Enum.KeyCode.RightShift then MainFrame.Visible = not MainFrame.Visible end end) -- ========== AVISO INICIAL (5s) ========== local AvisoFrame = Instance.new("Frame") AvisoFrame.Name = "AvisoInicial" AvisoFrame.Size = UDim2.new(0, 340, 0, 60) AvisoFrame.Position = UDim2.new(0.5, -170, 0, -80) AvisoFrame.BackgroundColor3 = Color3.fromRGB(18, 0, 0) AvisoFrame.BorderSizePixel = 0 AvisoFrame.ZIndex = 10 AvisoFrame.Parent = ScreenGui local AvisoCorner = Instance.new("UICorner") AvisoCorner.CornerRadius = UDim.new(0, 10) AvisoCorner.Parent = AvisoFrame local AvisoStroke = Instance.new("UIStroke") AvisoStroke.Color = Color3.fromRGB(255, 30, 30) AvisoStroke.Thickness = 1.5 AvisoStroke.Parent = AvisoFrame local AvisoBar = Instance.new("Frame") AvisoBar.Size = UDim2.new(0, 4, 1, -12) AvisoBar.Position = UDim2.new(0, 6, 0, 6) AvisoBar.BackgroundColor3 = Color3.fromRGB(255, 0, 0) AvisoBar.BorderSizePixel = 0 AvisoBar.Parent = AvisoFrame local AvisoBarCorner = Instance.new("UICorner") AvisoBarCorner.CornerRadius = UDim.new(1, 0) AvisoBarCorner.Parent = AvisoBar local AvisoIcon = Instance.new("TextLabel") AvisoIcon.Size = UDim2.new(0, 40, 1, 0) AvisoIcon.Position = UDim2.new(0, 16, 0, 0) AvisoIcon.BackgroundTransparency = 1 AvisoIcon.Text = "⚠️" AvisoIcon.TextSize = 24 AvisoIcon.Font = Enum.Font.GothamBold AvisoIcon.Parent = AvisoFrame local AvisoText = Instance.new("TextLabel") AvisoText.Size = UDim2.new(1, -70, 1, 0) AvisoText.Position = UDim2.new(0, 60, 0, 0) AvisoText.BackgroundTransparency = 1 AvisoText.Text = "Para usar o script, ative Anti-Kick!" AvisoText.TextColor3 = Color3.fromRGB(255, 200, 200) AvisoText.TextSize = 13 AvisoText.Font = Enum.Font.GothamSemibold AvisoText.TextXAlignment = Enum.TextXAlignment.Left AvisoText.TextWrapped = true AvisoText.Parent = AvisoFrame -- Animação: entra deslizando de cima TweenService:Create( AvisoFrame, TweenInfo.new(0.5, Enum.EasingStyle.Back, Enum.EasingDirection.Out), { Position = UDim2.new(0.5, -170, 0, 20) } ):Play() -- Depois de 5 segundos, sai deslizando pra cima e é destruído task.delay(5, function() local sairTween = TweenService:Create( AvisoFrame, TweenInfo.new(0.5, Enum.EasingStyle.Quad, Enum.EasingDirection.In), { Position = UDim2.new(0.5, -170, 0, -100), BackgroundTransparency = 1 } ) sairTween:Play() for _, child in ipairs(AvisoFrame:GetDescendants()) do if child:IsA("TextLabel") then TweenService:Create(child, TweenInfo.new(0.5), { TextTransparency = 1 }):Play() elseif child:IsA("Frame") then TweenService:Create(child, TweenInfo.new(0.5), { BackgroundTransparency = 1 }):Play() elseif child:IsA("UIStroke") then TweenService:Create(child, TweenInfo.new(0.5), { Transparency = 1 }):Play() end end sairTween.Completed:Connect(function() AvisoFrame:Destroy() end) end) -- ========== NOTIFICAÇÃO ========== print("[Cheat Hub V1] Carregado! Bola detectada por: TPS") print("[Cheat Hub V1] Pressione RightShift para esconder/mostrar a UI.") print("[Cheat Hub V1] Funções: ESP Ball | ESP Ball Distance | Follow Ball | Bigfoot | Anti-Kick")