
KeylessUniversal

local Players = game:GetService("Players")
local lp = Players.LocalPlayer
local StarterGui = game:GetService("StarterGui")
local RunService = game:GetService("RunService")
local UserInputService = game:GetService("UserInputService")
-- Remove old GUI if exists
if game.CoreGui:FindFirstChild("PepHubv1Gui") then
game.CoreGui.PepHubv1Gui:Destroy()
end
-- Create main GUI
local gui = Instance.new("ScreenGui")
gui.Name = "PepHubv1Gui"
gui.Parent = game.CoreGui
-- Main frame
local mainFrame = Instance.new("Frame")
mainFrame.Size = UDim2.new(0, 350, 0, 450)
mainFrame.Position = UDim2.new(0.3, 0, 0.3, 0)
mainFrame.BackgroundColor3 = Color3.fromRGB(25, 25, 35)
mainFrame.BorderSizePixel = 0
mainFrame.Parent = gui
local uicornerMain = Instance.new("UICorner", mainFrame)
uicornerMain.CornerRadius = UDim.new(0, 12)
-- Dragging
local dragging = false
local dragInput, mousePos, framePos
mainFrame.InputBegan:Connect(function(input)
if input.UserInputType == Enum.UserInputType.MouseButton1 then
dragging = true
mousePos = input.Position
framePos = mainFrame.Position
input.Changed:Connect(function()
if input.UserInputState == Enum.UserInputState.End then
dragging = false
end
end)
end
end)
mainFrame.InputChanged:Connect(function(input)
if input.UserInputType == Enum.UserInputType.MouseMovement then
dragInput = input
end
end)
RunService.RenderStepped:Connect(function()
if dragging and dragInput then
local delta = dragInput.Position - mousePos
mainFrame.Position = UDim2.new(framePos.X.Scale, framePos.X.Offset + delta.X, framePos.Y.Scale, framePos.Y.Offset + delta.Y)
end
end)
-- Title
local title = Instance.new("TextLabel")
title.Size = UDim2.new(1, -40, 0, 40)
title.Position = UDim2.new(0, 10, 0, 5)
title.BackgroundTransparency = 1
title.Text = "PepHubv1"
title.TextColor3 = Color3.fromRGB(240, 240, 240)
title.Font = Enum.Font.GothamBold
title.TextSize = 26
title.TextXAlignment = Enum.TextXAlignment.Left
title.Parent = mainFrame
-- Close button X
local closeButton = Instance.new("TextButton")
closeButton.Size = UDim2.new(0, 30, 0, 30)
closeButton.Position = UDim2.new(1, -35, 0, 5)
closeButton.BackgroundColor3 = Color3.fromRGB(190, 50, 50)
closeButton.Text = "X"
closeButton.TextColor3 = Color3.new(1,1,1)
closeButton.Font = Enum.Font.GothamBold
closeButton.TextSize = 20
closeButton.Parent = mainFrame
local uicornerClose = Instance.new("UICorner", closeButton)
uicornerClose.CornerRadius = UDim.new(0, 5)
closeButton.MouseButton1Click:Connect(function()
gui:Destroy()
end)
-- Container for main buttons
local buttonsFrame = Instance.new("ScrollingFrame")
buttonsFrame.Size = UDim2.new(1, -20, 1, -60)
buttonsFrame.Position = UDim2.new(0, 10, 0, 50)
buttonsFrame.BackgroundTransparency = 1
buttonsFrame.ScrollBarThickness = 6
buttonsFrame.Parent = mainFrame
local buttonsLayout = Instance.new("UIListLayout", buttonsFrame)
buttonsLayout.Padding = UDim.new(0, 10)
buttonsLayout.SortOrder = Enum.SortOrder.LayoutOrder
-- Function to create buttons
local function createButton(text, parent, callback)
local btn = Instance.new("TextButton")
btn.Size = UDim2.new(1, 0, 0, 35)
btn.BackgroundColor3 = Color3.fromRGB(70, 70, 110)
btn.TextColor3 = Color3.new(1,1,1)
btn.Font = Enum.Font.GothamSemibold
btn.TextSize = 18
btn.Text = text
btn.AutoButtonColor = true
btn.Parent = parent
local uicorner = Instance.new("UICorner", btn)
uicorner.CornerRadius = UDim.new(0, 6)
btn.MouseButton1Click:Connect(callback)
return btn
end
-- === Button functions === --
-- Become Invisible via loadstring
createButton("Become Invisible", buttonsFrame, function()
loadstring(game:HttpGet('https://pastebin.com/raw/3Rnd9rHf'))()
end)
-- Explode
createButton("Explode", buttonsFrame, function()
if not lp.Character or not lp.Character.PrimaryPart then return end
local explosion = Instance.new("Explosion")
explosion.Position = lp.Character.PrimaryPart.Position
explosion.Parent = workspace
end)
-- Fling toggle (spin fast)
local flingToggle = false
local flingConn = nil
local function startFling()
flingToggle = true
local char = lp.Character
if not char or not char.PrimaryPart then return end
local root = char.PrimaryPart
flingConn = RunService.Heartbeat:Connect(function()
root.CFrame = root.CFrame * CFrame.Angles(0, math.rad(240), 0) -- spin faster
end)
end
local function stopFling()
flingToggle = false
if flingConn then
flingConn:Disconnect()
flingConn = nil
end
end
createButton("Toggle Fling", buttonsFrame, function()
if flingToggle then
stopFling()
else
startFling()
end
end)
-- Fly toggle with external loadstring (FlyGuiV3)
local flyingScriptLoaded = false
createButton("Toggle Fly", buttonsFrame, function()
if not flyingScriptLoaded then
local success, err = pcall(function()
loadstring(game:HttpGet("https://raw.githubusercontent.com/XNEOFF/FlyGuiV3/main/FlyGuiV3.txt"))()
end)
flyingScriptLoaded = success
if not success then
StarterGui:SetCore("SendNotification", {
Title = "Error";
Text = "Failed to load Fly.";
Duration = 4;
})
end
else
-- Fly already loaded, manage from fly GUI itself
end
end)
-- Noclip toggle
local noclipToggle = false
local noclipConn
createButton("Toggle Noclip", buttonsFrame, function()
noclipToggle = not noclipToggle
local char = lp.Character
if not char then return end
if noclipToggle then
noclipConn = RunService.Stepped:Connect(function()
for _, part in pairs(char:GetChildren()) do
if part:IsA("BasePart") then
part.CanCollide = false
end
end
end)
else
if noclipConn then
noclipConn:Disconnect()
noclipConn = nil
end
for _, part in pairs(char:GetChildren()) do
if part:IsA("BasePart") then
part.CanCollide = true
end
end
end
end)
-- Sit / Stand
local sitting = false
createButton("Sit / Stand", buttonsFrame, function()
local char = lp.Character
if not char then return end
local humanoid = char:FindFirstChildOfClass("Humanoid")
if not humanoid then return end
sitting = not sitting
humanoid.Sit = sitting
end)
-- Jerking tool - loads pastefy tool and activates only when button clicked
local toolLoaded = false
createButton("Jerking Tool", buttonsFrame, function()
if not toolLoaded then
local success, err = pcall(function()
loadstring(game:HttpGet("https://pastefy.app/wa3v2Vgm/raw"))("Spider Script")
end)
toolLoaded = success
if not success then
StarterGui:SetCore("SendNotification", {
Title = "Error";
Text = "Failed to load tool.";
Duration = 4;
})
end
else
-- You can activate tool if you want, depends on external script
end
end)
-- Players list fixed on right side
local playersListFrame = Instance.new("Frame")
playersListFrame.Size = UDim2.new(0, 150, 0, 450)
playersListFrame.Position = UDim2.new(1, -160, 0.3, 0)
playersListFrame.BackgroundColor3 = Color3.fromRGB(25, 25, 35)
playersListFrame.BorderSizePixel = 0
playersListFrame.Parent = gui
local uicornerPlayers = Instance.new("UICorner", playersListFrame)
uicornerPlayers.CornerRadius = UDim.new(0, 12)
local playersTitle = Instance.new("TextLabel")
playersTitle.Size = UDim2.new(1, 0, 0, 30)
playersTitle.BackgroundTransparency = 1
playersTitle.Text = "Players"
playersTitle.TextColor3 = Color3.fromRGB(240,240,240)
playersTitle.Font = Enum.Font.GothamBold
playersTitle.TextSize = 20
playersTitle.Parent = playersListFrame
local playersList = Instance.new("ScrollingFrame")
playersList.Size = UDim2.new(1, -10, 1, -40)
playersList.Position = UDim2.new(0, 5, 0, 35)
playersList.BackgroundTransparency = 1
playersList.ScrollBarThickness = 6
playersList.Parent = playersListFrame
local playersLayout = Instance.new("UIListLayout", playersList)
playersLayout.SortOrder = Enum.SortOrder.LayoutOrder
playersLayout.Padding = UDim.new(0, 4)
local function refreshPlayersList()
playersList:ClearAllChildren()
for _, player in pairs(Players:GetPlayers()) do
if player ~= lp then
local plrBtn = Instance.new("TextButton")
plrBtn.Size = UDim2.new(1, 0, 0, 30)
plrBtn.BackgroundColor3 = Color3.fromRGB(50, 50, 80)
plrBtn.TextColor3 = Color3.new(1,1,1)
plrBtn.Font = Enum.Font.GothamSemibold
plrBtn.TextSize = 16
plrBtn.Text = player.Name
plrBtn.Parent = playersList
local uicorner = Instance.new("UICorner", plrBtn)
uicorner.CornerRadius = UDim.new(0, 5)
plrBtn.MouseButton1Click:Connect(function()
StarterGui:SetCore("SendNotification", {
Title = "Player Selected";
Text = "You clicked on "..player.Name;
Duration = 3,
})
end)
end
end
wait(0.1)
playersList.CanvasSize = UDim2.new(0, 0, 0, playersLayout.AbsoluteContentSize.Y)
end
refreshPlayersList()
Players.PlayerAdded:Connect(refreshPlayersList)
Players.PlayerRemoving:Connect(refreshPlayersList)
-- Loading notification (kept)
StarterGui:SetCore("SendNotification", {
Title = "PepHubv1";
Text = "Successfully loaded! Credit to Pepkl7";
Duration = 5;
})
print("Made my Pepkl7:)")



V2 comming soon
Some of the features dont work, whaiting for V2
ok tysm
should probably obfuscate it
v2 alredy out
v2 https://scriptblox.com/script/Universal-Script-PepHubV2-43317