
KeylessUniversal

local Players = game:GetService("Players")
local Local = Players.LocalPlayer
local UIS = game:GetService("UserInputService")
local RS = game:GetService("RunService")
local HTTP = game:GetService("HttpService")
local StarterGui = game:GetService("StarterGui")
local Workspace = game:GetService("Workspace")
local Mouse = Local:GetMouse()
-- Notify player about teleport chat command
StarterGui:SetCore("SendNotification", {
Title = "VSploit Mobile Hub";
Text = "Type ;teleport [username] in chat to teleport to someone.";
Duration = 6;
})
-- Create & drag UI
local gui = Instance.new("ScreenGui", game.CoreGui); gui.Name = "VSploitMobileHub"
-- Tabs container
local tabsFrame = Instance.new("Frame", gui)
tabsFrame.Size = UDim2.new(0, 100, 1, 0)
tabsFrame.Position = UDim2.new(0, 0, 0, 0)
tabsFrame.BackgroundColor3 = Color3.new(0, 0, 0)
Instance.new("UICorner", tabsFrame)
-- Content frame
local contentFrame = Instance.new("Frame", gui)
contentFrame.Size = UDim2.new(1, -100, 1, 0)
contentFrame.Position = UDim2.new(0, 100, 0, 0)
contentFrame.BackgroundColor3 = Color3.new(0, 0, 0)
Instance.new("UICorner", contentFrame)
-- Make draggable gui
gui.Enabled = true
gui.IgnoreGuiInset = true
-- Sound FX
local clickS = Instance.new("Sound", gui); clickS.SoundId="rbxassetid://12222225"; clickS.Volume=2
local function clickFX() clickS:Play() end
-- Utility function for creating buttons
local function createTabButton(name, posY)
local btn = Instance.new("TextButton", tabsFrame)
btn.Size = UDim2.new(1, 0, 0, 50)
btn.Position = UDim2.new(0, 0, 0, posY)
btn.Text = name
btn.BackgroundColor3 = Color3.new(0, 0, 1)
btn.TextColor3 = Color3.new(1, 1, 1)
btn.Font = Enum.Font.SourceSansBold
btn.TextSize = 18
return btn
end
-- Tabs buttons
local tabNames = {"Main Hub", "Teleport", "Scripts", "User Log"}
local tabButtons = {}
for i, name in ipairs(tabNames) do
tabButtons[i] = createTabButton(name, (i-1)*50)
end
-- Clear content frame helper
local function clearContent()
for _, child in pairs(contentFrame:GetChildren()) do
if not (child:IsA("UIListLayout") or child:IsA("UIPadding")) then
child:Destroy()
end
end
end
-- ----------- MAIN HUB CONTENT -----------------
local function createMainHub()
clearContent()
-- Title
local title = Instance.new("TextLabel", contentFrame)
title.Size = UDim2.new(1, 0, 0, 40)
title.Position = UDim2.new(0, 0, 0, 0)
title.Text = "VSploit Hub v3.0"
title.Font = Enum.Font.SourceSansBold
title.TextSize = 28
title.TextColor3 = Color3.new(0, 1, 1)
title.BackgroundTransparency = 1
-- Fly variables
local flying = false
local flyBV
local flyAnimTrack
local function initFly()
local char = Local.Character or Local.CharacterAdded:Wait()
local root = char:WaitForChild("HumanoidRootPart")
flyBV = Instance.new("BodyVelocity", root)
flyBV.MaxForce = Vector3.new(1e9,1e9,1e9)
flyBV.Velocity = Vector3.new()
local anim = Instance.new("Animation")
anim.AnimationId = "rbxassetid://960303852"
local hum = char:FindFirstChildOfClass("Humanoid")
flyAnimTrack = hum:LoadAnimation(anim)
flyAnimTrack:Play()
RS:BindToRenderStep("fly", Enum.RenderPriority.Character.Value, function()
if not flying then
flyBV:Destroy()
flyAnimTrack:Stop()
RS:UnbindFromRenderStep("fly")
else
flyBV.Velocity = Mouse.Hit.LookVector * 80
end
end)
end
-- Fly Button
local flyBtn = Instance.new("TextButton", contentFrame)
flyBtn.Size = UDim2.new(0, 150, 0, 40)
flyBtn.Position = UDim2.new(0, 10, 0, 50)
flyBtn.Text = "🦸 Fly Mode"
flyBtn.BackgroundColor3 = Color3.new(0, 0, 1)
flyBtn.TextColor3 = Color3.new(1,1,1)
flyBtn.MouseButton1Click:Connect(function()
clickFX()
flying = not flying
if flying then
initFly()
end
end)
-- Noclip toggle
local noclip = false
RS.Stepped:Connect(function()
if noclip and Local.Character then
for _,p in pairs(Local.Character:GetDescendants()) do
if p:IsA("BasePart") then
p.CanCollide = false
end
end
end
end)
local nocBtn = Instance.new("TextButton", contentFrame)
nocBtn.Size = UDim2.new(0, 150, 0, 40)
nocBtn.Position = UDim2.new(0, 180, 0, 50)
nocBtn.Text = "🚪 Toggle Noclip"
nocBtn.BackgroundColor3 = Color3.new(0, 0, 1)
nocBtn.TextColor3 = Color3.new(1,1,1)
nocBtn.MouseButton1Click:Connect(function()
clickFX()
noclip = not noclip
end)
-- Speed adjuster
local speed = 16
local spBtn = Instance.new("TextButton", contentFrame)
spBtn.Size = UDim2.new(0, 150, 0, 40)
spBtn.Position = UDim2.new(0, 10, 0, 100)
spBtn.Text = "🏃 Speed: "..speed
spBtn.BackgroundColor3 = Color3.new(0, 0, 1)
spBtn.TextColor3 = Color3.new(1,1,1)
spBtn.MouseButton1Click:Connect(function()
clickFX()
speed = speed + 10
if speed > 100 then speed = 16 end
spBtn.Text = "🏃 Speed: "..speed
if Local.Character and Local.Character:FindFirstChild("Humanoid") then
Local.Character.Humanoid.WalkSpeed = speed
end
end)
-- Godmode (fast heal)
local godmode = false
local healConnection
local godBtn = Instance.new("TextButton", contentFrame)
godBtn.Size = UDim2.new(0, 150, 0, 40)
godBtn.Position = UDim2.new(0, 180, 0, 100)
godBtn.Text = "💖 Godmode"
godBtn.BackgroundColor3 = Color3.new(0, 0, 1)
godBtn.TextColor3 = Color3.new(1,1,1)
godBtn.MouseButton1Click:Connect(function()
clickFX()
godmode = not godmode
if godmode then
healConnection = RS.Heartbeat:Connect(function()
if Local.Character and Local.Character:FindFirstChildOfClass("Humanoid") then
Local.Character:FindFirstChildOfClass("Humanoid").Health = Local.Character:FindFirstChildOfClass("Humanoid").MaxHealth
end
end)
else
if healConnection then healConnection:Disconnect() end
end
end)
-- ESP toggle
local espEnabled = false
local espObjects = {}
local function createESP(player)
if player == Local then return end
local ch = player.Character
if not ch then return end
local head = ch:FindFirstChild("Head")
if not head then return end
local b = Instance.new("BillboardGui", head)
b.Name = "VSploitESP"
b.Size = UDim2.new(0, 200, 0, 30)
b.Adornee = head
b.AlwaysOnTop = true
local label = Instance.new("TextLabel", b)
label.BackgroundTransparency = 1
label.TextColor3 = Color3.new(1, 1, 0)
label.TextScaled = true
label.Text = player.DisplayName.." ["..player.Name.."]"
espObjects[player] = b
end
local function removeAllESP()
for player, gui in pairs(espObjects) do
if gui and gui.Parent then
gui:Destroy()
end
end
espObjects = {}
end
local espBtn = Instance.new("TextButton", contentFrame)
espBtn.Size = UDim2.new(0, 150, 0, 40)
espBtn.Position = UDim2.new(0, 10, 0, 150)
espBtn.Text = "👁️ Enable ESP"
espBtn.BackgroundColor3 = Color3.new(0, 0, 1)
espBtn.TextColor3 = Color3.new(1,1,1)
espBtn.MouseButton1Click:Connect(function()
clickFX()
espEnabled = not espEnabled
if espEnabled then
for _, p in pairs(Players:GetPlayers()) do
createESP(p)
end
Players.PlayerAdded:Connect(createESP)
Players.PlayerRemoving:Connect(function(plr)
if espObjects[plr] then
espObjects[plr]:Destroy()
espObjects[plr] = nil
end
end)
espBtn.Text = "👁️ Disable ESP"
else
removeAllESP()
espBtn.Text = "👁️ Enable ESP"
end
end)
-- Kill Aura toggle
local killAuraActive = false
local killAuraConnection
local auraBtn = Instance.new("TextButton", contentFrame)
auraBtn.Size = UDim2.new(0, 150, 0, 40)
auraBtn.Position = UDim2.new(0, 180, 0, 150)
auraBtn.Text = "⚔️ Kill Aura"
auraBtn.BackgroundColor3 = Color3.new(0, 0, 1)
auraBtn.TextColor3 = Color3.new(1,1,1)
auraBtn.MouseButton1Click:Connect(function()
clickFX()
killAuraActive = not killAuraActive
if killAuraActive then
killAuraConnection = RS.Stepped:Connect(function()
for _, p in pairs(Players:GetPlayers()) do
if p ~= Local and p.Team ~= Local.Team then
local ch = p.Character
local mych = Local.Character
if ch and mych and ch:FindFirstChild("HumanoidRootPart") and mych:FindFirstChild("HumanoidRootPart") then
if (ch.HumanoidRootPart.Position - mych.HumanoidRootPart.Position).Magnitude < 10 then
mouse1click()
end
end
end
end
end)
auraBtn.Text = "⚔️ Kill Aura (On)"
else
if killAuraConnection then killAuraConnection:Disconnect() end
auraBtn.Text = "⚔️ Kill Aura"
end
end)
end
-- ----------- TELEPORT TAB -----------------
local function createTeleportTab()
clearContent()
-- Title
local title = Instance.new("TextLabel", contentFrame)
title.Size = UDim2.new(1, 0, 0, 40)
title.Position = UDim2.new(0, 0, 0, 0)
title.Text = "Teleport Controls"
title.Font = Enum.Font.SourceSansBold
title.TextSize = 28
title.TextColor3 = Color3.new(0, 1, 1)
title.BackgroundTransparency = 1
-- Teleport to player button
local tpBtn = Instance.new("TextButton", contentFrame)
tpBtn.Size = UDim2.new(0, 300, 0, 40)
tpBtn.Position = UDim2.new(0, 10, 0, 50)
tpBtn.Text = "🧍 Teleport to Player"
tpBtn.BackgroundColor3 = Color3.new(0, 0, 1)
tpBtn.TextColor3 = Color3.new(1, 1, 1)
tpBtn.MouseButton1Click:Connect(function()
clickFX()
local name = game:GetService("UserInputService"):GetStringAsync("Enter player name:")
local tgt = Players:FindFirstChild(name)
if tgt and tgt.Character and tgt.Character:FindFirstChild("HumanoidRootPart") then
Local.Character.HumanoidRootPart.CFrame = tgt.Character.HumanoidRootPart.CFrame + Vector3.new(0,3,0)
end
end)
-- Infinite Jump toggle
local infiniteJumpEnabled = false
local infiniteJumpConnection
local jumpBtn = Instance.new("TextButton", contentFrame)
jumpBtn.Size = UDim2.new(0, 300, 0, 40)
jumpBtn.Position = UDim2.new(0, 10, 0, 100)
jumpBtn.Text = "🦘 Infinite Jump"
jumpBtn.BackgroundColor3 = Color3.new(0, 0, 1)
jumpBtn.TextColor3 = Color3.new(1, 1, 1)
jumpBtn.MouseButton1Click:Connect(function()
clickFX()
infiniteJumpEnabled = not infiniteJumpEnabled
if infiniteJumpEnabled then
infiniteJumpConnection = UIS.JumpRequest:Connect(function()
if Local.Character and Local.Character:FindFirstChildOfClass("Humanoid") then
Local.Character:FindFirstChildOfClass("Humanoid"):ChangeState(Enum.HumanoidStateType.Jumping)
end
end)
jumpBtn.Text = "🦘 Infinite Jump (On)"
else
if infiniteJumpConnection then infiniteJumpConnection:Disconnect() end
jumpBtn.Text = "🦘 Infinite Jump"
end
end)
end
-- ----------- SCRIPTS TAB -----------------
local function createScriptsTab()
clearContent()
-- Title
local title = Instance.new("TextLabel", contentFrame)
title.Size = UDim2.new(1, 0, 0, 40)
title.Position = UDim2.new(0, 0, 0, 0)
title.Text = "ScriptBlox Search"
title.Font = Enum.Font.SourceSansBold
title.TextSize = 28
title.TextColor3 = Color3.new(0, 1, 1)
title.BackgroundTransparency = 1
local inputBox = Instance.new("TextBox", contentFrame)
inputBox.Size = UDim2.new(0, 300, 0, 30)
inputBox.Position = UDim2.new(0, 10, 0, 50)
inputBox.PlaceholderText = "Search scripts on ScriptBlox.com"
local resultsBox = Instance.new("TextLabel", contentFrame)
resultsBox.Size = UDim2.new(0, 300, 0, 150)
resultsBox.Position = UDim2.new(0, 10, 0, 90)
resultsBox.TextWrapped = true
resultsBox.BackgroundTransparency = 1
resultsBox.TextColor3 = Color3.new(1, 1, 1)
resultsBox.Text = ""
local executeBtn = Instance.new("TextButton", contentFrame)
executeBtn.Size = UDim2.new(0, 300, 0, 40)
executeBtn.Position = UDim2.new(0, 10, 0, 250)
executeBtn.Text = "▶️ Execute Selected Script"
executeBtn.BackgroundColor3 = Color3.new(0, 0, 1)
executeBtn.TextColor3 = Color3.new(1, 1, 1)
executeBtn.Active = false
local HTTPService = HTTP
local currentScripts = {}
local function clearResults()
resultsBox.Text = ""
currentScripts = {}
executeBtn.Active = false
end
local function showResults(data)
if #data == 0 then
resultsBox.Text = "No scripts found."
executeBtn.Active = false
return
end
local out = "Results:\n"
for i,s in ipairs(data) do
out = out..i..". "..s.name.." by "..s.author.."\nLink: "..s.url.."\n\n"
currentScripts[i] = s
if i >= 5 then break end
end
resultsBox.Text = out
executeBtn.Active = true
end
local searchBtn = Instance.new("TextButton", contentFrame)
searchBtn.Size = UDim2.new(0, 300, 0, 40)
searchBtn.Position = UDim2.new(0, 10, 0, 200)
searchBtn.Text = "🔍 Search Scripts"
searchBtn.BackgroundColor3 = Color3.new(0, 0, 1)
searchBtn.TextColor3 = Color3.new(1, 1, 1)
searchBtn.MouseButton1Click:Connect(function()
clickFX()
local query = inputBox.Text
if #query < 3 then
resultsBox.Text = "Enter at least 3 characters."
executeBtn.Active = false
return
end
spawn(function()
local url = "https://api.scriptblox.com/search?query=" .. HTTPService:UrlEncode(query)
local ok, res = pcall(function() return HTTPService:GetAsync(url) end)
if ok then
local data = HTTPService



Needs Testing tell me if it works in comments
I needa know