--[[ Okaz Hub v4.1 | Mobile Ready ]] print("[Okaz] started") local Players = game:GetService("Players") local RunService = game:GetService("RunService") local UserInputService = game:GetService("UserInputService") local VirtualInputManager = game:GetService("VirtualInputManager") local VirtualUser = game:GetService("VirtualUser") local TweenService = game:GetService("TweenService") local Lighting = game:GetService("Lighting") local Stats = game:GetService("Stats") local TeleportService = game:GetService("TeleportService") local Camera = workspace.CurrentCamera local LP = Players.LocalPlayer local TOUCH = UserInputService.TouchEnabled local function pickParent() local list = {} if typeof(gethui) == "function" then local ok, res = pcall(gethui) if ok and res then table.insert(list, res) end end local ok2, cg = pcall(function() return game:GetService("CoreGui") end) if ok2 and cg then table.insert(list, cg) end table.insert(list, LP:WaitForChild("PlayerGui")) for _, p in ipairs(list) do if pcall(function() local probe = Instance.new("Folder") probe.Parent = p probe:Destroy() end) then return p end end return LP:WaitForChild("PlayerGui") end local parent = pickParent() local conns = {} local function track(c) table.insert(conns, c) return c end local theme = { bg = Color3.fromRGB(16, 16, 20), panel = Color3.fromRGB(24, 24, 30), row = Color3.fromRGB(32, 32, 40), accent = Color3.fromRGB(120, 90, 255), text = Color3.fromRGB(235, 235, 240), dim = Color3.fromRGB(140, 140, 155), pink = Color3.fromRGB(240, 110, 190), } local function mk(class, props, parentObj) local o = Instance.new(class) if props then for k, v in pairs(props) do pcall(function() o[k] = v end) end end if parentObj then o.Parent = parentObj end return o end pcall(function() local old = parent:FindFirstChild("OkazHub") if old then old:Destroy() end end) local gui = mk("ScreenGui", { Name = "OkazHub", ResetOnSpawn = false, IgnoreGuiInset = true, DisplayOrder = 999, ZIndexBehavior = Enum.ZIndexBehavior.Sibling, }, parent) -- ================= WINDOW ================= local main = mk("Frame", { Size = UDim2.fromOffset(228, 330), Position = UDim2.fromOffset(14, 70), BackgroundColor3 = theme.bg, BorderSizePixel = 0, }, gui) mk("UICorner", { CornerRadius = UDim.new(0, 9) }, main) mk("UIStroke", { Color = theme.accent, Thickness = 1, Transparency = 0.55 }, main) local uiscale = mk("UIScale", {}, main) local function fit() local vp = Camera.ViewportSize uiscale.Scale = math.clamp(math.min(vp.X, vp.Y) / 520, 0.68, 1) end fit() track(Camera:GetPropertyChangedSignal("ViewportSize"):Connect(fit)) local bar = mk("Frame", { Size = UDim2.new(1, 0, 0, 28), BackgroundColor3 = theme.panel, BorderSizePixel = 0, }, main) mk("UICorner", { CornerRadius = UDim.new(0, 9) }, bar) mk("TextLabel", { Size = UDim2.new(1, -70, 1, 0), Position = UDim2.fromOffset(10, 0), BackgroundTransparency = 1, Font = Enum.Font.GothamBold, Text = "OKAZ", TextSize = 11, TextColor3 = theme.text, TextXAlignment = Enum.TextXAlignment.Left, }, bar) local minBtn = mk("TextButton", { Size = UDim2.fromOffset(20, 20), Position = UDim2.new(1, -46, 0, 4), BackgroundColor3 = theme.row, Text = "-", Font = Enum.Font.GothamBold, TextSize = 12, TextColor3 = theme.text, BorderSizePixel = 0, }, bar) mk("UICorner", { CornerRadius = UDim.new(0, 5) }, minBtn) local closeBtn = mk("TextButton", { Size = UDim2.fromOffset(20, 20), Position = UDim2.new(1, -24, 0, 4), BackgroundColor3 = theme.row, Text = "X", Font = Enum.Font.GothamBold, TextSize = 10, TextColor3 = theme.text, BorderSizePixel = 0, }, bar) mk("UICorner", { CornerRadius = UDim.new(0, 5) }, closeBtn) -- forward declarations (fix: referenced by minBtn before assignment) local tabBar, pagesFrame -- drag (mouse + touch, clamped) do local dragging, off track(bar.InputBegan:Connect(function(i) if i.UserInputType == Enum.UserInputType.MouseButton1 or i.UserInputType == Enum.UserInputType.Touch then dragging = true off = Vector2.new(i.Position.X, i.Position.Y) - Vector2.new(main.AbsolutePosition.X, main.AbsolutePosition.Y) end end)) track(UserInputService.InputChanged:Connect(function(i) if not dragging then return end if i.UserInputType == Enum.UserInputType.MouseMovement or i.UserInputType == Enum.UserInputType.Touch then local vp = Camera.ViewportSize local w, h = main.AbsoluteSize.X, main.AbsoluteSize.Y main.Position = UDim2.fromOffset( math.clamp(i.Position.X - off.X, 0, math.max(vp.X - w, 0)), math.clamp(i.Position.Y - off.Y, 0, math.max(vp.Y - h, 0))) end end)) track(UserInputService.InputEnded:Connect(function(i) if i.UserInputType == Enum.UserInputType.MouseButton1 or i.UserInputType == Enum.UserInputType.Touch then dragging = false end end)) end local minimized = false minBtn.MouseButton1Click:Connect(function() minimized = not minimized tabBar.Visible = not minimized pagesFrame.Visible = not minimized main.Size = minimized and UDim2.fromOffset(228, 28) or UDim2.fromOffset(228, 330) end) local function notify(msg) local n = mk("TextLabel", { Size = UDim2.fromOffset(190, 24), Position = UDim2.new(0.5, -95, 1, -30), BackgroundColor3 = theme.panel, Text = " " .. msg, Font = Enum.Font.Gotham, TextSize = 10, TextColor3 = theme.text, TextXAlignment = Enum.TextXAlignment.Left, BorderSizePixel = 0, }, main) mk("UICorner", { CornerRadius = UDim.new(0, 5) }, n) TweenService:Create(n, TweenInfo.new(1.6), { BackgroundTransparency = 1, TextTransparency = 1, }):Play() task.delay(2, function() pcall(function() n:Destroy() end) end) end -- ================= BUILDERS ================= local function header(page, text) mk("TextLabel", { Size = UDim2.new(1, 0, 0, 17), BackgroundTransparency = 1, Font = Enum.Font.GothamBold, Text = text:upper(), TextSize = 9, TextColor3 = theme.dim, TextXAlignment = Enum.TextXAlignment.Left, }, page) end local function toggle(page, text, hint, default, callback, color) local onColor = color or theme.accent local row = mk("TextButton", { Size = UDim2.new(1, 0, 0, 26), BackgroundColor3 = theme.row, Text = "", AutoButtonColor = false, BorderSizePixel = 0, }, page) mk("UICorner", { CornerRadius = UDim.new(0, 5) }, row) local lbl = mk("TextLabel", { Size = UDim2.new(1, -42, 1, 0), Position = UDim2.fromOffset(8, 0), BackgroundTransparency = 1, Font = Enum.Font.Gotham, Text = text, TextSize = 10, TextColor3 = theme.text, TextXAlignment = Enum.TextXAlignment.Left, }, row) if hint then mk("TextLabel", { Size = UDim2.new(0, 46, 1, 0), Position = UDim2.new(1, -76, 0, 0), BackgroundTransparency = 1, Font = Enum.Font.Gotham, Text = hint, TextSize = 8, TextColor3 = theme.dim, TextXAlignment = Enum.TextXAlignment.Right, }, row) end local dot = mk("Frame", { Size = UDim2.fromOffset(12, 12), Position = UDim2.new(1, -19, 0.5, -6), BackgroundColor3 = theme.row, BorderSizePixel = 0, }, row) mk("UICorner", { CornerRadius = UDim.new(1, 0) }, dot) mk("UIStroke", { Color = theme.dim, Thickness = 1 }, dot) local on = default or false local function render() TweenService:Create(dot, TweenInfo.new(0.15), { BackgroundColor3 = on and onColor or theme.row, }):Play() lbl.TextColor3 = on and theme.text or theme.dim if callback then pcall(callback, on) end end if default then render() end track(row.MouseButton1Click:Connect(function() on = not on; render() end)) return { flip = function() on = not on; render() end } end local function slider(page, text, min, max, default, callback) local holder = mk("Frame", { Size = UDim2.new(1, 0, 0, 34), BackgroundColor3 = theme.row, BorderSizePixel = 0, }, page) mk("UICorner", { CornerRadius = UDim.new(0, 5) }, holder) local lbl = mk("TextLabel", { Size = UDim2.new(1, -16, 0, 15), Position = UDim2.fromOffset(8, 2), BackgroundTransparency = 1, Font = Enum.Font.Gotham, Text = text, TextSize = 9, TextColor3 = theme.dim, TextXAlignment = Enum.TextXAlignment.Left, }, holder) local trk = mk("Frame", { Size = UDim2.new(1, -16, 0, 5), Position = UDim2.new(0, 8, 1, -11), BackgroundColor3 = theme.bg, BorderSizePixel = 0, }, holder) mk("UICorner", { CornerRadius = UDim.new(1, 0) }, trk) local fill = mk("Frame", { Size = UDim2.new(0, 0, 1, 0), BackgroundColor3 = theme.accent, BorderSizePixel = 0, }, trk) mk("UICorner", { CornerRadius = UDim.new(1, 0) }, fill) local value, dragging = default, false local function apply(v) value = math.clamp(math.floor(v + 0.5), min, max) fill.Size = UDim2.fromScale((value - min) / (max - min), 1) lbl.Text = text .. " [" .. value .. "]" if callback then pcall(callback, value) end end local function fromX(x) local rel = (x - trk.AbsolutePosition.X) / math.max(trk.AbsoluteSize.X, 1) apply(min + (max - min) * math.clamp(rel, 0, 1)) end track(trk.InputBegan:Connect(function(i) if i.UserInputType == Enum.UserInputType.MouseButton1 or i.UserInputType == Enum.UserInputType.Touch then dragging = true; fromX(i.Position.X) end end)) track(UserInputService.InputChanged:Connect(function(i) if dragging and (i.UserInputType == Enum.UserInputType.MouseMovement or i.UserInputType == Enum.UserInputType.Touch) then fromX(i.Position.X) end end)) track(UserInputService.InputEnded:Connect(function(i) if i.UserInputType == Enum.UserInputType.MouseButton1 or i.UserInputType == Enum.UserInputType.Touch then dragging = false end end)) apply(default) return { get = function() return value end } end local function button(page, text, callback, color) local b = mk("TextButton", { Size = UDim2.new(1, 0, 0, 24), BackgroundColor3 = color or theme.accent, Text = text, Font = Enum.Font.GothamBold, TextSize = 9, TextColor3 = Color3.new(1, 1, 1), BorderSizePixel = 0, }, page) mk("UICorner", { CornerRadius = UDim.new(0, 5) }, b) track(b.MouseButton1Click:Connect(function() pcall(callback) end)) return b end -- ================= TABS ================= tabBar = mk("Frame", { Size = UDim2.new(1, -14, 0, 21), Position = UDim2.fromOffset(7, 31), BackgroundTransparency = 1, }, main) mk("UIListLayout", { FillDirection = Enum.FillDirection.Horizontal, Padding = UDim.new(0, 2), SortOrder = Enum.SortOrder.LayoutOrder, }, tabBar) pagesFrame = mk("Frame", { Size = UDim2.new(1, -14, 1, -60), Position = UDim2.fromOffset(7, 56), BackgroundTransparency = 1, }, main) local pages, tabBtns = {}, {} local function showTab(name) for n, pg in pairs(pages) do pg.Visible = (n == name) end for n, b in pairs(tabBtns) do b.BackgroundColor3 = (n == name) and theme.accent or theme.row b.TextColor3 = (n == name) and Color3.new(1, 1, 1) or theme.dim end end for _, name in ipairs({ "Move", "Fight", "Vis", "Play", "Fun", "Misc" }) do local b = mk("TextButton", { Size = UDim2.fromScale(1 / 6, 1), BackgroundColor3 = theme.row, Text = name, Font = Enum.Font.GothamBold, TextSize = 8, TextColor3 = theme.dim, BorderSizePixel = 0, AutoButtonColor = false, }, tabBar) mk("UICorner", { CornerRadius = UDim.new(0, 4) }, b) tabBtns[name] = b local pg = mk("ScrollingFrame", { Size = UDim2.fromScale(1, 1), BackgroundTransparency = 1, BorderSizePixel = 0, ScrollBarThickness = 2, ScrollBarImageColor3 = theme.accent, CanvasSize = UDim2.new(0, 0, 0, 0), AutomaticCanvasSize = Enum.AutomaticSize.Y, Visible = false, }, pagesFrame) mk("UIListLayout", { Padding = UDim.new(0, 3), SortOrder = Enum.SortOrder.LayoutOrder }, pg) pages[name] = pg track(b.MouseButton1Click:Connect(function() showTab(name) end)) end -- ================= HELPERS ================= local function char() return LP.Character end local function hrp() local c = char() return c and c:FindFirstChild("HumanoidRootPart") end local function hum() local c = char() return c and c:FindFirstChildOfClass("Humanoid") end local function alive(p) local h = p.Character and p.Character:FindFirstChildOfClass("Humanoid") return h and h.Health > 0 end local function isTeammate(p) return LP.Team ~= nil and p.Team == LP.Team end local function copyText(t) local ok = pcall(function() setclipboard(tostring(t)) end) notify(ok and "Copied" or "No clipboard") end local function parsePos(str) local nums = {} for n in string.gmatch(str, "%-?%d+%.?%d*") do table.insert(nums, tonumber(n)) if #nums == 3 then break end end if #nums == 3 then return Vector3.new(nums[1], nums[2], nums[3]) end end local function teleportTo(pos) local root = hrp() if not root then return end root.CFrame = CFrame.new(pos + Vector3.new(0, 3, 0)) end local function nearestPlayer() local best, bestD local root = hrp() if not root then return end for _, p in ipairs(Players:GetPlayers()) do if p ~= LP and p.Character and alive(p) then local r = p.Character:FindFirstChild("HumanoidRootPart") if r then local d = (r.Position - root.Position).Magnitude if not bestD or d < bestD then best, bestD = p, d end end end end return best end -- ================= MOVEMENT ================= local speedEnabled, speedValue = false, 60 local function applySpeed() local h = hum() if h then h.WalkSpeed = speedEnabled and speedValue or 16 end end local noclipOn = false track(RunService.Stepped:Connect(function() if not noclipOn then return end local c = char() if not c then return end for _, d in ipairs(c:GetDescendants()) do if d:IsA("BasePart") and d.CanCollide then d.CanCollide = false end end end)) local function setNoclip(v) noclipOn = v if not v then local c = char() if c then for _, d in ipairs(c:GetDescendants()) do if d:IsA("BasePart") then pcall(function() d.CanCollide = true end) end end end end end -- declared early so fly functions can see them local padState = { f = false, b = false, l = false, r = false, u = false, d = false } local padOn, pad = true, nil local flyOn, flySpeed, flyFace = false, 120, true local flyConn local function stopFly() flyOn = false if flyConn then flyConn:Disconnect() flyConn = nil end local h = hum() if h then pcall(function() h.PlatformStand = false end) end local root = hrp() if root then pcall(function() root.AssemblyLinearVelocity = Vector3.zero end) end if pad then pad.Visible = false end end local function startFly() local root, h = hrp(), hum() if not root or not h then notify("No character") return end h.PlatformStand = true flyOn = true if pad and TOUCH and padOn then pad.Visible = true end flyConn = RunService.RenderStepped:Connect(function(dt) if not flyOn then return end local r = hrp() if not r then return end dt = math.min(dt, 0.1) local cf = Camera.CFrame local dir = Vector3.zero if UserInputService:IsKeyDown(Enum.KeyCode.W) or padState.f then dir += cf.LookVector end if UserInputService:IsKeyDown(Enum.KeyCode.S) or padState.b then dir -= cf.LookVector end if UserInputService:IsKeyDown(Enum.KeyCode.A) or padState.l then dir -= cf.RightVector end if UserInputService:IsKeyDown(Enum.KeyCode.D) or padState.r then dir += cf.RightVector end if UserInputService:IsKeyDown(Enum.KeyCode.Space) or padState.u then dir += Vector3.yAxis end if UserInputService:IsKeyDown(Enum.KeyCode.LeftShift) or padState.d then dir -= Vector3.yAxis end local pos = r.CFrame.Position if dir.Magnitude > 0 then pos += dir.Unit * flySpeed * dt end r.CFrame = CFrame.new(pos) * (flyFace and cf.Rotation or r.CFrame.Rotation) r.AssemblyLinearVelocity = Vector3.zero end) end local function setFly(v) if v then startFly() else stopFly() end end local frozen = false local function setFreeze(v) frozen = v local root = hrp() if root then root.Anchored = v end end local infJump = false track(UserInputService.JumpRequest:Connect(function() if infJump then local h = hum() if h then h:ChangeState(Enum.HumanoidStateType.Jumping) end end end)) local antiAfk = false track(LP.Idled:Connect(function() if not antiAfk then return end pcall(function() VirtualUser:CaptureController() VirtualUser:ClickButton2(Vector2.zero) end) end)) local gravityOn, gravityValue, gravityBase = false, 100, workspace.Gravity local function applyGravity() workspace.Gravity = gravityOn and gravityValue or gravityBase end local clickTp = false track(UserInputService.InputBegan:Connect(function(i, gp) if not clickTp or gp then return end if i.UserInputType ~= Enum.UserInputType.MouseButton1 and i.UserInputType ~= Enum.UserInputType.Touch then return end local pos = UserInputService:GetMouseLocation() local ray = Camera:ViewportPointToRay(pos.X, pos.Y) local params = RaycastParams.new() params.FilterType = Enum.RaycastFilterType.Exclude params.FilterDescendantsInstances = { char(), gui } local hit = workspace:Raycast(ray.Origin, ray.Direction * 2000, params) if hit then teleportTo(hit.Position) end end)) -- ================= MOBILE PAD ================= if TOUCH then pad = mk("Frame", { Size = UDim2.fromOffset(132, 132), Position = UDim2.new(0, 16, 1, -160), BackgroundColor3 = theme.bg, BackgroundTransparency = 0.25, BorderSizePixel = 0, Visible = false, }, gui) mk("UICorner", { CornerRadius = UDim.new(0, 10) }, pad) local function padBtn(text, size, pos, key) local b = mk("TextButton", { Size = UDim2.fromOffset(size, size), Position = pos, BackgroundColor3 = theme.row, Text = text, Font = Enum.Font.GothamBold, TextSize = 14, TextColor3 = theme.text, BorderSizePixel = 0, BackgroundTransparency = 0.2, }, pad) mk("UICorner", { CornerRadius = UDim.new(0, 6) }, b) track(b.InputBegan:Connect(function(i) if i.UserInputType == Enum.UserInputType.Touch or i.UserInputType == Enum.UserInputType.MouseButton1 then padState[key] = true b.BackgroundColor3 = theme.accent end end)) track(b.InputEnded:Connect(function(i) if i.UserInputType == Enum.UserInputType.Touch or i.UserInputType == Enum.UserInputType.MouseButton1 then padState[key] = false b.BackgroundColor3 = theme.row end end)) end padBtn("^", 40, UDim2.fromOffset(46, 6), "f") padBtn("<", 40, UDim2.fromOffset(6, 46), "l") padBtn(">", 40, UDim2.fromOffset(86, 46), "r") padBtn("v", 40, UDim2.fromOffset(46, 86), "b") padBtn("+", 24, UDim2.fromOffset(6, 6), "u") padBtn("-", 24, UDim2.fromOffset(102, 102), "d") end -- ================= COMBAT ================= local aimOn, showFov, teamCheck, prediction = false, true, false, 0 local fov, smoothness = 130, 9 local circle pcall(function() local c = Drawing.new("Circle") c.Thickness = 1.5; c.Color = theme.accent; c.Transparency = 0.8 c.Filled = false; c.NumSides = 60 circle = c end) local function center2() local vp = Camera.ViewportSize return Vector2.new(vp.X / 2, vp.Y / 2) end local function getTarget() local center = center2() local best, bestDist = nil, fov for _, p in ipairs(Players:GetPlayers()) do if p ~= LP and p.Character and alive(p) then if not (teamCheck and isTeammate(p)) then local head = p.Character:FindFirstChild("Head") if head then local pos = head.Position if prediction > 0 then pos += head.AssemblyLinearVelocity * (prediction / 100) end local sp, onScreen = Camera:WorldToViewportPoint(pos) if onScreen then local d = (Vector2.new(sp.X, sp.Y) - center).Magnitude if d < bestDist then best, bestDist = head, d end end end end end end return best end track(RunService.RenderStepped:Connect(function(dt) if circle then circle.Position = center2() circle.Radius = fov circle.Visible = aimOn and showFov end if not aimOn then return end local target = getTarget() if not target then return end local tPos = target.Position if prediction > 0 then tPos += target.AssemblyLinearVelocity * (prediction / 100) end local alpha = math.clamp(dt * (22 - smoothness), 0.02, 1) Camera.CFrame = Camera.CFrame:Lerp(CFrame.lookAt(Camera.CFrame.Position, tPos), alpha) end)) local function setAim(v) aimOn = v if not v and circle then circle.Visible = false end end local hitboxOn, hitboxSize = false, 8 local hitboxStore = setmetatable({}, { __mode = "k" }) local function setHitbox(c) local root = c and c:FindFirstChild("HumanoidRootPart") local h = c and c:FindFirstChildOfClass("Humanoid") if not root then return end if not hitboxStore[root] then hitboxStore[root] = { size = root.Size, hip = h and h.HipHeight } end root.Size = Vector3.new(hitboxSize, hitboxSize, hitboxSize) root.CanCollide = false if h then h.HipHeight = root.Size.Y / 2 end end local function clearHitbox(c) local root = c and c:FindFirstChild("HumanoidRootPart") if not root then return end local saved = hitboxStore[root] if saved then root.Size = saved.size local h = c:FindFirstChildOfClass("Humanoid") if h and saved.hip then h.HipHeight = saved.hip end end root.CanCollide = true end local function refreshHitboxes() for _, p in ipairs(Players:GetPlayers()) do if p ~= LP and p.Character then if hitboxOn then setHitbox(p.Character) else clearHitbox(p.Character) end end end end local function flingCharacter(c) local root = c and c:FindFirstChild("HumanoidRootPart") if not root then return false end pcall(function() root:SetNetworkOwner(LP) end) pcall(function() root.AssemblyLinearVelocity = Vector3.new(1e5, 1e5, 1e5) end) pcall(function() root.Velocity = Vector3.new(1e5, 1e5, 1e5) end) return true end local function flingAll() local n = 0 for _, p in ipairs(Players:GetPlayers()) do if p ~= LP and p.Character and flingCharacter(p.Character) then n += 1 end end notify("Flinged " .. n) end local clicking, cps = false, 12 task.spawn(function() while gui.Parent do if clicking then local m = UserInputService:GetMouseLocation() pcall(function() VirtualInputManager:SendMouseButtonEvent(m.X, m.Y, 0, true, game, 0) VirtualInputManager:SendMouseButtonEvent(m.X, m.Y, 0, false, game, 0) end) task.wait(1 / math.max(cps, 1)) else task.wait(0.05) end end end) local anchoring = false local function setAnchorAll(v) anchoring = v for _, p in ipairs(Players:GetPlayers()) do if p ~= LP and p.Character then local r = p.Character:FindFirstChild("HumanoidRootPart") if r then pcall(function() r:SetNetworkOwner(LP) end) pcall(function() r.Anchored = v end) end end end end task.spawn(function() while gui.Parent do if hitboxOn then refreshHitboxes() end if anchoring then setAnchorAll(true) end task.wait(0.6) end end) -- ================= VISUALS ================= local espOn, tracersOn = false, false local espObjs = {} local function hideESP() for _, o in pairs(espObjs) do for _, d in pairs(o) do if d then d.Visible = false end end end end local function buildESP(p) if espObjs[p] or not Drawing then return end local ok = pcall(function() local box = Drawing.new("Square") box.Thickness = 1; box.Filled = false; box.Color = theme.accent local name = Drawing.new("Text") name.Size = 12; name.Center = true; name.Outline = true name.OutlineColor = Color3.new(0, 0, 0); name.Color = Color3.new(1, 1, 1) local health = Drawing.new("Square") health.Thickness = 1; health.Filled = true local tracer = Drawing.new("Line") tracer.Thickness = 1; tracer.Color = theme.accent espObjs[p] = { box = box, name = name, health = health, tracer = tracer } end) if not ok then espObjs[p] = nil end end local function destroyESP(p) local o = espObjs[p] if not o then return end for _, d in pairs(o) do pcall(function() d:Remove() end) end espObjs[p] = nil end track(RunService.RenderStepped:Connect(function() if not espOn then hideESP() return end for _, p in ipairs(Players:GetPlayers()) do if p ~= LP then if not espObjs[p] then buildESP(p) end local o = espObjs[p] local c = p.Character local head = c and c:FindFirstChild("Head") local h = c and c:FindFirstChildOfClass("Humanoid") if o and head and h and h.Health > 0 then local top = Camera:WorldToViewportPoint(head.Position + Vector3.new(0, 0.7, 0)) local bot = Camera:WorldToViewportPoint(head.Position - Vector3.new(0, 4.6, 0)) if top.Z > 0 and bot.Z > 0 then local hh = math.abs(bot.Y - top.Y) local ww = hh * 0.55 local x, y = top.X - ww / 2, top.Y local col = (teamCheck and isTeammate(p)) and Color3.fromRGB(90, 220, 140) or theme.accent o.box.Position = Vector2.new(x, y) o.box.Size = Vector2.new(ww, hh) o.box.Color = col; o.box.Visible = true o.name.Text = p.Name o.name.Position = Vector2.new(top.X, y - 15) o.name.Visible = true local frac = math.clamp(h.Health / math.max(h.MaxHealth, 1), 0, 1) o.health.Position = Vector2.new(x - 5, y + hh * (1 - frac)) o.health.Size = Vector2.new(3, hh * frac) o.health.Color = Color3.fromRGB(90, 220, 90) o.health.Visible = true if tracersOn then local vp = Camera.ViewportSize o.tracer.From = Vector2.new(vp.X / 2, vp.Y) o.tracer.To = Vector2.new(top.X, top.Y) o.tracer.Color = col; o.tracer.Visible = true else o.tracer.Visible = false end else for _, d in pairs(o) do d.Visible = false end end elseif o then for _, d in pairs(o) do d.Visible = false end end end end end)) track(Players.PlayerRemoving:Connect(destroyESP)) local fbOn, fbBackup local function setFullbright(v) if v and not fbOn then fbBackup = { a = Lighting.Ambient, o = Lighting.OutdoorAmbient, b = Lighting.Brightness, c = Lighting.ClockTime, f = Lighting.FogEnd, } Lighting.Ambient = Color3.new(1, 1, 1) Lighting.OutdoorAmbient = Color3.new(1, 1, 1) Lighting.Brightness = 2 Lighting.ClockTime = 14 Lighting.FogEnd = 1e6 elseif not v and fbBackup then Lighting.Ambient = fbBackup.a Lighting.OutdoorAmbient = fbBackup.o Lighting.Brightness = fbBackup.b Lighting.ClockTime = fbBackup.c Lighting.FogEnd = fbBackup.f fbBackup = nil end fbOn = v end -- ================= FUN ================= local jerkOn, jerkMotor, jerkBase local function getWaist() local c = char() if not c then return end local lower = c:FindFirstChild("LowerTorso") if lower then local w = lower:FindFirstChild("Waist") if w and w:IsA("Motor6D") then return w end end local root = c:FindFirstChild("HumanoidRootPart") if root then local rj = root:FindFirstChild("RootJoint") if rj and rj:IsA("Motor6D") then return rj end end end local function stopJerk() jerkOn = false if jerkMotor and jerkBase then pcall(function() jerkMotor.C0 = jerkBase end) end jerkMotor, jerkBase = nil, nil end local function startJerk() jerkOn = true jerkMotor, jerkBase = nil, nil end local tbagOn, spinOn, spinSpeed = false, false, 12 local orbitOn, orbitRadius, orbitAngle = false, 12, 0 local followOn, followSpeed = false, 40 task.spawn(function() while gui.Parent do if tbagOn then local h = hum() if h then pcall(function() h.Sit = not h.Sit end) end task.wait(0.16) else task.wait(0.1) end end end) track(RunService.RenderStepped:Connect(function(dt) local root = hrp() if not root then return end if jerkOn then if not jerkMotor or not jerkMotor.Parent then jerkMotor = getWaist() jerkBase = jerkMotor and jerkMotor.C0 end if jerkMotor and jerkBase then local t = os.clock() jerkMotor.C0 = jerkBase * CFrame.Angles(math.rad(math.sin(t * 9) * 22), 0, 0) end end if spinOn then root.CFrame = root.CFrame * CFrame.Angles(0, math.rad(spinSpeed) * dt * 10, 0) end if orbitOn then local target = nearestPlayer() local t = target and target.Character and target.Character:FindFirstChild("HumanoidRootPart") if t then orbitAngle += dt * 2 root.CFrame = CFrame.new( t.Position + Vector3.new( math.cos(orbitAngle) * orbitRadius, 2, math.sin(orbitAngle) * orbitRadius)) end end if followOn then local target = nearestPlayer() local t = target and target.Character and target.Character:FindFirstChild("HumanoidRootPart") if t then local dir = t.Position - root.Position if dir.Magnitude > 3 then root.CFrame = CFrame.new( root.Position + dir.Unit * followSpeed * math.min(dt, 0.1)) end end end end)) local function stripPlayer() local c = char() if not c then return end for _, d in ipairs(c:GetDescendants()) do if d:IsA("Accessory") or d:IsA("Shirt") or d:IsA("Pants") or d:IsA("ShirtGraphic") then pcall(function() d:Destroy() end) end end notify("Stripped") end local emoteSpamOn, hopOn = false, false task.spawn(function() local list = { "dance", "point", "wave", "laugh" } local i = 1 while gui.Parent do if emoteSpamOn then local h = hum() if h then pcall(function() h:PlayEmote(list[i]) end) i = i % #list + 1 end task.wait(1.2) else task.wait(0.2) end end end) task.spawn(function() while gui.Parent do if hopOn then local h = hum() if h and h.FloorMaterial ~= Enum.Material.Air then h:ChangeState(Enum.HumanoidStateType.Jumping) end task.wait(0.1) else task.wait(0.15) end end end) -- ================= PLAYERS ================= local stareTarget, stareConn, faceTarget, faceConn local function stopStare() if stareConn then stareConn:Disconnect() stareConn = nil end stareTarget = nil pcall(function() Camera.CameraType = Enum.CameraType.Custom Camera.CameraSubject = hum() end) end local function stareAt(p) stopStare() stareTarget = p pcall(function() Camera.CameraType = Enum.CameraType.Custom end) stareConn = RunService.RenderStepped:Connect(function() local h = stareTarget and stareTarget.Character and stareTarget.Character:FindFirstChildOfClass("Humanoid") if h then Camera.CameraSubject = h else stopStare() end end) notify("Staring " .. p.Name) end local function stopFace() if faceConn then faceConn:Disconnect() faceConn = nil end faceTarget = nil end local function faceAt(p) stopFace() faceTarget = p faceConn = RunService.RenderStepped:Connect(function() local root = hrp() local t = faceTarget and faceTarget.Character and faceTarget.Character:FindFirstChild("HumanoidRootPart") if root and t then local flat = Vector3.new(t.Position.X, root.Position.Y, t.Position.Z) if (flat - root.Position).Magnitude > 0.1 then root.CFrame = CFrame.lookAt(root.Position, flat) end elseif not t then stopFace() end end) notify("Facing " .. p.Name) end local function refreshPlayerList(holder) holder:ClearAllChildren() for _, p in ipairs(Players:GetPlayers()) do if p ~= LP then local row = mk("Frame", { Size = UDim2.new(1, 0, 0, 42), BackgroundColor3 = theme.row, BorderSizePixel = 0, }, holder) mk("UICorner", { CornerRadius = UDim.new(0, 5) }, row) mk("TextLabel", { Size = UDim2.new(1, -8, 0, 16), Position = UDim2.fromOffset(7, 1), BackgroundTransparency = 1, Font = Enum.Font.GothamBold, Text = p.Name, TextSize = 10, TextColor3 = theme.text, TextXAlignment = Enum.TextXAlignment.Left, }, row) local br = mk("Frame", { Size = UDim2.new(1, -14, 0, 20), Position = UDim2.fromOffset(7, 19), BackgroundTransparency = 1, }, row) mk("UIListLayout", { FillDirection = Enum.FillDirection.Horizontal, Padding = UDim.new(0, 2), SortOrder = Enum.SortOrder.LayoutOrder, }, br) local function small(lbl, cb) local b = mk("TextButton", { Size = UDim2.new(0, 39, 1, 0), BackgroundColor3 = theme.panel, Text = lbl, Font = Enum.Font.GothamBold, TextSize = 8, TextColor3 = theme.text, BorderSizePixel = 0, }, br) mk("UICorner", { CornerRadius = UDim.new(0, 3) }, b) track(b.MouseButton1Click:Connect(function() pcall(cb) end)) end small("TP", function() local r = p.Character and p.Character:FindFirstChild("HumanoidRootPart") if r then teleportTo(r.Position) end end) small("Stare", function() stareAt(p) end) small("Face", function() faceAt(p) end) small("Copy", function() local r = p.Character and p.Character:FindFirstChild("HumanoidRootPart") if r then local v = r.Position copyText(string.format("%.1f, %.1f, %.1f", v.X, v.Y, v.Z)) end end) small("Fling", function() if p.Character then flingCharacter(p.Character) end end) end end end -- ================= MACRO ================= local macro = { recording = false, playing = false, loop = false, events = {}, start = 0 } track(UserInputService.InputBegan:Connect(function(i) if not macro.recording then return end if i.UserInputType == Enum.UserInputType.Keyboard then table.insert(macro.events, { t = os.clock() - macro.start, key = i.KeyCode, down = true }) end end)) track(UserInputService.InputEnded:Connect(function(i) if not macro.recording then return end if i.UserInputType == Enum.UserInputType.Keyboard then table.insert(macro.events, { t = os.clock() - macro.start, key = i.KeyCode, down = false }) end end)) local function startRecord() macro.events = {}; macro.recording = true; macro.start = os.clock(); notify("Recording") end local function stopRecord() macro.recording = false; notify("Captured " .. #macro.events) end local function playMacro() if #macro.events == 0 then notify("Macro empty") return end if macro.playing then macro.playing = false return end macro.playing = true task.spawn(function() repeat local t0 = os.clock() for _, e in ipairs(macro.events) do local w = e.t - (os.clock() - t0) if w > 0 then task.wait(w) end pcall(function() VirtualInputManager:SendKeyEvent(e.down, e.key, false, game) end) end task.wait(0.08) until not macro.playing or not macro.loop macro.playing = false end) end -- ================= HUD ================= local hudOn = false local hud = mk("Frame", { Size = UDim2.fromOffset(120, 22), Position = UDim2.new(1, -132, 0, 8), BackgroundColor3 = theme.bg, BackgroundTransparency = 0.25, BorderSizePixel = 0, Visible = false, }, gui) mk("UICorner", { CornerRadius = UDim.new(0, 5) }, hud) local hudLbl = mk("TextLabel", { Size = UDim2.fromScale(1, 1), BackgroundTransparency = 1, Font = Enum.Font.Code, TextSize = 11, TextColor3 = theme.text, Text = "", }, hud) local frames = 0 track(RunService.RenderStepped:Connect(function() frames += 1 end)) task.spawn(function() while gui.Parent do task.wait(1) local ping = 0 pcall(function() ping = math.floor(Stats.Network.ServerStatsItem["Data Ping"]:GetValue()) end) if hudOn then hudLbl.Text = ("%d FPS %d ms"):format(frames, ping) end frames = 0 end end) -- ================= LAYOUT ================= local pM, pF, pV, pP, pFun, pX = pages.Move, pages.Fight, pages.Vis, pages.Play, pages.Fun, pages.Misc header(pM, "Flight") local flyT = toggle(pM, "Fly (CFrame)", "[F]", false, setFly) slider(pM, "Fly Speed", 20, 600, 120, function(v) flySpeed = v end) toggle(pM, "Face Camera", nil, true, function(v) flyFace = v end) if TOUCH then toggle(pM, "Mobile Fly Pad", nil, true, function(v) padOn = v if pad then pad.Visible = v and flyOn end end) end header(pM, "Ground") local nocT = toggle(pM, "Noclip", "[N]", false, setNoclip) toggle(pM, "Walk Speed", nil, false, function(v) speedEnabled = v; applySpeed() end) slider(pM, "Speed", 16, 400, 60, function(v) speedValue = v; applySpeed() end) toggle(pM, "Infinite Jump", nil, false, function(v) infJump = v end) local frzT = toggle(pM, "Freeze Self", "[G]", false, setFreeze) toggle(pM, "Bunny Hop", nil, false, function(v) hopOn = v end) header(pM, "Environment") toggle(pM, "Click Teleport", nil, false, function(v) clickTp = v end) toggle(pM, "Gravity Control", nil, false, function(v) gravityOn = v; applyGravity() end) slider(pM, "Gravity", 0, 300, 100, function(v) gravityValue = v; applyGravity() end) header(pF, "Aimbot") local aimT = toggle(pF, "Aimbot", "[E]", false, setAim) slider(pF, "FOV", 30, 400, 130, function(v) fov = v end) slider(pF, "Smoothness", 1, 20, 9, function(v) smoothness = v end) slider(pF, "Prediction", 0, 100, 0, function(v) prediction = v end) toggle(pF, "Team Check", nil, false, function(v) teamCheck = v end) toggle(pF, "Show FOV", nil, true, function(v) showFov = v end) header(pF, "Hitbox") toggle(pF, "Hitbox Expander", nil, false, function(v) hitboxOn = v; refreshHitboxes() end) slider(pF, "Hitbox Size", 4, 25, 8, function(v) hitboxSize = v; refreshHitboxes() end) header(pF, "Fling") button(pF, "Fling Self", function() if flingCharacter(char()) then notify("Flinged self") end end) button(pF, "Fling Nearest", function() local p = nearestPlayer() if p and p.Character then flingCharacter(p.Character); notify("Flinged " .. p.Name) end end) button(pF, "Fling All", flingAll) toggle(pF, "Anchor All", nil, false, setAnchorAll) header(pF, "Auto Clicker") toggle(pF, "Auto Clicker", nil, false, function(v) clicking = v end) slider(pF, "CPS", 1, 40, 12, function(v) cps = v end) header(pV, "Players") toggle(pV, "ESP", nil, false, function(v) espOn = v if not v then hideESP() end end) toggle(pV, "Tracers", nil, false, function(v) tracersOn = v end) header(pV, "Camera") slider(pV, "Field of View", 40, 120, 70, function(v) Camera.FieldOfView = v end) header(pV, "Lighting") toggle(pV, "Fullbright", nil, false, setFullbright) toggle(pV, "FPS / Ping HUD", nil, false, function(v) hudOn = v; hud.Visible = v end) header(pP, "Players") local pList = mk("Frame", { Size = UDim2.new(1, 0, 0, 0), BackgroundTransparency = 1, AutomaticSize = Enum.AutomaticSize.Y, }, pP) mk("UIListLayout", { Padding = UDim.new(0, 3), SortOrder = Enum.SortOrder.LayoutOrder }, pList) button(pP, "Refresh List", function() refreshPlayerList(pList) end) header(pP, "Position") button(pP, "Copy My Position", function() local r = hrp() if r then local v = r.Position copyText(string.format("%.1f, %.1f, %.1f", v.X, v.Y, v.Z)) end end) button(pP, "Teleport To Clipboard", function() local ok, data = pcall(function() return getclipboard() end) if not ok or not data then notify("No clipboard") return end local pos = parsePos(data) if pos then teleportTo(pos) else notify("No coords") end end) button(pP, "TP Random Player", function() local list = {} for _, p in ipairs(Players:GetPlayers()) do if p ~= LP and p.Character and alive(p) then table.insert(list, p) end end if #list == 0 then notify("Nobody here") return end local t = list[math.random(#list)] local r = t.Character:FindFirstChild("HumanoidRootPart") if r then teleportTo(r.Position); notify("TP to " .. t.Name) end end) header(pFun, "Sus") toggle(pFun, "Jerk Off", nil, false, function(v) if v then startJerk() else stopJerk() end end, theme.pink) toggle(pFun, "Tbag", nil, false, function(v) tbagOn = v end, theme.pink) toggle(pFun, "Spin", nil, false, function(v) spinOn = v end) slider(pFun, "Spin Speed", 1, 40, 12, function(v) spinSpeed = v end) toggle(pFun, "Orbit Nearest", nil, false, function(v) orbitOn = v end) slider(pFun, "Orbit Radius", 4, 40, 12, function(v) orbitRadius = v end) toggle(pFun, "Follow Nearest", nil, false, function(v) followOn = v end) slider(pFun, "Follow Speed", 10, 150, 40, function(v) followSpeed = v end) header(pFun, "Character") button(pFun, "Strip Accessories", stripPlayer, theme.pink) toggle(pFun, "Emote Spam", nil, false, function(v) emoteSpamOn = v end) button(pFun, "Reset Character", function() local h = hum() if h then h.Health = 0 end end) button(pFun, "Sit / Stand", function() local h = hum() if h then h.Sit = not h.Sit end end) header(pX, "Session") toggle(pX, "Anti AFK", nil, false, function(v) antiAfk = v end) button(pX, "Rejoin Server", function() pcall(function() TeleportService:Teleport(game.PlaceId, LP) end) end) button(pX, "Copy Job ID", function() copyText(game.JobId) end) button(pX, "Stop All", function() setFly(false); setNoclip(false); setAim(false); setFreeze(false) stopJerk(); stopFace(); stopStare() clicking = false; espOn = false; tracersOn = false hitboxOn = false; refreshHitboxes() anchoring = false spinOn = false; orbitOn = false; followOn = false tbagOn = false; hopOn = false; emoteSpamOn = false notify("All off") end, theme.panel) button(pX, "Unload", function() pcall(function() setFullbright(false) end) pcall(function() workspace.Gravity = gravityBase end) pcall(function() stopJerk(); stopStare(); stopFace() end) pcall(function() hideESP() end) pcall(function() for p in pairs(espObjs) do destroyESP(p) end end) pcall(function() if circle then circle:Remove() end end) for _, c in ipairs(conns) do pcall(function() c:Disconnect() end) end gui:Destroy() end, theme.panel) -- ================= KEYBINDS ================= track(UserInputService.InputBegan:Connect(function(i, gp) if gp then return end local k = i.KeyCode if k == Enum.KeyCode.F then flyT.flip() elseif k == Enum.KeyCode.N then nocT.flip() elseif k == Enum.KeyCode.E then aimT.flip() elseif k == Enum.KeyCode.G then frzT.flip() elseif k == Enum.KeyCode.F8 then if macro.recording then stopRecord() else startRecord() end elseif k == Enum.KeyCode.F9 then playMacro() end end)) closeBtn.MouseButton1Click:Connect(function() gui:Destroy() end) LP.CharacterAdded:Connect(function() task.wait(1) applySpeed() if flyOn then stopFly(); task.wait(0.2); startFly() end if frozen then setFreeze(true) end end) showTab("Move") refreshPlayerList(pList) print("[Okaz] loaded") notify("v4.1 loaded")