What's new
Heapleak - Scripthub

Get the most out of HeapLeak by creating a free account! Once signed in, you’ll gain full access to restricted content, be able to share your own scripts, and participate in our member-only discussions.

Arm Battles

Version / Update: v1.0.0
Download / Script Link
--[[
WARNING: Heads up! This script has not been verified by ScriptBlox. Use at your own risk!
Simple single-key system (no API). Change CorrectKey to the broker key.
]]
local Players = game:GetService("Players")
local UserInputService = game:GetService("UserInputService")
local TweenService = game:GetService("TweenService")

local player = Players.LocalPlayer
local playerGui = player:WaitForChild("PlayerGui")

-- ====== CONFIG: เปลี่ยนคีย์นี้เป็นคีย์ที่ "นายหน้า" ให้ ======
local CorrectKey = "ilovechinesegirl"
-- =============================================================

-- --------- Key GUI ----------
local keyGui = Instance.new("ScreenGui")
keyGui.Name = "HeeHub_KeyGui"
keyGui.Parent = playerGui
keyGui.ResetOnSpawn = false

local keyFrame = Instance.new("Frame")
keyFrame.Size = UDim2.new(0, 350, 0, 160)
keyFrame.Position = UDim2.new(0.5, -175, 0.5, -80)
keyFrame.BackgroundColor3 = Color3.fromRGB(25, 25, 25)
keyFrame.BorderSizePixel = 0
keyFrame.Parent = keyGui

local keyTitle = Instance.new("TextLabel")
keyTitle.Size = UDim2.new(1, 0, 0, 28)
keyTitle.BackgroundTransparency = 1
keyTitle.Text = "Hee Hub — Enter Key"
keyTitle.TextColor3 = Color3.fromRGB(255,255,255)
keyTitle.Font = Enum.Font.GothamBold
keyTitle.TextSize = 18
keyTitle.Parent = keyFrame

local keyBox = Instance.new("TextBox")
keyBox.Size = UDim2.new(0.9, 0, 0, 30)
keyBox.Position = UDim2.new(0.05, 0, 0, 40)
keyBox.PlaceholderText = "Paste your key here"
keyBox.Text = ""
keyBox.BackgroundColor3 = Color3.fromRGB(40,40,40)
keyBox.TextColor3 = Color3.fromRGB(255,255,255)
keyBox.Font = Enum.Font.Gotham
keyBox.TextSize = 16
keyBox.Parent = keyFrame

local verifyBtn = Instance.new("TextButton")
verifyBtn.Size = UDim2.new(0.36, 0, 0, 36)
verifyBtn.Position = UDim2.new(0.05, 0, 0, 82)
verifyBtn.Text = "Verify Key"
verifyBtn.BackgroundColor3 = Color3.fromRGB(50,150,50)
verifyBtn.TextColor3 = Color3.fromRGB(255,255,255)
verifyBtn.Font = Enum.Font.GothamBold
verifyBtn.TextSize = 16
verifyBtn.Parent = keyFrame

local cancelBtn = Instance.new("TextButton")
cancelBtn.Size = UDim2.new(0.56, 0, 0, 36)
cancelBtn.Position = UDim2.new(0.39, 0, 0, 82)
cancelBtn.Text = "Cancel"
cancelBtn.BackgroundColor3 = Color3.fromRGB(150,50,50)
cancelBtn.TextColor3 = Color3.fromRGB(255,255,255)
cancelBtn.Font = Enum.Font.GothamBold
cancelBtn.TextSize = 16
cancelBtn.Parent = keyFrame

local statusLabel = Instance.new("TextLabel")
statusLabel.Size = UDim2.new(1, -10, 0, 20)
statusLabel.Position = UDim2.new(0, 5, 0, 126)
statusLabel.BackgroundTransparency = 1
statusLabel.Text = ""
statusLabel.TextColor3 = Color3.fromRGB(255,255,255)
statusLabel.Font = Enum.Font.Gotham
statusLabel.TextSize = 14
statusLabel.Parent = keyFrame

