--[[ Project: StepixHub v4.0 - Universal Mega Edition (99+ Games) Author: Stepix | Status: KEYLESS & SECURE --]] local Players = game:GetService("Players") local UserInputService = game:GetService("UserInputService") local RunService = game:GetService("RunService") local Workspace = game:GetService("Workspace") local Lighting = game:GetService("Lighting") local CoreGui = game:GetService("CoreGui") local LocalPlayer = Players.LocalPlayer local Camera = Workspace.CurrentCamera local PlayerGui = LocalPlayer:FindFirstChild("PlayerGui") or CoreGui -- Cleanup old GUI if PlayerGui:FindFirstChild("StepixHub_UniversalV4") then PlayerGui.StepixHub_UniversalV4:Destroy() end -- Main ScreenGui local ScreenGui = Instance.new("ScreenGui") ScreenGui.Name = "StepixHub_UniversalV4" ScreenGui.ResetOnSpawn = false ScreenGui.Parent = PlayerGui -- Main Frame (Luxurious UI) local MainFrame = Instance.new("Frame") MainFrame.Name = "MainFrame" MainFrame.Parent = ScreenGui MainFrame.Size = UDim2.new(0, 580, 0, 440) MainFrame.Position = UDim2.new(0.5, -290, 0.5, -220) MainFrame.BackgroundColor3 = Color3.fromRGB(12, 12, 18) MainFrame.BorderSizePixel = 0 local MainCorner = Instance.new("UICorner") MainCorner.CornerRadius = UDim.new(0, 12) MainCorner.Parent = MainFrame local MainStroke = Instance.new("UIStroke") MainStroke.Color = Color3.fromRGB(130, 80, 240) MainStroke.Thickness = 2 MainStroke.Parent = MainFrame -- Title Bar local TitleBar = Instance.new("Frame") TitleBar.Parent = MainFrame TitleBar.Size = UDim2.new(1, 0, 0, 42) TitleBar.BackgroundColor3 = Color3.fromRGB(18, 18, 28) TitleBar.BorderSizePixel = 0 Instance.new("UICorner", TitleBar).CornerRadius = UDim.new(0, 12) local TitleLabel = Instance.new("TextLabel") TitleLabel.Parent = TitleBar TitleLabel.Size = UDim2.new(1, -90, 1, 0) TitleLabel.Position = UDim2.new(0, 16, 0, 0) TitleLabel.BackgroundTransparency = 1 TitleLabel.Text = "⚡ StepixHub v4.0 — Universal Mega Hub [99+ Games]" TitleLabel.TextColor3 = Color3.fromRGB(235, 235, 255) TitleLabel.Font = Enum.Font.GothamBold TitleLabel.TextSize = 13 TitleLabel.TextXAlignment = Enum.TextXAlignment.Left -- Close & Minimize local CloseBtn = Instance.new("TextButton") CloseBtn.Parent = TitleBar CloseBtn.Size = UDim2.new(0, 28, 0, 28) CloseBtn.Position = UDim2.new(1, -36, 0.5, -14) CloseBtn.BackgroundColor3 = Color3.fromRGB(230, 50, 50) CloseBtn.Text = "✕" CloseBtn.TextColor3 = Color3.fromRGB(255, 255, 255) CloseBtn.Font = Enum.Font.GothamBold CloseBtn.TextSize = 12 Instance.new("UICorner", CloseBtn).CornerRadius = UDim.new(0, 6) local MinBtn = Instance.new("TextButton") MinBtn.Parent = TitleBar MinBtn.Size = UDim2.new(0, 28, 0, 28) MinBtn.Position = UDim2.new(1, -70, 0.5, -14) MinBtn.BackgroundColor3 = Color3.fromRGB(240, 160, 20) MinBtn.Text = "🗕" MinBtn.TextColor3 = Color3.fromRGB(255, 255, 255) MinBtn.Font = Enum.Font.GothamBold MinBtn.TextSize = 12 Instance.new("UICorner", MinBtn).CornerRadius = UDim.new(0, 6) -- Draggable window local dragging, dragInput, mousePos, framePos TitleBar.InputBegan:Connect(function(input) if input.UserInputType == Enum.UserInputType.MouseButton1 or input.UserInputType == Enum.UserInputType.Touch then dragging = true mousePos = input.Position framePos = MainFrame.Position input.Changed:Connect(function() if input.UserInputState == Enum.UserInputState.End then dragging = false end end) end end) TitleBar.InputChanged:Connect(function(input) if input.UserInputType == Enum.UserInputType.MouseMovement or input.UserInputType == Enum.UserInputType.Touch then dragInput = input end end) UserInputService.InputChanged:Connect(function(input) if input == dragInput and dragging then local delta = input.Position - mousePos MainFrame.Position = UDim2.new(framePos.X.Scale, framePos.X.Offset + delta.X, framePos.Y.Scale, framePos.Y.Offset + delta.Y) end end) -- Sidebar Tabs local TabsBar = Instance.new("Frame") TabsBar.Parent = MainFrame TabsBar.Size = UDim2.new(0, 145, 1, -54) TabsBar.Position = UDim2.new(0, 8, 0, 46) TabsBar.BackgroundColor3 = Color3.fromRGB(15, 15, 22) TabsBar.BorderSizePixel = 0 Instance.new("UICorner", TabsBar).CornerRadius = UDim.new(0, 8) local TabsLayout = Instance.new("UIListLayout") TabsLayout.Parent = TabsBar TabsLayout.SortOrder = Enum.SortOrder.LayoutOrder TabsLayout.Padding = UDim.new(0, 5) -- Pages Container local PagesContainer = Instance.new("Frame") PagesContainer.Parent = MainFrame PagesContainer.Size = UDim2.new(1, -162, 1, -54) PagesContainer.Position = UDim2.new(0, 158, 0, 46) PagesContainer.BackgroundTransparency = 1 local pages = {} local tabButtons = {} local function createTab(name) local btn = Instance.new("TextButton") btn.Parent = TabsBar btn.Size = UDim2.new(1, 0, 0, 38) btn.BackgroundColor3 = Color3.fromRGB(20, 20, 30) btn.BorderSizePixel = 0 btn.Font = Enum.Font.GothamBold btn.Text = name btn.TextColor3 = Color3.fromRGB(150, 150, 180) btn.TextSize = 11 Instance.new("UICorner", btn).CornerRadius = UDim.new(0, 6) local page = Instance.new("ScrollingFrame") page.Parent = PagesContainer page.Size = UDim2.new(1, 0, 1, 0) page.BackgroundTransparency = 1 page.BorderSizePixel = 0 page.CanvasSize = UDim2.new(0, 0, 0, 650) page.ScrollBarThickness = 3 page.Visible = false local layout = Instance.new("UIListLayout") layout.Parent = page layout.SortOrder = Enum.SortOrder.LayoutOrder layout.Padding = UDim.new(0, 6) table.insert(pages, page) table.insert(tabButtons, btn) btn.MouseButton1Click:Connect(function() for _, p in ipairs(pages) do p.Visible = false end for _, b in ipairs(tabButtons) do b.BackgroundColor3 = Color3.fromRGB(20, 20, 30) b.TextColor3 = Color3.fromRGB(150, 150, 180) end page.Visible = true btn.BackgroundColor3 = Color3.fromRGB(90, 50, 200) btn.TextColor3 = Color3.fromRGB(255, 255, 255) end) return page end -- Tabs creation local CombatTab = createTab("🎯 Combat & Aim") local PlayerTab = createTab("🏃 Player & Move") local VisualTab = createTab("👁️ ESP & Visuals") local WorldTab = createTab("🌍 World & Troll") local SettingsTab = createTab("⚙️ Settings & Misc") pages[1].Visible = true tabButtons[1].BackgroundColor3 = Color3.fromRGB(90, 50, 200) tabButtons[1].TextColor3 = Color3.fromRGB(255, 255, 255) -- Helper Functions for UI elements local function addToggle(tab, name, callback) local btn = Instance.new("TextButton") btn.Parent = tab btn.Size = UDim2.new(1, 0, 0, 34) btn.BackgroundColor3 = Color3.fromRGB(22, 22, 34) btn.BorderSizePixel = 0 btn.Font = Enum.Font.GothamMedium btn.Text = " [ OFF ] " .. name btn.TextColor3 = Color3.fromRGB(170, 170, 195) btn.TextSize, btn.TextXAlignment = 11, Enum.TextXAlignment.Left Instance.new("UICorner", btn).CornerRadius = UDim.new(0, 6) local active = false btn.MouseButton1Click:Connect(function() active = not active if active then btn.BackgroundColor3 = Color3.fromRGB(40, 170, 95) btn.TextColor3 = Color3.fromRGB(255, 255, 255) btn.Text = " [ ON ] " .. name else btn.BackgroundColor3 = Color3.fromRGB(22, 22, 34) btn.TextColor3 = Color3.fromRGB(170, 170, 195) btn.Text = " [ OFF ] " .. name end callback(active) end) end local function addSlider(tab, name, defaultVal, minVal, maxVal, callback) local container = Instance.new("Frame") container.Parent = tab container.Size = UDim2.new(1, 0, 0, 50) container.BackgroundColor3 = Color3.fromRGB(22, 22, 34) container.BorderSizePixel = 0 Instance.new("UICorner", container).CornerRadius = UDim.new(0, 6) local label = Instance.new("TextLabel") label.Parent = container label.Size = UDim2.new(1, -12, 0, 22) label.Position = UDim2.new(0, 8, 0, 4) label.BackgroundTransparency = 1 label.Font = Enum.Font.GothamBold label.Text = name .. ": " .. tostring(defaultVal) label.TextColor3 = Color3.fromRGB(200, 200, 220) label.TextSize = 11 label.TextXAlignment = Enum.TextXAlignment.Left local valBox = Instance.new("TextBox") valBox.Parent = container valBox.Size = UDim2.new(0, 70, 0, 20) valBox.Position = UDim2.new(1, -78, 0, 6) valBox.BackgroundColor3 = Color3.fromRGB(30, 30, 45) valBox.BorderSizePixel = 0 valBox.Font = Enum.Font.GothamBold valBox.Text = tostring(defaultVal) valBox.TextColor3 = Color3.fromRGB(0, 255, 150) valBox.TextSize = 11 Instance.new("UICorner", valBox).CornerRadius = UDim.new(0, 4) valBox.FocusLost:Connect(function() local val = tonumber(valBox.Text) if val then val = math.clamp(val, minVal, maxVal) valBox.Text = tostring(val) label.Text = name .. ": " .. tostring(val) callback(val) else valBox.Text = tostring(defaultVal) end end) end local function addButton(tab, name, callback) local btn = Instance.new("TextButton") btn.Parent = tab btn.Size = UDim2.new(1, 0, 0, 34) btn.BackgroundColor3 = Color3.fromRGB(32, 32, 48) btn.BorderSizePixel = 0 btn.Font = Enum.Font.GothamMedium btn.Text = " ⚡ " .. name btn.TextColor3 = Color3.fromRGB(230, 230, 250) btn.TextSize, btn.TextXAlignment = 11, Enum.TextXAlignment.Left Instance.new("UICorner", btn).CornerRadius = UDim.new(0, 6) btn.MouseButton1Click:Connect(callback) end -- === 1. COMBAT & AIM TAB === _G.AimAssist = false _G.AimSmooth = 0.15 _G.FovSize = 150 addToggle(CombatTab, "AimAssist (Smooth Lock to Nearest Player)", function(state) _G.AimAssist = state end) addSlider(CombatTab, "AimAssist Smoothness", 0.15, 0.01, 1, function(val) _G.AimSmooth = val end) addToggle(CombatTab, "HitBox Expander (Enlarge Enemy Hitboxes)", function(state) _G.HitBox = state task.spawn(function() while _G.HitBox do pcall(function() for _, p in ipairs(Players:GetPlayers()) do if p ~= LocalPlayer and p.Character and p.Character:FindFirstChild("HumanoidRootPart") then p.Character.HumanoidRootPart.Size = Vector3.new(5, 5, 5) p.Character.HumanoidRootPart.Transparency = 0.7 p.Character.HumanoidRootPart.CanCollide = false end end end) task.wait(1) end end) end) -- Main AimAssist Loop RunService.RenderStepped:Connect(function() if _G.AimAssist then pcall(function() local closestTarget = nil local shortestDist = math.huge local mousePos = UserInputService:GetMouseLocation() for _, player in ipairs(Players:GetPlayers()) do if player ~= LocalPlayer and player.Character and player.Character:FindFirstChild("Head") and player.Character:FindFirstChild("Humanoid") and player.Character.Humanoid.Health > 0 then local head = player.Character.Head local screenPos, onScreen = Camera:WorldToViewportPoint(head.Position) if onScreen then local dist = (Vector2.new(screenPos.X, screenPos.Y) - mousePos).Magnitude if dist < shortestDist and dist < 300 then shortestDist = dist closestTarget = head end end end end if closestTarget then local targetCF = CFrame.new(Camera.CFrame.Position, closestTarget.Position) Camera.CFrame = Camera.CFrame:Lerp(targetCF, _G.AimSmooth) end end) end end) -- === 2. PLAYER & MOVE TAB === _G.SpeedVal = 16 _G.JumpVal = 50 addToggle(PlayerTab, "Enable Custom WalkSpeed", function(state) _G.CustomSpeed = state task.spawn(function() while _G.CustomSpeed do pcall(function() LocalPlayer.Character.Humanoid.WalkSpeed = _G.SpeedVal end) task.wait(0.2) end pcall(function() LocalPlayer.Character.Humanoid.WalkSpeed = 16 end) end) end) addSlider(PlayerTab, "WalkSpeed Multiplier", 16, 16, 250, function(val) _G.SpeedVal = val end) addToggle(PlayerTab, "Enable Custom JumpPower", function(state) _G.CustomJump = state task.spawn(function() while _G.CustomJump do pcall(function() LocalPlayer.Character.Humanoid.JumpPower = _G.JumpVal end) task.wait(0.2) end pcall(function() LocalPlayer.Character.Humanoid.JumpPower = 50 end) end) end) addSlider(PlayerTab, "JumpPower Multiplier", 50, 50, 300, function(val) _G.JumpVal = val end) addToggle(PlayerTab, "Infinite Jump (Fly / Space to rise)", function(state) _G.InfJump = state end) UserInputService.JumpRequest:Connect(function() if _G.InfJump then pcall(function() LocalPlayer.Character.Humanoid:ChangeState(Enum.HumanoidStateType.Jumping) end) end end) addToggle(PlayerTab, "Noclip (Walk through walls)", function(state) _G.Noclip = state RunService.Stepped:Connect(function() if _G.Noclip and LocalPlayer.Character then for _, part in ipairs(LocalPlayer.Character:GetDescendants()) do if part:IsA("BasePart") then part.CanCollide = false end end end end) end) -- === 3. ESP & VISUALS TAB === addToggle(VisualTab, "Player ESP (Names & Health Bars)", function(state) _G.PlayerESP = state task.spawn(function() while _G.PlayerESP do pcall(function() for _, player in ipairs(Players:GetPlayers()) do if player ~= LocalPlayer and player.Character and player.Character:FindFirstChild("Head") then local head = player.Character.Head if not head:FindFirstChild("StepixESP") then local bg = Instance.new("BillboardGui") bg.Name = "StepixESP" bg.Size = UDim2.new(0, 120, 0, 40) bg.StudsOffset = Vector3.new(0, 2.5, 0) bg.AlwaysOnTop = true bg.Parent = head local txt = Instance.new("TextLabel") txt.Size = UDim2.fromScale(1, 1) txt.BackgroundTransparency = 1 txt.TextColor3 = Color3.fromRGB(255, 50, 50) txt.TextScaled = true txt.Font = Enum.Font.GothamBold txt.Text = player.Name txt.Parent = bg end end end end) task.wait(2) end pcall(function() for _, p in ipairs(Players:GetPlayers()) do if p.Character and p.Character:FindFirstChild("Head") and p.Character.Head:FindFirstChild("StepixESP") then p.Character.Head.StepixESP:Destroy() end end end) end) end) addToggle(VisualTab, "FullBright (Remove Darkness)", function(state) Lighting.Brightness = state and 2 or 1 Lighting.GlobalShadows = not state Lighting.ClockTime = state and 14 or 12 end) addSlider(VisualTab, "Field of View (FOV Changer)", 70, 70, 120, function(val) Camera.FieldOfView = val end) -- === 4. WORLD & TROLL TAB === addButton(WorldTab, "Blink Teleport (Click to TP with Tool)", function() pcall(function() local mouse = LocalPlayer:GetMouse() local tool = Instance.new("Tool") tool.RequiresHandle = false tool.Name = "Stepix Blink Tool" tool.Activated:Connect(function() if mouse.Target and LocalPlayer.Character and LocalPlayer.Character:FindFirstChild("HumanoidRootPart") then LocalPlayer.Character.HumanoidRootPart.CFrame = CFrame.new(mouse.Hit.Position + Vector3.new(0, 3, 0)) end end) tool.Parent = LocalPlayer.Backpack end) end) addToggle(WorldTab, "Spinbot (Spin fast around)", function(state) _G.Spinning = state task.spawn(function() while _G.Spinning do pcall(function() local root = LocalPlayer.Character.HumanoidRootPart root.CFrame = root.CFrame * CFrame.Angles(0, math.rad(45), 0) end) RunService.RenderStepped:Wait() end end) end) addButton(WorldTab, "Rejoin Server (Quick Restart)", function() game:GetService("TeleportService"):TeleportToPlaceInstance(game.PlaceId, game.JobId, LocalPlayer) end) -- === 5. SETTINGS & MISC TAB === addButton(SettingsTab, "Potato Mode (Boost FPS / Remove Lag)", function() pcall(function() settings().Rendering.QualityLevel = Enum.QualityLevel.Level01 for _, v in ipairs(Lighting:GetChildren()) do if v:IsA("PostEffect") or v:IsA("Sky") then v:Destroy() end end for _, part in ipairs(Workspace:GetDescendants()) do if part:IsA("BasePart") then part.Material = Enum.Material.SmoothPlastic part.Reflectance = 0 end end end) end) addButton(SettingsTab, "Anti-AFK (Prevent Kick)", function() pcall(function() local vu = game:GetService("VirtualUser") LocalPlayer.Idled:Connect(function() vu:Button2Down(Vector2.new(0,0), Camera.CFrame) task.wait(1) vu:Button2Up(Vector2.new(0,0), Camera.CFrame) end) end) end) -- UI Closing & Minimizing logic CloseBtn.MouseButton1Click:Connect(function() ScreenGui:Destroy() end) MinBtn.MouseButton1Click:Connect(function() MainFrame.Visible = false local ico = Instance.new("TextButton") ico.Parent = ScreenGui ico.Size = UDim2.new(0, 44, 0, 44) ico.Position = UDim2.new(0, 15, 0, 15) ico.BackgroundColor3 = Color3.fromRGB(18, 18, 28) ico.Text = "S" ico.TextColor3 = Color3.fromRGB(255, 255, 255) ico.Font = Enum.Font.GothamBold ico.TextSize = 22 Instance.new("UICorner", ico).CornerRadius = UDim.new(0, 10) Instance.new("UIStroke", ico).Color = Color3.fromRGB(130, 80, 240) ico.MouseButton1Click:Connect(function() MainFrame.Visible = true ico:Destroy() end) end) print("StepixHub v4.0 Universal Mega loaded successfully!")