
KeylessUniversal

-- MINI HUB MOBILE | PAINEL BONITO
-- Atravessar Fantasma (sem atravessar bola)
-- Desarme Auto 20 Studs | Puxar Bola | Empurrar Jogadores
-- ================= SERVIÇOS =================
local Players = game:GetService("Players")
local RunService = game:GetService("RunService")
local UIS = game:GetService("UserInputService")
local LocalPlayer = Players.LocalPlayer
local PlayerGui = LocalPlayer:WaitForChild("PlayerGui")
-- ================= VARIÁVEIS =================
local ghost = false
local autoSteal = false
local pullBall = false
local pushPlayers = false
-- ================= FUNÇÃO =================
local function getChar()
return LocalPlayer.Character or LocalPlayer.CharacterAdded:Wait()
end
-- ================= ATRAVESSAR FANTASMA =================
RunService.Stepped:Connect(function()
if ghost then
for _, part in pairs(getChar():GetChildren()) do
if part:IsA("BasePart") then
part.CanCollide = true
part.Touched:Connect(function(hit)
if not hit.Name:lower():find("ball") then
part.CanCollide = false
end
end)
end
end
end
end)
-- ================= DESARME AUTO (20 STUDS) =================
RunService.Heartbeat:Connect(function()
if autoSteal then
local char = getChar()
local hrp = char:FindFirstChild("HumanoidRootPart")
if not hrp then return end
for _, obj in pairs(workspace:GetDescendants()) do
if obj:IsA("BasePart") and obj.Name:lower():find("ball") then
if (obj.Position - hrp.Position).Magnitude <= 20 then
obj.CFrame = hrp.CFrame * CFrame.new(0,0,-2)
end
end
end
end
end)
-- ================= GUI =================
local Gui = Instance.new("ScreenGui", PlayerGui)
Gui.Name = "MobileHub"
Gui.ResetOnSpawn = false
local Main = Instance.new("Frame", Gui)
Main.Size = UDim2.new(0,280,0,340)
Main.Position = UDim2.new(0.5,-140,0.5,-170)
Main.BackgroundColor3 = Color3.fromRGB(30,30,30)
Main.BorderSizePixel = 0
Main.Active = true
Main.Draggable = true
-- Sombra
local UICorner = Instance.new("UICorner", Main)
UICorner.CornerRadius = UDim.new(0,16)
-- Título
local Title = Instance.new("TextLabel", Main)
Title.Size = UDim2.new(1,0,0,50)
Title.BackgroundColor3 = Color3.fromRGB(20,20,20)
Title.Text = "⚽ Mobile Hub"
Title.TextColor3 = Color3.fromRGB(255,255,255)
Title.Font = Enum.Font.GothamBold
Title.TextSize = 22
Instance.new("UICorner", Title).CornerRadius = UDim.new(0,16)
-- Container
local UIList = Instance.new("UIListLayout", Main)
UIList.Padding = UDim.new(0,10)
UIList.HorizontalAlignment = Enum.HorizontalAlignment.Center
UIList.VerticalAlignment = Enum.VerticalAlignment.Top
UIList.SortOrder = Enum.SortOrder.LayoutOrder
UIList.Padding = UDim.new(0,10)
UIList.Parent = Main
Title.LayoutOrder = 1
-- Função botão toggle bonito
local function createToggle(text, callback)
local btn = Instance.new("TextButton")
btn.Size = UDim2.new(0,240,0,44)
btn.BackgroundColor3 = Color3.fromRGB(45,45,45)
btn.Text = text.." [OFF]"
btn.TextColor3 = Color3.fromRGB(255,255,255)
btn.Font = Enum.Font.Gotham
btn.TextSize = 16
btn.AutoButtonColor = false
btn.Parent = Main
Instance.new("UICorner", btn).CornerRadius = UDim.new(0,12)
local on = false
btn.MouseButton1Click:Connect(function()
on = not on
btn.Text = text.." ["..(on and "ON" or "OFF").."]"
btn.BackgroundColor3 = on and Color3.fromRGB(0,170,100) or Color3.fromRGB(45,45,45)
callback(on)
end)
end
-- ================= BOTÕES =================
createToggle("Atravessar Fantasma", function(v) ghost = v end)
createToggle("Desarme Automático (20)", function(v) autoSteal = v end)
createToggle("Puxar Bola", function(v) pullBall = v end)
createToggle("Empurrar Jogadores", function(v) pushPlayers = v end)
-- ================= PUXAR BOLA =================
RunService.Heartbeat:Connect(function()
if pullBall then
local char = getChar()
local hrp = char:FindFirstChild("HumanoidRootPart")
local ball = workspace:FindFirstChild("Ball") or workspace:FindFirstChild("SoccerBall")
if hrp and ball then
ball.CFrame = hrp.CFrame * CFrame.new(0,0,5)
end
end
end)
-- ================= EMPURRAR JOGADORES =================
RunService.Heartbeat:Connect(function()
if pushPlayers then
local char = getChar()
local hrp = char:FindFirstChild("HumanoidRootPart")
if not hrp then return end
for _, p in pairs(Players:GetPlayers()) do
if p ~= LocalPlayer and p.Character and p.Character:FindFirstChild("HumanoidRootPart") then
local dir = (p.Character.HumanoidRootPart.Position - hrp.Position).Unit
p.Character.HumanoidRootPart.Velocity = Vector3.new(dir.X,0,dir.Z) * 45
end
end
end
end)No comments yet for this script.

![[KEYLESS] Moondiety Script | 17+ supported Games](https://scriptblox.com/images/sb/0-1753093706828.png)