-- small helper tween
local function tweenObject(obj, propTable, time)
time = time or 0.25
local ti = TweenInfo.new(time, Enum.EasingStyle.Quad, Enum.EasingDirection.Out)
local t = TweenService:Create(obj, ti, propTable)
t:Play()
end

local function showStatus(text, positive)
statusLabel.Text = text
if positive then
tweenObject(keyFrame, {BackgroundColor3 = Color3.fromRGB(30,80,30)}, 0.12)
task.delay(0.6, function() tweenObject(keyFrame, {BackgroundColor3 = Color3.fromRGB(25,25,25)}, 0.12) end)
else
tweenObject(keyFrame, {BackgroundColor3 = Color3.fromRGB(80,30,30)}, 0.12)
task.delay(0.6, function() tweenObject(keyFrame, {BackgroundColor3 = Color3.fromRGB(25,25,25)}, 0.12) end)
end
end

local function onVerify()
local entered = tostring(keyBox.Text or ""):gsub("^%s*(.-)%s*$", "%1") -- trim
if entered == CorrectKey then
showStatus("✅ Key valid. Loading Hee Hub...", true)
task.wait(0.8)
keyGui:Destroy()
-- call main hub loader
startHeeHub()
else
showStatus("❌ Invalid key. Ask the broker for the correct key.", false)
end
end

verifyBtn.MouseButton1Click:Connect(onVerify)
keyBox.FocusLost:Connect(function(enter)
if enter then
onVerify()
end
end)
cancelBtn.MouseButton1Click:Connect(function()
keyGui:Destroy()
end)

-- If user closes or cancels, the hub won't load.
-- Main hub function (defined after key GUI so onVerify can call it)
function startHeeHub()
-- ====== MAIN HUB UI (Hee Hub) ======
local screenGui = Instance.new("ScreenGui")
screenGui.Name = "HeeHub_MainGui"
screenGui.Parent = playerGui
screenGui.ResetOnSpawn = false

local mainFrame = Instance.new("Frame")
mainFrame.Size = UDim2.new(0, 180, 0, 190)
mainFrame.Position = UDim2.new(0, 10, 0, 10)
mainFrame.BackgroundColor3 = Color3.fromRGB(20, 20, 20)
mainFrame.BorderSizePixel = 0
mainFrame.ClipsDescendants = true
mainFrame.Parent = screenGui

local frameStroke = Instance.new("UIStroke")
frameStroke.Thickness = 2
frameStroke.Color = Color3.fromRGB(0, 0, 0)
frameStroke.Parent = mainFrame

local title = Instance.new("TextLabel")
title.Size = UDim2.new(1, 0, 0, 25)
title.BackgroundColor3 = Color3.fromRGB(10, 10, 10)
title.Text = "Hee Hub"
title.TextColor3 = Color3.fromRGB(255, 255, 255)
title.Font = Enum.Font.Arcade
title.TextSize = 16
title.TextStrokeTransparency = 0
title.TextStrokeColor3 = Color3.fromRGB(0, 0, 0)
title.Parent = mainFrame

local hitToggle = Instance.new("TextButton")
hitToggle.Size = UDim2.new(0.9, 0, 0, 25)
hitToggle.Position = UDim2.new(0.05, 0, 0.18, 0)
hitToggle.BackgroundColor3 = Color3.fromHex("#ba2222")
hitToggle.Text = "Auto Hit: OFF"
hitToggle.TextColor3 = Color3.fromRGB(255, 255, 255)
hitToggle.Font = Enum.Font.Arcade
hitToggle.TextSize = 12
hitToggle.TextStrokeTransparency = 0
hitToggle.TextStrokeColor3 = Color3.fromRGB(0, 0, 0)
hitToggle.Parent = mainFrame

local hitStroke = Instance.new("UIStroke")
hitStroke.Thickness = 2
hitStroke.Color = Color3.fromRGB(0, 0, 0)
hitStroke.Parent = hitToggle

