New Jol hub
Key RequiredUniversal

New Jol hub

Universal ScriptJolScriptsHackJolScriptsHack 918 views 465 executesUpdated Oct 21, 2025
Unrated
00
Lua Script•322 lines (9618 chars)
-- 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!")

Features & Information

Hmm

Community Comments (0)

No comments yet for this script.

More Scripts for Universal Scripts