--[[ 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()