
Key Required VerifiedUniversal
--[[
KHENZ // Billboard 500K Loop — Anti-Lag Edition
]]
local Players = game:GetService("Players")
local Workspace = game:GetService("Workspace")
local CoreGui = game:GetService("CoreGui")
local RunService = game:GetService("RunService")
local UIS = game:GetService("UserInputService")
local TweenService = game:GetService("TweenService")
local LP = Players.LocalPlayer
_G.ANTI_PURCHASE = false
_G.FPS_GUARD = true
_G.AUTO_UNSPAM = true
local THEME = {
bg = Color3.fromRGB(15, 15, 20),
bg_card = Color3.fromRGB(24, 24, 32),
bg_input= Color3.fromRGB(34, 34, 44),
accent = Color3.fromRGB(0, 220, 180),
purple = Color3.fromRGB(140, 100, 255),
danger = Color3.fromRGB(240, 70, 90),
gold = Color3.fromRGB(255, 200, 60),
warn = Color3.fromRGB(255, 180, 60),
text = Color3.fromRGB(235, 235, 245),
}
-- FIX 500K (TURUN DARI 1M) + RADIUS AUTO
local FIXED_LOOP = 500000
local FIXED_BATCH = 2500
local CLICK_RADIUS = 5000
local State = {
spamEnabled = false,
loopCount = FIXED_LOOP,
batchSize = FIXED_BATCH,
successCount = 0,
blockedCount = 0,
detectors = {},
fps = 60,
fpsHistory = {},
normalFpsCounter = 0,
unspamActive = false,
}
local function log(msg)
print("[KHENZ] " .. msg)
end
-- ============ FPS TRACKER ============
local frameCount = 0
local lastFpsUpdate = tick()
RunService.RenderStepped:Connect(function()
frameCount = frameCount + 1
local now = tick()
if now - lastFpsUpdate >= 0.5 then
local elapsed = now - lastFpsUpdate
local currentFPS = math.floor(frameCount / elapsed)
State.fps = currentFPS
table.insert(State.fpsHistory, currentFPS)
if #State.fpsHistory > 6 then table.remove(State.fpsHistory, 1) end
frameCount = 0
lastFpsUpdate = now
end
end)
local function avgFPS()
if #State.fpsHistory == 0 then return State.fps end
local sum = 0
for _, v in ipairs(State.fpsHistory) do sum = sum + v end
return math.floor(sum / #State.fpsHistory)
end
-- ============ AUTO UNSPAM ============
task.spawn(function()
while true do
task.wait(1)
if _G.AUTO_UNSPAM and State.spamEnabled then
local fps = avgFPS()
if fps > 50 then
State.normalFpsCounter = State.normalFpsCounter + 1
if State.normalFpsCounter >= 5 then
State.unspamActive = true
log("AUTO UNSPAM: 5s")
task.wait(5)
State.unspamActive = false
State.normalFpsCounter = 0
log("AUTO UNSPAM: done")
end
else
State.normalFpsCounter = 0
end
end
end
end)
-- ============ AUTO-SCAN BILLBOARD ============
local function detectBillboardDetectors()
local detectors = {}
for _, obj in ipairs(Workspace:GetChildren()) do
if obj.Name:lower():find("billboard") then
local board = obj:FindFirstChild("Board")
if board then
local cd = board:FindFirstChild("ClickDetector")
if cd and cd:IsA("ClickDetector") then
table.insert(detectors, cd)
end
end
for _, v in ipairs(obj:GetDescendants()) do
if v:IsA("ClickDetector") then
table.insert(detectors, v)
end
end
end
end
if #detectors == 0 then
for _, v in ipairs(Workspace:GetDescendants()) do
if v:IsA("ClickDetector") and v.Parent then
local p = v.Parent
local gp = p.Parent
if p.Name:lower():find("board")
or (gp and gp.Name:lower():find("board"))
or (gp and gp.Name:lower():find("billboard")) then
table.insert(detectors, v)
end
end
end
end
return detectors
end
task.spawn(function()
while true do
State.detectors = detectBillboardDetectors()
task.wait(2)
end
end)
-- ============ SPAM LOOP — 500K ============
task.spawn(function()
while true do
if State.spamEnabled and #State.detectors > 0 and not State.unspamActive then
local fps = avgFPS()
local curLoop = FIXED_LOOP
local curBatch = FIXED_BATCH
if _G.FPS_GUARD then
if fps < 15 then
task.wait(1)
local waitCount = 0
while avgFPS() < 20 and waitCount < 10 do
task.wait(0.5)
waitCount = waitCount + 1
end
elseif fps < 30 then
curLoop = 50000
curBatch = 250
elseif fps < 50 then
curLoop = 250000
curBatch = 1000
end
end
local batch = 0
for i = 1, curLoop do
if not State.spamEnabled or State.unspamActive then break end
if i % 1000 == 0 and _G.FPS_GUARD and avgFPS() < 15 then break end
for _, cd in ipairs(State.detectors) do
pcall(function()
fireclickdetector(cd, CLICK_RADIUS, 1)
end)
State.successCount = State.successCount + 1
batch = batch + 1
end
if batch >= curBatch then
batch = 0
task.wait()
end
end
task.wait()
else
task.wait(0.05)
end
end
end)
-- ============ ANTI PURCHASE ============
local function disablePrompt()
pcall(function()
local prompt = CoreGui:FindFirstChild("PurchasePromptApp")
if prompt and prompt.Enabled then
prompt.Enabled = false
State.blockedCount = State.blockedCount + 1
end
end)
pcall(function()
local overlay = CoreGui:FindFirstChild("FoundationOverlay")
if overlay and overlay.Enabled then
overlay.Enabled = false
end
end)
end
RunService.RenderStepped:Connect(function()
if _G.ANTI_PURCHASE then disablePrompt() end
end)
CoreGui.ChildAdded:Connect(function(ins)
if _G.ANTI_PURCHASE and (ins.Name == "PurchasePromptApp" or ins.Name == "FoundationOverlay") then
task.wait(0.05)
pcall(function() ins.Enabled = false end)
end
end)
CoreGui.DescendantAdded:Connect(function(ins)
if _G.ANTI_PURCHASE and (ins.Name == "PurchasePromptApp" or ins.Name == "FoundationOverlay") then
task.wait(0.05)
pcall(function() ins.Enabled = false end)
end
end)
-- ============ GUI ============
if CoreGui:FindFirstChild("KHENZ_Billboard") then CoreGui.KHENZ_Billboard:Destroy() end
local gui = Instance.new("ScreenGui")
gui.Name = "KHENZ_Billboard"
gui.ResetOnSpawn = false
gui.DisplayOrder = 9999
pcall(function() gui.Parent = CoreGui end)
if not gui.Parent then gui.Parent = LP:WaitForChild("PlayerGui") end
local main = Instance.new("Frame")
main.Size = UDim2.new(0, 260, 0, 280)
main.Position = UDim2.new(0, 20, 0.5, -140)
main.BackgroundColor3 = THEME.bg
main.BorderSizePixel = 0
main.Active = true
main.Parent = gui
Instance.new("UICorner", main).CornerRadius = UDim.new(0, 10)
local stroke = Instance.new("UIStroke")
stroke.Color = THEME.danger
stroke.Transparency = 0.5
stroke.Thickness = 1.5
stroke.Parent = main
local topbar = Instance.new("Frame")
topbar.Size = UDim2.new(1, 0, 0, 28)
topbar.BackgroundColor3 = THEME.bg_card
topbar.BorderSizePixel = 0
topbar.Active = true
topbar.Parent = main
Instance.new("UICorner", topbar).CornerRadius = UDim.new(0, 10)
local titleLbl = Instance.new("TextLabel")
titleLbl.Size = UDim2.new(1, -60, 1, 0)
titleLbl.Position = UDim2.new(0, 10, 0, 0)
titleLbl.BackgroundTransparency = 1
titleLbl.Text = "BILLBOARD 500K"
titleLbl.TextColor3 = THEME.danger
titleLbl.Font = Enum.Font.GothamBold
titleLbl.TextSize = 11
titleLbl.TextXAlignment = Enum.TextXAlignment.Left
titleLbl.Parent = topbar
local closeBtn = Instance.new("TextButton")
closeBtn.Size = UDim2.new(0, 20, 0, 20)
closeBtn.Position = UDim2.new(1, -24, 0.5, -10)
closeBtn.BackgroundColor3 = THEME.bg_input
closeBtn.TextColor3 = THEME.danger
closeBtn.Font = Enum.Font.GothamBold
closeBtn.TextSize = 11
closeBtn.Text = "X"
closeBtn.Parent = topbar
Instance.new("UICorner", closeBtn).CornerRadius = UDim.new(0, 4)
closeBtn.MouseButton1Click:Connect(function() gui.Enabled = false end)
local dragging, dragStart, startPos
topbar.InputBegan:Connect(function(input)
if input.UserInputType == Enum.UserInputType.MouseButton1
or input.UserInputType == Enum.UserInputType.Touch then
dragging = true; dragStart = input.Position; startPos = main.Position
end
end)
topbar.InputEnded:Connect(function(input)
if input.UserInputType == Enum.UserInputType.MouseButton1
or input.UserInputType == Enum.UserInputType.Touch then dragging = false end
end)
UIS.InputChanged:Connect(function(input)
if dragging and (input.UserInputType == Enum.UserInputType.MouseMovement
or input.UserInputType == Enum.UserInputType.Touch) then
local d = input.Position - dragStart
main.Position = UDim2.new(startPos.X.Scale, startPos.X.Offset + d.X,
startPos.Y.Scale, startPos.Y.Offset + d.Y)
end
end)
local body = Instance.new("Frame")
body.Size = UDim2.new(1, -12, 1, -36)
body.Position = UDim2.new(0, 6, 0, 32)
body.BackgroundTransparency = 1
body.Parent = main
local statusLbl = Instance.new("TextLabel")
statusLbl.Size = UDim2.new(1, 0, 0, 44)
statusLbl.BackgroundColor3 = THEME.bg_card
statusLbl.TextColor3 = THEME.text
statusLbl.Font = Enum.Font.Code
statusLbl.TextSize = 9
statusLbl.TextYAlignment = Enum.TextYAlignment.Top
statusLbl.TextXAlignment = Enum.TextXAlignment.Left
statusLbl.Text = "spam: 0 | block: 0\nFPS: 60 | loop: 500K\nradius: 5000"
statusLbl.Parent = body
Instance.new("UICorner", statusLbl).CornerRadius = UDim.new(0, 5)
task.spawn(function()
while statusLbl.Parent do
task.wait(0.5)
local fps = avgFPS()
local status = ""
if State.unspamActive then status = " ⏸"
elseif fps < 30 then status = " ⚠" end
statusLbl.Text = string.format(
"spam: %d | block: %d\nFPS: %d | loop: 500K%s\nradius: %d",
State.successCount, State.blockedCount, fps, status, CLICK_RADIUS
)
end
end)
local btnHolder = Instance.new("Frame")
btnHolder.Size = UDim2.new(1, 0, 1, -50)
btnHolder.Position = UDim2.new(0, 0, 0, 50)
btnHolder.BackgroundTransparency = 1
btnHolder.Parent = body
local btnList = Instance.new("UIListLayout")
btnList.Padding = UDim.new(0, 4)
btnList.Parent = btnHolder
local function makeBtn(text, color, callback)
local b = Instance.new("TextButton")
b.Size = UDim2.new(1, 0, 0, 26)
b.BackgroundColor3 = color
b.TextColor3 = THEME.bg
b.Font = Enum.Font.GothamBold
b.TextSize = 10
b.Text = text
b.AutoButtonColor = false
b.Parent = btnHolder
Instance.new("UICorner", b).CornerRadius = UDim.new(0, 5)
b:SetAttribute("CurrentColor", color)
b.MouseEnter:Connect(function()
local c = b:GetAttribute("CurrentColor") or color
TweenService:Create(b, TweenInfo.new(0.1), {
BackgroundColor3 = Color3.new(math.min(c.R + 0.15, 1),
math.min(c.G + 0.15, 1),
math.min(c.B + 0.15, 1))
}):Play()
end)
b.MouseLeave:Connect(function()
local c = b:GetAttribute("CurrentColor") or color
TweenService:Create(b, TweenInfo.new(0.1), { BackgroundColor3 = c }):Play()
end)
b.MouseButton1Click:Connect(function() callback(b) end)
return b
end
local spamBtn = makeBtn("SPAM: OFF", THEME.bg_input, function(btn)
State.spamEnabled = not State.spamEnabled
if State.spamEnabled then
btn.Text = "SPAM: ON (500K)"
btn.BackgroundColor3 = THEME.danger
btn.TextColor3 = THEME.bg
btn:SetAttribute("CurrentColor", THEME.danger)
else
btn.Text = "SPAM: OFF"
btn.BackgroundColor3 = THEME.bg_input
btn.TextColor3 = THEME.text
btn:SetAttribute("CurrentColor", THEME.bg_input)
end
end)
spamBtn.TextColor3 = THEME.text
local antiBtn = makeBtn("ANTI PURCHASE: OFF", THEME.bg_input, function(btn)
_G.ANTI_PURCHASE = not _G.ANTI_PURCHASE
if _G.ANTI_PURCHASE then
btn.Text = "ANTI PURCHASE: ON"
btn.BackgroundColor3 = THEME.danger
btn.TextColor3 = THEME.bg
btn:SetAttribute("CurrentColor", THEME.danger)
disablePrompt()
else
btn.Text = "ANTI PURCHASE: OFF"
btn.BackgroundColor3 = THEME.bg_input
btn.TextColor3 = THEME.text
btn:SetAttribute("CurrentColor", THEME.bg_input)
end
end)
antiBtn.TextColor3 = THEME.text
local fpsBtn = makeBtn("FPS GUARD: ON", THEME.warn, function(btn)
_G.FPS_GUARD = not _G.FPS_GUARD
btn.Text = "FPS GUARD: " .. (_G.FPS_GUARD and "ON" or "OFF")
btn.BackgroundColor3 = _G.FPS_GUARD and THEME.warn or THEME.bg_input
btn.TextColor3 = _G.FPS_GUARD and THEME.bg or THEME.text
btn:SetAttribute("CurrentColor", _G.FPS_GUARD and THEME.warn or THEME.bg_input)
end)
fpsBtn.TextColor3 = THEME.bg
local unspamBtn = makeBtn("AUTO UNSPAM: ON", THEME.accent, function(btn)
_G.AUTO_UNSPAM = not _G.AUTO_UNSPAM
btn.Text = "AUTO UNSPAM: " .. (_G.AUTO_UNSPAM and "ON" or "OFF")
btn.BackgroundColor3 = _G.AUTO_UNSPAM and THEME.accent or THEME.bg_input
btn.TextColor3 = _G.AUTO_UNSPAM and THEME.bg or THEME.text
btn:SetAttribute("CurrentColor", _G.AUTO_UNSPAM and THEME.accent or THEME.bg_input)
end)
unspamBtn.TextColor3 = THEME.bg
makeBtn("FORCE UNSPAM 5s", THEME.purple, function()
task.spawn(function()
State.unspamActive = true
log("FORCE UNSPAM: 5s")
task.wait(5)
State.unspamActive = false
log("FORCE UNSPAM: done")
end)
end)
UIS.InputBegan:Connect(function(input, gp)
if gp then return end
if input.KeyCode == Enum.KeyCode.RightShift then
gui.Enabled = not gui.Enabled
end
end)
print("[KHENZ] Billboard 500K loaded. Anti-lag.")No comments yet for this script.

