-- JolHub V2 💜 -- By JolScript 🤓 -- GUI màu tím | Kéo thả mượt | Nhiều chức năng hot -- ⚠️ Dành cho môi trường exploit hỗ trợ loadstring + HttpGet local Players = game:GetService("Players") local RunService = game:GetService("RunService") local UserInputService = game:GetService("UserInputService") local LocalPlayer = Players.LocalPlayer repeat task.wait() until LocalPlayer and LocalPlayer:FindFirstChild("PlayerGui") -- Hàm lấy nhân vật local function getCharacter() return LocalPlayer.Character or LocalPlayer.CharacterAdded:Wait() end -- ========== GUI ========== local screenGui = Instance.new("ScreenGui") screenGui.Name = "JolHubV2" screenGui.ResetOnSpawn = false screenGui.ZIndexBehavior = Enum.ZIndexBehavior.Sibling screenGui.Parent = LocalPlayer.PlayerGui -- Khung chính local mainFrame = Instance.new("Frame") mainFrame.Name = "MainFrame" mainFrame.Size = UDim2.new(0, 330, 0, 390) mainFrame.Position = UDim2.new(0.5, -165, 0.5, -195) mainFrame.AnchorPoint = Vector2.new(0.5, 0.5) mainFrame.BackgroundColor3 = Color3.fromRGB(122, 64, 182) mainFrame.BorderSizePixel = 0 mainFrame.BackgroundTransparency = 0.05 mainFrame.Parent = screenGui local UICorner = Instance.new("UICorner", mainFrame) UICorner.CornerRadius = UDim.new(0, 12) local title = Instance.new("TextLabel") title.Text = "💜 JolHub V2 - By JolScript 🤓" title.Size = UDim2.new(1, 0, 0, 36) title.BackgroundTransparency = 1 title.Font = Enum.Font.GothamBold title.TextSize = 18 title.TextColor3 = Color3.fromRGB(255,255,255) title.Parent = mainFrame local closeBtn = Instance.new("TextButton") closeBtn.Size = UDim2.new(0, 28, 0, 24) closeBtn.Position = UDim2.new(1, -32, 0, 6) closeBtn.Text = "X" closeBtn.Font = Enum.Font.GothamBold closeBtn.TextSize = 16 closeBtn.BackgroundColor3 = Color3.fromRGB(90,40,130) closeBtn.TextColor3 = Color3.fromRGB(255,255,255) closeBtn.Parent = mainFrame local toggleBtn = Instance.new("TextButton") toggleBtn.Size = UDim2.new(0, 80, 0, 28) toggleBtn.Position = UDim2.new(0, 8, 0, 40) toggleBtn.Text = "Ẩn GUI" toggleBtn.Font = Enum.Font.Gotham toggleBtn.TextSize = 14 toggleBtn.BackgroundColor3 = Color3.fromRGB(100,50,160) toggleBtn.TextColor3 = Color3.new(1,1,1) toggleBtn.Parent = mainFrame local content = Instance.new("Frame") content.Size = UDim2.new(1, -16, 1, -88) content.Position = UDim2.new(0, 8, 0, 76) content.BackgroundTransparency = 1 content.Parent = mainFrame local UIList = Instance.new("UIListLayout") UIList.Padding = UDim.new(0,8) UIList.FillDirection = Enum.FillDirection.Vertical UIList.HorizontalAlignment = Enum.HorizontalAlignment.Center UIList.Parent = content -- Tạo nút helper local function createButton(txt) local b = Instance.new("TextButton") b.Size = UDim2.new(1, 0, 0, 36) b.BackgroundColor3 = Color3.fromRGB(90,40,130) b.BackgroundTransparency = 0.15 b.Font = Enum.Font.Gotham b.TextSize = 15 b.TextColor3 = Color3.new(1,1,1) b.Text = txt b.Parent = content local corner = Instance.new("UICorner", b) corner.CornerRadius = UDim.new(0, 8) return b end -- Nút chức năng local speedBtn = createButton("⚡ Speed Hack: OFF") local highBtn = createButton("🦘 High Jump: OFF") local noclipBtn = createButton("🚪 Noclip: OFF") local ghostBtn = createButton("👻 Ghost Mode: OFF") local tpBtn = createButton("🖱 Click-to-TP: OFF") local flyBtn = createButton("🕊 Simple Fly: OFF") local flyV3Btn = createButton("🚀 Open Fly GUI V3") -- ========== Kéo GUI mượt ========== do local dragging, dragInput, dragStart, startPos local function update(input) local delta = input.Position - dragStart mainFrame.Position = UDim2.new( startPos.X.Scale, startPos.X.Offset + delta.X, startPos.Y.Scale, startPos.Y.Offset + delta.Y ) end mainFrame.InputBegan:Connect(function(input) if input.UserInputType == Enum.UserInputType.MouseButton1 or input.UserInputType == Enum.UserInputType.Touch then dragging = true dragStart = input.Position startPos = mainFrame.Position input.Changed:Connect(function() if input.UserInputState == Enum.UserInputState.End then dragging = false end end) end end) mainFrame.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 update(input) end end) end -- ========== Toggle GUI ========== toggleBtn.MouseButton1Click:Connect(function() screenGui.Enabled = not screenGui.Enabled end) closeBtn.MouseButton1Click:Connect(function() screenGui.Enabled = false end) UserInputService.InputBegan:Connect(function(i,gp) if gp then return end if i.KeyCode == Enum.KeyCode.RightControl then screenGui.Enabled = not screenGui.Enabled end end) -- ========== Các chức năng ========== local states = {speed=false, jump=false, noclip=false, ghost=false, tp=false, fly=false} local saved = {speed=16, jump=50} local char, hum, root = nil,nil,nil local function refresh() char = getCharacter() hum = char:FindFirstChildOfClass("Humanoid") root = char:FindFirstChild("HumanoidRootPart") end refresh() LocalPlayer.CharacterAdded:Connect(function() task.wait(1) refresh() end) -- Speed speedBtn.MouseButton1Click:Connect(function() refresh() if not hum then return end states.speed = not states.speed if states.speed then saved.speed = hum.WalkSpeed hum.WalkSpeed = 100 speedBtn.Text = "⚡ Speed Hack: ON" else hum.WalkSpeed = saved.speed speedBtn.Text = "⚡ Speed Hack: OFF" end end) -- High Jump highBtn.MouseButton1Click:Connect(function() refresh() if not hum then return end states.jump = not states.jump if states.jump then saved.jump = hum.JumpPower hum.JumpPower = 200 highBtn.Text = "🦘 High Jump: ON" else hum.JumpPower = saved.jump highBtn.Text = "🦘 High Jump: OFF" end end) -- Noclip local noclipConn noclipBtn.MouseButton1Click:Connect(function() refresh() states.noclip = not states.noclip noclipBtn.Text = states.noclip and "🚪 Noclip: ON" or "🚪 Noclip: OFF" if states.noclip then noclipConn = RunService.Stepped:Connect(function() for _,v in pairs(char:GetDescendants()) do if v:IsA("BasePart") then v.CanCollide = false end end end) else if noclipConn then noclipConn:Disconnect() end end end) -- Ghost ghostBtn.MouseButton1Click:Connect(function() refresh() states.ghost = not states.ghost ghostBtn.Text = states.ghost and "👻 Ghost Mode: ON" or "👻 Ghost Mode: OFF" for _,v in pairs(char:GetDescendants()) do if v:IsA("BasePart") then if states.ghost then v.Transparency = 0.5 v.CanCollide = false else v.Transparency = 0 v.CanCollide = true end end end end) -- Click TP local clickConn tpBtn.MouseButton1Click:Connect(function() refresh() states.tp = not states.tp tpBtn.Text = states.tp and "🖱 Click-to-TP: ON" or "🖱 Click-to-TP: OFF" if states.tp then local mouse = LocalPlayer:GetMouse() clickConn = mouse.Button1Down:Connect(function() if mouse.Target and root then root.CFrame = CFrame.new(mouse.Hit.p + Vector3.new(0,3,0)) end end) else if clickConn then clickConn:Disconnect() end end end) -- Simple Fly local BV, BG local flyKeys = {W=false,S=false,A=false,D=false,Space=false,Shift=false} local function flyVector() local cam = workspace.CurrentCamera local look = cam.CFrame local dir = Vector3.new() if flyKeys.W then dir += look.LookVector end if flyKeys.S then dir -= look.LookVector end if flyKeys.A then dir -= look.RightVector end if flyKeys.D then dir += look.RightVector end if flyKeys.Space then dir += Vector3.new(0,1,0) end if flyKeys.Shift then dir -= Vector3.new(0,1,0) end return dir.Unit == dir.Unit and dir.Unit or Vector3.zero end flyBtn.MouseButton1Click:Connect(function() refresh() states.fly = not states.fly flyBtn.Text = states.fly and "🕊 Simple Fly: ON" or "🕊 Simple Fly: OFF" if states.fly and root then BV = Instance.new("BodyVelocity", root) BV.MaxForce = Vector3.new(1e5,1e5,1e5) BV.Velocity = Vector3.zero BG = Instance.new("BodyGyro", root) BG.MaxTorque = Vector3.new(1e5,1e5,1e5) BG.CFrame = root.CFrame UserInputService.InputBegan:Connect(function(i,gp) if gp then return end if i.KeyCode == Enum.KeyCode.W then flyKeys.W = true end if i.KeyCode == Enum.KeyCode.S then flyKeys.S = true end if i.KeyCode == Enum.KeyCode.A then flyKeys.A = true end if i.KeyCode == Enum.KeyCode.D then flyKeys.D = true end if i.KeyCode == Enum.KeyCode.Space then flyKeys.Space = true end if i.KeyCode == Enum.KeyCode.LeftShift then flyKeys.Shift = true end end) UserInputService.InputEnded:Connect(function(i) if i.KeyCode == Enum.KeyCode.W then flyKeys.W = false end if i.KeyCode == Enum.KeyCode.S then flyKeys.S = false end if i.KeyCode == Enum.KeyCode.A then flyKeys.A = false end if i.KeyCode == Enum.KeyCode.D then flyKeys.D = false end if i.KeyCode == Enum.KeyCode.Space then flyKeys.Space = false end if i.KeyCode == Enum.KeyCode.LeftShift then flyKeys.Shift = false end end) RunService.RenderStepped:Connect(function() if BV and root then BV.Velocity = flyVector() * 100 BG.CFrame = CFrame.new(root.Position, root.Position + workspace.CurrentCamera.CFrame.LookVector) end end) else if BV then BV:Destroy() BV = nil end if BG then BG:Destroy() BG = nil end end end) -- Fly GUI V3 flyV3Btn.MouseButton1Click:Connect(function() loadstring(game:HttpGet("https://raw.githubusercontent.com/XNEOFF/FlyGuiV3/main/FlyGuiV3.txt"))() end) print("✅ JolHub V2 Loaded successfully!")