local Rayfield = loadstring(game:HttpGet('https://sirius.menu/rayfield'))() local Window = Rayfield:CreateWindow({ Name = "Khal Hub | Prison Life", LoadingTitle = "Khal Hub", LoadingSubtitle = "by Khal", Theme = "Default", DisableRayfieldPrompts = true, DisableBuildWarnings = true, }) local MainTab = Window:CreateTab("Main", nil) local CrimTab = Window:CreateTab("Criminals", nil) local player = game.Players.LocalPlayer local RS = game:GetService("RunService") local UIS = game:GetService("UserInputService") local flying = false local noclipping = false local flySpeed = 50 local bv, bg, flyConn, noclipConn local function startFly() local char = player.Character if not char then return end local hrp = char:FindFirstChild("HumanoidRootPart") local hum = char:FindFirstChild("Humanoid") if not hrp or not hum then return end hum.PlatformStand = true flying = true if bv then bv:Destroy() end if bg then bg:Destroy() end bv = Instance.new("BodyVelocity") bv.Velocity = Vector3.new(0, 0, 0) bv.MaxForce = Vector3.new(1e9, 1e9, 1e9) bv.Parent = hrp bg = Instance.new("BodyGyro") bg.MaxTorque = Vector3.new(1e9, 1e9, 1e9) bg.P = 1e6 bg.CFrame = hrp.CFrame bg.Parent = hrp flyConn = RS.RenderStepped:Connect(function() local c = player.Character if not c then return end local h = c:FindFirstChild("HumanoidRootPart") if not h or not bv or not bg then return end local cam = workspace.CurrentCamera local dir = Vector3.new(0, 0, 0) if UIS:IsKeyDown(Enum.KeyCode.W) then dir += cam.CFrame.LookVector end if UIS:IsKeyDown(Enum.KeyCode.S) then dir -= cam.CFrame.LookVector end if UIS:IsKeyDown(Enum.KeyCode.A) then dir -= cam.CFrame.RightVector end if UIS:IsKeyDown(Enum.KeyCode.D) then dir += cam.CFrame.RightVector end if UIS:IsKeyDown(Enum.KeyCode.Space) then dir += Vector3.new(0, 1, 0) end if UIS:IsKeyDown(Enum.KeyCode.LeftShift) then dir -= Vector3.new(0, 1, 0) end local hum2 = c:FindFirstChild("Humanoid") if hum2 and hum2.MoveDirection.Magnitude > 0 then local md = hum2.MoveDirection dir += Vector3.new(md.X, 0, md.Z) end if dir.Magnitude > 0 then bv.Velocity = dir.Unit * flySpeed else bv.Velocity = Vector3.new(0, 0, 0) end bg.CFrame = cam.CFrame end) end local function stopFly() flying = false if flyConn then flyConn:Disconnect() flyConn = nil end if bv then bv:Destroy() bv = nil end if bg then bg:Destroy() bg = nil end local char = player.Character if char then local hum = char:FindFirstChild("Humanoid") if hum then hum.PlatformStand = false end end end local function startNoclip() noclipping = true noclipConn = RS.Stepped:Connect(function() local char = player.Character if not char then return end for _, v in ipairs(char:GetDescendants()) do if v:IsA("BasePart") then v.CanCollide = false end end end) end local function stopNoclip() noclipping = false if noclipConn then noclipConn:Disconnect() noclipConn = nil end local char = player.Character if char then for _, v in ipairs(char:GetDescendants()) do if v:IsA("BasePart") then v.CanCollide = true end end end end local function isCriminal(p) return p.Team and (p.Team.Name == "Criminal" or p.Team.Name == "Criminals") end local function teleportTo(target) local char = player.Character local targetChar = target.Character if not char or not targetChar then Rayfield:Notify({Title = "Gagal", Content = target.Name .. " tidak ditemukan", Duration = 3}) return end local hrp = char:FindFirstChild("HumanoidRootPart") local tHRP = targetChar:FindFirstChild("HumanoidRootPart") if hrp and tHRP then hrp.CFrame = tHRP.CFrame + Vector3.new(0, 3, 0) Rayfield:Notify({Title = "Teleport", Content = "Teleport ke " .. target.Name, Duration = 2}) end end local criminalButtons = {} local function refreshCriminals() for _, btn in pairs(criminalButtons) do pcall(function() btn:Destroy() end) end criminalButtons = {} local found = false for _, p in pairs(game.Players:GetPlayers()) do if p ~= player and isCriminal(p) then found = true local btn = CrimTab:CreateButton({ Name = "🔴 " .. p.Name .. " - Teleport", Callback = function() teleportTo(p) end, }) table.insert(criminalButtons, btn) end end if not found then local btn = CrimTab:CreateButton({ Name = "Tidak ada Criminal", Callback = function() end, }) table.insert(criminalButtons, btn) end end MainTab:CreateSection("Movement") MainTab:CreateToggle({ Name = "✈️ Fly", CurrentValue = false, Flag = "FlyToggle", Callback = function(val) if val then startFly() else stopFly() end end, }) MainTab:CreateToggle({ Name = "👻 Noclip", CurrentValue = false, Flag = "NoclipToggle", Callback = function(val) if val then startNoclip() else stopNoclip() end end, }) MainTab:CreateSlider({ Name = "🚀 Fly Speed", Range = {10, 300}, Increment = 10, CurrentValue = 50, Flag = "FlySpeed", Callback = function(val) flySpeed = val end, }) CrimTab:CreateSection("Criminal List") CrimTab:CreateButton({ Name = "🔄 Refresh List", Callback = function() refreshCriminals() Rayfield:Notify({Title = "Refresh", Content = "List criminal diperbarui!", Duration = 2}) end, }) task.spawn(function() while true do task.wait(5) refreshCriminals() end end) refreshCriminals() player.CharacterAdded:Connect(function() flying = false noclipping = false if flyConn then flyConn:Disconnect() flyConn = nil end if noclipConn then noclipConn:Disconnect() noclipConn = nil end if bv then bv:Destroy() bv = nil end if bg then bg:Destroy() bg = nil end end) Rayfield:Notify({ Title = "Khal Hub Loaded!", Content = "Made by Khal | Semua fitur siap!", Duration = 5, })