--========================== -- PJV HUB (XENO OPTIMIZED) FULL SCRIPT WITH SERVER-VISIBLE FLY --========================== -- SERVICES local Players = game:GetService("Players") local RunService = game:GetService("RunService") local UIS = game:GetService("UserInputService") local TweenService = game:GetService("TweenService") local VirtualUser = game:GetService("VirtualUser") local Workspace = game:GetService("Workspace") local CoreGui = game:GetService("CoreGui") local player = Players.LocalPlayer local camera = Workspace.CurrentCamera local gravity = Workspace.Gravity --========================== -- STATE --========================== local flyEnabled = false local noclipEnabled = false local spinEnabled = false local camFollow = false local antiAFKEnabled = false local spectating = false local spectateTarget = nil local targetFPS = 60 local espEnabled = true local aimAssistEnabled = true local flySpeed = 50 local spinSpeed = 120 local playerESPToggles = {} --========================== -- LOADING SCREEN (~7 seconds) --========================== local loadingGui = Instance.new("ScreenGui") loadingGui.Name = "PJVLoading" loadingGui.Parent = CoreGui loadingGui.ResetOnSpawn = false local bg = Instance.new("Frame", loadingGui) bg.Size = UDim2.new(1,0,1,0) bg.BackgroundColor3 = Color3.fromRGB(20,20,20) bg.BorderSizePixel = 0 local title = Instance.new("TextLabel", bg) title.Size = UDim2.new(1,0,0,50) title.Position = UDim2.new(0,0,0.4,0) title.BackgroundTransparency = 1 title.Text = "Loading PJV Hub..." title.TextScaled = true title.TextColor3 = Color3.fromRGB(255,255,255) local barFrame = Instance.new("Frame", bg) barFrame.Size = UDim2.new(0.6,0,0,25) barFrame.Position = UDim2.new(0.2,0,0.55,0) barFrame.BackgroundColor3 = Color3.fromRGB(50,50,50) barFrame.BorderSizePixel = 0 local bar = Instance.new("Frame", barFrame) bar.Size = UDim2.new(0,0,1,0) bar.BackgroundColor3 = Color3.fromRGB(0,170,255) bar.BorderSizePixel = 0 --========================== -- MAIN GUI (HIDDEN DURING LOADING) --========================== local gui = Instance.new("ScreenGui") gui.Name = "DeltaPracticeUI" gui.Parent = CoreGui gui.ResetOnSpawn = false gui.Enabled = false -- hidden until loading finishes local panel = Instance.new("Frame", gui) panel.Size = UDim2.new(0,280,0,420) panel.Position = UDim2.new(0,40,0,40) panel.BackgroundColor3 = Color3.fromRGB(0,0,0) panel.BorderSizePixel = 0 panel.Active = true panel.Draggable = true -- Minimize local minimized = false local minBtn = Instance.new("TextButton", panel) minBtn.Size = UDim2.new(0,30,0,30) minBtn.Position = UDim2.new(1,-35,0,5) minBtn.Text = "-" minBtn.TextScaled = true minBtn.BackgroundColor3 = Color3.fromRGB(40,40,40) --========================== -- TABS --========================== local tabs = {} local content = Instance.new("Frame", panel) content.Size = UDim2.new(1,-10,1,-50) content.Position = UDim2.new(0,5,0,45) content.BackgroundTransparency = 1 local function makeTab(name, x) local b = Instance.new("TextButton", panel) b.Size = UDim2.new(0,80,0,30) b.Position = UDim2.new(0,x,0,5) b.Text = name b.TextScaled = true b.BackgroundColor3 = Color3.fromRGB(50,50,50) b.TextColor3 = Color3.new(1,1,1) tabs[name] = b return b end makeTab("Shooter",10) makeTab("General",95) makeTab("Credits",180) makeTab("Funny",265) local frames = {} local function makeFrame(name) local f = Instance.new("Frame", content) f.Name = name f.Size = UDim2.new(1,0,1,0) f.BackgroundTransparency = 1 frames[name] = f return f end local shooterFrame = makeFrame("Shooter") local generalFrame = makeFrame("General") local creditsFrame = makeFrame("Credits") local funnyFrame = makeFrame("Funny") local function switch(tab) for n,f in pairs(frames) do f.Visible = (n==tab) end end switch("Shooter") for n,b in pairs(tabs) do b.MouseButton1Click:Connect(function() switch(n) end) end --========================== -- GENERAL TAB (Fly/Noclip/Spin/AntiAFK/Spectate) --========================== local function toggleBtn(txt,y,callback) local b = Instance.new("TextButton", generalFrame) b.Size = UDim2.new(1,-20,0,35) b.Position = UDim2.new(0,10,0,y) b.Text = txt..": OFF" b.TextScaled = true b.BackgroundColor3 = Color3.fromRGB(0,170,255) b.MouseButton1Click:Connect(function() callback(b) end) end toggleBtn("Fly",10,function(b) flyEnabled = not flyEnabled if not flyEnabled then pcall(function() local char = player.Character if char and char:FindFirstChild("Humanoid") then char.Humanoid.PlatformStand = false end end) end b.Text = "Fly: "..(flyEnabled and "ON" or "OFF") end) toggleBtn("Noclip",55,function(b) noclipEnabled = not noclipEnabled b.Text = "Noclip: "..(noclipEnabled and "ON" or "OFF") end) toggleBtn("Spin",100,function(b) spinEnabled = not spinEnabled b.Text = "Spin: "..(spinEnabled and "ON" or "OFF") end) toggleBtn("Anti-AFK",145,function(b) antiAFKEnabled = not antiAFKEnabled b.Text = "Anti-AFK: "..(antiAFKEnabled and "ON" or "OFF") end) -- Spectate / Teleport local stopSpec = Instance.new("TextButton", generalFrame) stopSpec.Position = UDim2.new(0,10,0,185) stopSpec.Size = UDim2.new(1,-20,0,30) stopSpec.Text = "STOP SPECTATING" stopSpec.TextScaled = true stopSpec.BackgroundColor3 = Color3.fromRGB(170,0,0) stopSpec.MouseButton1Click:Connect(function() spectating = false spectateTarget = nil if player.Character and player.Character:FindFirstChild("Humanoid") then camera.CameraSubject = player.Character.Humanoid end end) local listHolder = Instance.new("Frame", generalFrame) listHolder.Position = UDim2.new(0,10,0,225) listHolder.Size = UDim2.new(1,-20,1,-235) listHolder.BackgroundTransparency = 1 local layout = Instance.new("UIListLayout", listHolder) layout.Padding = UDim.new(0,6) -- Refresh Spectate list function local function refreshSpectateList() for _,v in pairs(listHolder:GetChildren()) do if v:IsA("Frame") then v:Destroy() end end for _,plr in ipairs(Players:GetPlayers()) do if plr ~= player then local row = Instance.new("Frame", listHolder) row.Size = UDim2.new(1,0,0,42) row.BackgroundColor3 = Color3.fromRGB(40,40,40) row.BorderSizePixel = 0 local img = Instance.new("ImageLabel", row) img.Size = UDim2.new(0,36,0,36) img.Position = UDim2.new(0,3,0,3) img.BackgroundTransparency = 1 img.Image = "rbxthumb://type=AvatarHeadShot&id="..plr.UserId.."&w=150&h=150" local nameBtn = Instance.new("TextButton", row) nameBtn.Position = UDim2.new(0,45,0,0) nameBtn.Size = UDim2.new(1,-95,1,0) nameBtn.Text = plr.Name nameBtn.TextScaled = true nameBtn.BackgroundTransparency = 1 nameBtn.TextColor3 = Color3.new(1,1,1) nameBtn.MouseButton1Click:Connect(function() pcall(function() if plr.Character and plr.Character:FindFirstChild("HumanoidRootPart") then player.Character.HumanoidRootPart.CFrame = plr.Character.HumanoidRootPart.CFrame * CFrame.new(0,0,-3) end end) end) local eye = Instance.new("TextButton", row) eye.Size = UDim2.new(0,36,0,36) eye.Position = UDim2.new(1,-40,0,3) eye.Text = "👁" eye.TextScaled = true eye.BackgroundColor3 = Color3.fromRGB(0,170,255) eye.MouseButton1Click:Connect(function() spectating = true spectateTarget = plr camera.CameraType = Enum.CameraType.Custom end) end end end refreshSpectateList() Players.PlayerAdded:Connect(refreshSpectateList) Players.PlayerRemoving:Connect(refreshSpectateList) --========================== -- SERVER-VISIBLE FLY --========================== RunService.Stepped:Connect(function() pcall(function() if not flyEnabled then return end local char = player.Character if not char or not char:FindFirstChild("HumanoidRootPart") or not char:FindFirstChild("Humanoid") then return end local hrp = char.HumanoidRootPart local hum = char.Humanoid local moveDir = Vector3.zero if UIS:IsKeyDown(Enum.KeyCode.W) then moveDir += camera.CFrame.LookVector end if UIS:IsKeyDown(Enum.KeyCode.S) then moveDir -= camera.CFrame.LookVector end if UIS:IsKeyDown(Enum.KeyCode.A) then moveDir -= camera.CFrame.RightVector end if UIS:IsKeyDown(Enum.KeyCode.D) then moveDir += camera.CFrame.RightVector end if UIS:IsKeyDown(Enum.KeyCode.Space) then moveDir += Vector3.new(0,1,0) end if UIS:IsKeyDown(Enum.KeyCode.LeftShift) then moveDir -= Vector3.new(0,1,0) end if moveDir.Magnitude > 0 then moveDir = moveDir.Unit * flySpeed * RunService.RenderStepped:Wait() hrp.CFrame = hrp.CFrame + moveDir end hum.PlatformStand = true end) end) --========================== -- MINIMIZE --========================== minBtn.MouseButton1Click:Connect(function() minimized = not minimized content.Visible = not minimized panel.Size = minimized and UDim2.new(0,280,0,40) or UDim2.new(0,280,0,420) end) --========================== -- SHOOTER TAB: ESP + AIM ASSIST --========================== RunService.RenderStepped:Connect(function() pcall(function() local closest = nil local closestDist = math.huge for _,plr in ipairs(Players:GetPlayers()) do if plr ~= player and plr.Character and plr.Character:FindFirstChild("HumanoidRootPart") then local hrp = plr.Character.HumanoidRootPart if playerESPToggles[plr] == nil then playerESPToggles[plr] = true end if playerESPToggles[plr] and espEnabled then local ray = Workspace:Raycast(camera.CFrame.Position, (hrp.Position - camera.CFrame.Position), {player.Character}) local color = ray and ray.Instance ~= hrp and Color3.fromRGB(255,0,0) or Color3.fromRGB(0,255,0) if not hrp:FindFirstChild("ESPBox") then local box = Instance.new("BillboardGui", hrp) box.Name = "ESPBox" box.Adornee = hrp box.Size = UDim2.new(0,50,0,50) box.AlwaysOnTop = true local frame = Instance.new("Frame", box) frame.Size = UDim2.new(1,0,1,0) frame.BorderSizePixel = 2 frame.BackgroundTransparency = 1 frame.BorderColor3 = color else hrp.ESPBox.Frame.BorderColor3 = color end else if hrp:FindFirstChild("ESPBox") then hrp.ESPBox:Destroy() end end if aimAssistEnabled then local dist = (hrp.Position - camera.CFrame.Position).Magnitude if dist < closestDist then closestDist = dist closest = plr end end end end if aimAssistEnabled and closest and closest.Character and closest.Character:FindFirstChild("HumanoidRootPart") then camera.CFrame = CFrame.new(camera.CFrame.Position, closest.Character.HumanoidRootPart.Position) end end) end) --========================== -- FUNNY TAB: FPS LIMITER --========================== local fpsFrame = Instance.new("Frame", funnyFrame) fpsFrame.Size = UDim2.new(1,-20,0,50) fpsFrame.Position = UDim2.new(0,10,0,10) fpsFrame.BackgroundColor3 = Color3.fromRGB(30,30,30) local fpsLabel = Instance.new("TextLabel", fpsFrame) fpsLabel.Size = UDim2.new(0.6,0,1,0) fpsLabel.Position = UDim2.new(0,5,0,0) fpsLabel.Text = "FPS: "..targetFPS fpsLabel.TextScaled = true fpsLabel.BackgroundTransparency = 1 fpsLabel.TextColor3 = Color3.new(1,1,1) local fpsInput = Instance.new("TextBox", fpsFrame) fpsInput.Size = UDim2.new(0.35,0,0.6,0) fpsInput.Position = UDim2.new(0.6,0,0.2,0) fpsInput.PlaceholderText = "4-999" fpsInput.Text = tostring(targetFPS) fpsInput.ClearTextOnFocus = false fpsInput.TextScaled = true fpsInput.FocusLost:Connect(function(enterPressed) local value = tonumber(fpsInput.Text) if value and value >=4 and value <=999 then targetFPS = value fpsLabel.Text = "FPS: "..targetFPS else fpsInput.Text = tostring(targetFPS) end end) task.spawn(function() while true do task.wait(1/targetFPS) end end) --========================== -- ANTI AFK --========================== player.Idled:Connect(function() if antiAFKEnabled then pcall(function() VirtualUser:Button2Down(Vector2.new(),camera.CFrame) task.wait(1.2) VirtualUser:Button2Up(Vector2.new(),camera.CFrame) end) end end) --========================== -- CREDITS --========================== local cr = Instance.new("TextLabel", creditsFrame) cr.Size = UDim2.new(1,0,1,0) cr.Text = "Credits: PJV" cr.TextScaled = true cr.BackgroundTransparency = 1 cr.TextColor3 = Color3.new(1,1,1) --========================== -- FINISH LOADING --========================== local loadTime = 7 local startTime = tick() task.spawn(function() while tick() - startTime < loadTime do local progress = (tick() - startTime)/loadTime bar.Size = UDim2.new(progress,0,1,0) task.wait(0.03) end bar.Size = UDim2.new(1,0,1,0) task.wait(0.2) loadingGui:Destroy() gui.Enabled = true end)