local liftToggle = Instance.new("TextButton")
liftToggle.Size = UDim2.new(0.9, 0, 0, 25)
liftToggle.Position = UDim2.new(0.05, 0, 0.33, 0)
liftToggle.BackgroundColor3 = Color3.fromHex("#ba2222")
liftToggle.Text = "Auto Lift: OFF"
liftToggle.TextColor3 = Color3.fromRGB(255, 255, 255)
liftToggle.Font = Enum.Font.Arcade
liftToggle.TextSize = 12
liftToggle.TextStrokeTransparency = 0
liftToggle.TextStrokeColor3 = Color3.fromRGB(0, 0, 0)
liftToggle.Parent = mainFrame

local liftStroke = Instance.new("UIStroke")
liftStroke.Thickness = 2
liftStroke.Color = Color3.fromRGB(0, 0, 0)
liftStroke.Parent = liftToggle

local touchToggle = Instance.new("TextButton")
touchToggle.Size = UDim2.new(0.9, 0, 0, 25)
touchToggle.Position = UDim2.new(0.05, 0, 0.48, 0)
touchToggle.BackgroundColor3 = Color3.fromHex("#ba2222")
touchToggle.Text = "Auto Win: OFF"
touchToggle.TextColor3 = Color3.fromRGB(255, 255, 255)
touchToggle.Font = Enum.Font.Arcade
touchToggle.TextSize = 12
touchToggle.TextStrokeTransparency = 0
touchToggle.TextStrokeColor3 = Color3.fromRGB(0, 0, 0)
touchToggle.Parent = mainFrame

local touchStroke = Instance.new("UIStroke")
touchStroke.Thickness = 2
touchStroke.Color = Color3.fromRGB(0, 0, 0)
touchStroke.Parent = touchToggle

local delayFrame = Instance.new("Frame")
delayFrame.Size = UDim2.new(0.9, 0, 0, 50)
delayFrame.Position = UDim2.new(0.05, 0, 0.65, 0)
delayFrame.BackgroundColor3 = Color3.fromRGB(30, 30, 30)
delayFrame.BorderSizePixel = 0
delayFrame.Parent = mainFrame

local delayStroke = Instance.new("UIStroke")
delayStroke.Thickness = 2
delayStroke.Color = Color3.fromRGB(0, 0, 0)
delayStroke.Parent = delayFrame

local hitDelayLabel = Instance.new("TextLabel")
hitDelayLabel.Size = UDim2.new(0.4, 0, 0, 20)
hitDelayLabel.Position = UDim2.new(0, 5, 0, 5)
hitDelayLabel.BackgroundTransparency = 1
hitDelayLabel.Text = "Hit Delay:"
hitDelayLabel.TextColor3 = Color3.fromRGB(255, 255, 255)
hitDelayLabel.Font = Enum.Font.Arcade
hitDelayLabel.TextSize = 10
hitDelayLabel.TextStrokeTransparency = 0
hitDelayLabel.TextStrokeColor3 = Color3.fromRGB(0, 0, 0)
hitDelayLabel.Parent = delayFrame

local hitDelayInput = Instance.new("TextBox")
hitDelayInput.Size = UDim2.new(0.5, 0, 0, 20)
hitDelayInput.Position = UDim2.new(0.45, 0, 0, 5)
hitDelayInput.BackgroundColor3 = Color3.fromRGB(50, 50, 50)
hitDelayInput.Text = tostring(getgenv().HitDelay)
hitDelayInput.TextColor3 = Color3.fromRGB(255, 255, 255)
hitDelayInput.Font = Enum.Font.Arcade
hitDelayInput.TextSize = 10
hitDelayInput.TextStrokeTransparency = 0
hitDelayInput.TextStrokeColor3 = Color3.fromRGB(0, 0, 0)
hitDelayInput.Parent = delayFrame

local liftDelayLabel = Instance.new("TextLabel")
liftDelayLabel.Size = UDim2.new(0.4, 0, 0, 20)
liftDelayLabel.Position = UDim2.new(0, 5, 0, 25)
liftDelayLabel.BackgroundTransparency = 1
liftDelayLabel.Text = "Lift Delay:"
liftDelayLabel.TextColor3 = Color3.fromRGB(255, 255, 255)
liftDelayLabel.Font = Enum.Font.Arcade
liftDelayLabel.TextSize = 10
liftDelayLabel.TextStrokeTransparency = 0
liftDelayLabel.TextStrokeColor3 = Color3.fromRGB(0, 0, 0)
liftDelayLabel.Parent = delayFrame

