--[[ Constipated Hub | Rivals UI: Orion (hardened for Delta / Xeno / Wave / etc.) ]] -- ========== POLYFILLS (must be first) ========== if not getgenv then getgenv = getfenv or function() return _G end end if type(getgenv) ~= "function" then local g = (getfenv and getfenv()) or _G getgenv = function() return g end end local G = getgenv() pcall(function() if G.ConstipatedHub and G.ConstipatedHub.Unload then G.ConstipatedHub.Unload() end end) local function httpGet(url) local body local ok = pcall(function() body = game:HttpGet(url) end) if ok and type(body) == "string" and #body > 100 then return body end ok = pcall(function() body = game:HttpGetAsync(url) end) if ok and type(body) == "string" and #body > 100 then return body end local req = (syn and syn.request) or (http and http.request) or http_request or request or (fluxus and fluxus.request) if req then ok = pcall(function() local r = req({ Url = url, Method = "GET" }) body = r and (r.Body or r.body) end) if ok and type(body) == "string" and #body > 100 then return body end end return nil end local function notify(title, text) pcall(function() game:GetService("StarterGui"):SetCore("SendNotification", { Title = title or "Constipated Hub", Text = text or "", Duration = 5, }) end) print("[Constipated Hub]", title, text) end print("[Constipated Hub] boot...") local okLoad, errLoad = pcall(function() if not game:IsLoaded() then game.Loaded:Wait() end task.wait(0.5) local Players = game:GetService("Players") local RunService = game:GetService("RunService") local UserInputService = game:GetService("UserInputService") local ReplicatedStorage = game:GetService("ReplicatedStorage") local Lighting = game:GetService("Lighting") local CoreGui = game:GetService("CoreGui") local LocalPlayer = Players.LocalPlayer while not LocalPlayer do task.wait(0.1) LocalPlayer = Players.LocalPlayer end local Camera = workspace.CurrentCamera local K = { connections = {}, cleanups = {}, destroyed = false, flags = {} } G.ConstipatedHub = K local function track(c) if c then table.insert(K.connections, c) end return c end local function onUnload(f) table.insert(K.cleanups, f) end local function safeParent() local ok, h = pcall(function() if gethui then return gethui() end end) if ok and h then return h end local ok2, pg = pcall(function() return LocalPlayer:FindFirstChild("PlayerGui") or LocalPlayer:WaitForChild("PlayerGui", 5) end) if ok2 and pg then return pg end return CoreGui end local F = K.flags F.silentEnabled = false F.silentSticky = true F.silentHealthLead = false F.silentRagePriority = false F.silentFov = 140 F.silentPrediction = 0.12 F.silentHitchance = 100 F.silentHitPart = "Closest" F.silentPriority = "Crosshair" F.silentTeamCheck = true F.silentWallCheck = false F.silentWallbang = false F.triggerbot = false F.flickbot = false F.ragebot = false F.aimbotEnabled = false F.aimbotSmooth = 0.22 F.aimbotFov = 160 F.aimbotPredict = 0.1 F.aimbotHitPart = "Head" F.aimbotTeamCheck = true F.aimbotWallCheck = false F.meleeAura = false F.meleeRange = 14 F.extendMelee = false F.faceBack = false F.alwaysBackstab = false F.knifeRage = false F.noRecoil = true F.noSpread = true F.antiShake = true F.infiniteAmmo = false F.rapidFire = false F.espEnabled = false F.espChams = true F.espBox = true F.espName = true F.espHealth = true F.espTeam = false F.walkSpeed = 16 F.jumpPower = 50 F.speedEnabled = false F.jumpEnabled = false F.fly = false F.flySpeed = 50 F.noclip = false F.infJump = false F.spinbot = false F.cameraFov = 70 F.cameraFovEnabled = false F.maxDistance = 2000 F.stickyTarget = nil F.mobile = UserInputService.TouchEnabled and not UserInputService.KeyboardEnabled local function alive(p) local c = p and p.Character local h = c and c:FindFirstChildOfClass("Humanoid") local r = c and c:FindFirstChild("HumanoidRootPart") return c ~= nil and h ~= nil and r ~= nil and h.Health > 0 end local function sameTeam(p) if p.Team and LocalPlayer.Team and p.Team == LocalPlayer.Team then return true end local a = p:GetAttribute("Team") local b = LocalPlayer:GetAttribute("Team") if a ~= nil and b ~= nil and a == b then return true end return false end local function visible(part) if not part then return false end local origin = Camera.CFrame.Position local dir = part.Position - origin local rp = RaycastParams.new() rp.FilterType = Enum.RaycastFilterType.Exclude local filt = { Camera } if LocalPlayer.Character then table.insert(filt, LocalPlayer.Character) end rp.FilterDescendantsInstances = filt local hit = workspace:Raycast(origin, dir, rp) if not hit then return true end return hit.Instance:IsDescendantOf(part.Parent) end local function getPart(char, mode) if mode == "Head" then return char:FindFirstChild("Head") or char:FindFirstChild("HumanoidRootPart") end if mode == "Torso" or mode == "HumanoidRootPart" then return char:FindFirstChild("HumanoidRootPart") or char:FindFirstChild("UpperTorso") or char:FindFirstChild("Torso") end local center = Camera.ViewportSize * 0.5 local best, bd = nil, 1e9 for _, n in ipairs({ "Head", "HumanoidRootPart", "UpperTorso", "Torso", "LowerTorso" }) do local p = char:FindFirstChild(n) if p then local sp, on = Camera:WorldToViewportPoint(p.Position) if on then local d = (Vector2.new(sp.X, sp.Y) - center).Magnitude if d < bd then bd = d best = p end end end end return best or char:FindFirstChild("Head") or char:FindFirstChild("HumanoidRootPart") end local function mousePos() if F.mobile then return Camera.ViewportSize * 0.5 end return UserInputService:GetMouseLocation() end local function scoreTarget(p, part, fov) local sp, on = Camera:WorldToViewportPoint(part.Position) if not on or sp.Z < 0 then return nil end local m = mousePos() local cross = (Vector2.new(sp.X, sp.Y) - m).Magnitude if cross > fov then return nil end local root = LocalPlayer.Character and LocalPlayer.Character:FindFirstChild("HumanoidRootPart") local dist = root and (part.Position - root.Position).Magnitude or 9999 if dist > F.maxDistance then return nil end local hum = p.Character and p.Character:FindFirstChildOfClass("Humanoid") local hp = hum and hum.Health or 100 local s = cross if F.silentPriority == "Distance" or F.silentPriority == "Closest" then s = dist end if F.silentHealthLead or F.silentPriority == "Health" then s = s + hp * 0.15 end if F.silentRagePriority then s = s - (100 - hp) * 0.5 end return s end local function getTarget(fov, hitMode, wall, teamFlag) if F.silentSticky and F.stickyTarget and alive(F.stickyTarget) then if not (teamFlag and sameTeam(F.stickyTarget)) then local part = getPart(F.stickyTarget.Character, hitMode) if part then local wallOk = true if wall and not F.silentWallbang then wallOk = visible(part) end if wallOk then local sc = scoreTarget(F.stickyTarget, part, fov) if sc then return F.stickyTarget, part end end end end end local bestP, bestPart, bestS = nil, nil, 1e9 for _, p in ipairs(Players:GetPlayers()) do if p ~= LocalPlayer and alive(p) then if not (teamFlag and sameTeam(p)) then local part = getPart(p.Character, hitMode) if part then local wallOk = true if wall and not F.silentWallbang then wallOk = visible(part) end if wallOk then local sc = scoreTarget(p, part, fov) if sc and sc < bestS then bestS = sc bestP = p bestPart = part end end end end end end if F.silentSticky then F.stickyTarget = bestP end return bestP, bestPart end local function predict(part, factor) local v = Vector3.zero pcall(function() v = part.AssemblyLinearVelocity end) if v.Magnitude < 0.01 then pcall(function() v = part.Velocity end) end return part.Position + v * factor end -- Silent aim AFTER UI (safe) local mtOk = false local function armSilent() pcall(function() if not getrawmetatable then return end local mt = getrawmetatable(game) if not mt then return end local oldIndex = mt.__index if setreadonly then pcall(setreadonly, mt, false) end local hook = function(self, key) if F.silentEnabled and (key == "Hit" or key == "Target") then if math.random(1, 100) <= F.silentHitchance then local _, part = getTarget(F.silentFov, F.silentHitPart, F.silentWallCheck, F.silentTeamCheck) if part then local pos = predict(part, F.silentPrediction) if key == "Hit" then return CFrame.new(pos) end return part end end end return oldIndex(self, key) end if newcclosure then pcall(function() mt.__index = newcclosure(hook) end) else mt.__index = hook end if setreadonly then pcall(setreadonly, mt, true) end mtOk = true end) end track(RunService.RenderStepped:Connect(function() if K.destroyed then return end Camera = workspace.CurrentCamera if not Camera then return end if F.aimbotEnabled then local hold = true if not F.mobile then hold = UserInputService:IsKeyDown(Enum.KeyCode.E) or UserInputService:IsMouseButtonPressed(Enum.UserInputType.MouseButton2) end if hold then local _, part = getTarget(F.aimbotFov, F.aimbotHitPart, F.aimbotWallCheck, F.aimbotTeamCheck) if part then local pos = predict(part, F.aimbotPredict) Camera.CFrame = Camera.CFrame:Lerp(CFrame.lookAt(Camera.CFrame.Position, pos), F.aimbotSmooth) end end end if F.flickbot then local hold = F.mobile or UserInputService:IsKeyDown(Enum.KeyCode.F) if hold then local _, part = getTarget(F.silentFov, F.silentHitPart, F.silentWallCheck, F.silentTeamCheck) if part then Camera.CFrame = CFrame.lookAt(Camera.CFrame.Position, predict(part, F.silentPrediction)) end end end if F.triggerbot then local _, part = getTarget(math.min(F.silentFov, 80), F.silentHitPart, F.silentWallCheck, F.silentTeamCheck) if part then pcall(function() if mouse1click then mouse1click() elseif mouse1press then mouse1press() task.wait() mouse1release() end end) end end if F.ragebot then local _, part = getTarget(F.silentFov * 1.2, F.silentHitPart, false, F.silentTeamCheck) if part then Camera.CFrame = Camera.CFrame:Lerp( CFrame.lookAt(Camera.CFrame.Position, predict(part, F.silentPrediction)), 0.45 ) end end if F.meleeAura or F.knifeRage then local range = F.extendMelee and (F.meleeRange + 6) or F.meleeRange local closest, cd = nil, range local myRoot = LocalPlayer.Character and LocalPlayer.Character:FindFirstChild("HumanoidRootPart") if myRoot then for _, p in ipairs(Players:GetPlayers()) do if p ~= LocalPlayer and alive(p) and not sameTeam(p) then local r = p.Character:FindFirstChild("HumanoidRootPart") if r then local d = (r.Position - myRoot.Position).Magnitude if d < cd then cd = d closest = r end end end end if closest then if F.faceBack or F.alwaysBackstab then Camera.CFrame = CFrame.lookAt(Camera.CFrame.Position, closest.Position) end pcall(function() if mouse1click then mouse1click() end end) end end end if F.noRecoil or F.antiShake then pcall(function() for _, v in ipairs(Camera:GetChildren()) do local n = string.lower(v.Name) if string.find(n, "shake") or string.find(n, "recoil") then v:Destroy() end end end) end if F.noSpread or F.infiniteAmmo or F.rapidFire then pcall(function() local tool = LocalPlayer.Character and LocalPlayer.Character:FindFirstChildOfClass("Tool") if not tool then return end for _, a in ipairs({ "Spread", "Bloom", "Accuracy", "Recoil", "Ammo", "Clip", "FireRate" }) do local v = tool:FindFirstChild(a) or tool:FindFirstChild(a, true) if v and (v:IsA("NumberValue") or v:IsA("IntValue")) then if a == "Ammo" or a == "Clip" then if F.infiniteAmmo then v.Value = 999 end elseif a == "FireRate" and F.rapidFire then v.Value = math.max(v.Value, 20) elseif F.noSpread or F.noRecoil then v.Value = 0 end end end end) end local hum = LocalPlayer.Character and LocalPlayer.Character:FindFirstChildOfClass("Humanoid") local root = LocalPlayer.Character and LocalPlayer.Character:FindFirstChild("HumanoidRootPart") if hum then if F.speedEnabled then hum.WalkSpeed = F.walkSpeed end if F.jumpEnabled then hum.UseJumpPower = true hum.JumpPower = F.jumpPower end end if F.cameraFovEnabled then pcall(function() Camera.FieldOfView = F.cameraFov end) end if F.spinbot and root then root.CFrame = root.CFrame * CFrame.Angles(0, math.rad(25), 0) end end)) local flyBV, flyBG local function stopFly() if flyBV then pcall(function() flyBV:Destroy() end) flyBV = nil end if flyBG then pcall(function() flyBG:Destroy() end) flyBG = nil end local hum = LocalPlayer.Character and LocalPlayer.Character:FindFirstChildOfClass("Humanoid") if hum then hum.PlatformStand = false end end local function startFly() stopFly() local root = LocalPlayer.Character and LocalPlayer.Character:FindFirstChild("HumanoidRootPart") local hum = LocalPlayer.Character and LocalPlayer.Character:FindFirstChildOfClass("Humanoid") if not root or not hum then return end hum.PlatformStand = true flyBV = Instance.new("BodyVelocity") flyBV.MaxForce = Vector3.new(9e9, 9e9, 9e9) flyBV.Velocity = Vector3.zero flyBV.Parent = root flyBG = Instance.new("BodyGyro") flyBG.MaxTorque = Vector3.new(9e9, 9e9, 9e9) flyBG.P = 9e4 flyBG.Parent = root track(RunService.RenderStepped:Connect(function() if not F.fly or not root.Parent then return end flyBG.CFrame = Camera.CFrame local dir = Vector3.zero if UserInputService:IsKeyDown(Enum.KeyCode.W) then dir = dir + Camera.CFrame.LookVector end if UserInputService:IsKeyDown(Enum.KeyCode.S) then dir = dir - Camera.CFrame.LookVector end if UserInputService:IsKeyDown(Enum.KeyCode.A) then dir = dir - Camera.CFrame.RightVector end if UserInputService:IsKeyDown(Enum.KeyCode.D) then dir = dir + Camera.CFrame.RightVector end if UserInputService:IsKeyDown(Enum.KeyCode.Space) then dir = dir + Vector3.yAxis end if UserInputService:IsKeyDown(Enum.KeyCode.LeftControl) then dir = dir - Vector3.yAxis end if dir.Magnitude > 0 then flyBV.Velocity = dir.Unit * F.flySpeed else flyBV.Velocity = Vector3.zero end end)) end track(UserInputService.JumpRequest:Connect(function() if F.infJump then local hum = LocalPlayer.Character and LocalPlayer.Character:FindFirstChildOfClass("Humanoid") if hum then hum:ChangeState(Enum.HumanoidStateType.Jumping) end end end)) local noclipConn local function setNoclip(on) if noclipConn then pcall(function() noclipConn:Disconnect() end) noclipConn = nil end if on then noclipConn = RunService.Stepped:Connect(function() local char = LocalPlayer.Character if not char then return end for _, p in ipairs(char:GetDescendants()) do if p:IsA("BasePart") then p.CanCollide = false end end end) track(noclipConn) end end local espFolder = Instance.new("Folder") espFolder.Name = "ConstipatedESP" pcall(function() espFolder.Parent = safeParent() end) onUnload(function() pcall(function() espFolder:Destroy() end) end) local function clearESP() for _, c in ipairs(espFolder:GetChildren()) do c:Destroy() end end local function updateESP() clearESP() if not F.espEnabled then return end for _, p in ipairs(Players:GetPlayers()) do if p ~= LocalPlayer and alive(p) then if not (sameTeam(p) and not F.espTeam) then local char = p.Character if F.espChams then local h = Instance.new("Highlight") h.Adornee = char h.FillColor = Color3.fromRGB(255, 60, 60) h.OutlineColor = Color3.new(1, 1, 1) h.FillTransparency = 0.55 h.Parent = espFolder end local head = char:FindFirstChild("Head") if head and (F.espName or F.espHealth or F.espBox) then local bb = Instance.new("BillboardGui") bb.Adornee = head bb.Size = UDim2.fromOffset(120, 40) bb.StudsOffset = Vector3.new(0, 2.2, 0) bb.AlwaysOnTop = true bb.Parent = espFolder if F.espName then local t = Instance.new("TextLabel") t.Size = UDim2.new(1, 0, 0.5, 0) t.BackgroundTransparency = 1 t.Text = p.DisplayName or p.Name t.TextColor3 = Color3.new(1, 1, 1) t.TextStrokeTransparency = 0.5 t.Font = Enum.Font.GothamBold t.TextSize = 12 t.Parent = bb end if F.espHealth then local hum = char:FindFirstChildOfClass("Humanoid") local t = Instance.new("TextLabel") t.Size = UDim2.new(1, 0, 0.5, 0) t.Position = UDim2.new(0, 0, 0.5, 0) t.BackgroundTransparency = 1 t.Text = hum and (tostring(math.floor(hum.Health)) .. " HP") or "" t.TextColor3 = Color3.fromRGB(80, 255, 120) t.TextStrokeTransparency = 0.5 t.Font = Enum.Font.Gotham t.TextSize = 11 t.Parent = bb end end end end end end local lastEsp = 0 track(RunService.Heartbeat:Connect(function() if F.espEnabled and (tick() - lastEsp) > 0.4 then lastEsp = tick() pcall(updateESP) end end)) -- ========== LOAD ORION ========== print("[Constipated Hub] loading Orion...") local OrionLib local orionUrls = { "https://raw.githubusercontent.com/jensonhirst/Orion/main/source", "https://cdn.jsdelivr.net/gh/jensonhirst/Orion@main/source", "https://raw.githubusercontent.com/jensonhirst/Orion/refs/heads/main/source", "https://pastebin.com/raw/0QZxqy0n", } for _, url in ipairs(orionUrls) do local src = httpGet(url) if src then local ok, res = pcall(function() return loadstring(src)() end) if ok and res and type(res) == "table" and res.MakeWindow then OrionLib = res print("[Constipated Hub] Orion OK from", url) break else print("[Constipated Hub] Orion parse fail", url, res) end else print("[Constipated Hub] Orion fetch fail", url) end end local function buildOrionUI() local Window = OrionLib:MakeWindow({ Name = "Constipated Hub | Rivals", HidePremium = true, SaveConfig = false, IntroEnabled = false, ConfigFolder = "ConstipatedHub", }) local TabSilent = Window:MakeTab({ Name = "Silent / Rage", Icon = "rbxassetid://4483345998", PremiumOnly = false }) TabSilent:AddToggle({ Name = "Enable Silent Aim", Default = false, Callback = function(v) F.silentEnabled = v end }) TabSilent:AddToggle({ Name = "Sticky Target", Default = true, Callback = function(v) F.silentSticky = v end }) TabSilent:AddToggle({ Name = "Health Lead", Default = false, Callback = function(v) F.silentHealthLead = v end }) TabSilent:AddToggle({ Name = "Rage Priority", Default = false, Callback = function(v) F.silentRagePriority = v end }) TabSilent:AddToggle({ Name = "Team Check", Default = true, Callback = function(v) F.silentTeamCheck = v end }) TabSilent:AddToggle({ Name = "Wall Check", Default = false, Callback = function(v) F.silentWallCheck = v end }) TabSilent:AddToggle({ Name = "Wallbang", Default = false, Callback = function(v) F.silentWallbang = v end }) TabSilent:AddToggle({ Name = "Triggerbot", Default = false, Callback = function(v) F.triggerbot = v end }) TabSilent:AddToggle({ Name = "Flickbot", Default = false, Callback = function(v) F.flickbot = v end }) TabSilent:AddToggle({ Name = "Ragebot", Default = false, Callback = function(v) F.ragebot = v end }) TabSilent:AddSlider({ Name = "FOV", Min = 10, Max = 800, Default = 140, Increment = 5, Callback = function(v) F.silentFov = v end }) TabSilent:AddSlider({ Name = "Prediction", Min = 0, Max = 50, Default = 12, Increment = 1, Callback = function(v) F.silentPrediction = v / 100 end }) TabSilent:AddSlider({ Name = "Hit Chance", Min = 1, Max = 100, Default = 100, Increment = 1, Callback = function(v) F.silentHitchance = v end }) TabSilent:AddDropdown({ Name = "Hitbox", Default = "Closest", Options = { "Closest", "Head", "Torso", "HumanoidRootPart" }, Callback = function(v) F.silentHitPart = v end, }) local TabLegit = Window:MakeTab({ Name = "Legit", Icon = "rbxassetid://4483345998", PremiumOnly = false }) TabLegit:AddToggle({ Name = "Aimbot", Default = false, Callback = function(v) F.aimbotEnabled = v end }) TabLegit:AddToggle({ Name = "Team Check", Default = true, Callback = function(v) F.aimbotTeamCheck = v end }) TabLegit:AddToggle({ Name = "Wall Check", Default = false, Callback = function(v) F.aimbotWallCheck = v end }) TabLegit:AddSlider({ Name = "Aim FOV", Min = 20, Max = 500, Default = 160, Increment = 5, Callback = function(v) F.aimbotFov = v end }) TabLegit:AddSlider({ Name = "Smooth", Min = 5, Max = 100, Default = 22, Increment = 1, Callback = function(v) F.aimbotSmooth = v / 100 end }) TabLegit:AddDropdown({ Name = "Aim Point", Default = "Head", Options = { "Head", "Torso", "Closest" }, Callback = function(v) F.aimbotHitPart = v end, }) local TabGun = Window:MakeTab({ Name = "Gun Mods", Icon = "rbxassetid://4483345998", PremiumOnly = false }) TabGun:AddToggle({ Name = "No Recoil", Default = true, Callback = function(v) F.noRecoil = v end }) TabGun:AddToggle({ Name = "No Spread", Default = true, Callback = function(v) F.noSpread = v end }) TabGun:AddToggle({ Name = "Anti Shake", Default = true, Callback = function(v) F.antiShake = v end }) TabGun:AddToggle({ Name = "Infinite Ammo", Default = false, Callback = function(v) F.infiniteAmmo = v end }) TabGun:AddToggle({ Name = "Rapid Fire", Default = false, Callback = function(v) F.rapidFire = v end }) local TabMelee = Window:MakeTab({ Name = "Melee", Icon = "rbxassetid://4483345998", PremiumOnly = false }) TabMelee:AddToggle({ Name = "Melee Aura", Default = false, Callback = function(v) F.meleeAura = v end }) TabMelee:AddToggle({ Name = "Knife Rage", Default = false, Callback = function(v) F.knifeRage = v end }) TabMelee:AddToggle({ Name = "Extend Range", Default = false, Callback = function(v) F.extendMelee = v end }) TabMelee:AddToggle({ Name = "Face Back / Backstab", Default = false, Callback = function(v) F.faceBack = v F.alwaysBackstab = v end }) TabMelee:AddSlider({ Name = "Reach", Min = 6, Max = 30, Default = 14, Increment = 1, Callback = function(v) F.meleeRange = v end }) local TabESP = Window:MakeTab({ Name = "ESP", Icon = "rbxassetid://4483345998", PremiumOnly = false }) TabESP:AddToggle({ Name = "Enable ESP", Default = false, Callback = function(v) F.espEnabled = v if v then updateESP() else clearESP() end end, }) TabESP:AddToggle({ Name = "Chams", Default = true, Callback = function(v) F.espChams = v end }) TabESP:AddToggle({ Name = "Names", Default = true, Callback = function(v) F.espName = v end }) TabESP:AddToggle({ Name = "Health", Default = true, Callback = function(v) F.espHealth = v end }) TabESP:AddToggle({ Name = "Show Teammates", Default = false, Callback = function(v) F.espTeam = v end }) local TabMove = Window:MakeTab({ Name = "Movement", Icon = "rbxassetid://4483345998", PremiumOnly = false }) TabMove:AddToggle({ Name = "Speed", Default = false, Callback = function(v) F.speedEnabled = v end }) TabMove:AddSlider({ Name = "WalkSpeed", Min = 16, Max = 200, Default = 16, Increment = 1, Callback = function(v) F.walkSpeed = v end }) TabMove:AddToggle({ Name = "Jump", Default = false, Callback = function(v) F.jumpEnabled = v end }) TabMove:AddSlider({ Name = "JumpPower", Min = 50, Max = 300, Default = 50, Increment = 5, Callback = function(v) F.jumpPower = v end }) TabMove:AddToggle({ Name = "Fly", Default = false, Callback = function(v) F.fly = v if v then startFly() else stopFly() end end, }) TabMove:AddSlider({ Name = "Fly Speed", Min = 20, Max = 150, Default = 50, Increment = 5, Callback = function(v) F.flySpeed = v end }) TabMove:AddToggle({ Name = "Noclip", Default = false, Callback = function(v) F.noclip = v setNoclip(v) end }) TabMove:AddToggle({ Name = "Inf Jump", Default = false, Callback = function(v) F.infJump = v end }) TabMove:AddToggle({ Name = "Spinbot", Default = false, Callback = function(v) F.spinbot = v end }) TabMove:AddToggle({ Name = "Camera FOV", Default = false, Callback = function(v) F.cameraFovEnabled = v end }) TabMove:AddSlider({ Name = "FOV Value", Min = 50, Max = 120, Default = 70, Increment = 1, Callback = function(v) F.cameraFov = v end }) local TabSet = Window:MakeTab({ Name = "Settings", Icon = "rbxassetid://4483345998", PremiumOnly = false }) TabSet:AddParagraph("Info", F.mobile and "Mobile · FOV center locked" or "PC") TabSet:AddSlider({ Name = "Max Distance", Min = 200, Max = 5000, Default = 2000, Increment = 50, Callback = function(v) F.maxDistance = v end }) TabSet:AddButton({ Name = "Unload Hub", Callback = function() K.Unload() pcall(function() OrionLib:Destroy() end) end, }) pcall(function() OrionLib:MakeNotification({ Name = "Constipated Hub", Content = "Loaded" .. (mtOk and " · silent OK" or " · silent limited"), Time = 5, }) end) end local function buildFallbackUI() -- Minimal ScreenGui if Orion fails (Xeno / blocked HTTP) local sg = Instance.new("ScreenGui") sg.Name = "ConstipatedHubFallback" sg.ResetOnSpawn = false sg.ZIndexBehavior = Enum.ZIndexBehavior.Sibling pcall(function() sg.Parent = safeParent() end) local frame = Instance.new("Frame") frame.Size = UDim2.fromOffset(280, 360) frame.Position = UDim2.new(0.5, -140, 0.5, -180) frame.BackgroundColor3 = Color3.fromRGB(20, 20, 24) frame.BorderSizePixel = 0 frame.Active = true frame.Draggable = true frame.Parent = sg Instance.new("UICorner", frame).CornerRadius = UDim.new(0, 8) local title = Instance.new("TextLabel") title.Size = UDim2.new(1, 0, 0, 32) title.BackgroundColor3 = Color3.fromRGB(30, 30, 40) title.Text = "Constipated Hub (Fallback)" title.TextColor3 = Color3.new(1, 1, 1) title.Font = Enum.Font.GothamBold title.TextSize = 14 title.Parent = frame local y = 40 local function addToggle(name, key) local b = Instance.new("TextButton") b.Size = UDim2.new(1, -16, 0, 28) b.Position = UDim2.fromOffset(8, y) b.BackgroundColor3 = Color3.fromRGB(40, 40, 50) b.TextColor3 = Color3.new(1, 1, 1) b.Font = Enum.Font.Gotham b.TextSize = 13 b.Text = name .. ": OFF" b.Parent = frame Instance.new("UICorner", b).CornerRadius = UDim.new(0, 4) b.MouseButton1Click:Connect(function() F[key] = not F[key] b.Text = name .. (F[key] and ": ON" or ": OFF") if key == "espEnabled" then if F.espEnabled then updateESP() else clearESP() end elseif key == "fly" then if F.fly then startFly() else stopFly() end elseif key == "noclip" then setNoclip(F.noclip) end end) y = y + 32 end addToggle("Silent Aim", "silentEnabled") addToggle("Aimbot", "aimbotEnabled") addToggle("ESP", "espEnabled") addToggle("No Recoil", "noRecoil") addToggle("Speed", "speedEnabled") addToggle("Fly", "fly") addToggle("Noclip", "noclip") addToggle("Inf Jump", "infJump") onUnload(function() pcall(function() sg:Destroy() end) end) notify("Constipated Hub", "Orion failed — using fallback UI") end if OrionLib then local okUI, errUI = pcall(buildOrionUI) if not okUI then print("[Constipated Hub] Orion UI error:", errUI) buildFallbackUI() end else buildFallbackUI() end task.defer(armSilent) function K.Unload() if K.destroyed then return end K.destroyed = true F.silentEnabled = false F.aimbotEnabled = false F.fly = false stopFly() setNoclip(false) clearESP() for _, c in ipairs(K.connections) do pcall(function() c:Disconnect() end) end for _, f in ipairs(K.cleanups) do pcall(f) end if G.ConstipatedHub == K then G.ConstipatedHub = nil end notify("Constipated Hub", "Unloaded") end print("[Constipated Hub] ready") notify("Constipated Hub", "Loaded") end) if not okLoad then warn("[Constipated Hub] FATAL:", errLoad) pcall(function() game:GetService("StarterGui"):SetCore("SendNotification", { Title = "Constipated Hub FAILED", Text = tostring(errLoad), Duration = 10, }) end) end