--// Services local Players = game:GetService("Players") local UIS = game:GetService("UserInputService") local Workspace = game:GetService("Workspace") local TweenService = game:GetService("TweenService") local player = Players.LocalPlayer local roomsFolder = Workspace:WaitForChild("CurrentRooms") --// Limits local DEFAULT_SPEED = 16 local DEFAULT_JUMP = 50 local MAX_SPEED = 300 local speedValue = DEFAULT_SPEED local jumpValue = DEFAULT_JUMP --// Humanoid Lock local humanoid local speedConn local jumpConn local function lockStats() local char = player.Character or player.CharacterAdded:Wait() humanoid = char:WaitForChild("Humanoid") if speedConn then speedConn:Disconnect() end if jumpConn then jumpConn:Disconnect() end humanoid.WalkSpeed = speedValue humanoid.JumpPower = jumpValue speedConn = humanoid:GetPropertyChangedSignal("WalkSpeed"):Connect(function() if humanoid.WalkSpeed ~= speedValue then humanoid.WalkSpeed = speedValue end end) jumpConn = humanoid:GetPropertyChangedSignal("JumpPower"):Connect(function() if humanoid.JumpPower ~= jumpValue then humanoid.JumpPower = jumpValue end end) end player.CharacterAdded:Connect(function() task.wait(0.1) lockStats() end) --// GUI local gui = Instance.new("ScreenGui") gui.Name = "HenexHubGui" gui.ResetOnSpawn = false gui.Parent = player.PlayerGui -- Toggle Button (دائم الظهور) local toggle = Instance.new("TextButton") toggle.Parent = gui toggle.Size = UDim2.fromOffset(50,50) toggle.Position = UDim2.fromScale(0.02,0.85) toggle.Text = "ON" toggle.TextScaled = true toggle.BackgroundColor3 = Color3.fromRGB(0,200,100) toggle.TextColor3 = Color3.new(1,1,1) Instance.new("UICorner", toggle).CornerRadius = UDim.new(1,0) -- Main Frame local frame = Instance.new("Frame") frame.Parent = gui frame.Size = UDim2.fromScale(0.34,0.58) frame.Position = UDim2.fromScale(0.33,0.22) frame.BackgroundColor3 = Color3.fromRGB(25,25,25) frame.Active = true Instance.new("UICorner", frame).CornerRadius = UDim.new(0,6) -- Title local title = Instance.new("TextLabel", frame) title.Size = UDim2.fromScale(1,0.08) title.BackgroundTransparency = 1 title.Text = "HenexHub" title.TextScaled = true title.Font = Enum.Font.GothamBlack title.TextColor3 = Color3.new(1,1,1) -- Close Button local close = Instance.new("TextButton", frame) close.Size = UDim2.fromOffset(35,35) close.Position = UDim2.fromScale(0.88,0) close.Text = "X" close.TextScaled = true close.BackgroundColor3 = Color3.fromRGB(255,60,60) close.TextColor3 = Color3.new(1,1,1) Instance.new("UICorner", close) close.MouseButton1Click:Connect(function() frame.Visible = false toggle.Text = "OFF" toggle.BackgroundColor3 = Color3.fromRGB(200,50,50) end) -- Toggle Logic local frameVisible = true toggle.MouseButton1Click:Connect(function() frameVisible = not frameVisible frame.Visible = frameVisible if frameVisible then toggle.Text = "ON" toggle.BackgroundColor3 = Color3.fromRGB(0,200,100) else toggle.Text = "OFF" toggle.BackgroundColor3 = Color3.fromRGB(200,50,50) end end) -- Room Label (قبل أحدث موديل) local roomLabel = Instance.new("TextLabel", frame) roomLabel.Size = UDim2.fromScale(1,0.07) roomLabel.Position = UDim2.fromScale(0,0.08) roomLabel.BackgroundTransparency = 1 roomLabel.TextScaled = true roomLabel.Font = Enum.Font.GothamBold roomLabel.TextColor3 = Color3.new(1,1,1) local function updateRoomLabel() local models = {} for _, m in ipairs(roomsFolder:GetChildren()) do if m:IsA("Model") then table.insert(models,m) end end if #models < 2 then roomLabel.Text = "Current Room: Nothing" else roomLabel.Text = "Current Room: " .. models[#models-1].Name end end roomsFolder.ChildAdded:Connect(updateRoomLabel) updateRoomLabel() -- Drag Frame local dragging, dragStart, startPos frame.InputBegan:Connect(function(i) if i.UserInputType == Enum.UserInputType.MouseButton1 or i.UserInputType == Enum.UserInputType.Touch then dragging = true dragStart = i.Position startPos = frame.Position end end) frame.InputEnded:Connect(function(i) if i.UserInputType == Enum.UserInputType.MouseButton1 or i.UserInputType == Enum.UserInputType.Touch then dragging = false end end) UIS.InputChanged:Connect(function(i) if dragging and (i.UserInputType == Enum.UserInputType.MouseMovement or i.UserInputType == Enum.UserInputType.Touch) then local delta = i.Position - dragStart frame.Position = UDim2.new( startPos.X.Scale, startPos.X.Offset + delta.X, startPos.Y.Scale, startPos.Y.Offset + delta.Y ) end end) -- Speed Box local speedBox = Instance.new("TextBox", frame) speedBox.Size = UDim2.fromScale(0.8,0.07) speedBox.Position = UDim2.fromScale(0.1,0.25) speedBox.Text = tostring(speedValue) speedBox.TextScaled = true speedBox.BackgroundColor3 = Color3.fromRGB(45,45,45) speedBox.TextColor3 = Color3.new(1,1,1) Instance.new("UICorner", speedBox) speedBox.FocusLost:Connect(function() local v = tonumber(speedBox.Text) if v then speedValue = math.clamp(v,1,MAX_SPEED) lockStats() end end) -- Jump Box local jumpBox = Instance.new("TextBox", frame) jumpBox.Size = UDim2.fromScale(0.8,0.07) jumpBox.Position = UDim2.fromScale(0.1,0.38) jumpBox.Text = tostring(jumpValue) jumpBox.TextScaled = true jumpBox.BackgroundColor3 = Color3.fromRGB(45,45,45) jumpBox.TextColor3 = Color3.new(1,1,1) Instance.new("UICorner", jumpBox) jumpBox.FocusLost:Connect(function() local v = tonumber(jumpBox.Text) if v then jumpValue = math.clamp(v,1,250) lockStats() end end) -- Drag Toggle Button local dragT, dragStartT, startPosT toggle.InputBegan:Connect(function(i) if i.UserInputType == Enum.UserInputType.MouseButton1 or i.UserInputType == Enum.UserInputType.Touch then dragT = true dragStartT = i.Position startPosT = toggle.Position end end) toggle.InputEnded:Connect(function(i) if i.UserInputType == Enum.UserInputType.MouseButton1 or i.UserInputType == Enum.UserInputType.Touch then dragT = false end end) UIS.InputChanged:Connect(function(i) if dragT and (i.UserInputType == Enum.UserInputType.MouseMovement or i.UserInputType == Enum.UserInputType.Touch) then local delta = i.Position - dragStartT toggle.Position = UDim2.new( startPosT.X.Scale, startPosT.X.Offset + delta.X, startPosT.Y.Scale, startPosT.Y.Offset + delta.Y ) end end) -- ESP Rainbow (Bounding Box) local espButton = Instance.new("TextButton", frame) espButton.Size = UDim2.fromScale(0.5,0.06) espButton.Position = UDim2.fromScale(0.25,0.7) espButton.Text = "ESP Rainbow" espButton.TextScaled = true espButton.BackgroundColor3 = Color3.fromRGB(255,140,0) espButton.TextColor3 = Color3.new(1,1,1) Instance.new("UICorner", espButton) local targetItems = { "Flashlight","FlashlightObtain", "Lighter","LighterObtain", "Lockpick","LockpickObtain", "Vitamins","VitaminsObtain", "Candle","CandleObtain", "Crucifix","CrucifixObtain", "SkeletonKey","SkeletonKeyObtain", "Shakelight","ShakelightObtain", "NVCS3000","NVCS3000Obtain", "RoomKey","RoomKeyObtain", "SolutionPaper","SolutionPaperObtain", "LibraryBook","LibraryBookObtain", "PuzzlePainting","PuzzlePaintingObtain", "Bandages","BandagesObtain", "Batteries","BatteriesObtain", "ElectricalRoomKey","ElectricalRoomKeyObtain" } local espObjects = {} local function getRainbowColor(tick) local hue = tick % 1 return Color3.fromHSV(hue,1,1) end espButton.MouseButton1Click:Connect(function() for _, name in ipairs(targetItems) do local model = Workspace:FindFirstChild(name) if model and not espObjects[model] then for _, part in ipairs(model:GetDescendants()) do if part:IsA("BasePart") then local box = Instance.new("BoxHandleAdornment") box.Adornee = part box.Size = part.Size box.Color = BrickColor.new("Really red") box.AlwaysOnTop = true box.ZIndex = 10 box.Transparency = 0.5 box.Parent = part espObjects[part] = box end end end end end) task.spawn(function() while true do local t = tick() for part, box in pairs(espObjects) do if box.Parent then box.Color = BrickColor.new(getRainbowColor(t/2)) else espObjects[part] = nil end end task.wait(0.03) end end) -- Door Tween Button local doorButton = Instance.new("TextButton", frame) doorButton.Size = UDim2.fromScale(0.5,0.06) doorButton.Position = UDim2.fromScale(0.25,0.78) doorButton.Text = "Door Tween" doorButton.TextScaled = true doorButton.BackgroundColor3 = Color3.fromRGB(100,100,255) doorButton.TextColor3 = Color3.new(1,1,1) Instance.new("UICorner", doorButton) doorButton.MouseButton1Click:Connect(function() -- موديل قبل الأخير local models = {} for _, m in ipairs(roomsFolder:GetChildren()) do if m:IsA("Model") then table.insert(models,m) end end if #models < 2 then return end local room = models[#models-1] local door = room:FindFirstChild("Door") if not door or not door.PrimaryPart then return end local lock = door:FindFirstChild("Lock") local interactBtn = player.PlayerGui:FindFirstChild("InteractButton") if lock and interactBtn then local key = room:FindFirstChild("KeyObtain") if key and key.PrimaryPart then -- Tween للـ KeyObtain local tweenInfo = TweenInfo.new(1, Enum.EasingStyle.Linear) local goal = {CFrame = key.PrimaryPart.CFrame} local tween = TweenService:Create(player.Character.HumanoidRootPart, tweenInfo, goal) tween:Play() tween.Completed:Wait() interactBtn:Activate() -- اضغط زر -- عد للـ Door local tweenDoor = TweenService:Create(player.Character.HumanoidRootPart, tweenInfo, {CFrame = door.PrimaryPart.CFrame}) tweenDoor:Play() tweenDoor.Completed:Wait() task.wait(2) interactBtn:Activate() -- اضغط مرة ثانية بعد ثانيتين end else -- لا يوجد Lock → Tween مباشرة للـ Door local tweenInfo = TweenInfo.new(1, Enum.EasingStyle.Linear) local tweenDoor = TweenService:Create(player.Character.HumanoidRootPart, tweenInfo, {CFrame = door.PrimaryPart.CFrame}) tweenDoor:Play() end end) -- Init lockStats()