local liftDelayInput = Instance.new("TextBox")
liftDelayInput.Size = UDim2.new(0.5, 0, 0, 20)
liftDelayInput.Position = UDim2.new(0.45, 0, 0, 25)
liftDelayInput.BackgroundColor3 = Color3.fromRGB(50, 50, 50)
liftDelayInput.Text = tostring(getgenv().LiftDelay)
liftDelayInput.TextColor3 = Color3.fromRGB(255, 255, 255)
liftDelayInput.Font = Enum.Font.Arcade
liftDelayInput.TextSize = 10
liftDelayInput.TextStrokeTransparency = 0
liftDelayInput.TextStrokeColor3 = Color3.fromRGB(0, 0, 0)
liftDelayInput.Parent = delayFrame

getgenv().AutoHit = false
getgenv().HitDelay = 0.1
getgenv().AutoLift = false
getgenv().LiftDelay = 0.8
getgenv().AutoTouch = false

local function autoHitFunc()
while getgenv().AutoHit do
pcall(function()
if game:GetService("ReplicatedStorage"):FindFirstChild("Remotes") and game:GetService("ReplicatedStorage").Remotes:FindFirstChild("Hit") then
game:GetService("ReplicatedStorage").Remotes.Hit:FireServer()
end
end)
task.wait(getgenv().HitDelay)
end
end

local function autoLiftFunc()
while getgenv().AutoLift do
local char = player.Character
local bp = player:FindFirstChild("Backpack")
if char and bp then
for _, tool in pairs(bp:GetChildren()) do
if tool:IsA("Tool") then
tool.Parent = char
break
end
end
for _, tool in pairs(char:GetChildren()) do
if tool:IsA("Tool") then
pcall(function()
if tool and tool.Parent then
tool:Activate()
end
end)
end
end
end
-- fastest safe delay clamp
task.wait(math.clamp(getgenv().LiftDelay or 0.01, 0.01, 1))
end
end

local function autoTouchFunc()
while getgenv().AutoTouch do
local winPart = workspace:FindFirstChild("Obby") and workspace.Obby:FindFirstChild("Win")
local character = player.Character
local rootPart = character and character:FindFirstChild("HumanoidRootPart")
if winPart and rootPart and winPart:IsA("BasePart") then
pcall(function()
firetouchinterest(rootPart, winPart, 0)
task.wait(0.05)
firetouchinterest(rootPart, winPart, 1)
end)
end
task.wait(0.5)
end
end

local function tweenButton(button, color)
local tweenInfo = TweenInfo.new(0.3, Enum.EasingStyle.Quad, Enum.EasingDirection.Out)
local tween = TweenService:Create(button, tweenInfo, {BackgroundColor3 = color})
tween:Play()
end

local function setupHoverEffect(button)
button.MouseEnter:Connect(function()
local tweenInfo = TweenInfo.new(0.2, Enum.EasingStyle.Quad, Enum.EasingDirection.Out)
local tween = TweenService:Create(button, tweenInfo, {BackgroundColor3 = button.BackgroundColor3:lerp(Color3.fromRGB(255, 255, 255), 0.2)})
tween:Play()
end)
button.MouseLeave:Connect(function()
local targetColor
if (button.Text == "Auto Hit: ON") or (button.Text == "Auto Lift: ON") or (button.Text == "Auto Win: ON") then
targetColor = Color3.fromHex("#22ba38")
else
targetColor = Color3.fromHex("#ba2222")
end
local tweenInfo = TweenInfo.new(0.2, Enum.EasingStyle.Quad, Enum.EasingDirection.Out)
local tween = TweenService:Create(button, tweenInfo, {BackgroundColor3 = targetColor})
tween:Play()
end)
end

setupHoverEffect(hitToggle)
setupHoverEffect(liftToggle)
setupHoverEffect(touchToggle)

