
KeylessUniversal

local Players = game:GetService("Players")
local UIS = game:GetService("UserInputService")
local ReplicatedStorage = game:GetService("ReplicatedStorage")
local LP = Players.LocalPlayer
local Stat = require(ReplicatedStorage:WaitForChild("Stat"))
local _AB = false
local _IM = false
local _UV = true
local function safeGet(statName)
local ok, val = pcall(function() return Stat.Get(LP, statName) end)
if ok and val then return val.Value end
return nil
end
local function getPlayerState()
local money = safeGet("Money") or 0
local plotNum = nil
pcall(function() plotNum = LP.TempValues.Plot.Value end)
return { money = money, plotNum = plotNum }
end
local function getPlotButtons()
local state = getPlayerState()
if not state.plotNum then return {} end
local ok, plot = pcall(function() return workspace:WaitForChild("Plots"):FindFirstChild(tostring(state.plotNum)) end)
if not ok or not plot then return {} end
local bf = plot:FindFirstChild("Buttons")
if not bf then return {} end
local buttons = {}
for _, btn in ipairs(bf:GetChildren()) do
if btn:IsA("BasePart") then
local pv = btn:FindFirstChild("Price")
local dv = btn:FindFirstChild("UnlockedByButton")
table.insert(buttons, {
id = tonumber(btn.Name) or 0,
part = btn,
price = pv and pv.Value or 0,
dep = dv and dv.Value or 0,
bought = safeGet("Button" .. btn.Name) == true,
position = btn.Position,
})
end
end
return buttons
end
local function isDepMet(depId)
if depId == 0 then return true end
return safeGet("Button" .. depId) == true
end
local function getNextBuyableButton()
local buttons = getPlotButtons()
local state = getPlayerState()
local buyable = {}
for _, btn in ipairs(buttons) do
if not btn.bought and isDepMet(btn.dep) and state.money >= btn.price then
table.insert(buyable, btn)
end
end
table.sort(buyable, function(a, b) return a.price < b.price end)
return buyable[1]
end
local SG = Instance.new("ScreenGui", LP:WaitForChild("PlayerGui"))
SG.Name = "LonelyHub_Official"
SG.ResetOnSpawn = false
local Main = Instance.new("Frame", SG)
Main.Size = UDim2.new(0, 230, 0, 225)
Main.Position = UDim2.new(0.5, -115, 0.5, -112)
Main.BackgroundColor3 = Color3.fromRGB(15, 15, 20)
Main.BorderSizePixel = 0
Main.Active = true
Main.Draggable = true
local Corner = Instance.new("UICorner", Main)
Corner.CornerRadius = UDim.new(0, 10)
local Title = Instance.new("TextLabel", Main)
Title.Size = UDim2.new(1, -40, 0, 45)
Title.Position = UDim2.new(0, 10, 0, 0)
Title.BackgroundTransparency = 1
Title.Text = "LONELY HUB"
Title.TextColor3 = Color3.fromRGB(255, 255, 255)
Title.Font = Enum.Font.GothamBold
Title.TextSize = 16
Title.TextXAlignment = Enum.TextXAlignment.Left
local MinBtn = Instance.new("TextButton", Main)
MinBtn.Size = UDim2.new(0, 30, 0, 30)
MinBtn.Position = UDim2.new(1, -35, 0, 8)
MinBtn.BackgroundColor3 = Color3.fromRGB(35, 35, 45)
MinBtn.Text = "-"
MinBtn.TextColor3 = Color3.fromRGB(255, 255, 255)
MinBtn.Font = Enum.Font.GothamBold
MinBtn.TextSize = 18
Instance.new("UICorner", MinBtn).CornerRadius = UDim.new(0, 6)
MinBtn.MouseButton1Click:Connect(function()
_UV = not _UV
for _, child in ipairs(Main:GetChildren()) do
if child ~= Title and child ~= MinBtn and child ~= Corner and child.ClassName ~= "UIStroke" then
child.Visible = _UV
end
end
Main.Size = _UV and UDim2.new(0, 230, 0, 225) or UDim2.new(0, 230, 0, 45)
end)
local function NewButton(text, y, callback)
local b = Instance.new("TextButton", Main)
b.Size = UDim2.new(0.85, 0, 0, 45)
b.Position = UDim2.new(0.075, 0, 0, y)
b.BackgroundColor3 = Color3.fromRGB(30, 30, 35)
b.Text = text
b.TextColor3 = Color3.fromRGB(220, 220, 220)
b.Font = Enum.Font.GothamSemibold
Instance.new("UICorner", b).CornerRadius = UDim.new(0, 6)
b.MouseButton1Click:Connect(function() callback(b) end)
return b
end
NewButton("Auto Buy", 55, function(btn)
_AB = not _AB
btn.BackgroundColor3 = _AB and Color3.fromRGB(0, 150, 80) or Color3.fromRGB(30, 30, 35)
if _AB then
task.spawn(function()
while _AB do
local nextBtn = getNextBuyableButton()
if nextBtn then
local char = LP.Character
local hrp = char and char:FindFirstChild("HumanoidRootPart")
if hrp then
hrp.CFrame = CFrame.new(nextBtn.position + Vector3.new(0, 3, 0))
pcall(function()
firetouchinterest(hrp, nextBtn.part, 0)
firetouchinterest(hrp, nextBtn.part, 1)
end)
end
end
task.wait()
end
end)
end
end)
NewButton("Infinite Money", 110, function(btn)
_IM = not _IM
btn.BackgroundColor3 = _IM and Color3.fromRGB(0, 150, 80) or Color3.fromRGB(30, 30, 35)
end)
NewButton("WalkSpeed", 165, function(btn)
local h = LP.Character and LP.Character:FindFirstChild("Humanoid")
if h then
h.WalkSpeed = (h.WalkSpeed == 16) and 100 or 16
btn.BackgroundColor3 = (h.WalkSpeed == 100) and Color3.fromRGB(0, 150, 80) or Color3.fromRGB(30, 30, 35)
end
end)
task.spawn(function()
local ev = game:GetService("ReplicatedStorage"):WaitForChild("DropperEvents"):WaitForChild("CollectDrop")
while task.wait(0.05) do
if _IM then pcall(function() ev:FireServer(Vector3.new(-684.7, 1.9, 301.2), math.huge) end) end
end
end)
UIS.InputBegan:Connect(function(i, p)
if not p and i.KeyCode == Enum.KeyCode.RightShift then
Main.Visible = not Main.Visible
end
end)No comments yet for this script.