hitToggle.MouseButton1Click:Connect(function()
getgenv().AutoHit = not getgenv().AutoHit
if getgenv().AutoHit then
tweenButton(hitToggle, Color3.fromHex("#22ba38"))
hitToggle.Text = "Auto Hit: ON"
spawn(autoHitFunc)
else
tweenButton(hitToggle, Color3.fromHex("#ba2222"))
hitToggle.Text = "Auto Hit: OFF"
end
end)

liftToggle.MouseButton1Click:Connect(function()
getgenv().AutoLift = not getgenv().AutoLift
if getgenv().AutoLift then
tweenButton(liftToggle, Color3.fromHex("#22ba38"))
liftToggle.Text = "Auto Lift: ON"
spawn(autoLiftFunc)
else
tweenButton(liftToggle, Color3.fromHex("#ba2222"))
liftToggle.Text = "Auto Lift: OFF"
end
end)

touchToggle.MouseButton1Click:Connect(function()
getgenv().AutoTouch = not getgenv().AutoTouch
if getgenv().AutoTouch then
tweenButton(touchToggle, Color3.fromHex("#22ba38"))
touchToggle.Text = "Auto Win: ON"
spawn(autoTouchFunc)
else
tweenButton(touchToggle, Color3.fromHex("#ba2222"))
touchToggle.Text = "Auto Win: OFF"
end
end)

hitDelayInput.FocusLost:Connect(function(enterPressed)
if enterPressed then
local value = tonumber(hitDelayInput.Text)
if value then
getgenv().HitDelay = math.clamp(value, 0.05, 1)
hitDelayInput.Text = tostring(getgenv().HitDelay)
else
hitDelayInput.Text = tostring(getgenv().HitDelay)
end
end
end)

liftDelayInput.FocusLost:Connect(function(enterPressed)
if enterPressed then
local value = tonumber(liftDelayInput.Text)
if value then
getgenv().LiftDelay = math.clamp(value, 0.01, 2) -- allow very fast but clamp at 0.01
liftDelayInput.Text = tostring(getgenv().LiftDelay)
else
liftDelayInput.Text = tostring(getgenv().LiftDelay)
end
end
end)

local dragging = false
local dragStart = nil
local startPos = nil

local function update(input)
if dragging and dragStart and startPos then
local delta = input.Position - dragStart
local screenSize = playerGui:WaitForChild("HeeHub_MainGui").AbsoluteSize
local newPos = UDim2.new(
startPos.X.Scale + (delta.X / screenSize.X),
startPos.X.Offset,
startPos.Y.Scale + (delta.Y / screenSize.Y),
startPos.Y.Offset
)
mainFrame.Position = newPos
end
end

mainFrame.InputBegan:Connect(function(input)
if input.UserInputType == Enum.UserInputType.MouseButton1 or input.UserInputType == Enum.UserInputType.Touch then
dragging = true
dragStart = input.Position
startPos = mainFrame.Position
end
end)

mainFrame.InputEnded:Connect(function(input)
if input.UserInputType == Enum.UserInputType.MouseButton1 or input.UserInputType == Enum.UserInputType.Touch then
dragging = false
dragStart = nil
startPos = nil
end
end)

UserInputService.InputChanged:Connect(function(input)
if dragging and (input.UserInputType == Enum.UserInputType.MouseMovement or input.UserInputType == Enum.UserInputType.Touch) then
pcall(update, input)
end
end)
end

-- If you want the hub to auto-open for dev/test, you can auto-fill and call startHeeHub()
-- but for release we show the key GUI first.
-- Uncomment to bypass key (for testing only):
-- keyGui:Destroy()
-- startHeeHub()
[ View More ]
c9c4adb9-106c-4c7c-9dfd-900c72ad2c76.webp


fix tween errorsauto lift 0.01-infauto win - get money from obbyauto hit 0.1-infGetKey https://work.ink/25FR/hvn0bbih 1 Checkpoint
 
Has Key System
  1. Yes
Works on mobile
  1. Yes
Back
Top